ADMIN

2023

09

2023-08-30T12:00:00

Hochverfügbarkeit und Monitoring

PRAXIS

044

Devicemanagement

IoT

Hochverfügbarkeit

Plattformen für das IoT-Devicemanagement

Die kleinen Dinge kontrollieren

von Dr. Lothar Burger

Veröffentlicht in Ausgabe 09/2023 - PRAXIS

Cloudbasierte IoT-Plattformen sind die Betriebssysteme des Internet of Things. Sie reduzieren den Entwicklungsaufwand, ermöglichen kurze Bereitstellungszeiten und sind darüber hinaus skalierbar, auch wenn die Zahl der IoT-Devices schneller steigt als geplant. Für das Devicemanagement von IoT-Geräten in nennenswerter Anzahl bieten die drei führenden IoT-Plattformen von Microsoft, AWS und der Software AG ihre Dienste an.

In den Anfängen des Internet of Things war jedes System darin ein Unikat, das eine individuelle Implementierung aufwies. Moderne IoT-Systeme besitzen jedoch zahlreiche gemeinsame Funktionen, selbst wenn sie unterschiedlichen Anwendungen dienen. Typische Beispiele für solche Gemeinsamkeiten sind die Terminierung standardisierter IoT-Protokolle, das Verarbeiten und Speichern von Messdatenströmen, das regelbasierte Erkennen von Ereignissen, das Auslösen von Aktionen, die Visualisierung von Messdaten, das Bereitstellen von APIs für höhere Applikationsebenen oder das Management von IoT-Endgeräten.
Solche Funktionen stellen Middleware-Suites, sogenannte IoT-Plattformen, bereit. Moderne IoT-Plattformen beschränken sich nicht nur auf das Backend eines IoT-Systems (Cloud oder lokal), sondern liefern darüber hinaus auch containerbasierte Laufzeitumgebungen für Edge-Server oder Software Development Kits (SDKs) für Endgeräte und Gateways. IoT-Plattformen sind mittlerweile ein selbstverständlicher Teil von IoT-Systemen geworden und lassen sich daher auch als die Betriebssysteme des Internet of Things bezeichnen.
Einige Funktionen von IoT-Plattformen haben wir bereits exemplarisch aufgeführt. Im Folgenden konzentrieren wir uns auf die Realisierung des Devicemanagements in drei führenden IoT-Plattformen: "Azure IoT" [1], "AWS IoT" [2] und "Cumulocity IoT" [3] von der Software AG. Es gibt am Markt eine Vielzahl weiterer Angebote, doch wir beschränken uns auf diese drei Plattformen, da die beiden erstgenannten den führenden Cloud-anbietern gehören und Cumulocity IoT eine starke Stellung als Plattform für das industrielle IoT behauptet. Das Marktforschungsunternehmen Gartner hat im Jahr 2022 Cumulocity IoT zusammen mit Azure IoT im führenden Quadranten für industrielle IoT-Plattformen gesehen.
In den Anfängen des Internet of Things war jedes System darin ein Unikat, das eine individuelle Implementierung aufwies. Moderne IoT-Systeme besitzen jedoch zahlreiche gemeinsame Funktionen, selbst wenn sie unterschiedlichen Anwendungen dienen. Typische Beispiele für solche Gemeinsamkeiten sind die Terminierung standardisierter IoT-Protokolle, das Verarbeiten und Speichern von Messdatenströmen, das regelbasierte Erkennen von Ereignissen, das Auslösen von Aktionen, die Visualisierung von Messdaten, das Bereitstellen von APIs für höhere Applikationsebenen oder das Management von IoT-Endgeräten.
Solche Funktionen stellen Middleware-Suites, sogenannte IoT-Plattformen, bereit. Moderne IoT-Plattformen beschränken sich nicht nur auf das Backend eines IoT-Systems (Cloud oder lokal), sondern liefern darüber hinaus auch containerbasierte Laufzeitumgebungen für Edge-Server oder Software Development Kits (SDKs) für Endgeräte und Gateways. IoT-Plattformen sind mittlerweile ein selbstverständlicher Teil von IoT-Systemen geworden und lassen sich daher auch als die Betriebssysteme des Internet of Things bezeichnen.
Einige Funktionen von IoT-Plattformen haben wir bereits exemplarisch aufgeführt. Im Folgenden konzentrieren wir uns auf die Realisierung des Devicemanagements in drei führenden IoT-Plattformen: "Azure IoT" [1], "AWS IoT" [2] und "Cumulocity IoT" [3] von der Software AG. Es gibt am Markt eine Vielzahl weiterer Angebote, doch wir beschränken uns auf diese drei Plattformen, da die beiden erstgenannten den führenden Cloud-anbietern gehören und Cumulocity IoT eine starke Stellung als Plattform für das industrielle IoT behauptet. Das Marktforschungsunternehmen Gartner hat im Jahr 2022 Cumulocity IoT zusammen mit Azure IoT im führenden Quadranten für industrielle IoT-Plattformen gesehen.
Die nachfolgenden Abschnitte geben einen Überblick über die standardmäßig angebotenen Device-Management-Funktionen in den drei IoT-Plattformen. Schwerpunkte sind dabei die grundlegende Architektur der Plattformen, das Onboarding von IoT-Endgeräten, die Softwareaktualisierung von Endgeräten und das Monitoring.
Architektur von Azure IoT
Bild 1 gibt einen Überblick über die Architektur von Azure IoT: Der IoT-Hub ist der zentrale Clouddienst für die bidirektionale Kommunikation mit Lage, mehrere IoT-Hubs zu nutzen. IoT-Devices können entweder direkt oder indirekt über einen Edge-Server beziehungsweise Gateway mit dem Hub kommunizieren.
Bild 1: In Microsofts Azure IoT bildet der IoT-Hub den zentralen Verwaltungsdienst.
Jedes Gerät, das mit einem IoT-Hub sprechen will, muss in dessen Identity-Registry verzeichnet sein. Der Eintrag für ein Gerät enthält unter anderem Geräte-ID, Angaben zum Authentifizierungsverfahren und eine Statusinformation. Das Verfahren für die Authentifizierung basiert entweder auf X.509-Zertifikaten oder auf symmetrischen Schlüsseln. Die Statusinformation gibt an, ob das Gerät mit dem IoT-Hub kommunizieren darf oder temporär gesperrt ist. Das Löschen eines Eintrags in der Identity-Registry ist gleichbedeutend mit der permanenten Sperre des zugehörigen Device.
Für jedes verbundene Gerät wird im IoT-Hub ein JSON-Dokument, der sogenannte Device Twin, angelegt. Dieser speichert Informationen wie Geräte-ID, Tags, vom Gerät gemeldete Attributwerte (Reported Properties) oder Zielwerte, die das Device übernehmen soll (Desired Properties). Die Definition von Zielwerten ermöglicht es, neue Attributwerte beziehungsweise Gerätekonfigurationen asynchron und automatisiert an einzelne Geräte oder Gerätegruppen auszurollen. Wenn Geräte sich mit dem IoT-Hub verbinden, erhalten sie Informationen über den neu zu setzenden Wert, der nach Übernahme auch an den Device Twin zurückgemeldet wird.
Der IoT-Hub kann Nachrichten von Geräten an nachgelagerte Clouddienste zur Speicherung und Verarbeitung weiterleiten. In umgekehrter Richtung bietet der Hub übergeordneten Managementinstanzen Dienste an, zum Beispiel zum Nachrichtenversand, zur Verwaltung der Identity-Registry und Device Twins oder zum Management von Jobs.
Onboarding und Monitoring in Azure IoT
Die Voraussetzung für das Onboarding von Geräten ist, dass sie in der Identity-Registry des zuständigen IoT-Hubs eingetragen sind. Dies erfolgt entweder direkt über eine Schnittstelle am Hub oder über den Device-Provisioning-Service (DPS). In der erstgenannten Variante wird das Device typischerweise manuell mit der Adresse des IoT-Hubs und den erforderlichen Authentifizierungsdaten versorgt.
Die zweite Onboarding-Variante mittels DPS ermöglicht die automatische Inbetriebnahme großer Gerätebestände. Dabei hinterlegt der IT-Verantwortliche in einem ersten manuellen Schritt eine Liste der zu registrierenden Geräte im DPS, den das Gerät bei der Inbetriebnahme kontaktiert. DPS überprüft die Identität des Devices, bestimmt den zuständigen IoT-Hub und registriert es in diesem. Abschließend erhält das Gerät die Adresse des Hubs. Danach ist das Device in der Lage, mit seinem zugeordneten IoT-Hub zu kommunizieren. Dieses Verfahren setzt voraus, dass das Gerät vorab, zum Beispiel beim Gerätehersteller, mit passenden Authentifizierungsdaten und der Adresse des DPS ausgestattet wurde.
Softwareaktualisierungen auf Endgeräten werden vom Device Update Service (DUS) gesteuert. Dabei lassen sich sowohl komplette Images als auch einzelne Softwarepakete austauschen.
Die Plattform bietet vielfältige Möglichkeiten für das Monitoring. Beispielsweise kann ein IoT-Hub Events auslösen, wenn sich ein Gerät verbindet, die Verbindung aufgelöst wird oder wenn das Device Telemetriedaten sendet. In Verbindung mit dem Cloudservice "Azure Event Grid" ist es möglich, die Events einzelner Geräte zu überwachen. Ein weiterer Dienst namens "Azure Monitor" erlaubt das Monitoring aggregierter Performanceparameter wie etwa die aktuelle Anzahl verbundener Devices.
Bild 2: Die Funktionen von Amazons AWS IoT bauen auf dem IoT-Core-Dienst auf.
AWS IoT im Überblick
Die Grundlage für die Kommunikation zwischen Clouddiensten und IoT-Endgeräten und für die Verwaltung der Endgeräte bildet bei AWS der Dienst "AWS IoT Core", dessen Bausteine Bild 2 zeigt. Das Device-Gateway bildet zusammen mit dem Message Broker die Kommunikationsschnittstelle zu den Endgeräten. Der Message Broker ist die zentrale Drehscheibe für die Verteilung von Nachrichten zwischen Devices und Plattformdiensten. Er basiert auf dem Publish/Subscribe-Mechanismus: Sender publizieren Nachrichten auf sogenannten Topics und Empfänger, die sich für die Nachrichten eines bestimmten Topics interessieren, müssen sich auf diesem registrieren.
Die vom Message Broker auf Topics bereitgestellten Nachrichten werden in der Rules Engine regelgesteuert weiterverarbeitet. Zu den typische Aktionen, die sich hier auslösen lassen, gehören das Filtern von Daten, Weiterleiten von Daten an nachgelagerte AWS-Dienste zur Speicherung oder Verarbeitung, Publikation einer neuen Nachricht im Message Broker oder das Erfassen einer Metrik für das Monitoring.
Ein "Device Shadow" repräsentiert den aktuellen Status eines Geräts. Er enthält Namen und Werte von Zustandsattributen, wobei sich ähnlich zu Azure IoT differenzieren lässt, ob das Gerät den Wert gemeldet hat oder ihn übernehmen soll. Der Device Shadow ermöglicht es, dass Plattformdienste Attributwerte lesen und neu setzen, auch wenn das zugehörige Gerät offline ist. Sobald das Device wieder online ist, synchronisieren sich Shadow und reales Gerät.
IoT-Geräte werden für organisatorische Zwecke in einer JSON-Datenstruktur, genannt "Thing", repräsentiert und die Sammlung aller Things wird "Thing Registry" bezeichnet. Ein Thing umfasst unter anderem Namen, ID, Typ und optionale Attribute wie beispielsweise Gerätehersteller oder -modell. Einem Thing lässt sich ei n X.509-Zertifikat zuordnen, dessen zugehöriger Private Key im Endgerät gespeichert ist. Dies ermöglicht das Überprüfen der Geräteidentität beim Onboarding. Einem Zertifikat kann zudem eine sogenannte IoT-Policy zugeordnet sein. Diese definiert, welche Operationen ein Device in der Plattform auslösen darf.
Things lassen sich statisch oder dynamisch in Gruppen (Thing Groups) organisieren. Statische Gruppen können zudem hierarchisch in Untergruppen zerlegt werden.. Solche Gruppenbildungen erleichtern die gleichzeitige und zielgenaue Ausführung von Operationen in großen Gerätebeständen.
Onboarding und Monitoring in AWS IoT
Das Onboarding von Geräten nennt sich in AWS IoT "Device Provisioning". Obwohl nicht strikt vorgeschrieben, ist es jedoch gute Sicherheitspraxis, dass IT-Verantwortliche ein Device vor der Inbetriebnahme in der Thing Registry mit seinem X.509-Zertifikat eintragen. AWS IoT bietet unterschiedliche Onboarding-Verfahren an, die sich darin unterscheiden, von wem und zu welchem Zeitpunkt sich ein Gerätezertifikat erzeugen und in der Thing Registry eintragen lässt.
Der "Software Package Catalog" beinhaltet Softwarepakete für die Aktualisierung von Endgeräten. Das Rollout solcher Updates erfolgt im Zusammenspiel mit dem Dienst "AWS IoT Jobs". Dem Monitoring dient der Clouddienst "Amazon CloudWatch". Logeinträge und Metriken, die die IoT-Plattform generiert, können dort ausgewertet, alarmiert oder visualisiert werden. Sofern von dem Endgeräten unterstützt, ist es auch möglich, deren Logfiles in CloudWatch zu laden.
Das Monitoring großer Geräteflotten ist außerdem über den Dienst "Fleet Hub for AWS IoT Device Management" möglich. Dieser Service erlaubt, Webapplikationen zu erstellen, die etwa innerhalb von Support- und Betriebsorganisationen für Überwachung und Administration von Geräteflotten zum Einsatz kommen.
Aufbau und Funktionsweise von Cumulocity IoT
Cumulocity IoT kann in einer öffentlichen Cloud als Software-as-a-Service (SaaS) oder auch on premises auf eigener IT-Infrastruktur betrieben werden. Bild 3 gibt einen Überblick über die Struktur des Diensts, bei dem Agenten die Schnittstelle zur Gerätewelt bilden. Sie überführen gerätespezifische Protokolle in ein einheitliches internes Referenzprotokoll, das auf REST (HTTPS) und JSON basiert. Die Agenten können sowohl auf Serverseite (server-side agents) als auch auf der Geräteseite (device-side agents) residieren.
Bild 3: Cumulocity IoT von der Software AG ist die einzige unter den drei Managementumgebungen, die sich lokal betreiben lässt.
Der Operational Store speichert Daten über Geräte und zugehörige Assets sowie Bewegungsdaten (Messdaten, Alarme, Operationen et cetera). Bewegungsdaten lassen sich in diesem Store nur für eine begrenzte Dauer speichern. Die Daten des Operational Store liest der IoT-Data-Hub periodisch aus und speichert sie in einem Data Lake für beispielsweise Langzeitanalysen. Darüber hinaus können IT-Verantwortliche die Daten auch weiteren Clouddiensten zur Verfügung stellen.
IoT-Geräte und -Assets werden im Inventory als Managed Objects abgebildet. Managed Objects enthalten unter anderem eine eindeutige Objektidentifikation, Objektname, Objekttyp, Zeitpunkt des letzten Updates sowie eine typspezifische Anzahl von Attributen. Diese Objekte können untereinander in zwei Arten von hierarchischen Beziehungen stehen: Kommunikationshierarchie (zum Beispiel Sensor / Gateway / Agent) und Komponentenhierarchie (etwa Sensor / Raum / Gebäude).
Cumulocity IoT bietet in der Standardkonfiguration drei Applikationen an: Administration (Verwaltung von Benutzern, Rollen und Applikationen), Cockpit (Management und Monitoring von Assets auf Geschäftsprozessebene) und das technische Devicemanagement. Letzteres bietet eine Reihe von Diensten wie die Registrierung von Geräten, das Verwalten von X.509-Zertifikaten und Firmware- und Software-Repository. Zudem erlaubt es Operationen auf Geräten wie etwa das Ausführen von Softwareupdates sowie das Monitoring von Geräten.
Eine gute Plattform ist nicht alles
Jede der beschriebenen IoT-Plattformen bietet umfangreiche Funktionen für das Management von IoT-Geräten an. Wie unschwer zu erkennen ist, verfügen die Plattformen über ähnliche Dienste und nutzen teilweise ähnliche Konzepte, die jedoch mit jeweils eigenen Begriffen belegt und auf unterschiedliche Weise implementiert sind. Aus der Tatsache, dass ein Endgerät MQTT oder HTTPS beherrscht und eine IoT-Plattform diese Protokolle ebenfalls unterstützt, dürfen Sie daher nicht ableiten, dass IoT-Endgerät und -Plattform erfolgreich interagieren können. Alle hier beschriebenen Umgebungen sind daher bestrebt, ein Ökosystem kompatibler Endgeräte zu etablieren und unterstützen entsprechende Gerätezertifizierungen. Die Listen der kompatiblen IoT-Devices sind auf den Webseiten der Anbieter abrufbar.
Obwohl manche Marketingaussagen Einfachheit und schnelle Umsetzbarkeit suggerieren, sollten Sie den Aufwand für die Einrichtung einer auf die speziellen Bedürfnisse abgestimmten und einsatzfähigen Plattforminstanz nicht unterschätzen. Wenn Sie durch die Auswahl der IoT-Geräte nicht ohnehin bereits an eine Plattform gebunden sind, werden Sie den Aufwand, den Sie einmal für das Customizing einer Plattforminstanz geleistet haben, möglicherweise kein zweites Mal leisten wollen. Der resultierende Effekt ist wie bei anderen Clouddiensten als Vendor Lock-in bekannt.
Beim Monitoring von IoT-Systemen müssen Sie beachten, dass die von einer Plattform angebotenen Mechanismen in der Regel nicht das komplette System abdecken. Wenn das System IoT-Devices als offline kennzeichnet, kann die Fehlerursache an zahlreichen Stellen lokalisiert werden: Vielleicht liegt eine Störung in der Plattform vor oder im Rahmen einer Wartungsaktion gelangte eine fehlerhafte Konfiguration oder ein fehlerbehafteter Softwarestand auf die Geräte. Es kann aber auch an einer Netzwerkstörung auf dem Weg vom Gerät in die Cloud liegen.
Wer Erfahrung mit IoT-Systemen hat, weiß, dass solche Netze eine nicht versiegende Quelle von Störungen sein können. Wenn Sie einen hohen Service Level erreichen möchten, müssen Sie sich auch Gedanken über eine geeignete Einbindung des Netzwerkmonitorings machen. Das kann zum Beispiel im Mobilfunk eine Herausforderung darstellen, wenn nicht nur der Heimnetzbetreiber der verwendeten SIM-Karten, sondern auch zahlreiche Roaming-Partner involviert sind.
Fazit
Trotz der genannten Einschränkungen werden cloudbasierte IoT-Plattformen auch in Zukunft ein wesentlicher Baustein von IoT-Systemen sein. Wollen Sie im IoT eine nennenswerte Anzahl von Endgeräten betreiben, sollten Sie sich daher mit solchen Plattformen beschäftigen. Jede der hier behandelten offeriert kostenlose Accounts für Testzwecke. Einige Hersteller bieten auch kostenlose Smartphone-Apps an, mit denen sich IoT-Geräte simulieren lassen. Mit geringer Vorabinvestition schaffen Sie damit eine Testumgebung, in der Sie erste praktische Erfahrungen mit einer Plattform gewinnen.
(jp)
Link-Codes