








































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Uma introdução ao protocolo mqtt (message queue telemetry transport), um protocolo de comunicação entre máquinas desenvolvido em 1999 e amplamente utilizado hoje em dia para a interconexão de equipamentos e sistemas através da internet. O protocolo utiliza um padrão de troca de mensagens denominado publish/subscriber e é aplicado em automação industrial, comercial e residencial. Algumas das características do mqtt explicam a popularidade deste protocolo, como ser simples de implementar, robusto, consumir pouco banda de dados e garantir a entrega de mensagens ao equipamento destino.
Tipologia: Esquemas
1 / 48
Esta página não é visível na pré-visualização
Não perca as partes importantes!









































Nome Direção Descrição CONNECT – Cliente para Servidor – Requisição do cliente para conectar ao servidor CONNACK – Servidor para Cliente – Reconhecimento da conexão PUBLISH – Cliente para Servidor ou Servidor para Cliente – Publicar mensagem PUBACK – Cliente para Servidor ou Servidor para Cliente – Reconhecimento da publicação PUBREC – Publicação recebida – Publicação recebida (parte 2 do QoS=1) PUBREL – Cliente para Servidor ou Servidor para Cliente – Publicação lançada (parte 2 do QoS=2) PUBCOMP – Cliente para Servidor ou Servidor para Cliente – Publicação completa (parte 3 do QoS=2) SUBSCRIBE – Cliente para Servidor – Pedido de inscrição SUBACK – Servidor para Cliente – Reconhecimento de inscrição UNSUBSCRIBE – Cliente para Servidor – Pedido de desinscrição UNSUBACK – Servidor para Cliente – Reconhecimento desinscrição PINGREQ – Requisição – Requisição PING PINGRESP – Servidor para Cliente – Resposta PING DISCONNECTy – Cliente para Servidor – Cliente está desconectado
O MQTT (Message Queue Telemetry Transport) é um protocolo de comunicação entre máquinas (Machine to Machine - M 2 M) desenvolvido através de uma parceria entre a IBM e Eurotech em 1999. Seu objetivo original foi viabilizar a comunicação de sensores fisicamente distribuídos em oleodutos com sistema de satélites para permitir o monitoramento remoto do transporte do petróleo pelas tubulações. Foi projetado com as seguintes premissas:
Este protocolo permaneceu restrito às empresas desenvolvedoras até 2010 , quando foi liberado para utilização pública gratuitamente. Em 2014 , a versão 3. 1 tornou-se um protocolo padrão aberto da OASIS (Organization for the Advancement of Structured Information Standards). Sendo um padrão aberto, um grande número de empresas começaram a se interessar em implementar o padrão em suas soluções de conectividade. Com surgimento dos conceitos de Internet das Coisas (IoT) e indústria 4. 0 na última década, a conectividade entre dispositivos passou a ser mandatória, tornando hoje o MQTT, um dos protocolos de comunicação mais utilizados para a interconexão de equipamentos e sistemas através da internet.
Como mencionado na introdução, o protocolo MQTT foi criado para permitir a troca de dados entre 2 ou mais dispositivos. Vamos considerar um cenário real para entendermos como o protocolo MQTT funciona. Imagine que uma pessoa deseje monitorar a temperatura
20 °C
F2 - Sensor de temperatura envia valor (20 oC) para um smartwatch.
O principal problema para conseguir que a informação do sensor chegue ao smartwatch é que o sensor de temperatura não tem nenhuma informação sobre o que é, e tão pouco onde esta o dispositivo smartwatch e, analogamente o smartwatch também não “conhece” o sensor de temperatura. Para solucionar este problema o protocolo MQTT propõe um terceiro elemento denominado BROKER que é conhecido tanto pelo dispositivo Aquário quanto pelo dispositivo smartwatch. 20 °C 20 °C BROKER F4 - Dispositivo DEV_A se comunica com o dispositivo DEV_B através de um BROKER DEV_A DEV_B
O Broker é um programa de aplicação que roda em um servidor dentro de uma intranet ou na nuvem e aceita conexões de clientes em uma porta específica. Desta forma, todos os dispositivos que necessitarem enviar dados (sensor de temperatura) ou receber dados ( smartwatch ) se comunicam com o Broker e este será o responsável por receber a informação gerada pelo sensor de temperatura e envia-lá para o smartwatch. Note que, com esta abordagem o sensor não necessita de nenhuma informação do smartwatch para enviar o valor da temperatura (TEMP). Da mesma forma o smartwatch também não necessita de nenhuma informação sobre o sensor de temperatura. Os dois dispositivos necessitam saber apenas como acessar o Broker e isto é definido pelo protocolo MQTT.
O padrão Publish(publicador) / Subscriber(assinante) utiliza o BROKER como o elemento concentrador que tem por função receber as mensagens dos dispositivos que querem enviar tópicos (denominados publishers) e encaminhá-las para os dispositivos que assinaram estes tópicos (denominados subscribers). Todos os equipamentos que quiserem trocar dados são denominados clientes MQTT e devem se conectar a um Broker para que o envio e recepção das informações ocorra. 20 °C 20 °C BROKER DEV_A DEV_B CLIENTE MQTT CLIENTE MQTT F5 - Conexão dos clientes MQTT (DEV_A e DEV_B) ao BROKER
O processo de conexão dos clientes ao BROKER é simples e será detalhado na próxima sessão do documento. Uma vez conectados ao BROKER, a sequência ao lado ilustra as etapas necessárias para que o tópico TEMP seja enviado pelo dispositivo DEV_A e recebido pelo dispositivo DEV_B. 20 °C 20 °C BROKER DEV_A DEV_B DEV_B ASSINA TÓPICO TEMP NO BROKER F6 - Padrão Publisher / Subscriber 1 20 °C 20 °C BROKER DEV_A DEV_B DEV_A PUBLICA TEMP 2 20 °C 20 °C BROKER DEV_A DEV_B BROKER ENVIA TEMP PARA DEV_B 3
O protocolo MQTT define os formatos dos pacotes a serem trocados entre os clientes e o Broker para que o padrão Publish/Subscriber descrito seja implementado. O MQTT é aplicado em automação industrial, comercial e residencial, focado em disponibilizar a troca de informações entre dispositivos, funcionalidade denominada de M 2 M (machine to machine). Com a expansão dos dispositivos IoT (Internet of Things) o protocolo MQTT vem se tornado um padrão para interconexão destes elementos.
Algumas das características do MQTT explicam a popularidade deste protocolo:
Antes de iniciar o processo de publicação e recepção de tópicos um cliente necessita se conectar ao Broker, trocando as seguintes mensagens:
Conexão autenticada CONNAK
Conexão recusada Esse tipo de FLUXO chama-se Diagrama de Sequência UML, possui um padrão clicando aqui!
Broker fecha conexão TCP/IP Processo de conexão com sucesso
Processo de conexão recusada pelo BROKER CONNECT (CLIENT_ID, USER, PASSW) Sequência de conexão de um Cliente MQTT Publicador e um Cliente MQTT Subscritor com um Broker MQTT.