Einbetten in das Internet der Dinge

IoT von der Stange

27. Oktober 2016, 13:29 Uhr | Von Dr. Jörg Wollert und Andreas Booke
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 1

Systementwurf für eine Cloud

Wird ein IoT-Gerät mit einer Cloud verbunden, wird eine Datenquelle, das Front End und das Back End benötigt
Bild 4. Wird ein IoT-Gerät mit einer Cloud verbunden, wird eine Datenquelle, das Front End und das Back End benötigt.
© Wollert, Booke

Ein normaler Computer hat eine Benutzerschnittstelle – einen Webbrowser wie den Internet Explorer, Google Chrome, Firefox oder Safari. Damit im Internet zu stöbern ist quasi selbstverständlich. Der Trend rund um Industrie 4.0 und Cloud-Dienste setzt jedoch verstärkt auf intelligente und eingebettete Steuerungen, die nicht unbedingt wie konventionelle Computer aussehen. Das kann die Kaffeemaschine sein, das E-Bike, das Auto oder der Pulsmesser. Alles ist möglich. Allein die Webschnittstelle macht eine eingebettete Steuerung zum IoT-Gerät (Internet der Dinge). Sie ermöglicht die Kommunikation mit dem Internet über WiFi, Ethernet oder 3G und ist eine standardisierte High-Level-Kommunikation zu den unterstützten Web Services. Drei Beteiligte sind notwendig, um ein Gerät mit einer Cloud zu verbinden (Bild 4):

  • das IoT-Gerät selbst, in der Regel der Datenproduzent,
  • das Back End, das die Cloud-Dienste bereit stellt und
  • das Front End, z.B. ein Smartphone oder Computer, der die Cloud-Dienste via Webserver nutzt.

Das Bindeglied zwischen den unterschiedlichen Instanzen ist das Toolkit vom Cloud Provider. Hier wird das AWS IoT Toolkit verwendet, um eine beispielhafte Verknüpfung von physischem IoT-Gerät und der öffentlichen Cloud von Amazon zu demonstrieren. Das Beispiel kann innerhalb des kostenlosen Nutzungs-Kontingents von Amazon (Free Usage Tier) nachvollzogen werden. AWS hat gemeinsam mit Partnern eigene Entwicklungs-Kits entwickelt, die direkt mit dem Cloud-Anbieter verknüpft werden können. Mit dem Beitrag und den weiterführenden Links soll es dem Leser ermöglicht werden, selbst ein erfolgreiches Beispiel in der AWS-Umgebung aufzubauen und in Betrieb zu nehmen [4].

Das IoT-Gerät – die Datenquelle

Das IoT-Gerät ist in der Regel der Produzent der Daten. Als eingebettetes Gerät übernimmt es vollkommen unabhängig einfache Kontroll-, Steuerungs- oder Überwachungsaufgaben und stellt die Verbindung mit dem Internet her. Hierfür eignen sich die Maker-Plattformen Arduino Yun oder Rasp¬berry Pi. Beide verfügen über die notwendigen Schnittstellen, um Internetverbindungen betreiben zu können; neben WiFi und Ethernet ist auch mit einfachen Mitteln eine Erweiterung um die gängigen 2G- oder 3G-Techniken möglich. Der Arduino Yun zeichnet sich dabei durch seine leichte Programmierung und Handhabung aus, während der Rasp¬berry Pi mit einer deutlich höheren Leistung größeren Anforderungen gerecht wird. Auf beiden Plattformen kann das AWS Device SDK (Software-Entwicklungs-Kit) eingesetzt werden, um eine sichere Verbindung zu der AWS-Cloud aufzubauen. Das IoT-Gerät-SDK ist als Embedded-C-SDK für C-basierte Plattformen wie Linux, RTOS, mit OpenSSL- und mbedTLS-Unterstützung, als JavaScript SDK für Node.js und als Arduino Yun SDK verfügbar.

passend zum Thema

AWS IoT ist eine verwaltete Plattform für universelle Cloud-Dienste
Bild 5. AWS IoT ist eine verwaltete Plattform für universelle Cloud-Dienste.
© Amazon Web Services

AWS-IoT-Plattform

AWS IoT (Bild 5) [5] ermöglicht es, die unterschiedlichen IoT-Geräte mit AWS-Diensten mit dem Back End zu verbinden und Daten für Front Ends aufzubereiten. Daten und Interaktionen können somit sicher ausgetauscht, Gerätedaten verarbeitet und in andere Dienste eingebunden werden. Außerdem übernimmt AWS IoT das gesamte Gerätemanagement, auch wenn die Verbindung vorübergehend unterbrochen ist. AWS IoT unterstützt unterschiedliche Datenaustauschprotokolle wie HTTP, WebSockets oder MQTT (siehe Kasten MQTT – Message Queue Telemetry Transport), das speziell für eingebettete Geräte entwickelt worden ist. Innerhalb von AWS IoT können Geräte miteinander kommunizieren, auch wenn sie unterschiedliche Protokolle verwenden.

