Buscar

Anotações Cloud Iot em Phyton


Prévia do material em texto

Tema 2: Conceitos de Internet Das Coisas 
 
DESCRIÇÃO 
Introdução, conceituação e visão geral sobre Internet das Coisas e seus principais 
componentes. 
 
 
Módulo 01 
 
● IOT - Internet of things - Internet das coisas 
● Muitos tipos de dispositivos podem ser conectados à internet: geladeira, fogão, 
celulares, roupas e etc. 
● Tecnologia RFID 
● Sobrecarga da internet 
 
Principais elementos: 
● Arquitetura: 
○ A troca é feita por uma arquitetura distribuída 
○ Comunicação entre si e serviços hospedados na nuvem 
○ 
○ Se comunicam com a nuvem através de um servidor gateway 
■ Gateway Edge > Dispositivos IOT > Cloud e aplicações 
 
● Dispositivos 
○ Muitos dispositivos interligados 
○ Cada um deles consiste em um software embutido em um hardware ultra 
especializado (normalmente de tamanho pequeno) e conectado à internet. 
● Portanto, qualquer aparelho conectado capaz de coletar e transmitir dados, trabalhando 
de forma independente ou em sincronia com outros aparelhos, é considerado um 
dispositivo de IoT. 
 
● Hardware: 
○ Placa de circuito baseado em microcontrolador: 
■ Não possuem Sistema operacional 
■ Ex: Arduino 
■ São carregados por um conjunto de instruções no firmware ou na 
memória para desempenhar funções bem específicas 
■ Principais funções: 
● Controlar outros dispositivos. 
● Servir como hub intermediário de comunicação. 
● Coletar dados por meio de sensores. 
● Realizar cálculos simples que não requeiram muita memória 
(sendo normalmente sua maior limitação). 
○ Computador completo que precisa de um SO: 
■ Raspberry Pi 
■ Normalmente linux 
○ Componentes básicos de um Hardware IoT: 
■ Módulo de processamento central responsável pelo esforço 
computacional e pelo armazenamento dos dados. 
■ Fonte de força. 
■ Um ou mais conversores analógico-digitais. 
■ Módulos de interfaces periféricos e de comunicação, que podem (ou não) 
estar embutidos em um único chip. 
● Sensores: 
○ Dispositivos usados para medições em tempos reais 
○ Conversação de um medição física em sinais elétricos digitais ou analógicos 
para serem manipulados 
○ Alguns sensores no mercado: Movimento, deslocamento, nível, intensidade 
luminosa, cor e etc, 
○ Não existe IoT sem sensores e aquisição de dados. 
● Placas Comerciais: 
○ Arduino 
■ Compreende uma família de placas de circuito de código aberto. 
■ Elas estão baseadas em microprocessadores de baixo custo com 
software embarcado que devem ser programados em C/C++. 
■ O Arduino é facilmente programável. Para isso, basta: 
● Conectá-lo via porta USB a um computador no qual sua IDE 
esteja instalada. 
● Escrever o código. 
● Sincronizá-lo com o hardware. 
○ Raspberry Pi 
■ Computador completo com linux embutido 
■ Pode ser conectado e usado como se fosse um computador 
convencional 
■ Open source 
● O dispositivo de IoT é composto por hardware e software que se conecta à internet 
para transmitir dados coletados 
 
 
 
 
 
Módulo 02 
 
● Os esforços na busca pelas padronizações e pelas melhores práticas de IoT estão 
ocorrendo; dessa maneira, futuros padrões poderão emergir de um ou de vários dos 
consórcios existentes. 
 
● PROTOCOLOS DE COMUNICAÇÃO DE DADOS USADOS EM IOT 
○ 2 tipos de comunicação: 
■ Device to device: 
● Comunicação entre si 
■ Device to Gateway: 
● Comunicação com o gateway 
■ Gateway to data systems: 
○ Protocolo HTTP/HTTPS: 
■ Requisições e resposta sobre o protocolo TCP 
■ HTTPS é o indicado para troca de dados comerciais 
■ Desvantagens desses protocolos: 
● Sentido único de tráfego de dados, apenas cliente - servidor, 
contudo Iot é no sentido bidirecional. 
● Travamento e consome bastante recursos. 
● Não guarda estados e é necessário fazer conexões e 
autenticação 
○ Protocolo MQTT: 
■ Tradução: Transporte de telemetria de enfileiramento de mensagens 
■ Publicação e assinatura, os dispositivos podem comunicar de maneira 
assíncrona 
■ Em resumo, o MQTT é um protocolo de comunicação leve, eficiente e 
ideal para aplicações de IoT, permitindo uma comunicação assíncrona e 
confiável entre os dispositivos. 
■ O MQTT foi criado pela IBM e utiliza uma arquitetura cliente-servidor. Ele 
emprega o conceito de filas baseadas em tópicos: os clientes se 
inscrevem, ou melhor, assinam aquele tópico para que possam receber 
as informações necessárias. 
○ QOS: 
■ um conjunto de tecnologias e mecanismos que visam garantir a qualidade e 
priorização do tráfego de rede 
 
 
Serviços de IOS nas plataformas de Nuvem: 
 
