Modelos de computação para a Internet das coisas (IoT)

modelos iot

A comunicação entre diversos equipamentos, inicialmente era denominada de comunicação Máquina-a-Máquina (Machine-to-Machine ou M2M), mas com o aumento dos dispositivos conectados ao redor dos usuários, novos termos foram criados para designar essa tecnologia, como por exemplo a Computação Ubíqua (ou computação pervasiva), que é a inserção de computadores nas atividades simples do cotidiano, sem que o usuário se dê conta dos dispositivos envolvidos [1]. 

Seguindo a tendência atual, as comunicações entre máquinas e dispositivos acabaram convergindo para a utilização da Internet como a principal rede de comunicação. Neste contexto, o termo criado para denominar essa tendência é o “Internet das Coisas” (“Internet of Things – IoT”). Embora atualmente o termo esteja sendo largamente utilizado, foi utilizado pela primeira vez em 1999 num trabalho de Kevin Ashton, para representar o conceito de computadores e máquinas com sensores, que se conectam à Internet para relatar o seu estado e aceitar comandos de controle [1]. 

Uma das características que podemos observar na literatura sobre a IoT é que não se trata apenas de uma simples rede de dispositivos ou sensores, uma vez que as “coisas” nem precisam ser sensores ou seguir sequer um padrão de dispositivo. Qualquer dispositivo com capacidade de conexão a Internet pode ser considerado uma “coisa”[2]. 

No contexto da IoT, podemos classificar os elementos de software e hardware disponíveis de diversas maneiras [3], seja pela sua função que exercem no sistema, sua capacidade de processamento e capacidade de conexão em: 

Atualmente, em razão da redução do custo de produção, tem sido possível encontrar módulos de hardware a preços acessíveis, para o desenvolvimento de produtos para a IoT. 

Esses módulos vão desde projetos de código aberto, tal como a plataforma Arduíno (e similares), que permitem a conexão entre os sensores e atuadores, mas com pequeno poder de processamento e memória (da ordem de alguns Kilobytes), até sistemas mais robustos como as plataformas Raspberry Pi, NVidia Jetson e similares, que além de servir como interligação de sensores e atuadores, possuem notável capacidade de processamento e memória (da ordem de Megabytes) [3]. 

A Internet das coisas (IoT) é uma rede de vários dispositivos distintos, que se comunicam entre si através da Internet. A proliferação dessas “coisas”(dispositivos e equipamentos) em uma rede de comunicação cria alguns desafios tecnológicos, já que o volume de dados coletados e processados é enorme, o que aumenta a necessidade de se definir uma estratégia para o processamento e o armazenamento desses dados em servidores apropriados [4]. 

Neste sentido, atualmente existem alguns modelos de computação para dispositivos na IoT, que são denominados de Computação na Borda ou Local (Edge Computing), Computação em Nuvem (Cloud Computing) e o modelo de Computação na Neblina (Fog Computing). Esses modelos estão ilustrados na Figura 1, e são apresentados nas próximas seções. 

Figura 1 – Modelos de IoT. Adaptado de [4].

IoT na Borda ou Local (“Edge IoT”

Este modelo de IoT é aplicável quando todos os dispositivos pertencem a uma mesma rede local e sua área de abrangência também é restrita a uma região física restrita, como uma residência, instituição ou propriedade. 

Neste modelo de IoT, a comunicação entre os sensores e os dispositivos controladores são realizadas por uma conexão de rede local, geralmente realizada por meio de uma rede cabeada (Ethernet), ou por uma rede sem fio (WLAN, Bluetooth, wi-fi, etc), formando um sistema local de detecção e controle independente (Figura 2). 

Figura 2 – Modelo de IoT Local. Adaptado de [4].

A menos que esse sistema necessite memorizar um longo histórico de estados anteriores, onde pode haver a necessidade de um servidor local para essa finalidade, há apenas uma necessidade limitada de processamento e o uso de pequena quantidade de armazenamento de memória. 

IoT em Nuvem (“Cloud IoT”) 

Com o aumento do número de dispositivos, aumentam os requisitos de processamento e armazenagem para os dados coletados, surgindo a necessidade de infraestrutura mais complexa. 

A solução atualmente adotada nestes casos é a de se utilizar o poder de servidores em data centers remotos (“em nuvem”), assim surgindo um modelo de IoT em nuvem. 

A conexão com a nuvem é resolvida de maneira bastante eficiente de duas maneiras: por provedores de Internet e pelo uso de operadoras de telefonia móvel (Internet/GSM). 

Para a conexão um sensor IoT e ou qualquer dispositivo controlador à nuvem é necessário uma forma de comunicação que permita que os dados possam ser enviados e recebidos para o servidor, que em geral está localizado a grandes distâncias, como ilustrado na Figura 3. 

Figura 3 – Modelo de IoT em Nuvem. Adaptado de [4].

 O modelo IoT em Nuvem funciona de maneira eficiente, enquanto a quantidade de dados transmitidos não é muito alta a ponto de não causar gargalos na comunicação. 

Uma variação desse modelo é a utilização do uso da Internet em conjunto com as redes locais. Os dispositivos se conectam a uma rede local, por meio de conexões Ethernet ou wi-fi, que por sua vez fornecem a conexão com a Internet para a comunicação com o servidor remoto hospedado num serviço de nuvem, como visto na Figura 4. 

Figura 4 – Variação no modelo de IoT em Nuvem. Adaptado de [4].

No entanto, com o aumento da quantidade de dispositivos e o aumento no tamanho da informação enviada e ou recebida, o fluxo de dados pode aumentar consideravelmente causando atrasos e perda de conexão, o que para algumas aplicações pode não ser admitida. 

Neste caso, uma opção pode ser o modelo de IoT denominada de “Neblina”(Fog), já que pode ser entendida, como sendo um nível intermediário entre o modelo Local e o modelo em Nuvem, ou para uma melhor compreensão do termo, uma “Nuvem”mais próxima dos dispositivos. 

IoT na Neblina (“Fog IoT”) 

Nos novos cenários da IoT, criados por muitos sensores e dispositivos menores, foi introduzido uma noção de computação onipresente e abrangente. A maneira mais simples é coletar e processar todos esses dados conectando os dispositivos a um servidor hospedado em Nuvem, isso porém, exige redes e interconexões de alta velocidade. 

Um outro aspecto observado é o que não importa o quão rápido seja os dispositivos e as redes de transmissão, a quantidade de dados tem se mostrado cada vez maior. Também foi ficando evidente que nem sempre é necessário transferir todos os dados para o servidor de dados hospedado na Nuvem. 

Um modelo proposto, consiste em distribuir servidores menores entre o servidor de dados na Nuvem e os dispositivos. O servidor localizado entre os sensores e o servidor na Nuvem, é a ideia central do modelo de computação IoT denominado de Neblina (Figura 5). 

Figura 5 – Modelo de IoT em Neblina. Adaptado de [4].

Conclusão 

O modelo de computação a ser adotado num sistema IoT, vai depender muito do tipo da aplicação para a qual o sistema está sendo desenvolvido. Não existe necessariamente, um modelo “melhor” ou “pior”, e sim um modelo mais adequado as necessidades e características da aplicação em particular.

Conhecer vários modelos de computação para a IoT, pode auxiliar ao desenvolvedor na escolha que seja mais adequada para a aplicação, auxiliando para que aumente o sucesso do sistema desenvolvido.

Referências