Bild 5 zeigt einen Überblick über die AWS-IoT-Dienste [5]. Eingebettete Geräte werden mit AWS IoT Device SDK zu einem Ding und können sich über ein gesichertes Gateway mit der Cloud verbinden. Dinge (Things) sind Geräte von unterschiedlichen Typen, die innerhalb von AWS als Anwendung, physisches Objekt oder als verbundener Service eingesetzt werden können. Dinge sind Sensoren oder Aktoren innerhalb ihrer lokalen Umgebung und führen dort bestimmte Aktionen durch. Das AWS-IoT-Modell basiert auf Zuständen (States) und State-Änderungen und erlaubt eine durchgängige Funktionsweise – auch wenn vorübergehend die Verbindung unterbrochen ist. Anwendungen agieren durch Schattengeräte mit anderen Diensten innerhalb der AWS-Cloud. Jedes Ding besitzt dabei einen spezifischen Namen, verschiedene Attribute und ein Schattengerät.

Kasten: MQTT – Message Queue Telemetry Transport

Das Internet der Dinge (IoT) braucht kleine und leichtgewichtige Protokolle. Die konventionellen textbasierten Protokolle wie HTTP und WSDL und SOAP sind viel zu groß, als dass kleine Geräte und Maschinen genug Kapazitäten zur leistungsstarken Interpretation hätten. Genau dort setzt MQTT an. 1999 entwickelte IBM das Protokoll für die Satellitenkommunikation, um möglichst effizient Daten zwischen Geräten mit wenigen Funktionen und geringer Rechenleistung auszutauschen.

Das Protokoll ist leichtgewichtig, einfach zu implementieren, besitzt QoS- und Sicherheitsaspekte und kann als Publisher-Subscriber-Protokoll verwendet werden. Es wird über die TCP/IP-Protokollfamilie übertragen; damit ist es eine Alternative zu anderen webbasierten Protokollen. Herzstück der MQTT-Kommunikation ist der Broker. Er verwaltet die Publisher und Subscriber und die durch sie versendeten und abonnierten Topics. Ein Topic kann nahezu alles sein. Es kann ein Datum sein oder eine ganze Gruppe. Hier sind den Entwicklern quasi keine Grenzen gesetzt – MQTT ist damit datenagnostisch. Was natürlich dazu führt, dass es keine spezifischen Profile für eine Anwendungsgruppe gibt. Generell kann man feststellen, dass aktuell für die Maschine-zu-Maschine-Kommunikation OPC UA und MQTT als schlanke Datenaustausch-Protokolle für Maschinen in der Diskussion sind. Der Blick auf die Amazon-Cloud und generell in die USA zeigt hier klare Vorteile für das sehr schlanke und flexible MQTT.

Schattengeräte (Thing Shadows) sind virtuelle, Cloud-basierte Organisationseinheiten von Dingen. Der digitale Schatten lebt auch dann weiter, wenn die physischen Dinge einmal offline sind. Der Schatten in der Cloud enthält den letzten Status des Geräts, sodass Anwendungen oder andere Geräte Nachrichten lesen und mit dem Gerät interagieren können. Schattengeräte bleiben im letzten gemeldeten Status und gewünschten zukünftigen Status jedes Geräts erhalten, auch wenn das Gerät offline ist. Der zuletzt gemeldete Status kann abgerufen oder ein gewünschter zukünftiger Status festlegt werden. Das geschieht entweder über die Programmierschnittstelle (API) oder über die Regelfunktion.

Die Regelfunktion (Rules Engine) ermöglicht es, auf globaler Basis IoT-Anwendungen einzusetzen, die Daten von den verbundenen Geräten zu sammeln, verarbeiten, analysieren und für weitere Aktionen zu berücksichtigen, ohne dass die Infrastruktur verwaltet werden muss. Die Regelfunktion wertet im AWS IoT ankommende Nachrichten aus, formt sie um und sendet sie je nach festgelegten Regeln an ein anderes Gerät oder einen Cloud-Dienst weiter. Eine Regel kann auf Daten von einem oder vielen Geräten angewendet werden und eine oder mehrere Aktionen parallel vornehmen.Ein Beispiel macht die theoretische Betrachtung etwas deutlicher: Angenommen das IoT-Gerät ist ein Temperatursensor. Er würde nichts anderes tun als die Temperaturwerte in die Cloud zu übermitteln. Überschreiten die Temperaturwerte einen bestimmten Schwellenwert, kann mit der Regelfunktion eine Regel definiert werden, die einen weiteren Cloud-Dienst auslöst. Zum Beispiel könnte der Temperaturdienst die nächst gelegenen Schulen informiert, dass Hitzefrei zu geben ist. Es könnten auch statistisch komplexe Auswertungen gemacht werden. Hier sind nahezu unbegrenzte Möglichkeiten für Dienste gegeben, die durch die Cloud erbracht werden können. Die Regeln werden bei AWS in einer SQL-ähnlichen Syntax verfasst. Das Gateway für Geräte oder auch Message Broker ist der Nachrichtenmanager, der alle relevanten Webprotokolle unterstützt. MQTT, WebSockets und HTTP 1.1 sind die hier üblichen Standards. Darüber hinaus bietet der Message Broker einen sicheren Mechanismus für Dinge und IoT-Anwendungen um Nachrichten und Informationen auszutauschen. Über das MQTT-Protokoll wird ein Publisher-Subscriber-Mechanismus aufgebaut. So ermöglicht es AWS IoT einem verbundenen IoT-Gerät Daten an mehrere Abonnenten zu senden. Über die http-REST-Schnittstelle (siehe Kasten REST – Representional State Transfer) können Nachrichten an verschiedene Endpunkte gesendet werden. Neben den Standardprotokollen ist auch die Integration eigener oder älterer Protokolle möglich.

