Avançar para a área de conteúdo

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

A primeira vez que acessar o developerWorks, um perfil será criado para você. Informações do seu perfil (tais como: nome, país / região, e empresa) estarão disponíveis ao público, que poderá acompanhar qualquer conteúdo que você publicar. Seu perfil no developerWorks pode ser atualizado a qualquer momento.

Todas as informações enviadas são seguras.

  • Fechar [x]

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

Todas as informações enviadas são seguras.

  • Fechar [x]

Usando WebSphere MQ Telemetry e Pachube para se conectar a sensores e dispositivos remotos

Nick Maynard, Senior Software Engineer, Industry and Business Solutions Team, IBM
Author photo
Nick Maynard é engenheiro de software senior do Industry and Business Solutions Team no IBM Software Lab em Hursley, Reino Unido. Ele é especializado em Dojo, AJAX, programação da Web, serviços da Web e Linux. É possível entrar em contato com Nick pelo e-mail nick.maynard@uk.ibm.com.
(Um autor Contribuidor do IBM developerWorks)

Resumo:  Pachube e o protocolo MQTT, com suas implementações acompanhantes de broker, oferecem excelentes facilidades para agregar dados de dispositivos e redes de sensores remotos em uma API comum. No entanto, eles não fornecem uma maneira de integrar dados entre as duas tecnologias. Este artigo mostra como usar a nova função WebSphere MQ Telemetry para unir as duas redes e compartilhar dados, e inclui um utilitário para download que facilita a integração.

Data:  11/Jul/2011
Nível:  Intermediário Também disponível em :   Inglês
Atividade:  946 visualizações
Comentários:  


Introdução

O IBM® WebSphere® MQ Telemetry estende o backbone de mensagens universal fornecido pelo WebSphere MQ para uma ampla variedade de sensores remotos, atuadores e dispositivos de telemetria. Ele usa o protocolo MQ Telemetry Transport (MQTT) para permitir monitorar sensores corporativos usando a tecnologia IBM MQ. MQTT é um protocolo de mensagens desenvolvido pela IBM, disponível anteriormente no WebSphere Message Broker, e doado pela IBM para a comunidade de software livre. O WebSphere MQ Telemetry inclui uma biblioteca de cliente Java™ para permitir o desenvolvimento de código ativado para MQTT.

Internet das coisas

De acordo com o estrategista de negócios sociais da Juniper Networks Adam Christensen: "Como outros já disseram, se a Web 1.0 foi caracterizada pela conexão das pessoas ao conteúdo, e a Web 2.0 conecta pessoas a pessoas, a Web 3.0 conectará objetos entre si e a pessoas: a Internet das coisas. "

A Internet das Coisas concentra-se na interconexão e instrumentação de objetos com baixa granularidade, a fim de permitir o monitoramento e o gerenciamento sofisticados e inteligentes de redes complexas de objetos do mundo real.

Outra tecnologia cada vez mais popular para o monitoramento de sensores e dispositivos é a Pachube. Pachube e MQTT são tecnologias que ativam a Internet das coisas, e se espera que tenham papéis importantes no mundo interligado e instrumentado imaginado pela iniciativa Planeta Mais Inteligente da IBM.

Pachube atualmente tem cerca de 120.000 usuários (de acordo com statshow.com), e é cada vez mais usada por provedores como CurrentCost para fornecer interconectividade de sensores. O protocolo IBM MQTT é usado em muitos ambientes diversos para conectar uma variedade de sistemas de sensores.

Este artigo discute os desafios de integrar os dois sistemas e apresenta possíveis soluções, incluindo um utilitário para a integração das redes. O artigo deve ser útil para usuários que trabalham com os dois sistemas ou simplesmente os comparam, e o utilitário deve ser valioso para quem integra os dois sistemas.

Assinando e publicando tópicos de MQTT

O design de sistema da ligação Pachube-MQTT envolve publicar informações de alimentações Pachube em tópicos de MQTT, e monitorar os tópicos de MQTT em busca de informações para publicar em alimentações Pachube, como mostrado abaixo:


Design de sistema da ligação Pachube-MQTT, com mapeamento de alimentações Pachube para tópicos de MQTT, e vice-versa

MQTT é projetado a partir do grupo para fornecer um modelo de mensagem de publicação/assinatura de uma maneira fácil de entender com base em "tópicos". Visto que o protocolo é publicado abertamente com licença isenta de royalties, existem muitas implementações de clientes e broker para ele. Em geral, uma origem individual de dados é mapeado para um tópico de MQTT, o que normalmente significa que cada fonte de informação do sensor terá seu próprio tópico.

Ativando as tecnologias

O novo release do WebSphere MQ Telemetry inclui um cliente Java simples, e é possível usar essa biblioteca para monitorar atualizações ou para enviar atualizações para os tópicos.

Assinando e publicando em alimentações Pachube

Ao ligar MQTT e Pachube, é preciso monitorar alimentações Pachube em busca de informações para publicar em tópicos de MQTT e publicar informações em alimentações Pachube a partir de tópicos de MQTT.

A API Pachube aproveita o protocolo HTTP para fornecer a interface para publicação de atualizações de alimentações no sistema e para recuperação dessas alimentações a partir do sistema. A publicação automática de atualizações de alimentação é realizada apenas publicando dados por HTTP usando PUT. Embora seja possível pesquisar atualizações em alimentações, a API Pachube fornece a facilidade de registrar um listener explícito, permitindo que Pachube "empurre" atualizações para um aplicativo. Os listeners devem implementar um subconjunto básico do protocolo HTTP para poder implementar essa parte da API Pachube.

