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.