MQTT: Message Queuing Telemetry Transport (IoT)

Post on 15-Apr-2017

42 views 2 download

transcript

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 maisbaixo é um serviço não reconhecido. A mensagem éentregue no máximo uma vez. Não tem garantia deentrega. A mensagem não é persistida. A mensagempode ser perdida se o cliente estiver desconectado ouse o servidor falhar. Este é o modo mais rápido detransferência.

QoS 1 - at Least Once: o nível do serviço éreconhecido. Aqui cada receptor reconhece a recepçãodas informações publicadas. Se não for recebido, asinformações podem ser enviadas novamente. Istogarante que as informações sejam entregues pelomenos uma vez;

Qos 2 - exactly once: o nível mais alto e chamado deserviço assegurado. Aqui as informações não só sãoreconhecidas, mas enviadas em duas etapas. Primeiroele é transmitido e depois entregue. Cada passo éreconhecido. Isso é possível para garantir que oconteúdo seja entregue exatamente uma vez paracada assinante. Este é o modo mais demorado detransferê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