Ativando as tecnologias

Use a biblioteca Apache HttpClient para publicar atualizações no sistema Pachube e o servidor leve da Web Jetty para implementar o componente de listener. Além disso, o Pachube empurra atualizações de alimentação para listeners em um envelope JSON, de modo que seja possível usar a biblioteca Jackson JSON para desserializar essa estrutura.

Integrando as redes

Qualquer tentativa de ligar as duas redes deve levar em conta as diferenças entre os dois sistemas como parte de seu design.

Limitação de tráfego

Como protocolo, o MQTT não dispõe de recursos de limitação. No entanto, para reduzir o tráfego em seu sistema e fornecer um diferencial para seus clientes premium, o Pachube implementa vários níveis de limitação a seus clientes. A limitação é especialmente evidente na área de publicação de atualizações para Pachube -- a associação básica ao site permite apenas três atualizações por minuto. Portanto, qualquer integração deve lidar com essa limitação de publicação de forma inteligente; implementações ingênuas podem perder as atualizações, ou deixar de atualizar alimentações que recebem atualizações com menos frequência. O algoritmo a seguir fornece uma boa solução que equilibra a necessidade de fornecer atualizações em tempo hábil com a necessidade de minimizar a perda de informações

  1. Quando uma atualização chega a partir de um tópico de MQTT, determine a alimentação alvo e adicione a atualização a uma estrutura de fila interna. Se uma atualização já existir na fila para a alimentação alvo, substitua-a com o novo valor, mas mantenha o registro de data e hora original.
  2. Como o máximo de frequência permitido pela solução de limitação do Pachube (se forem três atualizações por minuto, a cada 20 segundos), pegue a atualização com o registro de data e hora mais antigo da estrutura de fila interna, publique-a no Pachube, e remova-a dessa estrutura.

Esse algoritmo não é perfeito e existem certos casos extremos. No entanto, para a maioria dos cenários de rendimento baixo a médio, ele deve ser suficiente. O utilitário básico para a integração, apresentado abaixo, usa um algoritmo similar.

Autenticação e autorização

Ambas as tecnologias oferecem facilidades de autenticação, mas os níveis de autorização variam.

O protocolo MQTT permite que os brokers opcionalmente controlem o acesso usando pares de nome de usuário e senha, mas depois da autenticação, todas as ações são autorizadas.

O Pachube permite que todos os dados atuais sejam lidos por qualquer usuário que use a interface da Web. Para implementações automáticas, a autenticação é governada com o uso de chaves de API. Todas as chaves de API são autorizadas a registrar listeners para qualquer alimentação, e as chaves de API estão autorizados a publicar atualizações para as alimentações dependo do proprietário destas.

Um utilitário de ligação deve, portanto, no mínimo, permitir configurar a chave de API do Pachube em uma base por alimentação.

Usando o utilitário básico para a integração

Este artigo inclui um utilitário básico que usa os princípios descritos acima para fornecer uma ligação de integração simples entre a rede Pachube e o protocolo MQTT. É possível fazer o download dele abaixo, extraí-lo do arquivo zip e usar as seguintes instruções para instalá-lo e configurá-lo:

  1. Instalação: Faça o download do arquivo JAR listado no arquivo lib/README.txt para executar o programa.
  2. Configuração: Copie config.xml.dist para config.xml, e edite-o de acordo com os seus requisitos.
  3. Execução: Execute bridge.bat ou bridge.sh, de acordo com o tipo do seu sistema.
  4. Depuração: Edite o arquivo log4j.properties para definir os níveis de depuração por pacote.

Conclusão

Este artigo mostrou como usar a nova função WebSphere MQ Telemetry para unir as redes Pachube e MQTT e compartilhar dados entre elas. Apresentou também o utilitário básico para unir as duas redes.



Download

DescriçãoNomeTamanhoMétodo de download
Code samplemqttPachubeBridge.zip30KBHTTP

Informações sobre métodos de download


Recursos

Sobre o autor

Author photo nível de autor Contribuidor do developerWorks

Nick Maynard é engenheiro de software senior do Industry and Business Solutions Team no IBM Software Lab em Hursley, Reino Unido. Ele é especializado em Dojo, AJAX, programação da Web, serviços da Web e Linux. É possível entrar em contato com Nick pelo e-mail nick.maynard@uk.ibm.com.

Ajuda para Relatar Abuso

Relatar abuso

Obrigado. Esta entrada foi sinalizada para atenção do moderador.


Ajuda para Relatar Abuso

Relatar abuso

Falha no envio do Relatório de abuso. Tente novamente mais tarde.


developerWorks: Registre-se


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

 


Na primeira vez que você efetua sign in no developerWorks, um perfil é criado para você. Informações selecionadas do seu perfil developerWorks são exibidas ao público, mas você pode editá-las a qualquer momento. Seu primeiro nome, sobrenome (a menos que escolha ocultá-los), e seu nome de exibição acompanharão o conteúdo que postar.

Selecione seu nome de exibição

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

(Deve possuir de 3 a 31 caracteres.)


Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

 


Classificar este artigo

Comentários

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=WebSphere
ArticleID=726862
ArticleTitle=Usando WebSphere MQ Telemetry e Pachube para se conectar a sensores e dispositivos remotos
publish-date=07112011
author1-email=nick.maynard@uk.ibm.com
author1-email-cc=