A conexão com a internet é um fator fundamental nos dispositivos de
Internet das Coisas (IoT), a conexão com a internet permite que os aparelhos possam trabalhar e proporcionar os serviços para o qual foram feitos. O protocolo MQTT (Message Queue Telemetry Transport) tornou-se o padrão para os serviços de comunicação em IoT.
O protocolo MQTT foi desenvolvido por Andy Stanford-Clark pesquisador
da IBM e por Arlen Nipper pesquisador da Eurotech no fim dos anos 90. O MQTT é um protocolo de mensagens para sensores e pequenos dispositivos com suporte para a comunicação assíncrona, este tipo de protocolo separa o emissor e o receptor da mensagem no espaço e no tempo, com isso é bastante indicado para redes não confiáveis.
O protocolo MQTT é ideal para aplicações em IoT porque pode ser
implementado em hardwares bastante restritos e em redes que tem largura de banda limitada. O MQTT é preferível aos serviços da Web HTTP por conta de alguns entraves como o fato de que o HTTP é um protocolo síncrono, ou seja, o cliente espera que o servidor responda, o custo disso é uma baixa escalabilidade, o que no mundo do IoT não é algo bem-vindo devido ao fato de que há uma grande quantidade de dispositivos conectados à rede, em grande parte não confiáveis e de alta latência. Com o MQTT os sensores ficam aptos a enviar leituras e permitem que a própria rede encontre o caminho e a sincronização mais apropriada para a entrega de informações ao destino.
Outras implicações favorecem o uso do MQTT ao invés do HTTP como
o fato de o HTTP ser unidirecional e operar de modo um para um, além de possuir muitos cabeçalhos e regras, e não ser adequados para redes restrigidas.
Dentro do MQTT existem dois elementos principais que é o message
broker e os vários clientes. O broker é nada mais que um servidor cuja a função é receber as mensagens que os clientes enviam. Após o recebimento das mensagens elas são roteadas para os respectivos destinos. Os clientes podem ser desde um aplicativo até um sensor atuando em alguma tarefa. No MQTT as mensagens são organizadas em tópicos, logo é possível especificar quais os clientes que podem interagir com determinadas mensagens, este modelo é conhecido como Modelo de Publicação e Escrita.
1. O cliente se conecta ao broker essa conexão pode ser uma conexão
TCP/IP simples o cliente pode assina um “tópico”. 2. O cliente então publica sua informação e um desses tópicos, essas mensagens são enviadas ao broker. 3. O broker recebe as mensagens e as encaminha aos clientes que assinaram o tópico correspondente.
Figura 1 – Dois exemplos da configuração publicação/escrita (Building Smarter Planet Solutions with MQTT and IBMWebSphere MQ Telemetry)
O protocolo MQTT é um protocolo bastante leve, com um cabeçalho
simples para cada tipo de mensagem uma carga binária útil arbitraria e um tópico de mensagem baseado em texto. Os formatos de dados da carga útil pode ser os mais variados como XML, binário criptografado, JSON etc.