DXC Proprietary and Confidential
April 4, 2017
MQTT: Message
Queuing Telemetry
Transport (IoT)
Norberto Enomoto
Integration / SOA Architect
norberto.enomto@dxc.com
04/04/2017
April 4, 2017 2DXC Proprietary and Confidential
Agenda
1. O que é Internet das Coisas – IoT?
2. Conceitos
3. Arquitetura
4. Aplicabilidade
5. Motivação para utilizar MQTT
6. Protocolo MQTT
7. Arquitetura MQTT
8. Comparação MQTT x HTTP
9. Demostração
10. Perguntas e Respostas
DXC Proprietary and Confidential April 4, 2017
O que é Internet das Coisas – IoT?
April 4, 2017 4DXC Proprietary and Confidential
O que é Internet das Coisas – IoT?
• Qualquer objeto que possui tecnologia embarcada que esta conectado a internet
• Este objeto pode interagir com o mundo através de sensores ou atuadores
April 4, 2017 5DXC Proprietary and Confidential
O que é Internet das Coisas – IoT?
April 4, 2017 8DXC Proprietary and Confidential
Conceitos – Arduino Uno
April 4, 2017 9DXC Proprietary and Confidential
Conceitos – ESP8266
ESP8266
Características
32-bit RISC CPU: Tensilica Xtensa LX106 running
at 80 MHz*
64 KiB of instruction RAM, 96 KiB of data RAM
External QSPI flash: 512 KiB to 4 MiB* (up to 16
MiB is supported)
IEEE 802.11 b/g/n Wi-Fi
Integrated TR switch, balun, LNA, power
amplifier and matching network
WEP or WPA/WPA2 authentication, or open
networks
16 GPIO pins
SPI and I²C
I²S interfaces with DMA (sharing pins with GPIO)
UART on dedicated pins, plus a transmit-only
UART can be enabled on GPIO2
1 10-bit ADC
DXC Proprietary and Confidential April 4, 2017
Arquitetura IoT
April 4, 2017 12DXC Proprietary and Confidential
Arquitetura IoT
April 4, 2017 13DXC Proprietary and Confidential
Arquitetura IoT
DXC Proprietary and Confidential April 4, 2017
Aplicabilidade
April 4, 2017 15DXC Proprietary and Confidential
Aplicabilidade
April 4, 2017 16DXC Proprietary and Confidential
Aplicabilidade - Automação Residencial
April 4, 2017 17DXC Proprietary and Confidential
Aplicabilidade – Estufa Inteligente
DXC Proprietary and Confidential April 4, 2017
Motivação para utilizar MQTT
April 4, 2017 19DXC Proprietary and Confidential
Motivação para utilização MQTT
DXC Proprietary and Confidential April 4, 2017
Protocolo MQTT
April 4, 2017 21DXC Proprietary and Confidential
Protocolo MQTT
MQTT, acrônimo de Message Queuing Telemetry Transport [1] (anteriormente conhecido como MQ
Telemetry Transport), é um protocolo de mensagens leve para sensores e pequenos dispositivos
móveis otimizado para redes TCP/IP não confiáveis ou de alta latência.[2] . O esquema de troca de
mensagens é fundamentado no modelo Publicador-Subscritor.
Fonte: https://pt.wikipedia.org/wiki/MQTT
April 4, 2017 22DXC Proprietary and Confidential
Protocolo MQTT
• O protocolo de mensagens MQTT é projetado para um baixo consumo de banda de rede e
requisitos de hardware sendo extremamente simples e leve.
• Foi desenvolvido pela IBM e Eurotech e é projetado para enviar dados através de redes
intermitentes ou com baixa banda de dados, para isso o protocolo é desenvolvido em cima de
vários conceitos que garantem uma alta taxa de entrega das mensagens.
• O protocolo MQTT é baseado no TCP/IP e ambos, cliente e broker, necessitam da pilha TCP/IP
para o seu funcionamento.
• O MQTT está na mesma camada OSI que o HTTP, porém a maior diferença entre os dois
protocolos é o tamanho do payload. No HTTP, o payload é maior, o que inviabiliza o seu uso em
conexões de baixa qualidade, como GSM por exemplo
• http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/mqtt-v3.1.1.html
April 4, 2017 23DXC Proprietary and Confidential
• O MQTT utiliza o paradigma publish/subscribe
(pub/sub) para a troca de mensagens
• O paradigma pub/sub implementa um middleware
chamado de broker
• O broker é responsável por receber, enfileirar e
disparar as mensagens recebidas dos publishers
para os subscribers
• O publisher é responsável por se conectar ao broker
e publicar mensagens
• Já o subscriber é responsável por se conectar ao
broker e receber as mensagens que ele tiver
interesse
• O paradigma pub/sub utiliza o conceito de tópicos
para processar as mensagens, em que cada
mensagem é enviada para um determinado tópico
Protocolo MQTT
April 4, 2017 24DXC Proprietary and Confidential
Protocolo MQTT
April 4, 2017 25DXC Proprietary and Confidential
Protocolo MQTT
April 4, 2017 26DXC Proprietary and Confidential
Protocolo MQTT
April 4, 2017 27DXC Proprietary and Confidential
QoS 0 - at Most Once (Fire and Forget): o nível mais
baixo é um serviço não reconhecido. A mensagem é
entregue no máximo uma vez. Não tem garantia de
entrega. A mensagem não é persistida. A mensagem
pode ser perdida se o cliente estiver desconectado ou
se o servidor falhar. Este é o modo mais rápido de
transferência.
QoS 1 - at Least Once: o nível do serviço é
reconhecido. Aqui cada receptor reconhece a recepção
das informações publicadas. Se não for recebido, as
informações podem ser enviadas novamente. Isto
garante que as informações sejam entregues pelo
menos uma vez;
Qos 2 - exactly once: o nível mais alto e chamado de
serviço assegurado. Aqui as informações não só são
reconhecidas, mas enviadas em duas etapas. Primeiro
ele é transmitido e depois entregue. Cada passo é
reconhecido. Isso é possível para garantir que o
conteúdo seja entregue exatamente uma vez para
cada assinante. Este é o modo mais demorado de
transferência.
Protocolo MQTT
April 4, 2017 28DXC Proprietary and Confidential
Brokers MQTT
https://mosquitto.org/
http://www.hivemq.com/
Linguagens com suporte ao MQTT
• Java
• JavaScript
• Python
• C
• C++
• C#
• Golang
Protocolo MQTT
April 4, 2017 29DXC Proprietary and Confidential
Protocolo MQTT
DXC Proprietary and Confidential April 4, 2017
Demostração
April 4, 2017 31DXC Proprietary and Confidential
Demonstração
April 4, 2017 32DXC Proprietary and Confidential
Demonstração
http://www.electrodragon.com/product/wifi-iot-relay-board-based-esp8266/
DXC Proprietary and Confidential April 4, 2017
Perguntas & Respostas
DXC Proprietary and Confidential
Obrigado

