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.
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.
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.
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.
Qualquer tentativa de ligar as duas redes deve levar em conta as diferenças entre os dois sistemas como parte de seu design.
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
- 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.
- 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.
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:
- Instalação: Faça o download do arquivo JAR listado no arquivo lib/README.txt para executar o programa.
- Configuração: Copie config.xml.dist para config.xml, e edite-o de acordo com os seus requisitos.
- Execução: Execute bridge.bat ou bridge.sh, de acordo com o tipo do seu sistema.
- Depuração: Edite o arquivo log4j.properties para definir os níveis de depuração por pacote.
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.
| Descrição | Nome | Tamanho | Método de download |
|---|---|---|---|
| Code sample | mqttPachubeBridge.zip | 30KB | HTTP |
Informações sobre métodos de download
- WebSphere MQ e recursos relacionados
- Protocolo MQ Telemetry Transport (MQTT)
O protocolo MQTT foi criado pela IBM e doado para a comunidade de software livre, e é descrito no Web site independente mqtt.org. - WebSphere MQ Telemetry
O recurso Telemetry está disponível no WebSphere MQ V7.0.1 ou posterior, e fornece suporte completo ao protocolo MQTT V3.1, bem como interoperabilidade com o WebSphere MQ. - Pachube
Acesse o Web site do Pachube e explore as alimentações disponíveis. - Internet das coisas
Comentários do estrategista de negócios sociais da Juniper Networks Adam Christensen em asmarterplanet.com. - Página de recursos do desenvolvedor do WebSphere MQ
Recursos técnicos para ajudá-lo a projetar, desenvolver e implementar middleware de sistema de mensagens com WebSphere MQ para integrar aplicativos, serviços da Web e transcrições praticamente em qualquer plataforma. - Página do produto WebSphere MQ
Descrições do produto, notícias sobre o produto, informações de treinamento, informações de suporte, etc. - Biblioteca de documentações do WebSphere MQ
Manuais de produtos WebSphere MQ. - Centro de Informações do WebSphere MQ V7
Um único portal da Web para toda a documentação do WebSphere MQ V7, com informações conceituais, de tarefas e de referência sobre a instalação, configuração e uso do WebSphere MQ V7. - IBM Redbook: WebSphere MQ V7 features and enhancements
Descreve os conceitos e benefícios fundamentais da tecnologia de enfileiramento de mensagens, descreve os novos recursos do V7 e fornece um cenário de negócios que mostra esses recursos em ação. - Faça download de uma versão grátis de avaliação do WebSphere MQ V7
Uma versão de teste de 90 dias do WebSphere MQ V7 com todos os recursos e sem encargos - Página de suporte do WebSphere MQ
Um banco de dados para pesquisa de problemas de suporte e suas soluções, além de downloads, correções e rastreamento de problemas. - WebSphere MQ public newsgroup
Um fórum não IBM onde é possível obter respostas às suas perguntas técnicas sobre o WebSphere MQ e compartilhar seu conhecimento sobre o WebSphere MQ com outros usuários. - WebSphere MQ SupportPacs
Código, documentação e relatórios de desempenho da família de produtos WebSphere MQ.
- Protocolo MQ Telemetry Transport (MQTT)
- Recursos do WebSphere
- Recursos para desenvolvedores WebSphere no developerWorks
Informações técnicas e recursos para desenvolvedores que usam produtos WebSphere. O WebSphere no developerWorks fornece downloads de produtos, informações de instruções, recursos de suporte e uma biblioteca técnica grátis com mais de 2.000 artigos técnicos, tutoriais, melhores práticas, IBM Redbooks e manuais on-line de produtos. - Recursos para desenvolvedores de conectividade de aplicativos WebSphere no developerWorks
Artigos de instruções, downloads, tutoriais, aprendizado, informações sobre o produto e outros recursos para ajudá-lo a desenvolver conectividade de aplicativos e soluções de integração de negócios em WebSphere. - Recursos do desenvolvedor de gerenciamento de processos de negócio do WebSphere no developerWorks
Artigos de instruções, downloads, tutoriais, educação, informações de produtos e outros recursos do WebSphere BPM para ajudá-lo a modelar, montar, implementar e gerenciar processos de negócios. - Recursos de desenvolvedor de SOA e serviços da Web do WebSphere no developerWorks
Artigos de instruções, downloads, tutoriais, aprendizado, informações de produtos e outros recursos para ajudá-lo a projetar e desenvolver soluções de SOA e serviços da Web do WebSphere. - Downloads de avaliação de WebSphere mais populares
Downloads de avaliação gratuita dos principais produtos do WebSphere. - Fóruns do WebSphere
Fóruns específicos do produto nos quais é possível obter respostas de perguntas técnicas e compartilhar o seu conhecimento com outros usuários de WebSphere. - Demos On Demand do WebSphere
Faça o download e assista essas demos de execução automática, e saiba como os produtos e tecnologias WebSphere podem ajudar sua empresa a responder a um ambiente de negócios em rápida mudança e com complexidade crescente. - Boletim semanal sobre o WebSphere do developerWorks
O boletim do developerWorks oferece artigos e informações mais recentes somente naqueles tópicos que interessam a você. Além do WebSphere, é possível selecionar entre Java, Linux, Open source, Rational, SOA, serviços da Web e outros tópicos. Inscreva-se agora e indique as mensagens que deseja receber. - Livros da IBM Press relacionados ao WebSphere
Compras on-line convenientes por meio da Barnes & Noble. - Eventos relacionados ao WebSphere
Conferências, exposições, Webcasts e outros eventos em todo o mundo que são do interesse dos desenvolvedores WebSphere.
- Recursos para desenvolvedores WebSphere no developerWorks
- Recursos do developerWorks
- Downloads de teste de produtos de software IBM
Downloads de teste sem custo de produtos da IBM® O DB2®, Lotus®, Rational®, Tivoli®eWebSphere® selecionados. - blogs do developerWorks
Participe de uma conversa com os usuários e autores do developerWorks, e com editores e desenvolvedores da IBM. - developerWorks tech briefings
Sessões técnicas gratuitas por especialistas da IBM que podem acelerar sua curva de aprendizado e ajudá-lo a ser bem-sucedido em seus projetos de software mais difíceis. As sessões variam de virtual de uma hora a sessões ao vivo com duração de um dia ou metade de um dia em cidades de todo o mundo. - Podcasts do developerWorks
Ouça entrevistas e discussões interessantes com inovadores de software. - IBM Education Assistant
Uma coleção de módulos educacionais multimídia que ajudam a entender melhor os produtos de software IBM e usá-los de forma mais efetiva para atender aos seus requisitos de negócios.
- Downloads de teste de produtos de software IBM
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.