Die Veröffentlichung von EdgeX 2.0 wurde vorgestellt, einer offenen, modularen Plattform zur GewÀhrleistung der InteroperabilitÀt zwischen IoT-GerÀten, Anwendungen und Diensten. Die Plattform ist nicht an die Hardware bestimmter Anbieter oder Betriebssysteme gebunden und wird von einer unabhÀngigen Arbeitsgruppe unter der Schirmherrschaft der Linux Foundation weiterentwickelt. Die Komponenten der Plattform sind in Go geschrieben und stehen unter der Apache 2.0-Lizenz.
EdgeX ermöglicht die Erstellung von Gateways, die vorhandene IoT-GerĂ€te verbinden und Daten von verschiedenen Sensoren sammeln. Das Gateway kĂŒmmert sich sowohl um die Organisation der Interaktion mit den GerĂ€ten als auch um die DurchfĂŒhrung der ersten Verarbeitung, Aggregation und Analyse von Informationen, wobei es als Zwischenglied zwischen einem Netzwerk von IoT-GerĂ€ten und einem lokalen Managementzentrum oder einer Cloud-Managementinfrastruktur fungiert. Auf den Gateways können auch Handler ausgefĂŒhrt werden, die als Mikrodienste formuliert sind. Die Interaktion mit IoT-GerĂ€ten kann ĂŒber kabelgebundene oder drahtlose Netzwerke unter Verwendung von TCP/IP-Netzen und spezifischen (Nicht-IP) Protokollen organisiert werden.

Gateways verschiedener Art können in Ketten verbunden werden. Beispielsweise kann ein Gateway der ersten Ebene Aufgaben im Bereich GerĂ€teverwaltung (Systemmanagement) und Sicherheit ĂŒbernehmen, wĂ€hrend ein Gateway der zweiten Ebene (Fog-Server) eingehende Daten speichert, Analysen durchfĂŒhrt und Services bereitstellt. Das System ist modular, daher erfolgt die Aufteilung der FunktionalitĂ€t auf separate Knoten je nach Last: In einfachen FĂ€llen genĂŒgt ein Gateway, wĂ€hrend fĂŒr groĂe IoT-Netzwerke möglicherweise ein ganzer Cluster bereitgestellt werden kann.

Die Grundlage von EdgeX bildet der offene IoT-Stack Fuse, der in Gateways fĂŒr IoT-GerĂ€te wie Dell Edge Gateway eingesetzt wird. Die Plattform kann auf beliebiger Hardware installiert werden, einschlieĂlich Server Hardware mit x86- und ARM-CPUs, die unter Linux, Windows oder macOS betrieben wird. Das Projekt umfasst eine Sammlung von fertigen Mikrodiensten zur Datenanalyse, Sicherheit, Verwaltung und zur Lösung verschiedener Aufgaben. FĂŒr die Entwicklung eigener Mikrodienste können die Programmiersprachen Java, Javascript, Python, Go und C/C++ verwendet werden. FĂŒr die Entwicklung von Treibern fĂŒr IoT-GerĂ€te und Sensoren wird ein SDK angeboten.
HauptÀnderungen:
- Eine neue Web-OberflĂ€che wurde implementiert, die mit dem Angular JS-Framework erstellt wurde. Zu den Vorteilen des neuen GUI gehören die einfache Wartung und Erweiterung der FunktionalitĂ€t, die VerfĂŒgbarkeit eines Assistenten zur Verbindung neuer GerĂ€te, Mittel zur Datenvisualisierung, eine erheblich verbesserte BenutzeroberflĂ€che zur Verwaltung von Metadaten und Ăberwachungsmöglichkeiten fĂŒr den Zustand von Diensten (z. B. Speicherverbrauch, CPU-Auslastung usw.).

