Protocolo MQTT para IoT
Entende-se comunicação como o intercâmbio de informação entre sujeitos ou objetos. Deste ponto de vista, a comunicação inclui temas técnicos (por exemplo, as telecomunicações), biológicos (por exemplo, fisiologia, função e evolução) e sociais (por exemplo, jornalismo, relações públicas, publicidade, audiovisual e mídia).
Como fatores
constitutivos, temos os seguintes componentes: emissor que é o codificador,
quem gera as mensagens. O receptor, que é a quem se destina a mensagem. A
mensagem propriamente dita, que é o objeto da comunicação, sendo constituída
pelas informações transmitidas. O código, que é a maneira pela qual a mensagem
se organiza, sendo formado por um conjunto de sinais organizados por regras
determinadas e deve ser conhecido pelo emissor e pelo receptor. O canal é o
meio físico ou virtual por onde trafega a informação. E finalmente, o
referente, que é o contexto aos quais as mensagens se referem. O contexto pode
se constituir na situação, nas circunstâncias de espaço e tempo em que se
encontra o destinador da mensagem. (JAKOBSON,
2008)
Para
a ciência da computação, um protocolo é uma convenção para controlar e conectar
possibilitando a transferência de dados entre dois sistemas computacionais.
Pode ser definido como “as regras que governam” a sintaxe, semântica e a
sincronização da comunicação. Podem ser implementados por software, hardware ou
ainda uma combinação dos dois. A maioria dos protocolos especificam uma ou mais
das seguintes propriedades: detecção da conexão, handshaking, como iniciar e
finalizar uma conexão, como formatar uma mensagem, o que fazer com uma mensagem
corrompida, como detectar perda ou término de comunicação. (REISSWITZ, 2012)
O
MQTT (Message Queue Telemetry Transport) é um protocolo de mensagens
extremamente simples e leve, baseado em publicação/assinatura. Foi criado
inicialmente pela IBM no ano de 1999 e projetado para redes de baixa largura,
alta latência ou não confiáveis. Os princípios de design são minimizar a
largura de banda da rede e os requisitos de recursos do dispositivo, ao mesmo
tempo em que tentam garantir a confiabilidade e um certo grau de garantia de
entrega. Esses princípios também tornam o protocolo ideal para o emergente
mundo de dispositivos conectados “máquina a máquina” (M2M) ou “Internet das
Coisas” de dispositivos conectados, e para aplicações móveis onde a largura de
banda e a energia da bateria são preciosas.
(MQTT.ORG., 2018)
No sistema “publish/subscribe” (publicação/assinatura) os
componentes interessados em consumir determinadas informações registram seu
interesse. Este processo é chamado de “subscribe”. Os componentes que enviam
informações para o sistema fazem isso por meio do processo chamado “publish”. A
entidade que assegura que as informações enviadas pelos “publishers” cheguem
aos respectivos “subscribers” é chamado de “broker”.
Existem
três tipos principais de sistemas pub/sub: baseados em tópicos, baseado em tipo
e baseado em conteúdo. No sistema baseado em tópicos, a lista de tópicos é
geralmente conhecida antecipadamente, por exemplo, durante a fase de design de
uma aplicação. Assinaturas e publicações só podem ser feitas em um conjunto
especificado de tópicos. Em sistemas baseados em tipo, um assinante declara o
tipo de dados em que está interessado (por exemplo, dados de temperatura). Este
tipo sistemas não é muito comum. Sistemas baseados em conteúdo são mais
versáteis. O assinante descreve o conteúdo de mensagens que deseja receber. Tal
assinatura poderia ser para quaisquer mensagens contendo leituras de
temperatura e luz onde a temperatura é inferior a um determinado limiar e a luz
está acesa. (HUNKELER, TRUONG, STANFORD-CLARK, 2008)
Para
garantir a confiabilidade das mensagens, o MQTT suporta 3 níveis de Qualidade
dos Serviços (QoS – “Quality of Service”). O nível 0 envia uma mensagem apenas
uma vez após a mensagem fluxo de distribuição e não verifica se a mensagem chegou
ao seu destino. Portanto, no caso de mensagens mais longas, é possível que a
mensagem seja perdida quando houver qualquer tipo de perda no caminho. QoS Nível
1 envia a mensagem pelo menos uma vez e verifica o status de entrega da
mensagem usando a mensagem de verificação de status, PUBACK. No entanto, quando
o PUBACK é perdido, é possível que o servidor envie o mesma mensagem duas vezes,
pois não há confirmação da mensagem sendo entregue. QoS Nível 2 envia a
mensagem uma única vez utilizando o handshake de 4 vias. Não é possível ter uma
perda de mensagens neste nível, mas devido à complexidade do processo é
possível ter atrasos relativamente mais longos. (LEE, 2013)
A conexão
do cliente ao broker, seja ele subscritor ou publicador, é
originalmente feita via TCP, com opções de login (usuário e senha) e uso de
criptografia (SSL/TLS). É possível encontrar também outros meios físicos, com
MQTT rodando em links seriais, por exemplo.
Algumas
das aplicações onde a aplicação do MQTT é mais comum são: registro do tipo
datalog, acionamentos simples do tipo acender uma lâmpada, aumentar a
velocidade de um motor utilizando PWM e comunicação entre dois dispositivos
IoT. Cabe ressaltar que o uso deste protocolo evita a necessidade de conhecer
previamente os endereços ou abrir portas em roteadores e firewalls, pois ambos
os dispositivos atuarão como clientes. (DE OLIVEIRA, 2017)
O
conceito de Internet das Coisas não é novo. Já durante a década de 90 e início
dos anos 2000, com a popularização da internet, já se pensava em formas de
interligar os equipamentos que utilizamos no dia a dia com a internet. Foi o
desenvolvimento de algumas tecnologias e a queda de preço dos elementos
envolvidos que têm popularizado cada vez mais seu desenvolvimento. A
implantação da Internet das Coisas está mudando totalmente a forma como nos
relacionamos com as coisas que nos rodeiam, transformando energia, segurança,
trânsito, mobilidade e logística, tornando as coisas inteligentes, capazes de
coletar e processar informações das redes às quais estão conectadas ou ao meio
ambiente. (DE OLIVEIRA, 2017)
Com
isso, podemos ver a importância do estudo das tecnologias e protocolos para
comunicação entre dispositivos cada vez mais presentes no nosso cotidiano,
entre eles o MQTT, que se propõem a possibilitar essas mudanças.
REFERÊNCIAS
DE OLIVEIRA,
Sérgio. Internet das Coisas com ESP8266, Arduino e Raspberry Pi. Novatec
Editora, 2017.
HUNKELER, Urs;
TRUONG, Hong Linh; STANFORD-CLARK, Andy. MQTT-S—A publish/subscribe protocol
for Wireless Sensor Networks. In: Communication systems software
and middleware and workshops, 2008. comsware 2008. 3rd international conference
on. IEEE, 2008. p.
791-798.
JAKOBSON,
Roman. Lingüística e comunicação. Editora Cultrix, 2008.
LEE, Shinho et al.
Correlation analysis of MQTT loss and delay according to QoS level. In: Information
Networking (ICOIN), 2013 International Conference on. IEEE, 2013. p. 714-717.
MQTT.ORG., 2018.
Disponível em: < http://mqtt.org/faq >. Acesso em: 11
jun. 2018.
REISSWITZ,
Flavia. Análise de Sistemas Vol. 2: Tecnologia Web & Redes. Clube de
Autores, 2012.

Comentários
Postar um comentário