Buscar

APLICAÇÃO DE CLOUD, IOT e INDUSTRIA 4.0 EM PYTHON

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 42 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 42 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 42 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Aplic. de Cloud, Iot e Indústria 4.0 em Python
Tema 2. PLATAFORMAS DE MIDDLEWARE E PROTOCOLOS
DE COMUNICAÇÃO PARA IOT
Aula 04
MÓDULO 2
Reconhecer os protocolos de rede para IoT: MQTT, CoAP, XMPP-IoT, RESTful HTTP, 
DDS, AMQP
PROTOCOLO MQTT
O MQTT é um protocolo de mensagens. Ele foi desenvolvido pela IBM e lançado em 1999. A 
sua primeira aplicação foi monitorar sensores em oleodutos de petróleo através de satélites. 
Trata-se de um protocolo aberto que foi liberado ao público de forma gratuita no ano de 2010. 
No ano de 2014, o protocolo se tornou padrão OASIS (MQTT: The Standard for IoT Messaging, 
2021).
MQTT - Message Queuing Telemetry Transport, em português, Transporte de Filas de
Mensagem de Telemetria
OASIS - Organization for the Advancement of Structured Information Standards, em 
português, Organização para o Avanço dos Padrões de Informação Estruturada
A comunicação do MQQT é baseada em um broker, que é um servidor que faz a publicação e 
recebimento de dados com o padrão de mensagens publicação e assinatura – em inglês,
publish/subscribe. O broker recebe todas as mensagens dos seus clientes. Em seguida, ele as 
envia aos clientes de destino. Um exemplo desse processo ocorre quando alguns clientes são 
sensores IoT – publicadores – e outros clientes são aplicações que recebem os dados dos 
sensores e os processa. Na imagem a seguir, é apresentado o esquema de funcionamento do 
broker.
Imagem: Sérgio Monteiro.
Infraestrutura de comunicação do MQQT.
Na imagem, temos os papéis do publicador, assinante, tópico e broker. O broker faz a 
publicação e o recebimento dos dados. Publicador e assinantes são clientes nessa 
infraestrutura. O publicador transmite (publica) uma mensagem, registrando-a em um tópico de
destino. Essa mensagem, por sua vez, é transmitida ao broker, que vai enviá-la ao assinante inscrito no tópico. Do 
mesmo modo, quando um cliente quer se tornar um assinante em um determinado tópico, ele encaminha uma 
mensagem de solicitação ao broker, que fará a interligação entre cliente e tópico.
EXEMPLO
Em um ambiente em que a refrigeração deve ser mantida dentro de determinadas faixas de temperatura, precisamos 
de sensores que meçam a temperatura. Agora, existem duas situações a serem tratadas: a primeira é o processo de 
ligar e desligar equipamentos de refrigeração; a segunda é regular a faixa da temperatura. Em ambos os casos, o 
tópico a ser assinado é “obter a temperatura do sensor em uma determinada localização”. Portanto, o processo de 
publicação desse exemplo corresponde às mensagens de mudanças de temperatura e cada um dos sistemas que 
assinou o tópico vai atuar conforme o que foi programado, ou seja, ligar ou desligar aparelhos de refrigeração e 
regular a temperatura do ambiente.
O protocolo MQTT utiliza os protocolos TCP e MQTT-SN para a 
transmissão de dados. O cabeçalho de uma mensagem do MQTT pode 
variar de 2 a 5 bytes. Basicamente, ele traz informações sobre o tipo de 
mensagem, um indicador de mensagem duplicada, um identificador da 
qualidade de serviço (QoS) do pacote e um bit para indicar se a 
mensagem deve ser retida ou não quando alguém se conectar e receber 
a última mensagem enviada. Os próximos bytes servem para definir o 
tamanho do resto do pacote. Ainda sobre o QoS, ele garante a 
confiabilidade da entrega da mensagem. O MQQT tem três níveis de
QoS: NÍVEL 0, NÍVEL 1 e NÍVEL 2.
NÍVEL 0
A mensagem é enviada apenas uma vez. As mensagens são enviadas
dependendo da existência de rede e não há tentativa de retransmissão da
mensagem.
NÍVEL 1
A mensagem é enviada pelo menos uma vez, também é chamado de entrega
reconhecida. Quem publica, envia uma mensagem pelo menos uma vez e
verifica o estado da entrega.
As mensagens são entregues exatamente uma vez. Esse modelo também é
chamado de entrega garantida.
NÍVEL 2
O MQQT tem diversos tipos de mensagens para tratar 
situações distintas, sendo que os principais tipos são:
CONNECT
Usado para clientes enviarem solicitações de conexão para o broker.
PUBLISH
Usado pelo cliente/remetente para publicar mensagens para o broker.
SUBSCRIBE
Usado pelo cliente/receptor para receber mensagens do broker.
Na tabela a seguir, apresentamos uma lista dos tipos de 
mensagens do MQQT.
Valor Nome Direção Descrição
0
Reservado Proibido Reservado
1 CONNECT
Cliente
para servidor
Requisição do cliente para 
conectar ao servidor
2 CONNACK Servidor para 
cliente
Reconhecimento da 
conexão
Ver tabela complete na plataforma
Entre as principais vantagens do MQTT estão:
Já as principais desvantagens do MQTT são:
PROTOCOLO COAP
O CoAP foi desenvolvido pelo grupo de trabalho para Ambientes RESTful Limitados da IETF
(CoAP: RFC 7252 Constrained Application Protocol, 2021). A IETF padronizou diversos
protocolos com o objetivo de incorporar dispositivos com recursos limitados – em energia,
memória, processamento e largura de banda – tais como:
• 6LoWPAN para adaptar IPv6 a LLNs, que são redes com baixa potência e perdas.
• RPL para rotear sobre os links flutuantes e compressão para otimizar camadas de
protocolo superiores.
O protocolo CoAP completa esta pilha formando um conjunto de protocolos padronizado. Nesse
cenário, a IoT baseada em IP torna-se interessante para aplicações industriais. Ele é formado
por duas subcamadas: uma de transação e outra de solicitação/resposta.
Imagem: Sérgio Monteiro. Pilha dos protocolos HTTP e CoAP.
A camada de solicitação/resposta é responsável por gerenciar recursos através dos métodos GET,
PUT, DELETE e POST, enquanto a camada de transação percebe o mecanismo de confiabilidade ao
processar mensagens, bem como fornece detecção de duplicação de mensagens. Na camada de
transação, uma mensagem pode ser de quatro tipos (Constrained Application Protocol (CoAP), 2021):
CONFIRMADA (CON), NÃO CONFIRMADO (NON), RECONHECIMENTO (ACK), REINICIAR
(RST).
CONFIRMADA (CON)
Algumas mensagens requerem uma confirmação, seja apenas para saber que
chegaram ou também para entregar a resposta a uma solicitação.
NÃO CONFIRMADO (NON)
Algumas mensagens não requerem confirmação. Isso é particularmente
verdadeiro para mensagens que são repetidas regularmente para requisitos
de aplicação, como leituras repetidas de um sensor em que a chegada
eventual é suficiente.
RECONHECIMENTO (ACK)
Uma mensagem de reconhecimento confirma a chegada de uma mensagem
de confirmação específica (identificada por seu ID de transação).
REINICIAR (RST)
A mensagem foi recebida, mas não pôde ser processada, pois falta algum
contexto para processá-la adequadamente.
Veja a seguir as principais vantagens do protocolo CoAP:
As principais desvantagens do protocolo CoAP são:
PROTOCOLO XMPP-IOT
O XMPP-IoT é um protocolo aberto, padronizado pela Força-Tarefa de
Engenharia da Internet, assim como HTTP e CoAP, (An Overview of XMPP,
2021). Logo no início, ele era conhecido como Jabber. Foi projetado para
ser usado em aplicativos de mensagens instantâneas ou bate- papo.
Devido às suas características, ele é utilizado com sucesso para aplicações
de IoT. Basicamente, é um protocolo de comunicação baseado em XML
que usa a arquitetura cliente-servidor rodando sobre TCP e que possui
extensões que possibilitam o uso do modelo de publicação-assinatura.
As extensões permitem que entidades XMPP criem tópicos e publiquem
informações. Uma notificação de evento é transmitida a todas as entidades que se
inscreveram em um nó específico. Os clientes e servidores em XMPP comunicam-
se entre si usando fluxos XML para trocar dados na forma de stanzas XML
(unidades de dados estruturados semânticos). Três tipos de stanzas são definidos,
(Extensible Messaging and Presence Protocol (XMPP): Core, 2021):
A seguir, apresentamos um exemplo de uma sessão do XMPP em que as
stanzas de saídas enviadas pelo cliente são precedidas de C e as de
entrada que são entregues pelo servidor são precedidas de S.Uma stanza de presença notifica as entidades sobre atualizações de status.
Sua função é fazer a inscrição no XMPP. Se houver interesse na presença de
algum JID, um cliente assina sua presença e, toda vez que um nó enviar uma
atualização de presença, ele será notificado. Uma stanza iq fornece uma
interação do tipo pergunta-resposta. No caso do exemplo anterior, o cliente C
faz uma solicitação da lista de contatos do servidor na linha 3, ao passo que,
na linha 6, o servidor S retorna a lista de contatos. Sua função é semelhante
aos métodos HTTP GET e POST.
Entre as principais vantagens do protocolo XMPP estão:.
As principais desvantagens do protocolo XMPP são:
PROTOCOLO RESTFUL HTTP
O HTTP é o protocolo fundamental usado para a Web do modelo cliente-servidor em
que a comunicação entre um cliente e um servidor ocorre por meio de uma
mensagem do tipo solicitação/resposta: o cliente envia uma mensagem de solicitação
HTTP e o servidor retorna uma mensagem de resposta, contendo o recurso
solicitado, caso a solicitação tenha sido aceita. Já o REST é um conjunto de regras
que especifica como o Servidor e o Cliente devem interagir, ou seja, é uma
arquitetura. Há, ainda, o conceito de RESTful, que basicamente significa que um
serviço da Web implementa o estilo de arquitetura REST. Essa arquitetura, com o
protocolo HTTP, tem sido muito aplicada para sistemas de IoT (DIZDAREVIĆ et al,
2019).
A combinação do protocolo HTTP com REST permite que os dispositivos
possam disponibilizar suas informações de estado, devido à forma
padronizada de criar, ler, atualizar e excluir dados, ou seja, às chamadas
operações CRUD. De acordo com esse mapeamento, as operações de
criação, atualização, leitura e exclusão de recursos correspondem aos
métodos HTTP POST, GET, PUT e DELETE, respectivamente. Na prática,
aplicações REST HTTP possibilitam que os desenvolvedores possam
construir um modelo REST para diferentes dispositivos IoT e trabalhar com
dados nos formatos JSON e XML, por exemplo.
Na imagem a seguir, apresentamos um exemplo de uma interação de
solicitação/resposta REST HTTP entre dois clientes e um servidor.
Imagem: Sérgio Monteiro. Exemplo do Modelo de interação REST HTTP.
No exemplo, o cliente REST HTTP (A) solicita adicionar um recurso no lado do servidor (B).
Para isso, é necessário especificar no cabeçalho do método POST a raiz do recurso que será
adicionado (/resources), a versão HTTP (no caso é 1.1), o tipo de conteúdo (Content-Type),
que, neste caso, é um arquivo JSON (application/json) que representa um recurso específico
e, finalmente, o próprio objeto JSON ({“id”: 1, name: “test”}). A resposta do servidor especifica
se a solicitação foi bem-sucedida, especificando os códigos de status padrão HTTP. No caso do
exemplo, o servidor respondeu o código 201.
Ainda analisando o exemplo, no caso do cliente (C), é feita uma solicitação de um recurso. Então,
nesse caso, ele precisa utilizar o método GET com a especificação de um URI específico. No
caso de exemplo, ele usou GET /resources /1, que contém a raiz do recurso e o id do próprio
recurso. Agora, o servidor retornou o objeto JSON que representa o recurso.
Algumas das principais vantagens do REST são:
Separação entre o cliente e o servidor: com
a separação da interface do usuário do
servidor e do armazenamento de dados, é
possível melhorar a portabilidade da
interface para outros tipos de plataformas, o
que implica no aumento da escalabilidade,
flexibilidade e confiabilidade dos projetos,
pois os desenvolvedores podem trabalhar de
forma independente nos diferentes
componentes do projeto.
Independência de plataforma e de
linguagens de programação: isso
ocorre porque a comunicação com
as aplicações é feita através de API
REST que permitem utilizar
servidores PHP, Java, Python ou
NodeJS.
Veja algumas das desvantagens do REST:
Apesar do uso do protocolo de transporte
TCP que fornece entrega confiável de
grandes quantidades de dados, o que é uma
vantagem em conexões que não têm
requisitos estritos de latência, ele cria
desafios em ambientes com recursos
limitados. Um dos principais problemas é
que os nós restritos, na maioria das vezes,
enviam pequenas quantidades de dados
esporadicamente e a configuração de uma
conexão TCP leva tempo, produzindo
sobrecarga desnecessária.
Utilização do protocolo TLS
(Transport Layer Security) como
mecanismo de segurança. O TLS
usa um processo de handshake
que, na prática, adiciona tráfego
adicional a cada estabelecimento
de conexão que pode consumir os
recursos dos dispositivos de IoT.
PROTOCOLO DDS
O DDS define um modelo de comunicação do tipo publicação/assinatura em tempo real
totalmente distribuído ponto a ponto, ou seja, sem broken (Object Management Group, 2014).
Ele fornece comunicação de alto desempenho, escalabilidade e disponibilidade e dá suporte
para a especificação de contratos de QoS entre publicadores e consumidores de dados, além
de ter mecanismos para tratar com aspectos de tempo real, como prioridade e outras políticas
de QoS específicas. Ele permite a interoperabilidade entre programas desenvolvidos em
diferentes linguagens de programação, bem como descoberta automática de publicadores e
assinantes de DDS. De forma semelhante ao que ocorre com o MQQT, possui Tópicos DDS que
são entidades para transferência de informações onde as aplicações podem publicar, ou
assinar e podem ser considerados como tabelas de banco de dados relacionais distribuídas.
As principais entidades na arquitetura DDS incluem:
O Domínio DDS que contém o espaço global de dados compartilhados é totalmente distribuído pela rede ponto a ponto 
formada pelos nós da rede sem qualquer agente intermediário, ou entidade de gerenciamento centralizado como o broken.
Na imagem a seguir, apresentamos o modelo conceitual do 
espaço global de dados.
Imagem: Sérgio Monteiro. Modelo conceitual do espaço global de dados.
O participante do domínio é o ponto de entrada para a troca de mensagens em
domínios específicos que fazem a associação entre publicadores e assinantes e
os domínios aos quais pertencem. Ele é usado para criar editores, assinantes,
escritores de dados (Data Writer), leitores de dados (Data Reader) e tópicos em
um domínio.
Entre as principais vantagens do protocolo DDS estão:
E entre as principais desvantagens do protocolo DDS estão:
PROTOCOLO AMQP
AMQP é um protocolo da camada de aplicação de padrão aberto que segue o
paradigma publicar-assinar, conforme definido pelo OASIS, 2012. Ele é projetado para
redes orientadas a mensagens e tem suporte para arquitetura de publicador/assinante.
Ele faz uso do TCP como protocolo de transporte para fornecer comunicação confiável.
Além disso, para fornecer QoS, garante três níveis de entrega, (Protocols and
Interoperability, 2021):
• QOS 0: MAIS UMA VEZ
• QOS 1: PELO MENOS UMA VEZ
• QOS 2: EXATAMENTE UMA VEZ
QOS 0: MAIS UMA VEZ
Garante que uma determinada mensagem só seja recebida pelo assinante no máximo uma
vez. Isso significa que a mensagem pode nunca chegar. O remetente e o destinatário tentarão entregar a 
mensagem, mas se algo falhar e a mensagem não chegar ao seu destino (por exemplo, devido a uma 
conexão de rede), a mensagem pode ser perdida. Esse QoS tem a menor sobrecarga de tráfego de rede 
e menos carga para o cliente e o broker e geralmente é útil para dados de telemetria, em que não importa 
se alguns dos dados são perdidos.
QOS 1: PELO MENOS UMA VEZ
Garante que uma mensagem chegará ao destinatário pretendido uma ou mais vezes. O remetente 
continuará a enviar a mensagem até receber uma confirmação do destinatário, atestando que recebeu a 
mensagem. O resultado dessa QoS é que o destinatário pode receber a mensagem várias vezes, 
aumentando a sobrecarga da rede mais do que no QoS 0, (devido a acks). Além disso, mais carga é 
colocada sobre o remetente, pois ele precisa armazenar a mensagem e tentar novamente caso não receba 
uma confirmação em um tempo razoável.O mais caro do QoS (em termos de tráfego de rede e carga para o remetente e o receptor), esse QoS
garantirá que a mensagem seja recebida por um destinatário exatamente uma vez. Isso garante que o
receptor nunca obtenha cópias duplicadas da mensagem e, eventualmente, as receba, mas ao custo extra de
sobrecarga de rede e complexidade exigida pelo emissor e pelo receptor.
Com publicadores e assinantes, ambos usando um broker, o AMQP tem mais dois componentes:
trocas e filas de mensagens.
Na imagem a seguir, apresentamos um exemplo de como ocorre a comunicação no AMQP.
Imagem: Sérgio Monteiro. Comunicação no AMQP.
QOS 2: EXATAMENTE UMA VEZ
As trocas executam a funcionalidade de roteamento fazendo o encaminhamento das 
mensagens para as filas de mensagens apropriadas. Essas mensagens podem ser 
armazenadas em filas de mensagens antes de serem encaminhadas aos assinantes.
AMQP usa dois tipos de mensagens diferentes:
Entre as principais desvantagens do protocolo AMQP estão:

Outros materiais