SlideShare ist ein Scribd-Unternehmen logo
1 von 38
Downloaden Sie, um offline zu lesen
DXC Proprietary and Confidential
July 24, 2018
Protocolo MQTT: Message
Queuing Telemetry Transport
Norberto Hideaki Enomoto
norberto.enomoto@dxc.com
Arquiteto de Soluções SOA | Integração | IoT
July 24, 2018 2DXC Proprietary and Confidential
Agenda
1. O que é Internet das Coisas - IoT?
2. Arquitetura
3. O Valor para o Negócio
4. Aplicabilidade
5. Motivação para utilizar o Protocolo
MQTT
6. Protocolo MQTT
7. Demo: ESP32 AWS IoT Button
8. Perguntas e Respostas
July 24, 2018 3DXC Proprietary and Confidential
O que é Internet das Coisas – IoT ?
July 24, 2018 4DXC Proprietary and Confidential
O que é Internet das Coisas – IoT?
• Qualquer objeto que possui tecnologia embarcada que esteja conectado a internet
• Este objeto pode interagir com o mundo através de sensores ou atuadores.
July 24, 2018 5DXC Proprietary and Confidential
O que é Internet das Coisas – IoT?
July 24, 2018 7DXC Proprietary and Confidential
Arquitetura de IoT
July 24, 2018 8DXC Proprietary and Confidential
Valor para o Negócio
July 24, 2018 9DXC Proprietary and Confidential
Valor de Negócio do IoT
Otimiza os processos de negócios e reduz os riscos e custos da
operação
Prever falhas de equipamentos e necessidades de manutenção para
melhorar a eficácia geral do equipamento
Inove com novos modelos de negócios e ofereça produtos como serviço
Oferecer experiências diferenciadas ao cliente e melhorar a qualidade
do produto
July 24, 2018 10DXC Proprietary and Confidential
Mapa do processo de negócios para a
iniciação de Projeto de IoT
Identifique os
objetivos de
negócio
Desenvolva
Casos de Uso
de IoT
Crie a Visão e o
Roadmap de IoT
Lance um Piloto
ou uma Prova
de Conceito
Atualize a Visão
e o Roadmap de
IoT
Implemente a
Iniciativa
Iterar e Validar
Obtenha o
suporte
interno
Verifique se
IT e Negócios
estão na
mesma
página
Iterar e Validar
Verifique o
suporte
interno
July 24, 2018 12DXC Proprietary and Confidential
DXC Focus
O valor de IoT esta na aplicação
Descrição
Módulo do usuário final do
dispositivo com sensores
conectados
Rede de oferta para
transmissão de dados /
controle para serviços
de IoT
Gerenciar a distribuição,
cadeia de suprimentos,
atendimento, manutenção
Aplicativos que
gerenciam e analisam
os dados
Fornecer integração
de sistemas; projetar,
desenvolver soluções
Parte da cadeia
de valor
5% – 30% 5% – 20% 20% – 30% 30% – 60% 20% – 30%
O que
Sensores, chips
embarcados, vending
machines, carros, cameras,
atuadores, etc.
Equipamento de rede,
conectividade, provedor
de serviços de rede,
agregadores
Faturamento,
provisionamento de
dispositivos, serviços de
campo
Plataformas IoT,
nuvem híbrida, análise
de dados serviços
gerenciados e
plataformas
Desenvolvimento e
teste de aplicativos,
UX / CX, soluções
verticais,
desenvolvimento de
API, integração com
outros sistemas
(CRM), ERP e
terceiros, segurança
Foco da DXC
Consultoria
Integração de
Sistemas
AplicaçãoProvisionamentoConectividadeDispositivos
DXC Proprietary and Confidential
July 24, 2018
Aplicabilidade
July 24, 2018 14DXC Proprietary and Confidential
Aplicabilidade - Automação Residencial
July 24, 2018 15DXC Proprietary and Confidential
Aplicabilidade – Estufa Inteligente
July 24, 2018 16DXC Proprietary and Confidential
Motivação para utilizar o
Protocolo MQTT
July 24, 2018 17DXC Proprietary and Confidential
Motivação para utilizar o Protocolo MQTT
• Desenvolvido para dispositivos com:
• Tamanho de código limitado;
• Banda de transmissão limitada;
• Principais plataformas de IoT possuem suporte ao protocolo MQTT: AWS, Azure, Google,
ThingSpeak, Tago.io, Konker, GE Predix.io, Siemens MindSphere e etc
July 24, 2018 18DXC Proprietary and Confidential
Motivação para utilizar Protocolo MQTT
July 24, 2018 19DXC Proprietary and Confidential
Protocolo MQTT
July 24, 2018 20DXC 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
Especificação: http://mqtt.org/
July 24, 2018 21DXC 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
July 24, 2018 22DXC Proprietary and Confidential
Protocolo MQTT
• Open source;
• Código pequeno (dependente da plataforma utilizada);
• Overhead pequeno nos pacotes (mínimo de 2 bytes);
• Confiável: 3 níveis de QoS;
• Segurança: SSL/TLS;
• Last will
July 24, 2018 23DXC Proprietary and Confidential
Protocolo MQTT
July 24, 2018 24DXC 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
July 24, 2018 25DXC Proprietary and Confidential
Protocolo MQTT
July 24, 2018 26DXC Proprietary and Confidential
Protocolo MQTT - Tópico
• É uma FIFO (First In First Out);
• O limite de memória de uma fila é o limite da memória física do Broker;
• Possui a opção de retenção da informação:
• Com esta opção ativada, a mensagem será mantida no tópico até que todos os subscribers
do tópico a tenham recebido;
• Os subscribers que acabaram de se conectar ao tópico, tem acesso a informação de forma
imediata, não necessitando esperar a geração de uma nova mensagem.
July 24, 2018 27DXC Proprietary and Confidential
Protocolo MQTT - Tópico
July 24, 2018 28DXC Proprietary and Confidential
Protocolo MQTT - Tópico
• Cada tópico possui um nome (formato UTF-8);
• Podem existir sub-tópicos. Acrescente o caracter “/”;
• Exemplo:
• Tópico: sensores
• Sub-tópico: temperatura e umidade
Resultado (2 sub-tópicos e um tópico “pai”):
• sensores/temperatura
• sensores/umidade
July 24, 2018 29DXC Proprietary and Confidential
Protocolo MQTT - Tópico
Multi-level wildcard: “#”
• Utilizado para ler todos os sub-tópicos a partir de um certo nível:
• Exemplo:
casa/sala/sensores/temperatura
casa/sala/sensores/umidade
casa/sala/sensores/luminosidade
• Receber mensagens de todos os sensores da sala:
casa/sala/#
July 24, 2018 30DXC Proprietary and Confidential
Protocolo MQTT - Tópico
• Single level wildcard: “+”
• Utilizado para ler todos os tópicos somente do nível desejado:
• Exemplo:
casa/sala/sensores
casa/cozinha/sensores
casa/quarto/sensores
• Receber mensagens de todos os sensores da casa:
casa/+/sensores/#
July 24, 2018 31DXC Proprietary and Confidential
Protocolo MQTT - Tópico
Sistema: “$”
• Utilizado somente para o sistema do Broker:
• Totalmente dependente da implementação do Broker:
• Exemplo para o Broker Mosquitto:
• Total de bytes recebidos:
$SYS/broker/bytes/received
• Total de bytes enviados:
$SYS/broker/bytes/sent
July 24, 2018 32DXC 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 - QoS
July 24, 2018 33DXC Proprietary and Confidential
Protocolo MQTT - Last will
• Mecanismo no qual o Cliente especifica uma mensagem de “testamento” e um tópico para
publicá-la;
• O Broker mantém esta mensagem e, ao detectar uma desconexão inesperada do Cliente, faz o
publish do “testamento” no tópico configurado;
• Útil para reportar uma desconexão para o sistema/aplicação;
• Dessa maneira, subscribers podem ficar sabendo da desconexão do publisher.
July 24, 2018 34DXC 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
July 24, 2018 35DXC Proprietary and Confidential
Protocolo MQTT
July 24, 2018 36DXC Proprietary and Confidential
Demo: ESP32
July 24, 2018 37DXC Proprietary and Confidential
ESP32
Características
Dual core 32bits LX6 Xtensa
Bluetooth 4.2 BLE
448KB ROM
520KB SRAM
16KB SRAM no RTC
3x SPI
2x I2C
2x I2S
SDIO/SD/MMC
3x UART
CAN
Ethernet 10/100Mbps
IR (Infrared)
16x PWM
Sensor de Temperatura interno
Sensor touch de 10 canais
ADC de 12bits e suporte para até 18 canais (multiplexado)
DAC de 8bits e 2 canais
July 24, 2018 38DXC Proprietary and Confidential
ESP32 – AWS IoT Button
July 24, 2018 39DXC Proprietary and Confidential
Perguntas & Respostas
DXC Proprietary and Confidential
Obrigado

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
 