- Die API zur Interaktion mit Mikrodiensten wurde vollstÀndig neu geschrieben und ist jetzt unabhÀngig vom Kommunikationsprotokoll, sicherer, gut strukturiert (benutzt JSON) und bietet bessere Möglichkeiten zur Verfolgung der vom Dienst verarbeiteten Daten.
- Die Effizienz wurde erhöht und die Möglichkeit zur Erstellung leichter Konfigurationen geschaffen. Die Core Data-Komponente, die fĂŒr die Datenspeicherung zustĂ€ndig ist, ist jetzt nicht mehr obligatorisch (zum Beispiel kann sie weggelassen werden, wenn nur Daten von Sensoren verarbeitet werden sollen, ohne sie speichern zu mĂŒssen).
- Die ZuverlĂ€ssigkeit wurde erhöht und die Mittel zur GewĂ€hrleistung der ServicequalitĂ€t (QoS) erweitert. Bei der Ăbertragung von Daten von den GerĂ€tediensten (Device Services, verantwortlich fĂŒr die Datenerfassung von Sensoren und GerĂ€ten) zu den Anwendungsdiensten (Application Services) kann jetzt eine Nachrichtenbus (Redis Pub/Sub, 0MQ oder MQTT) verwendet werden, ohne an das HTTP-REST-Protokoll gebunden zu sein und die QoS-PrioritĂ€ten auf der Ebene des Message Brokers zu steuern. Zudem ist die direkte DatenĂŒbertragung von Device Service zu Application Service mit optionaler Duplizierung in den Core Data Service erlaubt. Die UnterstĂŒtzung der DatenĂŒbertragung ĂŒber das REST-Protokoll bleibt erhalten, wird jedoch standardmĂ€Ăig nicht verwendet.

- Ein universelles Modul (Secret Provider) wurde implementiert, um geheime Daten (Passwörter, SchlĂŒssel usw.) aus geschĂŒtzten Speichern wie Vault abzurufen.
- Zur Verwaltung des Dienstregisters und der Einstellungen sowie zur Zugriffs- und Authentifizierungssteuerung wurde das Tool Consul eingesetzt. Im API Gateway wurde die UnterstĂŒtzung fĂŒr den Zugriff auf die API von Consul bereitgestellt.
- Die Anzahl der Prozesse und Dienste, die Root-Rechte in Docker-Containern benötigen, wurde minimiert. Ein Schutz wurde hinzugefĂŒgt, um die Verwendung von Redis im unsicheren Modus zu verhindern.
- Die Konfiguration des API Gateway (Kong) wurde vereinfacht.
- Die GerĂ€teprofile wurden vereinfacht, in denen die Parameter fĂŒr Sensoren und GerĂ€te sowie die gesammelten Daten festgelegt werden. Die Profile können in den Formaten YAML und JSON definiert werden.

- Neue GerĂ€tedienste hinzugefĂŒgt:
- CoAP (in C geschrieben) mit Implementierung des Constrained Application Protocol.
- GPIO (in Go geschrieben) zur Verbindung mit Mikrocontrollern und anderen GerĂ€ten, einschlieĂlich Raspberry Pi-Platinen, ĂŒber GPIO-Ports (General Pin Input/Output).
- LLRP (in Go geschrieben) mit Implementierung des LLRP (Low Level Reader Protocol) zur Verbindung mit RFID-LesegerÀten.
- UART (in Go geschrieben) mit UnterstĂŒtzung fĂŒr UART (Universal Asynchronous Receiver/Transmitter).
- Die Funktionen der Anwendungsdienste (Application Services), die fĂŒr die Vorbereitung und den Export von Daten zur weiteren Verarbeitung in Cloud-Systemen und -Anwendungen verantwortlich sind, wurden erweitert. UnterstĂŒtzung fĂŒr die Datenfilterung von Sensoren nach GerĂ€tenamen und Ressourcentyp hinzugefĂŒgt. Die Möglichkeit, Daten von einem Dienst an mehrere EmpfĂ€nger zu senden und sich auf mehrere Nachrichtenbusse zu abonnieren, wurde umgesetzt. Eine Vorlage fĂŒr die schnelle Erstellung eigener Anwendungsdienste wurde vorgeschlagen.
- Die ausgewĂ€hlten Portnummern fĂŒr Microservices entsprechen den von der IANA (Internet Assigned Numbers Authority) empfohlenen Bereichen fĂŒr die private Nutzung, um Konflikte mit bestehenden Systemen zu vermeiden.
Quelle: opennet.ru



