¿Qué es un "agente incorporado" en referencia a un dispositivo de borde IoT de baja potencia?

14

Pregunta: ¿Cuál es el diseño subyacente detrás de un "Agente integrado" en relación con los dispositivos de borde de Internet de las cosas (IoT) de baja potencia?

Algunos de los proveedores de servicios en la nube de IoT siguen refiriéndose a la instalación de un agente integrado en los dispositivos de borde basados ​​en sensores. Parece ser un software patentado que los proveedores instalan en cada dispositivo que se conecta a la nube. A continuación hay dos imágenes de pilas de software con referencias al Agente . Una parte de la pila de software reside en el microcontrolador.

Agente IOT - 1

Agente IOT

También aquí hay una explicación muy amplia del blog Thingworx

Un agente es un programa integrado que se ejecuta en un dispositivo IoT o cerca de él e informa el estado de algún activo o entorno. Siempre hay algún agente presente en una aplicación IoT. Por lo general, el agente lee el estado de los sensores o la conectividad local a un activo, aplica algunas reglas o lógica sobre la frecuencia con la que el remitente tiene que agregar la información y luego envía la información a través de una red de comunicaciones de larga distancia al servidor. Este proceso también puede funcionar a la inversa.

Supongo que este agente consiste en información de conectividad, como la dirección IP, el nombre del servidor, la información del tipo SSID para ayudar a la conectividad. ¿Estos agentes integrados tienen otra funcionalidad más allá de proporcionar conectividad?

Referencias

Mahendra Gunawardena
fuente
Por favor, ¿podría darnos la referencia de la arquitectura IoT (segunda imagen)? Gracias
BiG_TooTh

Respuestas:

13

En términos generales, un agente es una pieza de software "bidireccional"; es decir, lee los parámetros del dispositivo y los comunica a la nube o incluso a una puerta de enlace. La mayoría de las veces, un OEM controlará las bibliotecas para el desarrollo del software para controlar los parámetros del dispositivo. Mientras que, el OEM puede elegir cualquiera de los protocolos de comunicación populares (MQTT, HTTP, etc.) para publicar los valores leídos. Por lo general, la integración de estos dos es el espacio donde entra un integrador de sistemas.

Por ejemplo, un agente podría estar ejecutándose en un escritorio de Windows para leer las rpm del ventilador cada 5 segundos. Este valor luego se comunica a una plataforma en la nube a través de un protocolo acordado.

Código de muestra del sitio web de Paho MQTT (Python) :

mqttc.connect("iot.eclipse.org")
mqttc.loop_start()

while True:
    temperature = sensor.blocking_read()
    mqttc.publish("paho/temperature", temperature)

El fragmento anterior es más o menos un agente porque existe la parte 'desde el dispositivo' en forma de la función sensor.blocking_read()y la parte 'a la nube' en forma de a mqttc.publish().

Los agentes avanzados tendrán mecanismos para manejar el almacenamiento fuera de línea, soporte TLS para la comunicación hacia la nube, responder a cualquier actualización de la nube (incluidos reinicios, si es necesario) con gracia, etc. Y, en el caso específico de esta pregunta, el agente manejará las restricciones de energía también. Por ejemplo, responda a los desencadenantes del nivel del dispositivo, como dormir, despertarse, etc.

cogito ergo sum
fuente
Esa es una definición interesante de bidireccional. No llamaría a un sensor bidireccional si solo lee e informa. Diría que tiene que poder recibir al menos un tipo de mensaje para ser bidireccional. Leer la velocidad del ventilador es su justificación intrínseca para ser, no una comunicación.
Helmar
No entiendo su uso de "bidireccional" aquí. Un agente es un software en el dispositivo que opera en nombre del servidor (en este contexto). No necesariamente se comunica con el servidor (aunque ese es un caso de uso muy común). Por ejemplo, podría estar allí únicamente para establecer parámetros de configuración o para descargar actualizaciones.
Gilles 'SO- deja de ser malvado'