Brücken in die IoT-Welt
Mit dem Microcontroller in die Cloud
Einfache Geräte können ohne «grosses» Betriebssystem mit dem IoT verbunden werden. Denn es gibt inzwischen Lösungen, die die Kette vom Microcontroller bis zur fertigen Heim-, Industrie- oder Geschäftsanwendung abdecken.
Autor: Constantin Gonzalez ist Principal Solutions Architect, Amazon Web Services (AWS)
Der Anwendungsbereich des Internet of Things (IoT) reicht weit – vom sogenannten Industrial IoT im Konzept des «Industrie 4.0» bis hin zu Smart-Home-Anwendungen wie der «intelligenten Glühbirne».
So mancher stellt sich aber die Frage: Wie können einfache Geräte ohne «grosses» Betriebssystem mit dem IoT verbunden werden? Was ist, wenn die Verbindung in die Cloud unzuverlässig ist? Was, wenn Netzwerk-Latenzen eine Steuerung von Echtzeit-Komponenten unmöglich machen? Und was kann man mit Daten machen, wenn sie in der Cloud zur Verfügung stehen?
Hierfür haben Hersteller wie Amazon Web Services (AWS) Lösungen entwickelt, die die Kette vom Microcontroller bis zur fertigen Heim-, Industrie- oder Geschäftsanwendung abdecken können.
Microcontroller könnten schnell überfordert sein
Typische Cloud-Protokolle verwenden HTTPS-basierte RESTful Web Services, die leistungsstark und sicher sind, aber auch verhältnismässig viel Speicher- und CPU-Aufwand erfordern. Kein Problem für PC, Notebook und Mobiltelefon, oder das ein oder andere «Bastelprojekt» mit dem Raspberry Pi. Microcontroller, die kleiner und Strom sparender sind, können jedoch mit solchen Protokollen schnell überfordert sein.
Auf der anderen Seite ist es für Anwendungen wie Sensordaten-Erfassung, Smart Watches oder Fitness-Tracker nicht kosten- oder energieeffizient, einen «richtigen» Rechner zu verbauen, der Web-Protokolle unterstützen könnte. Hier hilft oft eine Zweiteilung der Konnektivität: Ein schlankes Protokoll wie z.B. Zigbee oder Bluetooth verbindet das Endgerät mit einem Brückengerät (z.B. ein Smart Home Hub, einem Router oder ein Mobiltelefon), und das wiederum stellt die Verbindung in die Cloud her.
Das Potenzial für schlecht erprobte und damit unsichere Lösungen ist gross.
Microcontroller und andere IoT-Geräte sicher mit der Cloud verbinden
So ein Szenario kann schnell kompliziert werden: Wie sichert man die Netzwerk-Verbindung ab? Wie funktionieren in so einem Szenario Firmware-Updates? Wie verwaltet man grosse Mengen von Microcontroller-Geräten durch Connectivity-Hubs hindurch?
Auch dann, wenn Microcontroller mächtig genug sind, um eigene Verbindungen zu Cloud-Diensten mithilfe von Protokollen wie HTTPS oder MQTT über TLS (MQTTS) aufzubauen bleiben diese Fragen häufig offen und das Potenzial für schlecht erprobte und damit unsichere Lösungen ist gross.
Hier hat AWS mit Software wie Amazon FreeRTOS und AWS Greengrass sowie dem Cloud-Service AWS IoT Core eine Lösung geschaffen, die Entwicklern hilft, Microcontroller und andere IoT-Geräte einfach, sicher und skalierbar mit der Cloud zu verbinden und diese Geräte zuverlässig zu aktualisieren und zu verwalten.
Brücken in die IoT-Welt
Mit dem Microcontroller in die Cloud
Einfache Geräte können ohne «grosses» Betriebssystem mit dem IoT verbunden werden. Denn es gibt inzwischen Lösungen, die die Kette vom Microcontroller bis zur fertigen Heim-, Industrie- oder Geschäftsanwendung abdecken.
Autor: Constantin Gonzalez ist Principal Solutions Architect, Amazon Web Services (AWS)
Der Anwendungsbereich des Internet of Things (IoT) reicht weit – vom sogenannten Industrial IoT im Konzept des «Industrie 4.0» bis hin zu Smart-Home-Anwendungen wie der «intelligenten Glühbirne».
So mancher stellt sich aber die Frage: Wie können einfache Geräte ohne «grosses» Betriebssystem mit dem IoT verbunden werden? Was ist, wenn die Verbindung in die Cloud unzuverlässig ist? Was, wenn Netzwerk-Latenzen eine Steuerung von Echtzeit-Komponenten unmöglich machen? Und was kann man mit Daten machen, wenn sie in der Cloud zur Verfügung stehen?
Hierfür haben Hersteller wie Amazon Web Services (AWS) Lösungen entwickelt, die die Kette vom Microcontroller bis zur fertigen Heim-, Industrie- oder Geschäftsanwendung abdecken können.
Microcontroller könnten schnell überfordert sein
Typische Cloud-Protokolle verwenden HTTPS-basierte RESTful Web Services, die leistungsstark und sicher sind, aber auch verhältnismässig viel Speicher- und CPU-Aufwand erfordern. Kein Problem für PC, Notebook und Mobiltelefon, oder das ein oder andere «Bastelprojekt» mit dem Raspberry Pi. Microcontroller, die kleiner und Strom sparender sind, können jedoch mit solchen Protokollen schnell überfordert sein.
Auf der anderen Seite ist es für Anwendungen wie Sensordaten-Erfassung, Smart Watches oder Fitness-Tracker nicht kosten- oder energieeffizient, einen «richtigen» Rechner zu verbauen, der Web-Protokolle unterstützen könnte. Hier hilft oft eine Zweiteilung der Konnektivität: Ein schlankes Protokoll wie z.B. Zigbee oder Bluetooth verbindet das Endgerät mit einem Brückengerät (z.B. ein Smart Home Hub, einem Router oder ein Mobiltelefon), und das wiederum stellt die Verbindung in die Cloud her.
Das Potenzial für schlecht erprobte und damit unsichere Lösungen ist gross.
Microcontroller und andere IoT-Geräte sicher mit der Cloud verbinden
So ein Szenario kann schnell kompliziert werden: Wie sichert man die Netzwerk-Verbindung ab? Wie funktionieren in so einem Szenario Firmware-Updates? Wie verwaltet man grosse Mengen von Microcontroller-Geräten durch Connectivity-Hubs hindurch?
Auch dann, wenn Microcontroller mächtig genug sind, um eigene Verbindungen zu Cloud-Diensten mithilfe von Protokollen wie HTTPS oder MQTT über TLS (MQTTS) aufzubauen bleiben diese Fragen häufig offen und das Potenzial für schlecht erprobte und damit unsichere Lösungen ist gross.
Hier hat AWS mit Software wie Amazon FreeRTOS und AWS Greengrass sowie dem Cloud-Service AWS IoT Core eine Lösung geschaffen, die Entwicklern hilft, Microcontroller und andere IoT-Geräte einfach, sicher und skalierbar mit der Cloud zu verbinden und diese Geräte zuverlässig zu aktualisieren und zu verwalten.
Open Source Echtzeit-Betriebssystem für Microcontroller
Wie der Name schon andeutet, ist Amazon FreeRTOS ein Open Source Echtzeit-Betriebssystem für Microcontroller, das auf dem populären FreeRTOS-Betriebssystem aufbaut und es um eine Reihe von Libraries ergänzt, die die Nutzung von FreeRTOS für IoT-Anwendungen optimiert:
- Amazon FreeRTOS (abgekürzt: «a:FreeRTOS») ist kostenlos und unter der MIT Open Source Lizenz freigegeben. Entwickler können damit nahtlos an das existierende FreeRTOS-Ökosystem mit seinen Werkzeugen und passender Software anknüpfen, da a:FreeRTOS auf dem unmodifizierten FreeRTOS Kernel aufsetzt.
- Das Betriebssystem kommt mit einer Reihe von nützlichen Libraries, die typische IoT-Fähigkeiten wie z.B. die Konfiguration des Microcontrollers für lokale Netzwerke oder over-the-air (OTA) Updates erleichtern.
- Über die Amazon-FreeRTOS-Konsole können Entwickler Ihre eigene a:FreeRTOS-Distribution konfigurieren, indem sie eine der unterstützten Hardware-Plattformen und die benötigten Zusatz-Libraries je nach Anforderung auswählen. Daraufhin können sie von dort ihre massgeschneiderte a:FreeRTOS-Distribution herunterladen und installieren.
- a:FreeRTOS legt besonderen Focus auf die Sicherheit von Endgeräten und IoT-Anwendungen: Es kommt mit Libraries für Datenverschlüsselung und Schlüsselmanagement, sowie TLS 1.2 für die verschlüsselte Netzwerk-Kommunikation. Eine Code-Signier-Funktion ermöglicht den Nachweis, dass Programmcode etwa bei Updates nicht verändert wurde.
- Geräte, die Amazon FreeRTOS verwenden, können je nach Ausstattung direkt mit Cloud-Diensten über sichere Protokolle kommunizieren, oder über ein lokales Gerät als Brücke ins Internet. Für diesen Fall bietet Amazon mit AWS Greengrass eine passende Edge-Computing-Lösung.
- Neben der Software und den zusätzlichen Libraries qualifiziert AWS a:FreeRTOS für eine Reihe von Chipsätzen und Architekturen wie MIPS und ARM, in Verbindung mit Partnern wie Espressif, Microchip, NXP Semiconductors, STMicroelectronics, Texas Instruments und weiteren Hardwareanbietern. Das Qualifikationsprogramm (https://aws.amazon.com/freertos/partners/) steht jedem Hardwarehersteller offen.
Die Nutzung von a:FreeRTOS
Die Nutzung von a:FreeRTOS für Hardware-Entwickler ist sehr einfach:
1. Man sucht sich einen passenden Microcontroller aus der Liste der unterstützten Geräte heraus (https://aws.amazon.com/freertos/partners/).
2. Danach stellt man sich in der Amazon FreeRTOS Konsole (https://console.aws.amazon.com/freertos) die benötigten Libraries zusammen und lädt dann eine angepasste Distribution von a:FreeRTOS samt Hardware-spezifischer Unterstützung und aller gewählten Libraries herunter.
3. Sobald das Betriebssystem auf dem Gerät installiert ist, kann es für die Verbindung mit lokalen Edge-Geräten oder Cloud Services wie z.B. AWS IoT Core konfiguriert werden. Die eingebaute Unterstützung von Firmware-Updates erleichtert den Aufbau einer Over-the-Air-Update-Funktionalität.
Edge-Computing mit AWS Greengrass
Grundsätzlich erlaubt Amazon FreeRTOS herstellerunabhängiges Arbeiten, in dem es offene Standardprotokolle wie MQTT , TLS 1.2, etc. verwendet; man kann also seinen a:FreeRTOS Microcontroller problemlos mit diversen IoT-Diensten verknüpfen sowie beliebige Edge-Lösungen daran anbinden.
Wer eine Lösung für den Aufbau und das Management von Edge-Computing-Geräten nicht selber entwickeln möchte, kann die hauseigene AWS Greengrass Software nutzen, die dem IoT-Entwickler viele typische Edge-Computing-Aufgaben erleichtern kann.
Die AWS Greengrass Software unterstützt die koordinierte Implementation von lokalem Code, die Verwaltung von Nachrichten nach dem MQTT-Standard, das Zwischenspeichern (Caching) und die Synchronisation von Daten sowie auch die Nutzung von Machine-Learning-Modellen auf Edge-Geräten.
Dabei agiert Greengrass als lokaler Hub (Greengrass Core) für Endgeräte wie z.B. Microcontroller, die über lokale Protokolle wie MQTTS, OPC-UA oder andere Schnittstellen an Greengrass gekoppelt werden können. Endgeräte, die an Greengrass Core angebunden werden, werden dann «Greengrass aware» genannt.
Edge-Computing mit AWS Greengrass
Grundsätzlich erlaubt Amazon FreeRTOS herstellerunabhängiges Arbeiten, in dem es offene Standardprotokolle wie MQTT , TLS 1.2, etc. verwendet; man kann also seinen a:FreeRTOS Microcontroller problemlos mit diversen IoT-Diensten verknüpfen sowie beliebige Edge-Lösungen daran anbinden.
Wer eine Lösung für den Aufbau und das Management von Edge-Computing-Geräten nicht selber entwickeln möchte, kann die hauseigene AWS Greengrass Software nutzen, die dem IoT-Entwickler viele typische Edge-Computing-Aufgaben erleichtern kann.
Die AWS Greengrass Software unterstützt die koordinierte Implementation von lokalem Code, die Verwaltung von Nachrichten nach dem MQTT-Standard, das Zwischenspeichern (Caching) und die Synchronisation von Daten sowie auch die Nutzung von Machine-Learning-Modellen auf Edge-Geräten.
Dabei agiert Greengrass als lokaler Hub (Greengrass Core) für Endgeräte wie z.B. Microcontroller, die über lokale Protokolle wie MQTTS, OPC-UA oder andere Schnittstellen an Greengrass gekoppelt werden können. Endgeräte, die an Greengrass Core angebunden werden, werden dann «Greengrass aware» genannt.
AWS Greengrass als eigenständige IoT-Komponente
AWS Greengrass kann aber auch eigenständig als IoT-Komponente eingesetzt werden, z.B. als Software-Plattform in Industrie-PCs oder -Controllern.
Damit ermöglicht AWS die nahtlose Integration von beliebigen Geräten aller Grössen mit Cloud-Diensten in unterschiedlichen IoT-Szenarien:
- Über den offenen MQTT-Standard oder Industrie-spezifischen Protokollen wie OPC-UA können Geräte untereinander, mit Greengrass Core Geräten oder mit der Cloud (MQTT, HTTPS) kommunizieren. Gemäss dem MQTT-Standard werden dabei Nachrichten in sog. Topics sortiert, die abonniert werden können, um den Nachrichtenfluss zu steuern. Zur Verschlüsselung wird der TLS 1.2 Standard verwendet, X.509-Zertifikate sorgen für Authentifizierung auf beiden Seiten. Ein Policy-Management erlaubt dabei fein granulare Vergabe von Rechten im Sinne eines Least-Privilege-Modells.
- Oft sind Geräte zeitweise vom Netzwerk getrennt, beispielsweise wenn Fahrzeuge in einen Tunnel fahren oder Sensoren in entlegenen Gebieten betrieben werden. In diesen Fällen kann Greengrass als lokaler Hub die Kontrolle übernehmen und mithilfe von Message Queues Zustände puffern sowie mit sog. Device Shadows Zustände mit der Cloud bzw. mit an Greengrass Core angeschlossenen Geräten synchronisieren. Dieses Device-Shadow-Modell erleichtert Entwicklern den Umgang mit Verbindungs-Abbrüchen: Der Device Shadow verhält sich wie ein Gerät, das immer online ist und das sich automatisch mit dem echten Gerät abstimmt und die Zustände synchronisiert. Device Shadows können sowohl innerhalb von Greengrass Core Geräten genutzt werden, als auch in der AWS-Cloud über den AWS IoT Core Dienst.
- Manche IoT-Anwendungen erfordern schnelle Reaktionszeiten, für die typische Netzwerk-Latenzen zu hoch sind. Beispiele hierbei sind Roboter-Steuerungen oder Regelkreise. Für diese Fälle stellt Greengrass eine Software-Umgebung für sog. Lambda-Funktionen bereit, in denen Code lokal ausgeführt werden kann, der entweder dauerhaft läuft oder über bestimmte Ereignisse (z. B. MQTT-Messages) gestartet werden kann, um darauf zu reagieren. Das Lambda-Modell standardisiert die Verwaltung von Benutzer-Code und schottet einzelne Funktionen voneinander ab. Mit solchen Lambda-Funktionen können auch beliebige Protokolle konvertiert werden oder physische Schnittstellen wie z.B. serielle Busse angebunden werden.
- Auch bei AWS Greengrass steht die Sicherheit im Vordergrund: Über verschlüsselte Verbindungen und Zertifikat-Authentifizierungen für alle Seiten wird sichergestellt, dass zu keinem Zeitpunkt Daten unkontrolliert zwischen Greengrass Core Geräten und der Cloud ausgetauscht werden. Greengrass-aware Geräte sowie im Greengrass Core laufende Lambda-Funktionen können über sog. Subscriptions verschaltet werden, die die Kommunikation untereinander und das Triggern der Lambda-Funktionen konfigurierbar regeln.
Edge-Computing mit AWS Greengrass
Grundsätzlich erlaubt Amazon FreeRTOS herstellerunabhängiges Arbeiten, in dem es offene Standardprotokolle wie MQTT , TLS 1.2, etc. verwendet; man kann also seinen a:FreeRTOS Microcontroller problemlos mit diversen IoT-Diensten verknüpfen sowie beliebige Edge-Lösungen daran anbinden.
Wer eine Lösung für den Aufbau und das Management von Edge-Computing-Geräten nicht selber entwickeln möchte, kann die hauseigene AWS Greengrass Software nutzen, die dem IoT-Entwickler viele typische Edge-Computing-Aufgaben erleichtern kann.
Die AWS Greengrass Software unterstützt die koordinierte Implementation von lokalem Code, die Verwaltung von Nachrichten nach dem MQTT-Standard, das Zwischenspeichern (Caching) und die Synchronisation von Daten sowie auch die Nutzung von Machine-Learning-Modellen auf Edge-Geräten.
Dabei agiert Greengrass als lokaler Hub (Greengrass Core) für Endgeräte wie z.B. Microcontroller, die über lokale Protokolle wie MQTTS, OPC-UA oder andere Schnittstellen an Greengrass gekoppelt werden können. Endgeräte, die an Greengrass Core angebunden werden, werden dann «Greengrass aware» genannt.
AWS Greengrass als eigenständige IoT-Komponente
AWS Greengrass kann aber auch eigenständig als IoT-Komponente eingesetzt werden, z.B. als Software-Plattform in Industrie-PCs oder -Controllern.
Damit ermöglicht AWS die nahtlose Integration von beliebigen Geräten aller Grössen mit Cloud-Diensten in unterschiedlichen IoT-Szenarien:
- Über den offenen MQTT-Standard oder Industrie-spezifischen Protokollen wie OPC-UA können Geräte untereinander, mit Greengrass Core Geräten oder mit der Cloud (MQTT, HTTPS) kommunizieren. Gemäss dem MQTT-Standard werden dabei Nachrichten in sog. Topics sortiert, die abonniert werden können, um den Nachrichtenfluss zu steuern. Zur Verschlüsselung wird der TLS 1.2 Standard verwendet, X.509-Zertifikate sorgen für Authentifizierung auf beiden Seiten. Ein Policy-Management erlaubt dabei fein granulare Vergabe von Rechten im Sinne eines Least-Privilege-Modells.
- Oft sind Geräte zeitweise vom Netzwerk getrennt, beispielsweise wenn Fahrzeuge in einen Tunnel fahren oder Sensoren in entlegenen Gebieten betrieben werden. In diesen Fällen kann Greengrass als lokaler Hub die Kontrolle übernehmen und mithilfe von Message Queues Zustände puffern sowie mit sog. Device Shadows Zustände mit der Cloud bzw. mit an Greengrass Core angeschlossenen Geräten synchronisieren. Dieses Device-Shadow-Modell erleichtert Entwicklern den Umgang mit Verbindungs-Abbrüchen: Der Device Shadow verhält sich wie ein Gerät, das immer online ist und das sich automatisch mit dem echten Gerät abstimmt und die Zustände synchronisiert. Device Shadows können sowohl innerhalb von Greengrass Core Geräten genutzt werden, als auch in der AWS-Cloud über den AWS IoT Core Dienst.
- Manche IoT-Anwendungen erfordern schnelle Reaktionszeiten, für die typische Netzwerk-Latenzen zu hoch sind. Beispiele hierbei sind Roboter-Steuerungen oder Regelkreise. Für diese Fälle stellt Greengrass eine Software-Umgebung für sog. Lambda-Funktionen bereit, in denen Code lokal ausgeführt werden kann, der entweder dauerhaft läuft oder über bestimmte Ereignisse (z. B. MQTT-Messages) gestartet werden kann, um darauf zu reagieren. Das Lambda-Modell standardisiert die Verwaltung von Benutzer-Code und schottet einzelne Funktionen voneinander ab. Mit solchen Lambda-Funktionen können auch beliebige Protokolle konvertiert werden oder physische Schnittstellen wie z.B. serielle Busse angebunden werden.
- Auch bei AWS Greengrass steht die Sicherheit im Vordergrund: Über verschlüsselte Verbindungen und Zertifikat-Authentifizierungen für alle Seiten wird sichergestellt, dass zu keinem Zeitpunkt Daten unkontrolliert zwischen Greengrass Core Geräten und der Cloud ausgetauscht werden. Greengrass-aware Geräte sowie im Greengrass Core laufende Lambda-Funktionen können über sog. Subscriptions verschaltet werden, die die Kommunikation untereinander und das Triggern der Lambda-Funktionen konfigurierbar regeln.
Gerade in der Kombination mit AWS Greengrass können also Geräte, die Amazon FreeRTOS als Echtzeitbetriebssystem verwenden eine sichere, robuste und leistungsfähige IoT-Architektur aufbauen, die auch Logik vor Ort für Echtzeit-Entscheidungen unterstützt und dabei auch unabhängig von der Cloud arbeiten kann.
Noch mehr Möglichkeiten ergeben sich durch die Integration von Amazon FreeRTOS und AWS Greengrass in Zusammenarbeit mit Cloud-Diensten. Hierbei haben Kunden die Wahl, eigene Dienste aufzubauen und diese über Protokolle wie MQTTS oder HTTPS anzubinden, oder sie verwenden den Hauseigenen Dienst AWS IoT Core:
AWS IoT Core: Beliebige Geräte sicher in Cloud-Dienste einbinden
In der Cloud angekommen, ergeben sich für Entwickler eine Fülle von Möglichkeiten, aus den IoT-Daten Mehrwerte für beliebige Applikationen zu schaffen. Dabei bildet der AWS IoT Core Service das Rückgrat:
- AWS IoT Core liefert einen MQTT Message Broker, der für die Verbindung von IoT-Geräten mit dem Cloud-Dienst sorgt. Prinzipiell kann jedes Gerät mit AWS IoT Core vernetzt werden, das MQTT mit TLS 1.2 und X.509 Zertifikaten oder Websockets über HTTPS mit dem AWS-eigenen SigV4-Signierungs-Algorithmus implementieren kann. Das gilt also für besser ausgestattete Microcontroller mit Amazon FreeRTOS Betriebssystem und entsprechend vorkonfigurierten Libraries, oder für Geräte mit AWS Greengrass Core, die entweder allein der als Hub dienen können oder für beliebige andere Geräte, die diese Protokolle sprechen können, etwa Raspberry Pis, Industrie-Controller auf PC-Basis, Apps für Hand oder Tablet oder auch Web-Applikationen mit JavaScript. Dies ermöglicht auch gemischte Setups, bei denen z.B. der Microcontroller Sensor-Daten über MQTT liefert, die von einer Web-Applikation in JavaScript in nahe Echtzeit empfangen und angezeigt werden können.
- Die für die Authentifizierung benötigten X.509-Zertifikate werden von AWS IoT Core automatisiert bereit gestellt und bilden zusammen mit der TLS 1.2 Verschlüsselung das Fundament für eine sichere Kommunikation zwischen Geräten und Cloud. Zusätzlich können Browser und z.B. Apps auf Mobiltelefonen über Identity-Federation angebunden werden. Policies erlauben dabei die fein granulare Regelung von Kommunikations-Strömen auf MQTT Topic- und Subtopic-Ebene, so dass auch komplexe Security-Setups realisiert werden können. So kann z.B. in einer Taxi-Applikation über die geschickte Nutzung von Topics und Policies erreicht werden, dass GPS-Positionen von Fahrzeugen nur mit Nutzern ausgetauscht werden, die das Fahrzeug auch gebucht haben und umgekehrt die Nutzer-Position nur Fahrzeugen zugänglich gemacht wird, die vom Nutzer gebucht wurden. Nach erfolgter Fahrt können diese Berechtigungen problemlos entzogen werden, indem Fahrt-spezifische Topics einfach nicht mehr benutzt oder Policies angepasst werden.
- Die Verwaltung von Geräten und ihrer Zertifikate wird über eine eingebaute Device Registry erledigt. Für grössere Geräteflotten und weiter gehende Verwaltungs-Aufgaben wie z.B. das Management von Firmware-Updates oder Fernwartungs-Protokolle bietet AWS optional mit AWS IoT Device Management einen eigenen Service an.
- Die Interaktion von Nachrichten von Geräten untereinander oder mit Backend-Services in der Cloud oder im eigenen Rechenzentrum wird über einen regelbasierten Mechanismus, der AWS IoT Rules Engine geregelt: Entwickler können dort Regeln hinterlegen, die mithilfe einer SQL-artigen Konfiguration Nachrichten im MQTT Message-Strom des Brokers filtern und diese an konfigurierbare Aktionen weiter leiten. Solche Aktionen können eine einfache Weiterleitung von Messages an andere Topics sein oder AWS-spezifische Aktionen, wie z.B. die Aktualisierung von Daten in der Amazon DynamoDB Datenbank, die Weiterleitung von Messages an eine Amazon SQS Message Queue oder das Starten einer AWS Lambda-Funktion, in der beliebiger Code in einer der unterstützten Sprachen (z. Zt. Python, Java, Go, C#, Node.js und PowerShell) die Nachricht weiter verarbeiten kann. Letzterer Mechanismus öffnet der Anwendung Tür und Tor in beliebige Integrationen, etwa mit Services aus dem eigenen Rechenzentrum, anderen Cloud-Providern oder SaaS-Diensten.
- Ähnlich wie AWS Greengrass unterstützt AWS IoT Core ebenfalls einen Shadow-Mechanismus zur Kommunikation und zur Synchronisierung mit Geräten, die zeitweise offline sind: Entwickler können über spezielle Messages Zustandsänderungen in einem Device Shadow festhalten, die über ein Protokoll mit dem Gerät synchronisiert werden, wenn es online ist.
- Eine Reihe von AWS IoT Device SDKs für Mobiltelefone (Android, iOS) sowie andere Geräte und Programmiersprachen (Arduino Yún, Embedded C, C++, Java, JavaScript, Python) erleichtert die Programmierung für Entwickler unterschiedlicher Geräte-Typen. Neben einfach nutzbarer MQTT- bzw. Websocket-Libraries enthalten die SDKs auch Funktionen zur einfachen Nutzung des Shadow-Mechanismus. Natürlich können auch beliebige andere MQTT Bibliotheken mit TLS 1.2 Unterstützung benutzt werden.
AWS IoT Core: Beliebige Geräte sicher in Cloud-Dienste einbinden
In der Cloud angekommen, ergeben sich für Entwickler eine Fülle von Möglichkeiten, aus den IoT-Daten Mehrwerte für beliebige Applikationen zu schaffen. Dabei bildet der AWS IoT Core Service das Rückgrat:
- AWS IoT Core liefert einen MQTT Message Broker, der für die Verbindung von IoT-Geräten mit dem Cloud-Dienst sorgt. Prinzipiell kann jedes Gerät mit AWS IoT Core vernetzt werden, das MQTT mit TLS 1.2 und X.509 Zertifikaten oder Websockets über HTTPS mit dem AWS-eigenen SigV4-Signierungs-Algorithmus implementieren kann. Das gilt also für besser ausgestattete Microcontroller mit Amazon FreeRTOS Betriebssystem und entsprechend vorkonfigurierten Libraries, oder für Geräte mit AWS Greengrass Core, die entweder allein der als Hub dienen können oder für beliebige andere Geräte, die diese Protokolle sprechen können, etwa Raspberry Pis, Industrie-Controller auf PC-Basis, Apps für Hand oder Tablet oder auch Web-Applikationen mit JavaScript. Dies ermöglicht auch gemischte Setups, bei denen z.B. der Microcontroller Sensor-Daten über MQTT liefert, die von einer Web-Applikation in JavaScript in nahe Echtzeit empfangen und angezeigt werden können.
- Die für die Authentifizierung benötigten X.509-Zertifikate werden von AWS IoT Core automatisiert bereit gestellt und bilden zusammen mit der TLS 1.2 Verschlüsselung das Fundament für eine sichere Kommunikation zwischen Geräten und Cloud. Zusätzlich können Browser und z.B. Apps auf Mobiltelefonen über Identity-Federation angebunden werden. Policies erlauben dabei die fein granulare Regelung von Kommunikations-Strömen auf MQTT Topic- und Subtopic-Ebene, so dass auch komplexe Security-Setups realisiert werden können. So kann z.B. in einer Taxi-Applikation über die geschickte Nutzung von Topics und Policies erreicht werden, dass GPS-Positionen von Fahrzeugen nur mit Nutzern ausgetauscht werden, die das Fahrzeug auch gebucht haben und umgekehrt die Nutzer-Position nur Fahrzeugen zugänglich gemacht wird, die vom Nutzer gebucht wurden. Nach erfolgter Fahrt können diese Berechtigungen problemlos entzogen werden, indem Fahrt-spezifische Topics einfach nicht mehr benutzt oder Policies angepasst werden.
- Die Verwaltung von Geräten und ihrer Zertifikate wird über eine eingebaute Device Registry erledigt. Für grössere Geräteflotten und weiter gehende Verwaltungs-Aufgaben wie z.B. das Management von Firmware-Updates oder Fernwartungs-Protokolle bietet AWS optional mit AWS IoT Device Management einen eigenen Service an.
- Die Interaktion von Nachrichten von Geräten untereinander oder mit Backend-Services in der Cloud oder im eigenen Rechenzentrum wird über einen regelbasierten Mechanismus, der AWS IoT Rules Engine geregelt: Entwickler können dort Regeln hinterlegen, die mithilfe einer SQL-artigen Konfiguration Nachrichten im MQTT Message-Strom des Brokers filtern und diese an konfigurierbare Aktionen weiter leiten. Solche Aktionen können eine einfache Weiterleitung von Messages an andere Topics sein oder AWS-spezifische Aktionen, wie z.B. die Aktualisierung von Daten in der Amazon DynamoDB Datenbank, die Weiterleitung von Messages an eine Amazon SQS Message Queue oder das Starten einer AWS Lambda-Funktion, in der beliebiger Code in einer der unterstützten Sprachen (z. Zt. Python, Java, Go, C#, Node.js und PowerShell) die Nachricht weiter verarbeiten kann. Letzterer Mechanismus öffnet der Anwendung Tür und Tor in beliebige Integrationen, etwa mit Services aus dem eigenen Rechenzentrum, anderen Cloud-Providern oder SaaS-Diensten.
- Ähnlich wie AWS Greengrass unterstützt AWS IoT Core ebenfalls einen Shadow-Mechanismus zur Kommunikation und zur Synchronisierung mit Geräten, die zeitweise offline sind: Entwickler können über spezielle Messages Zustandsänderungen in einem Device Shadow festhalten, die über ein Protokoll mit dem Gerät synchronisiert werden, wenn es online ist.
- Eine Reihe von AWS IoT Device SDKs für Mobiltelefone (Android, iOS) sowie andere Geräte und Programmiersprachen (Arduino Yún, Embedded C, C++, Java, JavaScript, Python) erleichtert die Programmierung für Entwickler unterschiedlicher Geräte-Typen. Neben einfach nutzbarer MQTT- bzw. Websocket-Libraries enthalten die SDKs auch Funktionen zur einfachen Nutzung des Shadow-Mechanismus. Natürlich können auch beliebige andere MQTT Bibliotheken mit TLS 1.2 Unterstützung benutzt werden.
Das Preismodell richtet sich nach der Nutzung, wobei die Connectivity, der Versand von Nachrichten, die Verwaltung von Shadows und die Nutzung der Rules Engine getrennt abgerechnet werden. Beispiel-Szenarien mit 10‘000 Geräten lassen sich damit für unter 50 US-Dollar pro Monat verwirklichen. Auch hier gibt es einen «Free Tier» für Tests und Hobby-Anwendungen, der Beispielsweise 50 Geräte rund um die Uhr mit Hunderten von Messages und über hundert Device-Shadow-Operationen bzw. Rules-Ausführungen kostenlos beinhaltet.
Mit Amazon FreeRTOS, AWS Greengrass und AWS IoT Core kann die komplette Kette vom kleinsten Microcontroller über Edge-Geräte bis zur Cloud-Lösung abgedeckt werden. Entwickler können beliebige IoT-Szenarien schnell, einfach, sicher und hoch skalierbar umsetzen. Alle Bausteine können unabhängig voneinander verwendet und miteinander oder mit anderen Services beliebig kombiniert werden, da sie auf offenen Protokollen basieren.
Deutsche Kunden wie Siemens, Grohe, Deutsche Bahn AG und Mann & Hummel setzen bereits für ihre IoT-Lösungen auf das IoT-Portfolio von Amazon Web Services. Aber auch Hobby-Anwendern steht die Plattform offen.
AWS erweitert darüber hinaus sein IoT-Portfolio fortlaufend: Mit AWS IoT Analytics steht z. B. eine vollständig verwaltete Plattform für die Datenanalyse von IoT-Daten zur Verfügung. Mit AWS IoT Device Defender ist ein Werkzeug für die automatisierte Überwachung von Sicherheits-Richtlinien bei IoT-Geräten zur Hand. AWS IoT 1-Click reduziert die Komplexität von IoT auf das einfache Drücken eines Knopfes und eine daran verknüpfte AWS Lambda-Funktion für bestimmte Geräte in vereinfachten IoT-Szenarien. Und wer kein solches Gerät hat, kann mit dem AWS IoT Button eine «IoT-Taster» bei Amazon bestellen und sofort mit AWS IoT loslegen.
Impressum
Autor: Constantin Gonzalez ist Principal Solutions Architect, Amazon Web Services (AWS)
Fotos: Pixabay
Grafik: AWS
Publiziert von Technik und Wissen
Informationen
Weitere Artikel
Veröffentlicht am: