Internet das Coisas do exagero a realidade

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar

Internet das Coisas do exagero a realidade

Página Wiki com síntese de algumas ideias do livro Internet of Things From Hype to Reality (Rayes and Salam, 2019) [1]. Os autores são engenheiros da Cisco e atuando em tecnologias emergentes no Vale do Silício, Califórnia.

O que é Internet das Coisas

A Internet das Coisas (IoT) pode ser considerada uma rede de dispositivos físicos, destacando:

  • Sensores: para coletar informação.
  • Identificadores: para identificar a fonte dos dados (ex. sensor, dispositivo).
  • Software: para analisar dados.
  • Conectividade com Internet: para comunicação e notificação.

A ideia principal da IoT é conectar coisas (sensores, dispositivos, máquinas, pessoas, animais, árvores, etc) e realizar processamento de dados através da Internet para fins de monitoramento e controle.

Em sua definição mais simples pode ser considerada a intersecção de coisas, dados e a Internet.

[1] (p. 3)

Para uma definição mais completa, deveria ser incluído standards para permitir a integração de dispositivos de diferentes fabricantes.

Outros autores de referem a Internet das Coisas também como Internet de Tudo, ou Internet of Everything (IoE). Neste caso, IoE conecta:

  • Pessoas: Conectando pessoas de modos relevantes.
  • Dados: Convertendo dados em inteligência para tomar decisões melhores.
  • Processos: Entregando a informação certa, para a pessoa certa ou para um máquina no tempo certo.
  • Coisas: Dispositivos físicos e objetos conectados entre si e a Internet para a tomada de decisão inteligente, frequentemente chamada IoT.

A Internet que utilizamos hoje seria a Internet das Pessoas, a IoT seriam os dispositivos físicos conectados entre si e a Internet e a IoE seria a junção das duas. Entretanto, um conceito atual seria considerar IoT como a Internet das coisas (anything) ou de tudo (everything).

Como monitorar coisas em qualquer lugar do mundo?

Os requisitos básicos para IoT são:

  • identificação única para as coisas;
  • habilidade de sensoriamento (ou atuação) de alguma informação sobre as coisas;
  • habilidade de comunicação entre as coisas;
  • habilidade de controle e gerenciamento das as coisas

[1] (p. 5)

O monitoramento e/ou controle de um sistema de IoT pode ser realizado por pessoas ou máquinas.

Quatro níveis de referência para as soluções de IoT
  • Dispositivos de IoT (coisas: sensores e atuadores);
  • Rede de IoT (infraestrutura de transporte de dados);
  • Plataformas de serviços de IoT (softwares conectando coisas e aplicações e provendo monitoramento do sistema);
  • Aplicações de IoT.

[1] (p. 8)

Requisitos para protocolos de redes para IoT

Os dispositivos de IoT são limitados em termos de processamento, memória e provimento de energia, colocando restrições para a implementação de protocolos para comunicação em rede, em particular para implementar a pilha TCP/IP.

A crescimento massivo do número de dispositivos de IoT impõem vários requisitos para a implementação de protocolos de comunicação, incluindo formas de identificação dos dispositivos, resolução de nomes, segurança, protocolos de roteamento, além da questão do controle e gerenciamento da rede.

Identificação dos dispositivos
Um dos objetivos da IoT é integrar de maneira uniforme todos os dispositivos inteligentes conectados ao redor do globo. Isto requer uma identificação única de cada dispositivo. Para uso da rede IP, o endereçamento IPv4 não pode ser utilizado devido a limitação do número de endereços possíveis, restando, portanto, a necessidade acelerar a transição para o IPv6.
Determinismo e tempo real
Muitas aplicações de automação em IoT requerem comunicação determinística e com requisitos em tempo real, como controle veicular, controle de ferrovias, entre outros. Nestes sistemas, um requisito fundamental numa comunicação de pacotes é garantir a entrega correta de pacotes em um tempo estabelecido, o que requer diminuição do delay (atraso), perda de pacotes e jitter (diferença de atraso entre pacotes).
Segurança e privacidade
Também devido as limitações de hardware, novos algoritmos serão necessários para criptografia de dados e autenticação para os dispositivos de IoT. Os principais algoritmos utilizados atualmente, como o AES (Advanced Encryption Standard) para transporte de dados confidenciais e o RSA (Rivest-­Shamir-­Adleman) para autenticação, não são possíveis de serem implementados na maioria dos dispositivos de IoT.

