Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial Internet of Things >> Internet der Dinge-Technologie

Verwenden von AWS-Jobs zum Aktualisieren und Konfigurieren von IoT-Geräten

Amazon Web Services (AWS) ist neben Microsoft Azure und Google Cloud IoT eine der beliebtesten Framework-Umgebungen für das Internet der Dinge (IoT). Smart Devices sind über das Internet mit dem Framework verbunden und interagieren mit diesem über das MQTT-Protokoll. Neben der Interaktion mit Geräten bietet das Framework auch großartige Möglichkeiten zur Datenspeicherung und -verarbeitung, Datendarstellung für einen Benutzer, Datenanalyse (einschließlich Methoden der künstlichen Intelligenz), Zugriffskontrolle mit einem leistungsstarken System von Berechtigungen und vieles mehr.

Zum Speichern von Daten bietet die AWS-Umgebung (neben verschiedenen relationalen und nicht-relationalen DBMS) ein Cloud-basiertes hierarchisches Dateispeichersystem namens Simple Storage Service (S3). Jede Datei im S3-Speicher kann einen Universal Resource Locator (URL) haben, auf den von außen zugegriffen werden kann. In diesem Fall kann über einen Webbrowser mit entsprechenden Zugriffsrechten auf die Datei zugegriffen werden. Wenn der Dateiinhalt eine HTML-Seite ist, kann ein interaktiver Benutzer mithilfe dieser Datei sowohl auf AWS-Framework-Optionen als auch auf damit verbundene intelligente Geräte zugreifen. Die Fähigkeiten dieser Seite werden durch den darin enthaltenen JavaScript-Code spezifiziert (dieser Code kann Funktionen der Anwendungsprogrammierschnittstellen (APIs) des Frameworks als Ganzes und seiner einzelnen Komponenten aktivieren).

Lambda-Funktionen

Neben Webseiten kann auch Programmcode in der AWS-Framework-Umgebung als Lambda-Funktionen gespeichert werden. Dies sind speziell benannte Codeteile, die in einer der folgenden Sprachen geschrieben wurden:Python, Java, C# oder Node.Js. Sie werden in der Cloud gespeichert und bei bestimmten Ereignissen aufgerufen. Ein Ereignis kann von einer Webseite (wie dem Aufrufen einer bestimmten HTTP-REST-API auf einer bestimmten URL), von einer anderen Lambda-Funktion oder von einem intelligenten Gerät (durch das Senden einer MQTT-Nachricht eines bestimmten Typs) initiiert werden. In all diesen Fällen können Ereignisse Parameter haben. Lambda-Funktionen werden als Middleware für die Interaktion zwischen intelligenten Geräten, AWS-Ressourcen (z. B. Datenbanken) und den Webseiten verwendet, mit denen der Benutzer direkt interagiert (Abbildung 1).

Klicken für größeres Bild

Abbildung 1. Architektur der AWS-Komponenteninteraktion (Quelle:Auriga)

Es gibt harte Grenzen für AWS-Lambdas, zum Beispiel ist die Ausführungszeit für die Verarbeitung einer einzelnen Anforderung begrenzt, die Speichermenge, die ein Lambda bei der Verarbeitung einer einzelnen Anforderung verwenden kann, ist begrenzt. Wird ein Grenzwert überschritten, wird die Ausführung des Lambda abgebrochen. Diese Grenzwerte werden vom Benutzer beim Erstellen des Lambda konfiguriert, dürfen jedoch bestimmte Werte nicht überschreiten.

Ein IoT-Gerät verbindet sich über das TCP-Protokoll mit der Cloud, das Datenintegrität und Pufferung bietet. Bei einer langsamen Verbindung sorgt das Protokoll dafür, dass die Daten auf der sendenden Seite gesammelt und, wenn möglich, durch die Pipeline geleitet werden. Außerdem sorgt ein AWS-Protokoll zusätzlich zu TCP dafür, dass die TCP-Verbindung im Falle eines Verbindungsverlusts dauerhaft wiederhergestellt wird.

Die Konnektivitätsprobleme zwischen einem IoT-Gerät und der Cloud wirken sich jedoch aufgrund der spezifischen unidirektionalen Natur des MQTT-Protokolls normalerweise nicht auf Lambdas aus. Bei der Kommunikation mit einem IoT-Gerät sendet ein Lambda nur eine MQTT-Nachricht und wartet nicht auf eine Antwort; Wenn die Antwort eintrifft, liegt es in der Verantwortung einer anderen Lambda-Funktion, sie zu verarbeiten und bei Bedarf eine weitere MQTT-Nachricht an das IoT-Gerät zu senden.

AWS-Jobs

