Mídia

Confira as notícias no
nosso blog

Conhecendo o MQTT

por Mercato Automação

Comunicar-se é a principal característica de dispositivos IoT (internet das coisas), o que permite a interação entre dispositivos e plataformas. Para que essa comunicação seja efetiva e fluida, um protocolo de comunicação precisa ser aplicado e o MQTT (Message Queue Telemetry Transport) assumiu o posto de tecnologia padrão da IoT.

O MQTT foi desenvolvido inicialmente pela IBM no final dos anos 90, tendo sua aplicação ligada a sensores em plataformas de petróleo e satélites. Como seu nome sugere, é um protocolo com característica assíncrona na troca de mensagens, ou seja, desacopla o remetente e o destinatário da mensagem, portanto, é fortemente aderente a ambientes de rede não confiáveis. Sua estrutura se baseia em duas estratégias principais: filas e publicações/inscrições.

Por que o MQTT

O MQTT é um protocolo de rede leve e flexível que oferece o equilíbrio ideal para os desenvolvedores de IoT:

- Devido a leveza do protocolo, possibilita a implementação em hardware menos potentes e rede com largura de banda limitada e alta latência.

- Sua flexibilidade possibilita o suporte a diversos cenários de aplicativo para dispositivos e serviços de IoT.

Para entendermos as vantagens do MQTT e o motivo do seu sucesso é importante conhecermos as tecnologias concorrentes.

Por que não usar algum dos outros inúmeros protocolos de rede

Serviços Web HTTP são amplamente conhecidos e utilizados por grande parte dos desenvolvedores, então por que não utilizar esta tecnologia em dispositivos IoT? Esse padrão de troca de mensagens possui algumas limitações importantes:

- A característica de comunicação síncrona do HTTP determina que o cliente espere a resposta do servidor, nossos browsers possuem esta funcionalidade, mas onera significativamente a escalabilidade. Para o IoT a comunicação síncrona é uma grande pedra no sapato, já que muitas das vezes estaremos trafegando em redes pouco confiáveis e de alta latência, onde a resposta vinda do servidor pode demorar ou mesmo nunca chegar.

- Outra característica do HTTP é ser unidirecional, isto é, o cliente precisa iniciar a conexão. Em dispositivos IoT, sensores, por exemplo, são clientes, e isto determina que eles não podem receber comandos da rede de forma passiva.

- O protocolo HTTP possui comunicação um para um, o cliente faz uma solicitação e o servidor responde. É custoso transmitir mensagens a vários dispositivos em uma rede, e esse tipo de rede populada por muitos dispositivos é característica da maioria das aplicações IoT.

- Por fim, o HTTP possui muito cabeçalhos e regras na sua estrutura, o que o torna pesado

 

Pelas características acima, fica evidenciado os motivos de sistemas escaláveis e que necessitem de alto desempenho utilizarem tecnologias de troca de mensagens assíncronas. Podemos citar outros protocolos assíncronos como o XMPP e o AMQP que possuem alta confiabilidade, mas que demandam alto nível computacional, comparados ao MQTT.

Vamos entender o modelo de publicação e assinatura, a estratégia que confere ao MQTT sua leveza e flexibilidade!

O modelo de publicação e assinatura

Em uma rede MQTT existem dois papéis: o message broker e clientes. O broker é um servidor que centraliza as mensagens dos clientes e as encaminha para os clientes interessados. Já o cliente é um dispositivo ou serviço que tenha capacidade de interagir com o broker e trocar mensagens. Podemos exemplificar como tipos de clientes um sensor, um controlador ou até mesmo um software sendo executado em alguma instância da rede.

Fluxo da comunicação:

1 - A conexão inicia-se com o cliente conectando-se ao broker. Após isso ele está habilitado a assinar (subscribe) “tópicos” de mensagens. A conexão mantida entre essas partes pode ser simples ou criptografada.

2 - Em seguida o cliente publica (publish) mensagens nestes tópicos no broker.

3 - E por fim, o broker encaminha a mensagem a todos os clientes subscritos nestes tópicos.

Já sabemos que a organização das mensagens no MQTT funciona usando tópicos, desta forma temos algumas possibilidades, como por exemplo um sensor que irá publicar suas leituras no tópico “trend_sensor” e um atuador que irá assinar o tópico “percent_atuacao”. Um software que estiver interagindo com esses equipamentos, coletando os dados de temperatura irá assinar o tópico “trend_sensor” e para atuar neste ambiente irá publicar no tópico “percent_atuacao”.

                O modelo de publicação e assinatura do MQTT para sensores de IoT

O poder do MQTT é sua leveza, também atribuída a simplicidade do seu cabeçalho, composto do tipo da mensagem, o tópico e um núcleo binário, e a sua resiliência para lidar com falhas e redes não confiáveis de alta latência. Essas características, mais o fato de o protocolo ser o mais difundido e aplicado, possibilitando a sua integração com uma infinidade de outros sistemas, faz com que o MQTT seja uma excelente escolha no momento de definir as características do sistema de automação.

FALE
CONOSCO

*Preenchimento obrigatório

Deixe seu comentário ou dúvida: