Utilizado no desenvolvimento de aplicações da indústria 4.0, o MQTT vem sendo difundido em diferentes setores
O MQTT foi criado em 1999 por Andy Stanford-Clark (IBM) e Arlen Nipper (Cirrus Link), sob a necessidade de ser um protocolo leve, que consome pouca energia e pouca banda de rede. Em 2014, o MQTT tornou-se oficialmente um protocolo padrão OASIS.
Muito usado atualmente no mercado de energia, o MQTT (sigla em inglês para MQ TelemetryTransport, em que MQ faz referência à linha de produtos MQ Series da IBM) é um protocolo de transporte de mensagensque possibilita a comunicação entre dispositivos através do padrão publish/subscribe.
Como Funciona o MQTT
O protocolo conecta dispositivos através do modelo publicação/assinatura (publish/subscribe). O remetente da mensagem (publisher) se comunica com o destinatário (subscriber) através de tópicos, que são canais por onde as mensagens são enviadas. A conexão entre os dispositivos é gerenciada pelo broker, que é um servidor de comunicação que filtra mensagens com base no tópico e as distribui para seus assinantes. Cada publisher/subscriber pode se conectar a vários tópicos diferentes ao mesmo tempo, desde que no mesmo broker.
O MQTT, apesar de envolver clientes (dispositivos publishers e subscribers) e servidor (broker), não pode ser considerado um protocolo cliente/servidor clássico, como é o HTTP, por exemplo. Isso porque, no MQTT, o broker é apenas um servidor de intermédio entre um dispositivo remetente e um destinatário. Em um protocolo cliente/servidor clássico, o servidor é responsável por processar a requisição de um cliente e enviar de volta uma resposta contendo os dados solicitados.
Fazendo uma analogia com o WhatsApp, para ficar mais fácil de entender, o tópico seria uma conversa (individual ou em grupo); o publisher, a pessoa que envia a mensagem; o subscriber, quem recebe a mensagem. E o broker seria o sistema interno do WhatsApp.
A mensagem do WhatsApp tem confiabilidade na entrega: quando é enviada fica com a imagem no canto inferior até que o destinatário se conecte à internet e a receba, momento em que muda a sinalização para a imagem . Algo semelhante pode ser alcançado com o protocolo MQTT: a mensagem enviada fica na fila até que o broker seja notificado de que ela foi recebida.
Vantagens do MQTT
Não é por acaso que esse protocolo vem ganhando espaço no mercado. Entre os benefícios associados ao seu uso estão:
- Exigência de pouco esforço de hardware;
- Baixo consumo da banda de rede;
- Confiabilidade na entrega das mensagens, que pode ser configurada seguindo uma das três categorias abaixo:
0- A mensagem é entregue, no máximo, uma vez pelo broker, sem confirmação de recebimento.
1- A mensagem é entregue pelo menos uma vez pelo broker, com confirmação de recebimento.
2- A mensagem é entregue exatamente uma vez pelo broker, usando uma verificação de recebimento mais complexa. Nessa situação, é usada mais banda de rede. - A conexão entre cliente e servidor é desacoplada pelo broker: o publisher pode enviar mensagens sem que os clientes estejam conectados. Ou seja, eles não precisam estar online para receber a mensagem no momento em que ela é gerada.
- Possibilidade de reter uma mensagem no broker, o que faz com que um novo cliente receba a mensagem retida imediatamente após sua assinatura. É muito útil para disponibilizar, em cada tópico, o último valor válido conhecido. Dessa forma, um novo subscriber não precisa esperar até que um publisher envie uma nova mensagem.
Casos de uso na EA
Um exemplo de uso do protocolo MQTT está nos softwares Dataventus e Datasolaris da EA, voltados, respectivamente, para o gerenciamento inteligente de complexos eólicos e de usinas solares fotovoltaicas. Em ambos, o MQTT é usado para integrar, de maneira assíncrona, microsserviços que executam determinadas tarefas, como: fazer cálculos e salvar resultados no banco de dados; ou gerar relatórios e enviá-los por e-mail aos interessados.
Esse protocolo também é usado no aplicativo mobile da EA. Os dados coletados pelo SCADA são enviados via MQTT para um serviço da EA na nuvem, que é responsável por receber os dados, tratá-los e disparar notificações para todos os dispositivos habilitados a recebê-las, sejam eles Android ou iOS.
Um exemplo de utilização das mensagens retidas no broker é no uso de um tópico de configuração para os dispositivos instalados no cliente. Ao se conectarem ao broker, esses dispositivos recebem automaticamente uma mensagem contendo as configurações necessárias para seu correto funcionamento.
Comparação entre MQTT e HTTP