MQTT: Message Queuing Telemetry Transport (IoT)

  • 1.
    DXC Proprietary andConfidential April 4, 2017 MQTT: Message Queuing Telemetry Transport (IoT) Norberto Enomoto Integration / SOA Architect norberto.enomto@dxc.com 04/04/2017
  • 2.
    April 4, 20172DXC Proprietary and Confidential Agenda 1. O que é Internet das Coisas – IoT? 2. Conceitos 3. Arquitetura 4. Aplicabilidade 5. Motivação para utilizar MQTT 6. Protocolo MQTT 7. Arquitetura MQTT 8. Comparação MQTT x HTTP 9. Demostração 10. Perguntas e Respostas
  • 3.
    DXC Proprietary andConfidential April 4, 2017 O que é Internet das Coisas – IoT?
  • 4.
    April 4, 20174DXC Proprietary and Confidential O que é Internet das Coisas – IoT? • Qualquer objeto que possui tecnologia embarcada que esta conectado a internet • Este objeto pode interagir com o mundo através de sensores ou atuadores
  • 5.
    April 4, 20175DXC Proprietary and Confidential O que é Internet das Coisas – IoT?
  • 6.
    April 4, 20178DXC Proprietary and Confidential Conceitos – Arduino Uno
  • 7.
    April 4, 20179DXC Proprietary and Confidential Conceitos – ESP8266 ESP8266 Características 32-bit RISC CPU: Tensilica Xtensa LX106 running at 80 MHz* 64 KiB of instruction RAM, 96 KiB of data RAM External QSPI flash: 512 KiB to 4 MiB* (up to 16 MiB is supported) IEEE 802.11 b/g/n Wi-Fi Integrated TR switch, balun, LNA, power amplifier and matching network WEP or WPA/WPA2 authentication, or open networks 16 GPIO pins SPI and I²C I²S interfaces with DMA (sharing pins with GPIO) UART on dedicated pins, plus a transmit-only UART can be enabled on GPIO2 1 10-bit ADC
  • 8.
    DXC Proprietary andConfidential April 4, 2017 Arquitetura IoT
  • 9.
    April 4, 201712DXC Proprietary and Confidential Arquitetura IoT
  • 10.
    April 4, 201713DXC Proprietary and Confidential Arquitetura IoT
  • 11.
    DXC Proprietary andConfidential April 4, 2017 Aplicabilidade
  • 12.
    April 4, 201715DXC Proprietary and Confidential Aplicabilidade
  • 13.
    April 4, 201716DXC Proprietary and Confidential Aplicabilidade - Automação Residencial
  • 14.
    April 4, 201717DXC Proprietary and Confidential Aplicabilidade – Estufa Inteligente
  • 15.
    DXC Proprietary andConfidential April 4, 2017 Motivação para utilizar MQTT
  • 16.
    April 4, 201719DXC Proprietary and Confidential Motivação para utilização MQTT
  • 17.
    DXC Proprietary andConfidential April 4, 2017 Protocolo MQTT
  • 18.
    April 4, 201721DXC Proprietary and Confidential Protocolo MQTT MQTT, acrônimo de Message Queuing Telemetry Transport [1] (anteriormente conhecido como MQ Telemetry Transport), é um protocolo de mensagens leve para sensores e pequenos dispositivos móveis otimizado para redes TCP/IP não confiáveis ou de alta latência.[2] . O esquema de troca de mensagens é fundamentado no modelo Publicador-Subscritor. Fonte: https://pt.wikipedia.org/wiki/MQTT
  • 19.
    April 4, 201722DXC Proprietary and Confidential Protocolo MQTT • O protocolo de mensagens MQTT é projetado para um baixo consumo de banda de rede e requisitos de hardware sendo extremamente simples e leve. • Foi desenvolvido pela IBM e Eurotech e é projetado para enviar dados através de redes intermitentes ou com baixa banda de dados, para isso o protocolo é desenvolvido em cima de vários conceitos que garantem uma alta taxa de entrega das mensagens. • O protocolo MQTT é baseado no TCP/IP e ambos, cliente e broker, necessitam da pilha TCP/IP para o seu funcionamento. • O MQTT está na mesma camada OSI que o HTTP, porém a maior diferença entre os dois protocolos é o tamanho do payload. No HTTP, o payload é maior, o que inviabiliza o seu uso em conexões de baixa qualidade, como GSM por exemplo • http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/mqtt-v3.1.1.html
  • 20.
    April 4, 201723DXC Proprietary and Confidential • O MQTT utiliza o paradigma publish/subscribe (pub/sub) para a troca de mensagens • O paradigma pub/sub implementa um middleware chamado de broker • O broker é responsável por receber, enfileirar e disparar as mensagens recebidas dos publishers para os subscribers • O publisher é responsável por se conectar ao broker e publicar mensagens • Já o subscriber é responsável por se conectar ao broker e receber as mensagens que ele tiver interesse • O paradigma pub/sub utiliza o conceito de tópicos para processar as mensagens, em que cada mensagem é enviada para um determinado tópico Protocolo MQTT
  • 21.
    April 4, 201724DXC Proprietary and Confidential Protocolo MQTT
  • 22.
    April 4, 201725DXC Proprietary and Confidential Protocolo MQTT
  • 23.
    April 4, 201726DXC Proprietary and Confidential Protocolo MQTT
  • 24.
    April 4, 201727DXC Proprietary and Confidential QoS 0 - at Most Once (Fire and Forget): o nível mais baixo é um serviço não reconhecido. A mensagem é entregue no máximo uma vez. Não tem garantia de entrega. A mensagem não é persistida. A mensagem pode ser perdida se o cliente estiver desconectado ou se o servidor falhar. Este é o modo mais rápido de transferência. QoS 1 - at Least Once: o nível do serviço é reconhecido. Aqui cada receptor reconhece a recepção das informações publicadas. Se não for recebido, as informações podem ser enviadas novamente. Isto garante que as informações sejam entregues pelo menos uma vez; Qos 2 - exactly once: o nível mais alto e chamado de serviço assegurado. Aqui as informações não só são reconhecidas, mas enviadas em duas etapas. Primeiro ele é transmitido e depois entregue. Cada passo é reconhecido. Isso é possível para garantir que o conteúdo seja entregue exatamente uma vez para cada assinante. Este é o modo mais demorado de transferência. Protocolo MQTT
  • 25.
    April 4, 201728DXC Proprietary and Confidential Brokers MQTT https://mosquitto.org/ http://www.hivemq.com/ Linguagens com suporte ao MQTT • Java • JavaScript • Python • C • C++ • C# • Golang Protocolo MQTT
  • 26.
    April 4, 201729DXC Proprietary and Confidential Protocolo MQTT
  • 27.
    DXC Proprietary andConfidential April 4, 2017 Demostração
  • 28.
    April 4, 201731DXC Proprietary and Confidential Demonstração
  • 29.
    April 4, 201732DXC Proprietary and Confidential Demonstração http://www.electrodragon.com/product/wifi-iot-relay-board-based-esp8266/
  • 30.
    DXC Proprietary andConfidential April 4, 2017 Perguntas & Respostas
  • 31.
    DXC Proprietary andConfidential Obrigado