Pergunta: Qual é o design subjacente por trás de um "Agente Incorporado" em relação aos dispositivos de borda de Internet das Coisas (IoT) de baixa potência?
Alguns dos fornecedores de serviços em nuvem da IoT continuam se referindo à instalação de um agente incorporado nos dispositivos de borda baseados em sensores. Parece ser um software proprietário que os fornecedores instalam em cada dispositivo conectado à nuvem. Abaixo estão duas imagens de pilhas de software com referências ao Agent . Uma parte da pilha de software reside no microcontrolador.
Também aqui está uma explicação muito ampla do blog Thingworx
Um agente é um programa incorporado que é executado em um dispositivo IoT ou próximo a ele e relata o status de algum ativo ou ambiente. Sempre há algum agente presente em um aplicativo de IoT. Normalmente, o agente lê o status dos sensores ou conectividade local a um ativo, aplica algumas regras ou lógica sobre a frequência com que o remetente deve agregar as informações e, em seguida, envia as informações por uma rede de comunicações de longo curso para o servidor. Esse processo também pode operar em sentido inverso.
Suponho que esse agente consista em informações de conectividade, como endereço IP, nome do servidor, informações do tipo SSID para ajudar na conectividade. Esses agentes incorporados têm outras funcionalidades além de fornecer conectividade?
Referências:
- As 49 melhores ferramentas para a Internet das Coisas
- A Internet das Coisas, produtos “inteligentes” exigem uma estratégia inteligente
- Elementos fundamentais de uma solução de IoT, The Edge, The Cloud e desenvolvimento de aplicativos
- Nova vida para sistemas embarcados na INTERNET DAS COISAS
- A borda do Iot
fonte
Respostas:
De um modo geral, um agente é um software 'bidirecional'; isto é, lê parâmetros do dispositivo e comunica o mesmo à nuvem ou mesmo a um gateway. Na maioria das vezes, um OEM controlará as bibliotecas para o desenvolvimento do software para controlar os parâmetros do dispositivo. Visto que o OEM pode escolher qualquer um dos protocolos de comunicação populares (MQTT, HTTP etc.) para publicar os valores lidos. Normalmente, a integração desses dois é o espaço em que um integrador de sistemas entra.
Por exemplo, um agente pode estar em execução na área de trabalho do Windows para ler as rpm do ventilador a cada 5 segundos. Esse valor é então comunicado a uma plataforma em nuvem através de um protocolo acordado.
Código de exemplo de MQTT (Python) Opas web site :
O snippet acima é basicamente um agente, porque há a parte 'from device' na forma da função
sensor.blocking_read()
e a parte 'to cloud' na forma de amqttc.publish()
.Os agentes avançados terão mecanismos para lidar com o armazenamento offline, o suporte TLS para comunicação com a nuvem, responderão a todas as atualizações da nuvem (incluindo reinicializações, se necessário) normalmente, etc. E, no caso específico desta pergunta, o agente lidará com restrições de energia também. Por exemplo, responda a gatilhos no nível do dispositivo, como suspensão, ativação etc.
fonte