● Amazon AWS IOT: 
○ Ambienta da Amazon para integração de dispositivos IoT 
○ Serviços especializados 
○ Suporta os protocolos de comunicação MQTT, HTTP/HTTPS e TLS.. 
● Microsoft Azure IoT Suite: 
○ Solução da microsoft para integração de dispositivos IoT 
○ A IoT Hub suporta os protocolos de comunicação MQTT,HTTP/HTTPS e AMQP 
○ Armazenamento em blobs 
○ Integração com Power BI, active directory e produtos microsoft 
○ ambiente de desenvolvimento (SDK) muito rico em bibliotecas; 
● Google Cloud IoT: 
○ A porta de entrada para os dados na plataforma de IoT da Google é chamada de 
communication broker 
○ Suporta MQTT e HTTPS 
○ Endpoint global 
○ Pub/sub 
 
 
 
Tema 03 - Plataformas de Middleware e Protocolos de Comunicação Para Iot 
 
● Xively: 
○ PaaS da Google 
○ A Xively viabiliza a criação de aplicações para processamento em tempo real e 
armazenamento na nuvem 
○ Protocolo: HTTP, MQTT 
○ Implantação de aplicações de Internet das Coisas na nuvem 
○ Trata-se de uma infraestrutura de coleta, gerenciamento e distribuição de dados. 
○ API com suporte para linguagens: 
○ Android, Arduino, C, Python e JAVA 
○ Canais: 
■ Fluxo de dados relacionado aos sensores 
■ ID único de para dispositivos para especificar o fluxo 
○ Dispositivo Xively 
■ Envelope de dados 
■ Dispositivos IOT 
○ Xively REST API - (Necessário para a comunicação com a plataforma de Serviços): 
■ 
○ Suporte direto do Google 
○ Pouco suporte para notificações 
. 
● WSO2 
○ 
○ 5 camadas horizontais 
○ Conectar dispositivos com serviços web 
○ 
● Thingspeak 
○ Linguagem MatLab 
○ Nuvem pública 
○ 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 
○ Cálculos matemáticos: média, mediana, somatório e etc 
○ Pouco suporte a conexão simultânea de dispositivos 
○ 
● OPEN IoT 
○ Open Source 
○ Acesso seguro a aplicações compatíveis 
○ Descoberta de sensores em dados reais 
○ Suporte a sensores móveis e parâmetros de qualidade de serviço 
○ X-GSN - Sensor virtual 
○ Os sensores precisam se cadastrar no Linked Sensor Middleware 
○ Melhoria da eficiência em operações industriais, como manufatura e agricultura, 
através no monitoramento de sensores em ambientes 
○ Protocolo COAP 
○ 
○ 
● Thingsboard 
○ Open source 
○ Visualização de gerenciamento de dispositivos 
○ MQTT, COAP E HTTP 
○ API para aplicativos de Servidor 
○ HSQLDB, POSTGRESQL, CASSANDRA 
○ Integração com Kafka e apache spark 
 
 
Módulo 02 - Protocolos de Comunicação. 
 
● MQTT - Transporte de Filas de mensagem de telemetria 
○ Protocolo de mensagens e protocolo aberto 
○ OASIS - Organização para o Avanço dos Padrões de Informação Estruturada 
○ Baseada em um Broker 
○ Servidor que faz a publicação e recebimento de dados com o padrão de mensagens 
publicação e assinatura. 
○ 
○ 
○ 
○ 
■ Broker faz a publicação e o recebimento dos dados 
■ O publicador transmite uma mensagem, registrando-a em um tópico de 
destino 
○ Protocolos: TCP e MQTT-SN para transmissão de dados 
○ Principais tipos de mensagem: 
■ CONNECT - Envio de se solicitação de conexão para o broker pelo cliente 
■ PUBLISH - Usado pelo cliente/remetente para publicar mensagens para o 
broker. 
■ SUBSCRIBE - Usado pelo cliente/receptor para receber mensagens do 
broker. 
■ UNSUBSCRIBE - Pedido de cancelamento de inscrição■ DISCONNECT - Cliente está desconectado 
○ Principais vantagens: 
■ Qualquer tipo de dado pode ser transportado pelo pacote 
■ Um dispositivo pode publicar seus dados independentemente do estado do 
servidor de assinatura 
○ Principais desvantagens: 
■ Utiliza o protocolo TCP que demanda mais recursos de processamento de 
memória 
■ O broken centralizado pode ser o ponto de falha; 
■ Em comparação com HTTP, é mais complexo de implementar. 
 