Protocolos de Redes
Protocolos de RedesProtocolos de Redes
Protocolos de Redes
 
Redes de Computadores
Redes de ComputadoresRedes de Computadores
Redes de Computadores
 
Camada de enlace parte1
Camada de enlace   parte1Camada de enlace   parte1
Camada de enlace parte1
 
Redes de Computadores - Aula 01
Redes de Computadores - Aula 01Redes de Computadores - Aula 01
Redes de Computadores - Aula 01
 
Aula 05 - Exercício de projeto - Projeto de Redes de Computadores
Aula 05 - Exercício de projeto - Projeto de Redes de ComputadoresAula 05 - Exercício de projeto - Projeto de Redes de Computadores
Aula 05 - Exercício de projeto - Projeto de Redes de Computadores
 
Virtualização
VirtualizaçãoVirtualização
Virtualização
 
Modelo osi
Modelo osiModelo osi
Modelo osi
 
Redes de Computadores
Redes de ComputadoresRedes de Computadores
Redes de Computadores
 
Padroes De Projeto
Padroes De ProjetoPadroes De Projeto
Padroes De Projeto
 
POO - Aula 10 - Polimorfismo
POO - Aula 10 - PolimorfismoPOO - Aula 10 - Polimorfismo
POO - Aula 10 - Polimorfismo
 
Redes - topologias de redes
Redes - topologias de redesRedes - topologias de redes
Redes - topologias de redes
 
Comunicacao de dados
Comunicacao de dadosComunicacao de dados
Comunicacao de dados
 
Aula1 historia das redes
Aula1   historia das redesAula1   historia das redes
Aula1 historia das redes
 
Desenhando Componentes de Software com UML
Desenhando Componentes de Software com UMLDesenhando Componentes de Software com UML
Desenhando Componentes de Software com UML
 
Redes de-computadores-tipos-de-redes
Redes de-computadores-tipos-de-redesRedes de-computadores-tipos-de-redes
Redes de-computadores-tipos-de-redes
 
Protocolo TCP/IP
Protocolo TCP/IPProtocolo TCP/IP
Protocolo TCP/IP
 
Redes Óticas de Acesso: Padrão EPON e GPON
Redes Óticas de Acesso: Padrão EPON e GPONRedes Óticas de Acesso: Padrão EPON e GPON
Redes Óticas de Acesso: Padrão EPON e GPON
 
Aula 04: Meios de transmissão
Aula 04: Meios de transmissãoAula 04: Meios de transmissão
Aula 04: Meios de transmissão
 
Modelo TCP/IP
Modelo TCP/IPModelo TCP/IP
Modelo TCP/IP
 

Ähnlich wie Protocolo MQTT: Message Queuing Telemetry Transport

MQTT: Message Queuing Telemetry Transport (IoT)
MQTT: Message Queuing Telemetry Transport (IoT)MQTT: Message Queuing Telemetry Transport (IoT)
MQTT: Message Queuing Telemetry Transport (IoT)Norberto Enomoto
 
Protocolo MQTT - Redes de Computadores
Protocolo MQTT - Redes de Computadores Protocolo MQTT - Redes de Computadores
Protocolo MQTT - Redes de Computadores Maurício Moreira Neto
 
TradeTech Brazil 2011 - O Desafio Da Latencia
TradeTech Brazil 2011 - O Desafio Da LatenciaTradeTech Brazil 2011 - O Desafio Da Latencia
TradeTech Brazil 2011 - O Desafio Da LatenciaJose Ricardo Maia Moraes
 
Selecionando application procotocols para IoT
Selecionando application procotocols para IoTSelecionando application procotocols para IoT
Selecionando application procotocols para IoTcesar231084
 
Ferment io t - Distributed and Scalable IoT Solution
Ferment io t - Distributed and Scalable IoT SolutionFerment io t - Distributed and Scalable IoT Solution
Ferment io t - Distributed and Scalable IoT SolutionDonato Vianna
 
QCon Rio 2015 - IoT é muito mais que hardware conectado: explorando arquitetu...
QCon Rio 2015 - IoT é muito mais que hardware conectado: explorando arquitetu...QCon Rio 2015 - IoT é muito mais que hardware conectado: explorando arquitetu...
QCon Rio 2015 - IoT é muito mais que hardware conectado: explorando arquitetu...Jorge Maia
 
Webinar: Redes Mesh para Monitoramento e Controle de Sensores
Webinar: Redes Mesh para Monitoramento e Controle de SensoresWebinar: Redes Mesh para Monitoramento e Controle de Sensores
Webinar: Redes Mesh para Monitoramento e Controle de SensoresEmbarcados
 
mikrotik-e-suas-soluçoes
mikrotik-e-suas-soluçoesmikrotik-e-suas-soluçoes
mikrotik-e-suas-soluçoesaragao2205
 
Redes NGN - Next Generation Networks
Redes NGN - Next Generation NetworksRedes NGN - Next Generation Networks
Redes NGN - Next Generation NetworksFrederico Madeira
 
Camada de Transporte - TADS/REC 2014/2
Camada de Transporte - TADS/REC 2014/2Camada de Transporte - TADS/REC 2014/2
Camada de Transporte - TADS/REC 2014/2Caio Miranda
 
IoT Usando Azure Como Backend
IoT Usando Azure Como BackendIoT Usando Azure Como Backend
IoT Usando Azure Como BackendJorge Maia
 
Comunicação de Dispositivos IoT com MQTT
Comunicação de Dispositivos IoT com MQTTComunicação de Dispositivos IoT com MQTT
Comunicação de Dispositivos IoT com MQTTJorge Maia
 
Protocolos de Sistemas Embarcados
Protocolos de Sistemas EmbarcadosProtocolos de Sistemas Embarcados
Protocolos de Sistemas EmbarcadosRomulo Fagundes
 
S2 B 2007 Infra Aula 01 V1.00
S2 B 2007   Infra   Aula 01 V1.00S2 B 2007   Infra   Aula 01 V1.00
S2 B 2007 Infra Aula 01 V1.00doctorweb
 