Eine der AWS-Framework-Komponenten ist der Job Service (AWS Jobs). Es wird verwendet, um dauerhafte Aktionen (Jobs) auf einem oder mehreren mit AWS verbundenen IoT-Geräten zu erstellen und auszuführen und diese Jobs zu verwalten. Im Vergleich zu anderen AWS-Services ist der AWS-Jobs-Service erst vor kurzem erschienen.

Der Zugriff auf den AWS Jobs-Service erfolgt über die Programmierkonsole sowie programmgesteuert mithilfe der API-Funktionen.

Eine bestimmte Teilmenge dieser Funktionen kann vom intelligenten Gerät selbst verwendet werden (kann durch Senden von MQTT-Nachrichten aufgerufen werden). Die über das MQTT-Protokoll zugänglichen Funktionen führen Aktionen aus, die für den Zugriff auf Jobs und deren Parameter von der Geräteseite aus erforderlich sind:GetPendingJobExecutions, StartNextPendingJobExecution, UpdateJobExecution, DescribeJobExecution usw.

Andere Funktionen werden über das HTTPS-Protokoll definiert und sollen aus JavaScript-Code auf Webseiten, aus dem Programmcode von Lambda-Funktionen und von Benutzern im interaktiven Modus aufgerufen werden. Diese Funktionen werden hauptsächlich zum Erstellen und Löschen von Jobs und zur Jobausführungsverwaltung verwendet:CreateJob, DeleteJob, DescribeJob, ListJobs, ListJobExecutionsForThing usw.

In der Terminologie von AWS Jobs werden die wichtigsten Informationen zu einem Job in seinem Jobdokument gespeichert. Dies ist ein JSON-Dokument, das vom Framework an das Zielgerät übergeben wird und beschreibt, was zu tun ist. Normalerweise enthält ein Jobdokument den Namen des Vorgangs und eine URL (oder URLs), die auf die Position der Datenjobparameter verweisen.

Diese URL kann von einem AWS-Benutzer „vorsigniert“ werden. In diesem Fall ermöglicht die URL dem intelligenten Gerät den Zugriff auf ein bestimmtes Objekt mit den Rechten des Benutzers, der es vorsigniert hat (damit das Gerät auf die Daten zugreifen kann, auf die es normalerweise nicht zugreifen kann). Vorsignierte URLs haben eine begrenzte Lebensdauer und laufen nach Ablauf dieser Lebensdauer ab, wodurch das Objekt wieder unzugänglich wird.

Ein Auftragsdokument kann während der Auftragserstellung on-the-fly erstellt oder als Datei im S3-Dateispeicher des AWS-Frameworks abgelegt werden. Ein Link zu dieser Datei kann während der Joberstellung angegeben werden.

Andere Jobattribute sind die folgenden:

Wenn ein Job auf einem bestimmten Gerät ausgeführt wird, hat er einen Status. Eine begrenzte Anzahl von Zuständen wird durch das Framework definiert:QUEUED, IN_PROGRESS, FAILED, SUCCESS, CANCELED, REJECTED, REMOVED. Der aktuelle Status wird durch eine Anforderung des Geräts (z. B. Aufruf der Funktion UpdateJobExecution) oder wenn ein Benutzer eine der Auftragsverwaltungsfunktionen aufruft (z. B. den Auftrag mit der Funktion CancelJob abbrechen) geändert. Normalerweise ist der Auftragsausführungsstatus IN_PROGRESS, während das Gerät den Auftrag ausführt, und wird ERFOLGREICH oder FEHLGESCHLAGEN, nachdem das Gerät den Auftrag abgeschlossen hat.

Das Zustandsdiagramm für die Jobausführung ist in Abb. 2 dargestellt (hier sind die vom Gerät initiierten Übergänge blau und die von anderen AWS-Komponenten initiierten grün dargestellt).

Klicken für größeres Bild

Abbildung 2. Zustandsdiagramm während der Ausführung von AWS-Jobs (Quelle:Auriga)


Internet der Dinge-Technologie

  1. Prozessoren befassen sich mit der Konvergenz von IoT und KI
  2. IoT bietet weltweite Vorteile
  3. Anpassen und vergessen:Die Bedrohung durch unkonfiguriertes IoT
  4. Gewährleistung der Cybersicherheit und des Datenschutzes bei der IoT-Einführung
  5. Der IoT-Datenverkehr im Unternehmen steigt und damit auch die Bedrohungen
  6. 7 wichtige Tipps, um Ihr IoT-Netzwerk zu Hause betriebsbereit und sicher zu halten
  7. Die Bedeutung von Sicherheitsstandards und -regulierung in Höhe von 6 Billionen US-Dollar in der IoT-Ära
  8. Minderung der Cyberrisiken des IoT und Suche nach Lösungen
  9. Einsatz des IoT zur Förderung von Industrien und zur Unterstützung der Gesamtwirtschaft
  10. Memphis „smart“ machen:Sichtbarkeit, Kontrolle und Sicherheit für IoT-Geräte