Buscar

Plataformas de Middleware e Protocolos para IoT

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 43 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 43 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 43 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 03
INTRODUÇÃO
A Internet das Coisas, também conhecida como Internet dos Objetos, se refere à
interconexão de objetos físicos (coisas) que contêm sensores com serviços da WEB, nos quais
os dados podem ser processados e, a partir disso, viabilizar tomadas de decisão. Essa
conectividade permite que os objetos possam comunicar-se com as pessoas e entre si. As
aplicações da IoT são diversas, como, por exemplo, o monitoramento e controle das condições
de ambientes, de saúde, de frota de veículos, monitoramento, além do controle industrial e da
automação residencial.
As tecnologias e protocolos que possibilitam que as aplicações IoT tenham tido tanto sucesso e
ainda estejam em expansão possuem diversas características que levam em conta as
limitações de recursos, um ponto fundamental nesse tipo de aplicação. Ao longo deste estudo,
exploraremos essas tecnologias e protocolos, destacando seus aspectos principais, vantagens
e desvantagens.
INTRODUÇÃO
SERVIÇOS DA NUVEM
A integração entre as diversas tecnologias tem se tornado uma realidade cada vez mais atual.
Isso se deve, especialmente, ao uso intensivo dos serviços da nuvem. Basicamente, trata-se
de um conjunto de recursos computacionais que oferece meios para que entidades como
programas e dispositivos possam se comunicar na Internet. Os modelos mais comuns de
serviços na nuvem são:
SAAS
Abreviação para software como um serviço – em inglês, Service as a Software. Trata-se de
uma aplicação oferecida via Internet por um determinado preço, que varia conforme as
necessidades de uso da parte contratante. Ele viabiliza que o usuário utilize apenas as
funcionalidades do sistema que serão úteis para suprir suas necessidades. A facilidade desse
serviço é que o usuário não precisa se preocupar com questões relacionadas à instalação,
ambiente para execução, manutenção e upgrades.
PAAS
Abreviação para plataformas como um serviço – em inglês, Plataform as a Service. Aqui, é
disponibilizado um ambiente de desenvolvimento para que o contratante possa trabalhar na
criação de seus próprios programas. De um modo mais concreto, significa que os
desenvolvedores terão acesso à infraestrutura, servidores, ferramentas, bibliotecas e bancos
de dados.
IAAS
Abreviação para infraestrutura como um serviço – em inglês, Infrastructure as a Service. Nesse
modelo, os servidores, componentes de armazenamento, o espaço físico e a rede são
oferecidos para os contratantes.
DAAS
Trata-se do modelo de desktop como um serviço – em inglês, Desktop as a Service.
Basicamente, é uma máquina virtual disponibilizada na nuvem.
XAAS
Trata-se de um termo genérico usado para referenciar a computação sob demanda. A ideia
desse modelo é “tudo como um serviço”, ou seja, um modelo que oferece qualquer função ou 
recurso para uso e pagamento de acordo com a necessidade do contratante. Ele generaliza 
diversos serviços, tais como: e-mail, ERP, redes e banco de dados e até mesmo modelos de 
serviços, tais como o CaaS, MaaS, DRaaS e NaaS.
MAAS
Monitoramento como um serviço
DRAAS
Recuperação de desastres 
como um serviço
NAAS
Nesse cenário de diversos modelos de serviço na nuvem, ainda existe o IoTPaaS, que é uma
extensão do PaaS que inclui características específicas para aplicações de Internet das
Coisas. Assim, temos diversas plataformas de middleware em que o software viabiliza a
comunicação entre o dispositivo e a rede. A primeira dessas plataformas que vamos abordar é
a Xively.
Redes como um serviço
CAAS
Comunicação como um serviço
XIVELY
A Xively é uma plataforma de propriedade do Google para a implantação de aplicações de 
Internet das Coisas na nuvem que permite que as empresas possam conectar e gerenciar
produtos na rede e, assim, transmitir e analisar os dados produzidos em outros sistemas.
Logo que foi criada, em 2007, ela era conhecida como Pachube. É disponibilizada como 
Plataforma como Serviço, inclui serviços de diretório de dados, bem como segurança de 
dados e uma interface de usuário da web. Basicamente, trata-se de uma infraestrutura de 
coleta, gerenciamento e distribuição de dados. Além disso, ela também fornece API com 
suporte para as linguagens de programação: Android, Arduino, C, Python e Java (RAY,
2016).
A Xively fornece ferramentas para modelar a conexão entre as diversas partes de um negócio.
Ela tem suporte para a maioria das estruturas de IoT e microcontroladores do mercado para 
criar um projeto ou produto 'inteligente'. Uma interface Xively Web é fornecida para ser usada 
na implementação de uma aplicação front end. Ela pode implementar os seguintes protocolos 
e recursos:
HTTP API MQTT
Na prática, o uso desses protocolos facilita a conectividade dos dispositivos com a nuvem.
A Xively viabiliza a criação de aplicações para processamento em tempo real e
armazenamento na nuvem. Para poder usar os serviços da nuvem Xively, é necessário
registrar-se no site de soluções em nuvem do Google (Google Cloud IoT). Apenas depois
de fazer a criação da conta, os desenvolvedores podem criar aplicações de IoT. A Xively
tem dois conceitos básicos:
DISPOSITIVO XIVELY
É o dispositivo, ou o projeto de IoT que será conectado na rede. A ideia é que o dispositivo
funcione como um envelope contendo os dados.
CANAIS
É o fluxo de dados (streaming) relacionados aos sensores. Normalmente, o número do canal
é igual ao número do sensor.
Cada dispositivo conectado recebe um identificador único que serve para especificar o fluxo
de dados e metadados do dispositivo conectado. Assim que isso for feito, as permissões nos
dispositivos IoT são atribuídas usando as API disponíveis. As permissões disponíveis são:
CRIAR ATUALIZAR EXCLUIR LER
Para que uma aplicação possa se comunicar com a plataforma de serviços Xively, é necessária
a utilização de uma API chamada de Xively REST API. Na imagem a seguir, apresentamos a 
arquitetura da plataforma Xively.
Imagem: A survey of commercial frameworks for the internet of things, Derhamy, H.; Eliasson, 
J.; Delsing, J.; Priller, P. 2015, p. 5. Adaptado por Sérgio Monteiro.
Arquitetura da plataforma Xively.
Como vimos na imagem, a plataforma fornece um barramento de mensagem central que faz o
roteamento das mensagens entre dispositivos de protocolos diferentes. O barramento de
mensagem se combina com a API Xively para MQTT, HTTP e Web Sockets para fornecer uma
camada de interoperabilidade. Além disso, o framework possui serviços extras que permitem
realizar serviços de negócios e integração de sistemas.
A Xively oferece vantagens e desvantagens, dentre as quais, as principais estão apontadas a
seguir:
VANTAGENS
• Suporte direto do Google.
• Fácil integração com dispositivos 
usando API RESTful.
DESVANTAGEM
• Pouco suporte para
notificações.
WSO2
A WSO2 é uma provedora de tecnologia de código aberto (A Reference Architecture For
The Internet of Things, 2021). Ela dá suporte para o monitoramento, gerenciamento e
interação de dispositivos de IoT de modo a viabilizar, assim, o processo de
comunicação entre a IoT e a nuvem. A WSO2 possui cinco camadas horizontais que
são: comunicação com o cliente externo, processamento e análise de eventos,
camada de agregação, comunicação e dispositivos; e duas camadas transversais
que são: gerenciamento de dispositivos e identidade e gerenciamento de acesso.
Na imagem a seguir, apresentamos como a arquitetura da WSO2 é estruturada.
Imagem: Sérgio Monteiro
Arquitetura do WSO2.
Agora, vamos entender melhor o 
que significa cada camada. Na 
camada horizontal, temos:
DISPOSITIVOS IOT
Essa camada tem os recursos necessários para que os dispositivos possam se
conectar à Internet. Podem existir dispositivos de vários tipos, mas para que
possam ser considerados dispositivos IoT, eles precisam ter recursos de
comunicação para estabelecer uma conexão direta,ou indireta à Internet. Alguns
exemplos de dispositivos de conexões diretas são:
• Arduino com conexão Ethernet Arduino.
• Arduino Yún com uma conexão Wi-Fi.
• Raspberry Pi conectado via Ethernet ou Wi-Fi.
• Intel Galileo conectado via Ethernet ou Wi-Fi.
Exemplos de dispositivos que conectam indiretamente 
são: 
• Dispositivos ZigBee conectados por meio de um gateway ZigBee.
• Dispositivos Bluetooth, ou Bluetooth Low Energy conectando-se por 
meio de um telefone celular.
• Dispositivos que se comunicam por rádios de baixa potência com um 
Raspberry Pi.
Para que um dispositivo possa ser reconhecido, ele precisa de uma 
identidade. A identidade pode ser uma das seguintes:
• Um identificador exclusivo (UUID) gravado no dispositivo.
• Um UUID fornecido pelo subsistema de rádio (por exemplo, 
identificador Bluetooth, endereço MAC Wi-Fi).
• Um OAuth2 Refresh/Bearer Token.
• Um identificador armazenado em memória não volátil, como EEPROM.
CAMADA DE COMUNICAÇÃO
Habilita os dispositivos a se comunicarem com aplicações front-end, painéis e portais Web via
APIS. A camada de comunicação dá suporte para a conectividade dos dispositivos. Existem 
vários protocolos para comunicação entre os dispositivos e a nuvem. Os três protocolos 
potenciais mais conhecidos são:
HTTP/HTTPS.
MQTT.
Protocolo de aplicativo restrito (CoAP).
AGREGAÇÃO
As comunicações entre os diferentes dispositivos são agregadas e roteadas para um 
dispositivo específico. Isso é feito através das transformações realizadas entre diferentes 
protocolos. A importância dessa camada tem três motivos:
• Capacidade de suportar um servidor HTTP e um broker MQTT para interagir 
com os dispositivos.
• Capacidade de agregar e combinar comunicações de diferentes dispositivos e 
de rotear comunicações para um dispositivo específico.
• Capacidade de oferecer API baseadas em HTTP que são usadas como um 
recurso de mediação em uma mensagem MQTT indo para o dispositivo.
PROCESSAMENTO DE EVENTOS E ANÁLISES
Captura os eventos que ocorrem no dispositivo IoT e fornece, assim, a capacidade de 
processar e agir sobre esses eventos. Um importante recurso dessa camada é o de
armazenar os dados em um banco de dados. Ela pode fazer isso das seguintes formas:
• Através do modelo tradicional, ou seja, implementar um aplicativo do lado do
servidor com conexão a um banco de dados.
• Usar uma plataforma de análise de big data que seja escalável em nuvem.
• Outra abordagem é oferecer suporte ao processamento de eventos complexos para 
iniciar atividades e ações quase em tempo real com base nos dados dos dispositivos 
e do resto do sistema.
CAMADA DE COMUNICAÇÕES COM CLIENTES 
EXTERNOS
Fornece uma maneira para que os dispositivos se comuniquem fora do sistema orientado a 
dispositivos. Isso pode ser feito por front-end e portais baseados na web que interajam com 
dispositivos e com a camada de processamento de eventos, ou por painéis que tenham 
visualizações de análises e processamento de eventos, ou ainda, interagir com sistemas fora 
da rede usando comunicações máquina-a-máquina por API.
Na camada vertical, temos:
GERENCIAMENTO DE DISPOSITIVOS
Faz a comunicação com os dispositivos por meio de vários protocolos e fornece controle 
individual e de diversos dispositivos. Também faz o gerenciamento remoto dos programas 
implantados nos dispositivos. Nessa camada, é mantida a lista de identidades de dispositivos e 
mapeamento dos seus proprietários. Ele também gerencia os controles de acesso sobre os 
dispositivos com a camada de gerenciamento de identidade e acesso. Existem três níveis de 
dispositivos:
Dispositivos totalmente gerenciados: são aqueles que ativam e executam um agente de 
gerenciamento de dispositivos, por exemplo:
• Gerenciar o software no dispositivo.
• Ativar/desativar recursos do dispositivo (câmera, hardware etc.). Gestão de controles e 
identificadores de segurança.
• Monitorar a disponibilidade do dispositivo.
Dispositivos totalmente gerenciados: são aqueles que ativam e 
executam um agente de gerenciamento de dispositivos, por exemplo:
• Gerenciar o software no dispositivo.
• Ativar/desativar recursos do dispositivo (câmera, hardware etc.). 
Gestão de controles e identificadores de segurança.
• Monitorar a disponibilidade do dispositivo.
• Manter um registro da localização do dispositivo.
• Bloquear, ou limpar o dispositivo remotamente.
Os dispositivos não gerenciados: podem se comunicar com o resto da rede,
mas não
têm nenhum agente envolvido. Isso pode incluir dispositivos em que as
restrições são muito pequenas para suportar o agente. O gerenciador de
dispositivos ainda pode manter informações sobre a disponibilidade e
localização do dispositivo, caso esteja disponível.
Dispositivos semigerenciados: são aqueles que implementam algumas
partes do
gerenciamento de dispositivos, como o controle de recursos, mas não o
gerenciamento de software.
GERENCIAMENTO DE ACESSO
Fornece serviços de gerenciamento de identificação e de acesso. Essa camada precisa
fornecer os seguintes serviços:
• Emissão e validação do token OAuth2.
• Outros serviços de identidade, incluindo SAML2 SSO e suporte OpenID Connect
para identificar solicitações de entrada da camada da Web.
• PDP XACML.
• Diretório de usuários (por exemplo, LDAP).
• Gerenciamento de política para controle de acesso (ponto de controle de
política).
A WSO2 oferece a integração de API, serviços Web e de diversas aplicações. Essa 
característica – a da integração - é a principal razão da sua existência como plataforma
WSO2, com a qual é possível gerenciar API, acessos e identidades, além de outros tipos de
análises avançadas.
THINGSPEAK
A ThingSpeak é uma plataforma com recursos muito semelhantes ao Xively e tem como base
a tecnologia de nuvem pública (ThingSpeak for IoT Projects, 2021). Ela permite que seja 
feita a coleta de dados em tempo real e a transmissão de forma privada para a nuvem. 
Esses dados podem ser analisados por aplicações desenvolvidas em Matlab e Arduino, por 
exemplo, e, se necessário, uma ação pode ser tomada de acordo com o que for programado 
a partir da detecção de certos padrões de eventos. Na imagem a seguir, apresentamos um 
esquema que representa como o ThingSpeak trabalha.
Imagem: Sérgio Monteiro.
Esquema de funcionamento do ThingSpeak.
O ThingSpeak permite desenvolver uma aplicação que faça a leitura de
sensores, rastreamento em tempo real da localização de objetos e a criação de
uma “rede social de coisas”. A API da plataforma também permite o
processamento matemático de dados como cálculo de média, mediana,
somatório e arredondamento.
Essa característica de fazer análise e processamento online dos dados,
conforme eles chegam, é um dos motivos pelo qual a ThingSpeak é
normalmente utilizada para fazer prototipagem e prova de conceito de sistemas
IoT que requerem análises.
Algumas das principais características do ThingSpeak são:
• Recursos para fazer agregação, visualização e análise de fluxos de dados em tempo real
na nuvem.
• Facilidade para fazer a configuração de dispositivos para usar protocolos IoT populares,
como HTTP, por exemplo.
• Visualização dos dados dos sensores em tempo real. Agregar dados sob demanda de 
fontes de terceiros.
• Integração com o MATLAB que facilita trabalhar com dados de IoT.
• Aplicar o IoT analytics para fazer análises automaticamente com base no tratamento dos 
eventos.
• Prototipar e construir sistemas IoT sem a necessidade de configurar servidores, ou
desenvolver softwares da Web.
• O ThingSpeak possui vantagens e desvantagens, dentre as quais, as principais são
apontadas a seguir:
VANTAGENS
• Acesso à nuvem pública.
• API para armazenamento e análise de dados. Suporte às
• operações matemáticas.
DESVANTAGEM
• Pouco suporte para conexão simultânea de dispositivos.
OPENIOT
OpenIoT é uma plataforma de IoT de código aberto, que tem como característicasprincipais (OpenIoT: Open Source cloud solution for the Internet of Things, 2021):
• Incorporação de dados e aplicativos IoT em infraestruturas de
computação em nuvem.
• Fornecimento de acesso seguro a aplicações compatíveis.
• Fornecimento de suporte para a descoberta de sensores e dados em
tempo real.
• Suporte a sensores móveis e parâmetros de qualidade de serviço.
No OpenIoT, as etapas de registro, aquisição de dados e implantação de sensores são 
gerenciadas pelo X-GSN, que é o responsável por anotar semanticamente os dados do sensor 
e os metadados. O X-GSN é semelhante aos sistemas Apache Storm ou Spark. Ele é usado 
para escrever scripts que permitem a integração de qualquer sensor no OpenIoT.
Os dados de todas as entradas (dispositivos móveis, sensores, sistemas corporativos etc.)
chegam ao X-GSN que, por sua vez, anota os dados com os metadados necessários. Antes 
que os dados possam entrar no sistema, cada sensor precisa ser registrado no sistema de 
banco de dados IoT usando a linguagem de descrição de ontologia SSN. Uma vez registrado, 
este sistema pode enviar dados para a nuvem centralizada ou eles também podem ser 
distribuídos.
O termo ontologia é muito importante em computação e empregado em diversos contextos. 
Alguns dos trabalhos que foram importantes para aplicá-lo em ciência da computação 
foram os de Gruber (1995), Guarino e Giaretta (1995) e Fikes e Farquihar (1999). A 
ontologia é usada como um modelo de dados que representa um conjunto de conceitos 
dentro de um domínio e as relações entre esses conceitos. Por exemplo, ela descreve:
• Indivíduos: os objetos básicos.
• Classes: conjuntos, coleções ou tipos de objetos.
• Propriedades de atributos, recursos, características ou parâmetros que os objetos 
podem ter e compartilhar.
• Relações: maneiras pelas quais os objetos podem se relacionar. 
Eventos: a mudança de atributos ou relações.
ONTOLOGIA
O X-GSN cuida de todos os dados de streaming e permite que sejam 
consultados e agregados antes de serem transferidos para o OpenIoT.
O conceito fundamental do X-GSN é o de sensor virtual, que é capaz de representar qualquer
entidade abstrata (por exemplo, dispositivos físicos) que coleta quaisquer parâmetros. Para 
tornar um sensor virtual acessível a partir do restante da plataforma OpenIoT, cada sensor 
virtual precisa se registrar no Linked Sensor Middleware.
O LSM é outro componente central do OpenIoT que é responsável por tratar com a cadeia de 
coleta de dados do sensor. Ele transforma e anota os dados que vêm de sensores virtuais –
por meio de X-GSN – em uma representação de dados vinculados, ou seja, RDF, e os 
armazena no banco de dados.
A plataforma OpenIoT depende ainda do OpenLink Virtuoso – também conhecido como
Virtuoso Universal Server – que é um mecanismo de banco de dados híbrido que combina a 
funcionalidade de um sistema gerenciador de banco de dados tradicional, sistema gerenciador 
de banco de dados orientado a objetos, banco de dados virtual, RDF, XML, texto livre, servidor 
de aplicativos da Web e funcionalidade de servidor de arquivos em um único sistema. A 
arquitetura da plataforma de dados OpenIoT é ilustrada a seguir.
Imagem: Sérgio
Monteiro.
Arquitetura da 
plataforma OpenIOT.
EXEMPLO
Um exemplo de aplicação da OpenIoT é para a melhoria da eficiência em
operações industriais, como manufatura e agricultura. A plataforma OpenIoT
pode ser usada para monitorar o sensoriamento em ambientes de
manufatura através da análise dinâmica de sensores em tempo real dos
dados para fornecer indicadores de fabricação necessários, que é um fator
que pode aumentar a agilidade da tomada de decisão e do processo de
fabricação
THINGSBOARD
ThingsBoard é uma plataforma de IoT de código aberto para coleta, processamento 
de dados, visualização e gerenciamento de dispositivos (ThingsBoard: Open-source 
IoT Platform, 2021). Ela oferece suporte de conexão a protocolos IoT, como:
MQTT COAP HTTP
Também dá ao usuário a capacidade de gerenciar dispositivos através do registro,
gerenciamento e monitoramento de diferentes dispositivos, além de fornecer uma
API para aplicativos do lado do servidor para enviar comandos para dispositivos e
vice-versa.
O ThingsBoard possui suporte para bancos de dados como HSQLDB, PostgreSQL e 
Cassandra. Ele tem um mecanismo para análise de mensagens recebidas e pode ser integrado 
com Kafka e Apache Spark para processamento mais complexo. A arquitetura do ThingsBoard 
é apresentada a seguir.
Imagem: Sérgio Monteiro.
Arquitetura do ThingsBoard.
Suas principais caraterísticas são:
• COMBINA ESCALABILIDADE, DESEMPENHO E
TOLERÂNCIA A FALHAS.
• APRESENTA FÁCIL GERENCIAMENTO DE TODOS
OS DISPOSITIVOS CONECTADOS USANDO API
DO LADO DO SERVIDOR.
THINGSBOARD
• ALERTAS EM TODOS OS EVENTOS DE 
TELEMETRIA, ATUALIZAÇÕES E INATIVIDADE.
• TEM CAPACIDADE PARA TRABALHAR COM 
MUITOS DISPOSITIVOS AO MESMO TEMPO.
• FAZ A TRANSFORMAÇÃO DOS DADOS DOS
DISPOSITIVOS E FACILITA ALARMES PARA
DISPARAR

Continue navegando