Pilha de protocolos de rede para IoT

Descrição das principais tecnologias de rede para atender as aplicações de IoT.

Camada Enlace

Os desafios das tecnologias de enlace para atender aos dispositivos de IoT são devido as características diversas dos dispositivos, as características do tráfego, as características do acesso ao meio e a questão da escalabilidade, como mostra a figura.

[1] (p. 104)

A comunicação de rede tipicamente é responsável por grande parte do consumo de energia no processamento local de um dispositivo, portanto, as tecnologias de comunicação devem ser otimizadas para os dispositivos de baixa potência.

A questão das características do tráfego dependem do tipo de aplicações e da natureza dos dispositivos. Algumas aplicações podem relaxar restrições como perda de pacotes, atraso e jitter (como o monitoramento meteorológico), outras tem restrições severas (como aplicações de engenharia de controle). Ambas podem utilizar os mesmos tipos de dispositivos (como sensores de ambiente), mas as características das aplicações que que vão ditar os requisitos de comunicação.

Nas aplicações tradicionais de TI as tecnologias dominantes são as redes LAN no acesso local e WAN no acesso a Internet. Entretanto, nas aplicações de IoT os requisitos são diversos e dependem da localização dos dispositivos, por exemplo, aplicações industriais, automação veicular, monitoramento do corpo humano, etc. Nestes ambientes topologias como as redes FAN (field area network), NAN (neighborhood area network) e PAN (personal area network).

LLN (low-power and lossy networks)
Muitos desenvolvimentos em IoT utilizam tecnologias de enlace desenvolvidas para dispositivos com limitações de processamento, memória e energia, referidas como redes LLN (low-power and lossy networks). Fazem partes das redes LLN as tecnologias de enlace IEEE 802.15.4, Bluetooth, PLC (power-line communication) etc.
Algumas tecnologias de enlace usadas em IoT
  • IEEE 802.15.4: Focada em soluções de comunicação sem fio com baixa taxa de transmissão e baixo consumo de energia, com destaca para a tecnologia Zigbee.
  • IEEE 802.11ah: Redes WiFi bastante difundida como rede de acesso a Internet tem limitações para aplicações de IoT, em particular devido ao alto consumo de energia e a faixa de transmissão inadequada devido a interferência que obstáculos oferecem as transmissões.
  • LoRa WAN: Projetadas para redes com baixo consumo de energia e transmissões a longas distâncias.
  • TSN: As redes TSN (Time-Sensitive Networking) foram desenvolvidas para aplicações industriais e de automação com requisistos estritos de tempo.

Camada Rede

Aplicações de IoT que utilizam dispositivos restritos e enlaces de comunicação baseados em redes LLN, em particular IEEE802.15.4, necessitam de adaptações serem integrados as redes IPv6. Isto é necessário devido as limitações de tamanho do quadro impostas pelas redes LLN e uma solução tecnológica é a 6LowPAN.

[1] (p. 126)

Camada Aplicação

Os protocolos de aplicação são responsáveis por realizarem a comunicação entre as entidades envolvidas em uma aplicação, como objetos, gateways e aplicações. Envolve fluxo dos dados monitorados pelos sensores ou das ações de controle para atuadores.

Formato e serialização dos dados
Os protocolos de aplicação definem o formato dos dados trocados na comunicação entre os objetos e as aplicações. Alguns desafios são manter a compatibilidade dos dados entre os objetos e formatos comuns utilizados na Web, como JSON e XML, evitar processamentos excessivos e diminuir o tempo de transmissão dos dados pois impactam no consumo de energia dos objetos e também diminuir a largura de banda utilizada na comunicação.
Paradigma de comunicação
Na Internet o paradigma de comunicação dominante é o pedido/resposta, como na aplicação Web, na qual o cliente envia um pedido e o servidor envia uma resposta, numa comunicação fim a fim. Nas aplicações de IoT, em muitos cenários a comunicação é somente em um sentido, dos objetos às aplicações ou vice-versa. Neste caso, o paradigma mais apropriado é o publicador/subscritor, pois permite a comunicação unidirecional de um publicador para um ou vários subscritores.

Alguns protocolos de aplicação para IoT

