Che cos'è un "agente incorporato" in riferimento a un dispositivo Edge IoT a basso consumo?


14

Domanda: Qual è il design alla base di un "agente incorporato" in relazione ai dispositivi periferici a basso consumo di Internet of Things (IoT)?

Alcuni dei fornitori di servizi cloud IoT continuano a fare riferimento all'installazione di un agente incorporato sui dispositivi periferici basati su sensori. Sembra essere un software proprietario che i fornitori installano su ciascun dispositivo che si connette al cloud. Di seguito sono riportate due immagini di stack software con riferimenti ad Agent . Una parte dello stack software risiede nel microcontrollore.

Agente IOT - 1

Agente IOT

Anche qui c'è una spiegazione molto ampia del blog di Thingworx

Un agente è un programma incorporato che viene eseguito su o vicino a un dispositivo IoT e riporta lo stato di alcune risorse o ambienti. C'è sempre un agente presente in un'applicazione IoT. In genere l'agente legge lo stato dai sensori o dalla connettività locale a una risorsa, applica alcune regole o logiche sulla frequenza con cui il mittente deve aggregare le informazioni e quindi invia le informazioni su una rete di comunicazioni a lungo raggio al server. Questo processo può funzionare anche al contrario.

Suppongo che questo agente sia costituito da informazioni di connettività come indirizzo IP, nome del server, informazioni sul tipo SSID per facilitare la connettività. Questi agenti integrati hanno altre funzionalità oltre a fornire la connettività?

Riferimenti:


Per favore, potresti dare il riferimento all'architettura IoT (seconda immagine)? Grazie
BiG_TooTh

Risposte:


13

In generale, un agente è un software "bidirezionale"; cioè, legge i parametri dal dispositivo e comunica lo stesso al cloud o persino a un gateway. Più spesso, un OEM controllerà le librerie per lo sviluppo del software per controllare i parametri del dispositivo. Considerando che, l'OEM può scegliere uno dei protocolli di comunicazione popolari (MQTT, HTTP, ecc.) Per pubblicare i valori letti. In genere, l'integrazione di questi due è lo spazio in cui entra in gioco un System Integrator.

Ad esempio, un agente potrebbe essere in esecuzione su un desktop di Windows per leggere il numero di giri della ventola ogni 5 secondi. Questo valore viene quindi comunicato a una piattaforma cloud tramite un protocollo concordato.

Codice di esempio da Paho MQTT (Python) sito web :

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

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

Lo snippet di cui sopra è approssimativamente un agente perché esiste la parte "dal dispositivo" nella forma della funzione sensor.blocking_read()e la parte "al cloud" nella forma di a mqttc.publish().

Gli agenti avanzati disporranno di meccanismi per gestire l'archiviazione offline, il supporto TLS per la comunicazione verso il cloud, rispondere a qualsiasi aggiornamento dal cloud (compresi i riavvii, se necessario) con garbo, ecc. E, nel caso specifico di questa domanda, l'agente gestirà i limiti di alimentazione pure. Ad esempio, rispondere ai trigger a livello di dispositivo come sospensione, riattivazione, ecc.


Questa è un'interessante definizione di bidirezionale. Non chiamerei un sensore bidirezionale se legge e riporta solo. Direi che deve essere in grado di ricevere almeno un tipo di messaggio per essere bidirezionale. Leggere la velocità della ventola è la sua intrinseca giustificazione dell'essere, non una comunicazione.
Helmar

Non capisco il tuo uso di "bidirezionale" qui. Un agente è un software sul dispositivo che opera per conto del server (in questo contesto). Non comunica necessariamente con il server (sebbene sia un caso d'uso molto comune). Ad esempio Potrebbe essere lì solo per impostare i parametri di configurazione o per scaricare gli aggiornamenti.
Gilles 'SO- smetti di essere malvagio' il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.