● COAP (Protocolo de aplicação restrita) 
○ Ambientes RESTful 
○ Camada de Serviço 
○ IETF 
■ Padronizou um conjunto de protocolos 
○ Formado por duas subcamadas: transação e solicitação/resposta 
■ 
■ Camada de solicitação/resposta 
● GET, PUT, DELETE e POST 
● Responsável pelo gerenciamento de recursos através dos métodos 
acima 
■ Camada de transação 
● Percepção do mecanismo de confiabilidade 
● Processamento de mensagens 
● Detecta duplicação de mensagens 
● São quatro tipo de mensagens 
○ CONFIRMADA (CON) 
■ Mensagens requerem confirmação 
○ NÃO CONFIRMADO (NON) 
■ Algumas mensagens não requerem confirmação 
○ RECONHECIMENTO (ACK) 
■ Uma mensagem de reconhecimento confirma a 
chegada de uma mensagem de 
confirmaçãoespecífica (identificada por seu ID de 
transação). 
○ REINICIAR (RST) 
■ A mensagem foi recebida, mas não pôde ser 
processada 
○ Desvantagens: 
■ é um protocolo não confiável. 
■ não faz a verificação da qualidade da decodificação da mensagem recebida 
■ Não é criptografado 
○ Vantagens 
■ UDP 
■ Pacotes pequenos 
■ ciclos de comunicação mais rápidos 
■ Mais vida útil das baterias dos dispositivos 
■ Tem menor latência e consumo de energia comparado ao HTTP 
● Caas -> Xaas 
● Protocolo XMPP-IOT 
○ Protocolo aberto 
○ Projetado para ser usado em aplicativos de mensagens instantâneas ou bate papo 
○ Baseado em XML - Extensible Markup Language 
■ 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 
■ Três tipos de status: 
● <Message> - Envio de informações 
○ To - destinatário da mensagem 
● <Presence> - Publicar- Assinar 
○ Várias entidades que se inscreveram a determinada entidade 
vão receber informações 
● <IQ> 
○ Mecanismo de solicitação resposta 
○ Semelhante ao HTTP 
○ Solicitação e resposta 
■ JID -Jaber ID: Endereço de nó em XMPP 
○ Vantagens: 
■ Flexibilidade 
■ Descentralização 
■ Arquitetura cliente servidor 
■ TLS (Transport Layer Security) 
● Garante confidencialidade e integridade dos dados 
○ Desvantagens 
■ Mensagens baseadas em texto e sem provisão para criptografia ponta a 
ponta. 
■ Sem provisão para qualidade de serviço. 
■ O protocolo XMPP tem uma grande sobrecarga de dados para vários 
destinatários 
● Protocolo DDS 
○ Sistema de distribuição de dados 
○ Visa permitir uma troca de dados escalável, em tempo real, confiável, de alto 
desempenho e interoperável usando um padrão de publish-subscribe. 
○ DDS atende as necessidades de aplicações como mercado financeiro, controle de 
tráfego aéreo, gestão de redes elétricas inteligentes, e outras aplicações de big data. 
○ Arquitetura 
■ Domínio 
■ Participante do Domínio 
■ Tópico 
■ Publicador 
■ Assinante 
■ DataWriter (escritor de dados) 
■ DataReader (leitor de dados) 
○ 
○ Vantagens: 
■ Facilidade na integração 
■ Eficiência de desempenho e escalabilidade 
■ Segurança avançada 
■ Padrão aberto 
■ Habilitado para QOS 
■ Descoberta escalonável 
○ Desvantagens: 
■ É muito pesado para ser usado em sistemas embarcados. 
■ DDS não faz interface com serviços da web. 
■ DDS consome duas vezes a largura de banda do protocolo MQTT. 
■ As políticas de QoS são aplicadas apenas em ambientes DDS restritos. 
● Protocolo AMPQ 
○ Protocolo Avançado de Enfileiramento de Mensagens 
○ 
○ Ele usa QoS e, portanto, garante a passagem segura de dados importantes. 
○ Usa a arquitetura de publicação/assinatura 
○ Garante a interoperabilidade de aplicações implementadas em linguagens distintas. 
○ Oferece conexão segura para usuários usando protocolo SSL como CoAP, MQTT, 
HTTP eXMPP 
○ Desvantagens: 
■ Tem problemas de compatibilidade com suas versões mais antigas. 
■ A implementação de soluções é mais complexa do que HTTP. 
■ Requer largura de banda maior, ao contrário do MQTT/CoAP/XMPP. 
■ A descoberta de recursos não é compatível com CoAP/HTTP/XMPP.