CoAP (Constrained Application Protocol)
É uma alternativa mais leve ao HTTP, com alvo nos dispositivos limitados em termos de energia e comunicação (redes LLN). O CoAP usa UDP, ao invés do TCP usado pelo HTTP, reduzindo o overhead de mensagens ocasionado pela abertura e encerramento de uma conexão TCP.
MQTT
O MQTT (Message Queue Telemetry Transport) é um protocolo de mensagens para sensores e pequenos dispositivos móveis, baseado no modelo Publicador/Subscritor, ideal para aplicações de Internet das Coisas, em particular para a comunicação máquina a máquina (M2M - Machine to Machine). O MQTT trabalha no topo da pilha de protocolos TCP/IP.

Progressos na padronização industrial

Arquitetura de rede proposta pelo ETSI (European Telecommunications Standards Institute)

[1] (p. 143)

Este modelo está baseado nas tecnologias de rede existentes e compreende três níveis: o domínio dos dispositivos com a conectividade entre objetos e gateways, o domínio de rede e o domínio das aplicações.

Fog Computing

Fog Computing refere-se a uma plataforma integrada de computação, armazenamento e serviços de rede que são altamente distribuídos e virtualizados. Esta plataforma pode ser estendida até a localidade dos dispositivos de IoT e gateways, trazendo serviços de computação próximo ao local onde são produzidos (p.ex. sensores) ou consumidos (p. ex. atuadores).

[1] (p. 156)

Fog Computing e as demandas das aplicações de IoT

Aumento da geração e fluxo de dados de IoT
O crescimento das aplicações de IoT trará crescimento do volume de dados gerado e por consequência da necessidade de comunicação de dados em direção aos serviços em nuvem. Portanto, serviços de fog computing próximo aos dispositivos podem diminuir a necessidade de transferir grandes volumes de informação em direção a nuvem.
Aplicações com rápida mobilidade
Aplicações de IoT com rápida mobilidade, como veículos autônomos, podem ocorrer pertubações na comunicação de dados dos dispositivos com a nuvem, portanto, serviços de fog computing podem trazer soluções mais eficientes.
Aplicações de controle confiável
Aplicações de IoT voltadas a controle confiável em tempo real requerem armazenamento de grandes volumes de dados e respostas rápidas, portanto, serviços de fog computing podem melhorar os tempos de resposta dos sistemas mantendo os dados e o processamento próximo aos laços de controle.
Análise e gerenciamento de dados
Distribuir a análise e gerenciamento de dados em locais próximos a onde são gerados pode melhorar o desempenho geral dos sistemas, combinando análise descentralizada de dados em serviços de fog computing e análise global do sistema em servidos de cloud computing.

Tecnologias para fog computing

As tecnologias de fog computing tem como objetivos localizar os serviços de informática próximos aos locais onde são produzidos ou consumidos. Esta característica pode ser obtida com serviços de virtualização que possam ser instanciados nos locais onde são necessários.

Contêineres e máquinas virtuais
São dois ambientes de virtualização bastante utilizados por serviços em nuvem.
  • Máquinas virtuais: São tecnologias de virtualização operando no nível do hardware, provendo abstração do hardware e dos recursos software de uma plataforma computacional, incluindo drivers e bibliotecas.
  • Contêineres: São tecnologias de virtualização operando no nível do sistema operacional, incluindo somente a parte do sistema operacional e bibliotecas necessárias para rodar a aplicação desejada. Contêineres são mais leves que as máquinas virtuais, tanto em termos de processamento quanto em uso de memória.
[1] (p. 161)
Suporte de rede para mobilidade
Para assegurar a não interrupção das aplicações de IoT, com suporte de fog computing, é necessário que a rede suporte a mobilidade dos dispositivos e envolve a identificação do dispositivo e sua localização. Para esta tarefa, algumas tecnologias proeminentes são as EVPN (Ethernet Virtual Private Network) e a LISP (Locator/Identifier Separation Protocol).
Orquestração de serviços de IoT em fog computing
Outra questão complexa nas aplicações de IoT, apoiadas por fog computing é a orquestração necessária para o gerenciamento global do sistema, que pode envolver múltiplos componentes rodando em sistemas heterogêneos e distribuídos em múltiplas localizações.
[1] (p. 171)

Referências

  1. 1,0 1,1 1,2 1,3 1,4 1,5 1,6 1,7 1,8 1,9 Ammar Rayes & Samer Salam. Internet of Things From Hype to Reality: The Road to Digitization, Springer, 2019.

Evandro.cantu (discussão) 17h00min de 29 de abril de 2020 (-03)