Uma arquitetura para gerenciamento de sistemas inteligentes baseados em IoT
A gestão de soluções de Internet das Coisas (IoT) é uma tarefa complexa devido à sua distribuição e heterogeneidade inerentes. As abordagens tradicionais de gerenciamento de IoT frequentemente se concentram em dispositivos e conectividade, deixando de lado uma compreensão abrangente dos diversos componentes de software, hardware e comunicação que constituem uma solução baseada em IoT. Esta tese propõe uma nova arquitetura de gerenciamento de IoT em quatro camadas, denominada IoTManA, que abrange diversos aspectos de uma infraestrutura distribuída para gerenciar, controlar e monitorar componentes de software, hardware e comunicação, bem como fluxos e qualidade dos dados. A arquitetura fornece uma visão baseada em grafos multicamadas do caminho fim-a-fim entre os dispositivos e a nuvem. O IoTManA foi implementado em um conjunto de componentes de software denominado Sistema de Gerenciamento de IoT (IoTManS) e testado em diferentes cenários: Agricultura Inteligente e Cidades Inteligentes. Os resultados indicam que essa abordagem pode contribuir significativamente para lidar com a complexidade do gerenciamento de soluções IoT. A modelagem baseada em grafos acíclicos direcionados (DAGs) multicamadas do IoTManA facilita ao sistema de gerenciamento implementado (IoTManS). O uso de DAGs permite que o sistema tenha controle no relacionamento entre componentes de infraestrutura e software, permitindo ainda a detecção e identificação de causas-raiz de falhas tipicamente distribuídas em soluções de IoT. A arquitetura e o sistema utilizam microserviços responsáveis pela descoberta e exposição de capacidades no ambiente monitorado, além de técnicas de balanceamento de carga e de gestão FCAPs (Fault, Configuration, Accounting, Performance, Security), que permitem que o grafo se adapte dinamicamente às mudanças no ambiente gerenciado. Realizamos uma análise de desempenho do IoTManS com foco em dois aspectos: tempo de detecção de falhas e escalabilidade, para demonstrar cenários e recursos de aplicativos. Os resultados mostram que o IoTManS pode detectar e identificar a causa-raiz das falhas em tempos variando de 806ms a 90.036ms, dependendo do seu modo de operação, adaptando-se às diferentes necessidades de IoT. Além de validar a viabilidade da implementação da arquitetura, os experimentos também demonstram que a escalabilidade do IoTManS é diretamente proporcional à escalabilidade da plataforma IoT subjacente, gerenciando até 5.000 componentes simultaneamente. Por fim, discutimos os recursos que ainda podem ser implementados na arquitetura e nos sistemas propostos, destacando áreas para desenvolvimento futuro.