CLASS 2018 - Palestra de Alexandre Freire (Industrial Cybersecurity Sales Eng...
CLASS 2018 - Palestra de Alexandre Freire (Industrial Cybersecurity Sales Eng...CLASS 2018 - Palestra de Alexandre Freire (Industrial Cybersecurity Sales Eng...
CLASS 2018 - Palestra de Alexandre Freire (Industrial Cybersecurity Sales Eng...TI Safe
 

Ähnlich wie Protocolo MQTT: Message Queuing Telemetry Transport (20)

MQTT: Message Queuing Telemetry Transport (IoT)
MQTT: Message Queuing Telemetry Transport (IoT)MQTT: Message Queuing Telemetry Transport (IoT)
MQTT: Message Queuing Telemetry Transport (IoT)
 
Protocolo MQTT - Redes de Computadores
Protocolo MQTT - Redes de Computadores Protocolo MQTT - Redes de Computadores
Protocolo MQTT - Redes de Computadores
 
TradeTech Brazil 2011 - O Desafio Da Latencia
TradeTech Brazil 2011 - O Desafio Da LatenciaTradeTech Brazil 2011 - O Desafio Da Latencia
TradeTech Brazil 2011 - O Desafio Da Latencia
 
Selecionando application procotocols para IoT
Selecionando application procotocols para IoTSelecionando application procotocols para IoT
Selecionando application procotocols para IoT
 
Cirrus
CirrusCirrus
Cirrus
 
Ferment io t - Distributed and Scalable IoT Solution
Ferment io t - Distributed and Scalable IoT SolutionFerment io t - Distributed and Scalable IoT Solution
Ferment io t - Distributed and Scalable IoT Solution
 
QCon Rio 2015 - IoT é muito mais que hardware conectado: explorando arquitetu...
QCon Rio 2015 - IoT é muito mais que hardware conectado: explorando arquitetu...QCon Rio 2015 - IoT é muito mais que hardware conectado: explorando arquitetu...
QCon Rio 2015 - IoT é muito mais que hardware conectado: explorando arquitetu...
 
Tecnologias Atuais de Redes - Aula 3 - VPN
Tecnologias Atuais de Redes - Aula 3 - VPNTecnologias Atuais de Redes - Aula 3 - VPN
Tecnologias Atuais de Redes - Aula 3 - VPN
 
Webinar: Redes Mesh para Monitoramento e Controle de Sensores
Webinar: Redes Mesh para Monitoramento e Controle de SensoresWebinar: Redes Mesh para Monitoramento e Controle de Sensores
Webinar: Redes Mesh para Monitoramento e Controle de Sensores
 
mikrotik-e-suas-soluçoes
mikrotik-e-suas-soluçoesmikrotik-e-suas-soluçoes
mikrotik-e-suas-soluçoes
 
Redes NGN - Next Generation Networks
Redes NGN - Next Generation NetworksRedes NGN - Next Generation Networks
Redes NGN - Next Generation Networks
 
Apicon2018.pptx
Apicon2018.pptxApicon2018.pptx
Apicon2018.pptx
 
Camada de Transporte - TADS/REC 2014/2
Camada de Transporte - TADS/REC 2014/2Camada de Transporte - TADS/REC 2014/2
Camada de Transporte - TADS/REC 2014/2
 
IoT Usando Azure Como Backend
IoT Usando Azure Como BackendIoT Usando Azure Como Backend
IoT Usando Azure Como Backend
 
Comunicação de Dispositivos IoT com MQTT
Comunicação de Dispositivos IoT com MQTTComunicação de Dispositivos IoT com MQTT
Comunicação de Dispositivos IoT com MQTT
 
Protocolos de Sistemas Embarcados
Protocolos de Sistemas EmbarcadosProtocolos de Sistemas Embarcados
Protocolos de Sistemas Embarcados
 
Protocolos de Rede para Internet das Coisas
Protocolos de Rede para Internet das CoisasProtocolos de Rede para Internet das Coisas
Protocolos de Rede para Internet das Coisas
 
aula-13-revisc3a3o.pdf
aula-13-revisc3a3o.pdfaula-13-revisc3a3o.pdf
aula-13-revisc3a3o.pdf
 
S2 B 2007 Infra Aula 01 V1.00
S2 B 2007   Infra   Aula 01 V1.00S2 B 2007   Infra   Aula 01 V1.00
S2 B 2007 Infra Aula 01 V1.00
 
CLASS 2018 - Palestra de Alexandre Freire (Industrial Cybersecurity Sales Eng...
CLASS 2018 - Palestra de Alexandre Freire (Industrial Cybersecurity Sales Eng...CLASS 2018 - Palestra de Alexandre Freire (Industrial Cybersecurity Sales Eng...
CLASS 2018 - Palestra de Alexandre Freire (Industrial Cybersecurity Sales Eng...
 

Mehr von Norberto Enomoto

Workshop Azure DevOps | Docker | Azure Kubernetes Services
Workshop Azure DevOps | Docker | Azure Kubernetes ServicesWorkshop Azure DevOps | Docker | Azure Kubernetes Services
Workshop Azure DevOps | Docker | Azure Kubernetes ServicesNorberto Enomoto
 
Workshop Azure DevOps Repos
Workshop Azure DevOps ReposWorkshop Azure DevOps Repos
Workshop Azure DevOps ReposNorberto Enomoto
 
Criação de uma API RESTful Multitenat em Spring Boot e Oracle database utiliz...
Criação de uma API RESTful Multitenat em Spring Boot e Oracle database utiliz...Criação de uma API RESTful Multitenat em Spring Boot e Oracle database utiliz...
Criação de uma API RESTful Multitenat em Spring Boot e Oracle database utiliz...Norberto Enomoto
 
Arquitetura de Microserviços
Arquitetura de MicroserviçosArquitetura de Microserviços
Arquitetura de MicroserviçosNorberto Enomoto
 
Arquitetura de Microserviços
Arquitetura de MicroserviçosArquitetura de Microserviços
Arquitetura de MicroserviçosNorberto Enomoto
 
Arquitetura de Microservicos
Arquitetura de MicroservicosArquitetura de Microservicos
Arquitetura de MicroservicosNorberto Enomoto
 
HP Communications and Media | Solutions IoT Platform
HP Communications and Media | Solutions IoT Platform HP Communications and Media | Solutions IoT Platform
HP Communications and Media | Solutions IoT Platform Norberto Enomoto
 
Overview Governança SOA - HP Brazil
Overview Governança SOA - HP BrazilOverview Governança SOA - HP Brazil
Overview Governança SOA - HP BrazilNorberto Enomoto
 
Oracle Service Bus - HP Brazil
Oracle Service Bus - HP BrazilOracle Service Bus - HP Brazil
Oracle Service Bus - HP BrazilNorberto Enomoto
 

Mehr von Norberto Enomoto (13)

Resilience4j
Resilience4jResilience4j
Resilience4j
 
Azure Pipeline
Azure PipelineAzure Pipeline
Azure Pipeline
 
AWS ECS vs EKS
AWS ECS vs EKSAWS ECS vs EKS
AWS ECS vs EKS
 
Workshop Azure DevOps | Docker | Azure Kubernetes Services
Workshop Azure DevOps | Docker | Azure Kubernetes ServicesWorkshop Azure DevOps | Docker | Azure Kubernetes Services
Workshop Azure DevOps | Docker | Azure Kubernetes Services
 
Workshop Azure DevOps Repos
Workshop Azure DevOps ReposWorkshop Azure DevOps Repos
Workshop Azure DevOps Repos
 
Criação de uma API RESTful Multitenat em Spring Boot e Oracle database utiliz...
Criação de uma API RESTful Multitenat em Spring Boot e Oracle database utiliz...Criação de uma API RESTful Multitenat em Spring Boot e Oracle database utiliz...
Criação de uma API RESTful Multitenat em Spring Boot e Oracle database utiliz...
 
Arquitetura de Microserviços
Arquitetura de MicroserviçosArquitetura de Microserviços
Arquitetura de Microserviços
 
Arquitetura de Microserviços
Arquitetura de MicroserviçosArquitetura de Microserviços
Arquitetura de Microserviços
 
Arquitetura de Microservicos
Arquitetura de MicroservicosArquitetura de Microservicos
Arquitetura de Microservicos
 
HP Communications and Media | Solutions IoT Platform
HP Communications and Media | Solutions IoT Platform HP Communications and Media | Solutions IoT Platform
HP Communications and Media | Solutions IoT Platform
 
Web Services
Web ServicesWeb Services
Web Services
 
Overview Governança SOA - HP Brazil
Overview Governança SOA - HP BrazilOverview Governança SOA - HP Brazil
Overview Governança SOA - HP Brazil
 
Oracle Service Bus - HP Brazil
Oracle Service Bus - HP BrazilOracle Service Bus - HP Brazil
Oracle Service Bus - HP Brazil
 

Protocolo MQTT: Message Queuing Telemetry Transport

  • 1. DXC Proprietary and Confidential July 24, 2018 Protocolo MQTT: Message Queuing Telemetry Transport Norberto Hideaki Enomoto norberto.enomoto@dxc.com Arquiteto de Soluções SOA | Integração | IoT
  • 2. July 24, 2018 2DXC Proprietary and Confidential Agenda 1. O que é Internet das Coisas - IoT? 2. Arquitetura 3. O Valor para o Negócio 4. Aplicabilidade 5. Motivação para utilizar o Protocolo MQTT 6. Protocolo MQTT 7. Demo: ESP32 AWS IoT Button 8. Perguntas e Respostas
  • 3. July 24, 2018 3DXC Proprietary and Confidential O que é Internet das Coisas – IoT ?
  • 4. July 24, 2018 4DXC Proprietary and Confidential O que é Internet das Coisas – IoT? • Qualquer objeto que possui tecnologia embarcada que esteja conectado a internet • Este objeto pode interagir com o mundo através de sensores ou atuadores.
  • 5. July 24, 2018 5DXC Proprietary and Confidential O que é Internet das Coisas – IoT?
  • 6. July 24, 2018 7DXC Proprietary and Confidential Arquitetura de IoT
  • 7. July 24, 2018 8DXC Proprietary and Confidential Valor para o Negócio
  • 8. July 24, 2018 9DXC Proprietary and Confidential Valor de Negócio do IoT Otimiza os processos de negócios e reduz os riscos e custos da operação Prever falhas de equipamentos e necessidades de manutenção para melhorar a eficácia geral do equipamento Inove com novos modelos de negócios e ofereça produtos como serviço Oferecer experiências diferenciadas ao cliente e melhorar a qualidade do produto
  • 9. July 24, 2018 10DXC Proprietary and Confidential Mapa do processo de negócios para a iniciação de Projeto de IoT Identifique os objetivos de negócio Desenvolva Casos de Uso de IoT Crie a Visão e o Roadmap de IoT Lance um Piloto ou uma Prova de Conceito Atualize a Visão e o Roadmap de IoT Implemente a Iniciativa Iterar e Validar Obtenha o suporte interno Verifique se IT e Negócios estão na mesma página Iterar e Validar Verifique o suporte interno
  • 10. July 24, 2018 12DXC Proprietary and Confidential DXC Focus O valor de IoT esta na aplicação Descrição Módulo do usuário final do dispositivo com sensores conectados Rede de oferta para transmissão de dados / controle para serviços de IoT Gerenciar a distribuição, cadeia de suprimentos, atendimento, manutenção Aplicativos que gerenciam e analisam os dados Fornecer integração de sistemas; projetar, desenvolver soluções Parte da cadeia de valor 5% – 30% 5% – 20% 20% – 30% 30% – 60% 20% – 30% O que Sensores, chips embarcados, vending machines, carros, cameras, atuadores, etc. Equipamento de rede, conectividade, provedor de serviços de rede, agregadores Faturamento, provisionamento de dispositivos, serviços de campo Plataformas IoT, nuvem híbrida, análise de dados serviços gerenciados e plataformas Desenvolvimento e teste de aplicativos, UX / CX, soluções verticais, desenvolvimento de API, integração com outros sistemas (CRM), ERP e terceiros, segurança Foco da DXC Consultoria Integração de Sistemas AplicaçãoProvisionamentoConectividadeDispositivos
  • 11. DXC Proprietary and Confidential July 24, 2018 Aplicabilidade
  • 12. July 24, 2018 14DXC Proprietary and Confidential Aplicabilidade - Automação Residencial
  • 13. July 24, 2018 15DXC Proprietary and Confidential Aplicabilidade – Estufa Inteligente
  • 14. July 24, 2018 16DXC Proprietary and Confidential Motivação para utilizar o Protocolo MQTT
  • 15. July 24, 2018 17DXC Proprietary and Confidential Motivação para utilizar o Protocolo MQTT • Desenvolvido para dispositivos com: • Tamanho de código limitado; • Banda de transmissão limitada; • Principais plataformas de IoT possuem suporte ao protocolo MQTT: AWS, Azure, Google, ThingSpeak, Tago.io, Konker, GE Predix.io, Siemens MindSphere e etc
  • 16. July 24, 2018 18DXC Proprietary and Confidential Motivação para utilizar Protocolo MQTT
  • 17. July 24, 2018 19DXC Proprietary and Confidential Protocolo MQTT
  • 18. July 24, 2018 20DXC 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 Especificação: http://mqtt.org/
  • 19. July 24, 2018 21DXC 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. July 24, 2018 22DXC Proprietary and Confidential Protocolo MQTT • Open source; • Código pequeno (dependente da plataforma utilizada); • Overhead pequeno nos pacotes (mínimo de 2 bytes); • Confiável: 3 níveis de QoS; • Segurança: SSL/TLS; • Last will
  • 21. July 24, 2018 23DXC Proprietary and Confidential Protocolo MQTT
  • 22. July 24, 2018 24DXC 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
  • 23. July 24, 2018 25DXC Proprietary and Confidential Protocolo MQTT
  • 24. July 24, 2018 26DXC Proprietary and Confidential Protocolo MQTT - Tópico • É uma FIFO (First In First Out); • O limite de memória de uma fila é o limite da memória física do Broker; • Possui a opção de retenção da informação: • Com esta opção ativada, a mensagem será mantida no tópico até que todos os subscribers do tópico a tenham recebido; • Os subscribers que acabaram de se conectar ao tópico, tem acesso a informação de forma imediata, não necessitando esperar a geração de uma nova mensagem.
  • 25. July 24, 2018 27DXC Proprietary and Confidential Protocolo MQTT - Tópico
  • 26. July 24, 2018 28DXC Proprietary and Confidential Protocolo MQTT - Tópico • Cada tópico possui um nome (formato UTF-8); • Podem existir sub-tópicos. Acrescente o caracter “/”; • Exemplo: • Tópico: sensores • Sub-tópico: temperatura e umidade Resultado (2 sub-tópicos e um tópico “pai”): • sensores/temperatura • sensores/umidade
  • 27. July 24, 2018 29DXC Proprietary and Confidential Protocolo MQTT - Tópico Multi-level wildcard: “#” • Utilizado para ler todos os sub-tópicos a partir de um certo nível: • Exemplo: casa/sala/sensores/temperatura casa/sala/sensores/umidade casa/sala/sensores/luminosidade • Receber mensagens de todos os sensores da sala: casa/sala/#
  • 28. July 24, 2018 30DXC Proprietary and Confidential Protocolo MQTT - Tópico • Single level wildcard: “+” • Utilizado para ler todos os tópicos somente do nível desejado: • Exemplo: casa/sala/sensores casa/cozinha/sensores casa/quarto/sensores • Receber mensagens de todos os sensores da casa: casa/+/sensores/#
  • 29. July 24, 2018 31DXC Proprietary and Confidential Protocolo MQTT - Tópico Sistema: “$” • Utilizado somente para o sistema do Broker: • Totalmente dependente da implementação do Broker: • Exemplo para o Broker Mosquitto: • Total de bytes recebidos: $SYS/broker/bytes/received • Total de bytes enviados: $SYS/broker/bytes/sent
  • 30. July 24, 2018 32DXC 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 - QoS
  • 31. July 24, 2018 33DXC Proprietary and Confidential Protocolo MQTT - Last will • Mecanismo no qual o Cliente especifica uma mensagem de “testamento” e um tópico para publicá-la; • O Broker mantém esta mensagem e, ao detectar uma desconexão inesperada do Cliente, faz o publish do “testamento” no tópico configurado; • Útil para reportar uma desconexão para o sistema/aplicação; • Dessa maneira, subscribers podem ficar sabendo da desconexão do publisher.
  • 32. July 24, 2018 34DXC 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
  • 33. July 24, 2018 35DXC Proprietary and Confidential Protocolo MQTT
  • 34. July 24, 2018 36DXC Proprietary and Confidential Demo: ESP32
  • 35. July 24, 2018 37DXC Proprietary and Confidential ESP32 Características Dual core 32bits LX6 Xtensa Bluetooth 4.2 BLE 448KB ROM 520KB SRAM 16KB SRAM no RTC 3x SPI 2x I2C 2x I2S SDIO/SD/MMC 3x UART CAN Ethernet 10/100Mbps IR (Infrared) 16x PWM Sensor de Temperatura interno Sensor touch de 10 canais ADC de 12bits e suporte para até 18 canais (multiplexado) DAC de 8bits e 2 canais
  • 36. July 24, 2018 38DXC Proprietary and Confidential ESP32 – AWS IoT Button
  • 37. July 24, 2018 39DXC Proprietary and Confidential Perguntas & Respostas
  • 38. DXC Proprietary and Confidential Obrigado