Kasten: REST – Representational State Transfer

REST ist ein Architekturstil oder Design-Muster für die sinnvolle Nutzung einer Servicearchitektur im Internet. Es ist damit weder Protokoll noch Standard, sondern beschreibt ausschließlich, wie Webstandards eingesetzt werden sollen. Im Wesentlichen wird die Semantik des HTTP-Protokolls übernommen, das jedoch nicht zwingend verwendet werden muss.

GET – fragt die Repräsentation einer Ressource ab. GET-Anfragen müssen nicht zwingend beantwortet werden.

POST – mit dem POST-Befehl kann einer Ressource etwas hinzugefügt werden. POST ermöglicht Veränderungen in der Ressource durch das Ändern von Daten oder Eigenschaften.

PUT – ermöglicht das Erstellen neuer Ressourcen, oder der Inhalt von Ressourcen kann ersetzt werden.

DELETE – mit der Lösch-Anweisung können Ressourcen gelöscht werden.
Mit den Dienstmethoden können alle relevanten Transaktionen von Systemen durchgeführt werden.

Wie die Interaktion konkret aussieht, bleibt den Anwendern von REST überlassen. Heute werden durch nahezu alle Webserver, wie Appache und IIS, oder Webcontainer, wie Tomcat, mit einer generischen REST-Schnittstelle ausgerüstet. REST wird auch von Amazon, Google und FlickR verwendet und ist in der Welt des Internets nicht mehr wegzudenken.

 

 

AWS IoT bietet ein eigenes Device SDK. Es ermöglicht, dass ohne nähere Kenntnisse ein Gerät oder eine mobile Anwendung einfach und schnell mit einer Cloud verbunden werden kann. Das Device SDK unterstützt C, JavaScript und die Arduino-Maker-Plattform. Es enthält zudem die Client-Bibliotheken, ein Entwicklerhandbuch und das Portierungs-Handbuch für Gerätehersteller.

Außerdem ermöglicht AWS IoT die gegenseitige Authentifizierung und Autorisierung an allen Verbindungspunkten, sodass Daten nie ohne geprüfte Identität zwischen Geräten und AWS IoT ausgetauscht werden können. Es unterstützt die AWS-Methode der Authentifizierung – mit der Bezeichnung „SigV4“ – sowie eine Authentifizierung auf der Basis von X.509. Bei HTTP-Verbindungen können beide Methoden verwendet werden. Dagegen wird bei MQTT-Verbindungen eine auf Zertifikaten basierende Authentifizierung verwendet. Bei Web-Socket-Verbindungen kann ebenfalls SigV4 verwendet werden. Zudem kann einem einzelnen Gerät unverzüglich der Zugriff entzogen werden, sollte das erforderlich sein. AWS IoT unterstützt darüber hinaus Verbindungen von mobilen Anwendungen der Benutzer über Amazon Cognito. Der Service übernimmt alle erforderlichen Schritte zum Erstellen eines eindeutigen Bezeichners für die Benutzer und der jeweiligen Anwendung. Zudem ruft er temporäre AWS-Anmelde-Informationen mit eingeschränkten Berechtigungen ab.

Die Registrierungsdatenbank erstellt eine Identität für Geräte und verwaltet Metadaten, wie Attribute und individuellen Fähigkeiten der Geräte. Sie weist jedem Gerät eine eindeutige Identität zu, die unabhängig von der Art des Geräts oder der Art der Verbindungsaufnahme einheitlich formatiert ist. Außerdem werden Metadaten unterstützt, die die Fähigkeiten eines Geräts beschreiben – z.B. ob ein Sensor Temperaturen meldet und ob die Daten in Fahrenheit oder Celsius gemessen werden.


  1. IoT von der Stange
  2. Systementwurf für eine Cloud
  3. Realisierung in der Amazon-Cloud

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu Componeers GmbH

Weitere Artikel zu IoT / IIoT / Industrie 4.0