Was ist ein eingebetteter Agent in Bezug auf ein IoT-Edge-Gerät mit geringer Leistung?

14

Frage: Was ist das unterstreichende Design hinter einem „Embedded Agent“ in Bezug auf leistungsschwache IoT-Edge-Geräte (Internet of Things)?

Einige der Anbieter von IoT-Cloud-Diensten beziehen sich weiterhin auf die Installation eines eingebetteten Agenten auf den sensorgestützten Edge-Geräten. Es scheint sich um eine proprietäre Software zu handeln, die Anbieter auf jedem Gerät installieren, das eine Verbindung zur Cloud herstellt. Unten finden Sie zwei Bilder von Software-Stacks mit Verweisen auf Agent . Ein Teil des Software-Stacks befindet sich im Mikrocontroller.

IOT Agent - 1

IOT-Agent

Auch hier gibt es eine sehr breite Erklärung Thingworx Blog

Ein Agent ist ein eingebettetes Programm, das auf oder in der Nähe eines IoT-Geräts ausgeführt wird und den Status eines Assets oder einer Umgebung meldet. In einer IoT-Anwendung ist immer ein Agent vorhanden. In der Regel liest der Agent den Status von den Sensoren oder der lokalen Konnektivität eines Assets, wendet Regeln oder Logik an, wie oft der Absender die Informationen aggregieren muss, und sendet sie dann über ein Fernkommunikationsnetz an den Server. Dieser Vorgang kann auch umgekehrt ablaufen.

Ich gehe davon aus, dass dieser Agent aus Konnektivitätsinformationen wie IP-Adresse, Servername und SSID-Typ besteht, um die Konnektivität zu unterstützen. Haben diese eingebetteten Agenten andere Funktionen als die Bereitstellung von Konnektivität?

Verweise:

Mahendra Gunawardena
quelle
Bitte geben Sie die Referenz der IoT-Architektur an (2. Bild). Vielen Dank
BiG_TooTh

Antworten:

13

Im Allgemeinen ist ein Agent eine bidirektionale Software. Das heißt, es liest die Parameter vom Gerät und kommuniziert dasselbe mit der Cloud oder sogar einem Gateway. In den meisten Fällen steuert ein OEM die Bibliotheken für die Entwicklung der Software, um die Parameter des Geräts zu steuern. Während der OEM eines der gängigen Kommunikationsprotokolle (MQTT, HTTP usw.) auswählen kann, um die gelesenen Werte zu veröffentlichen. In der Regel ist die Integration dieser beiden Bereiche der Bereich, in dem ein Systemintegrator eingesetzt wird.

Beispielsweise könnte ein Agent auf einem Windows-Desktop ausgeführt werden, um alle 5 Sekunden die Drehzahl des Lüfters zu lesen. Dieser Wert wird dann über ein vereinbartes Protokoll an eine Cloud-Plattform übermittelt.

Beispielcode von der Paho MQTT (Python) -Website :

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

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

Das obige Snippet ist in etwa ein Agent, da es den Teil 'Von Gerät' in Form der Funktion sensor.blocking_read()und den Teil 'Nach Cloud' in Form eines mqttc.publish().

Fortgeschrittene Agenten verfügen über Mechanismen zur Behandlung von Offlinespeicher, TLS-Unterstützung für die Kommunikation mit der Cloud, ordnungsgemäße Reaktion auf Aktualisierungen aus der Cloud (einschließlich Neustarts, falls erforderlich) usw. Im speziellen Fall dieser Frage wird der Agent mit Strombeschränkungen umgehen auch. Reagieren Sie beispielsweise auf Auslöser auf Geräteebene, wie z. B. Ruhezustand, Aufwachen usw.

Cogito ergo sum
quelle
Das ist eine interessante Definition von bidirektional. Ich würde einen Sensor nicht als bidirektional bezeichnen, wenn er nur liest und meldet. Ich würde sagen, es muss in der Lage sein, mindestens eine Art von Nachricht zu empfangen, um bidirektional zu sein. Das Ablesen der Lüfterdrehzahl ist die eigentliche Rechtfertigung dafür, keine Kommunikation zu sein.
Helmar
Ich verstehe Ihre Verwendung von "bidirektional" hier nicht. Ein Agent ist eine Software auf dem Gerät, die (in diesem Zusammenhang) für den Server ausgeführt wird. Es muss nicht unbedingt mit dem Server kommunizieren (obwohl dies ein sehr häufiger Anwendungsfall ist). Beispielsweise kann es nur zum Festlegen von Konfigurationsparametern oder zum Herunterladen von Updates dienen.
Gilles 'SO- hör auf böse zu sein'