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

Postagens mais visitadas deste blog

Como utilizar Tag Prefix WinCC Professional

TUTORIAL: Criando WinCC Tags a partir de documentos de texto utilizando script em Python

Utilizando interfaces, inversão de controle e injeção de dependências em programação - Um exemplo em C#