WoT's up IoT – Schnelle IoT-Anwendungsentwicklung mit W3C Web of Things

Web of Things bietet eine Abstraktionsebene für die Protokolle und die Serialisierung im Internet der Dinge.

In Pocket speichern vorlesen Druckansicht

(Bild: metamorworks / shutterstock.com)

Lesezeit: 9 Min.
Von
  • Sebastian Käbisch
Inhaltsverzeichnis

Auf den ersten Blick sind das World Wide Web Consortium (W3C) und das Internet der Dinge zwei verschieden Welten. Das Konsortium gilt als die Autorität für Webstandards und sorgt dafür, dass alle sich unabhängig vom Endgerät im World Wide Web informieren, ihre nächste Reise planen oder Bankgeschäfte ausüben können. Sowohl die relativ einfache Webentwicklung als auch die sogenannte Dienstekomposition (Mashup), um unterschiedliche und teils externe Services wie Straßenkarten, Wetterdaten oder Übersetzungsdienste zu integrieren und anzubieten, funktionieren weitgehend reibungslos.

Web-Frameworks wie WordPress erlauben die einfache Integration unterschiedlicher Dienste in eine Webseite (Abb. 1).

Eben diese Orchestrierung der Dienste ist im Internet der Dinge weniger trivial. Dabei bieten IoT-Geräte Daten und Dienste wie Sensorwerte für die Temperatur oder das An- und Ausschalten einer Lampe an. Die Kommunikation funktioniert reibungslos, wenn Unternehmen alle Geräte von einem Hersteller verwenden und ausschließlich auf dessen App- beziehungsweise Ökosystem setzen. Eine herstellerübergreifende Dienstekomposition ist deutlich schwieriger. Die Geräte verwenden potenziell unterschiedliche Kommunikationsprotokolle wie MQTT, Modbus oder CoAP. Bei den Datenmodellen und der Semantik zur Serialisierung existieren diverse Ansätze wie JSON, XML, TLV (Type Length Value) oder CBOR (Concise Binary Object Representation). Schließlich weichen die Securityanforderungen voneinander ab. Die Herausforderungen existieren nicht nur im Smart-Home-Umfeld, sondern ebenso für Unternehmen in großen IoT-Anwendungen wie Gebäude- und Industrie-Automatisierung, Smart City, und im Automotive-Bereich.

Da bei der Diensteorchestrierung im IoT diverse Datenpunkte und Protokolle aufeinandertreffen, ist eine projektübergreifende Wiederverwendung von Anwendungen meist unmöglich (Abb. 2).

An dieser Stelle möchte das W3C mit der Standardisierungsaktivität für das Web of Things (WoT) eine Lücke schließen. Dabei geht es explizit nicht darum, noch einen weiteren IoT- Standard in Form eines zusätzlichen Protokolls oder Datenmodells zu etablieren, sondern Werkzeuge oder sogenannte Technologiebausteine bereitzustellen, um für die heterogene IoT-Landschaft eine einheitliche Abstraktionsebene zu schaffen. Sie ist bewusst einfach gehalten und bietet die folgenden drei Kernelemente:

  • Properties bilden typischerweise Sensor-, Status- oder Parameterwerte ab,
  • Actions stellen Funktionen mit Ein- und Ausgabewerte dar, beispielsweise das Starten eines Motors, die Bewegung eines Roboterarms oder die Aufnahme eines Fotos,
  • Events bilden typischerweise Alarmsignale oder Datenströme ab.

Eine zentrale Rolle nimmt die sogenannte Thing Description (TD) ein, die Properties, Actions und Events abbildet. Sie bietet ähnlich wie index.html bei einer Website den Einstiegspunkt eines IoT-Geräts oder eines Service. Eine TD liefert Informationen über die bereitgestellten Daten und Funktionen, die Art der Datenserialisierung und die verwendeten Sicherheitsmechanismen zur Zugriffskontrolle. Hinzu kommen weitere von Maschinen oder Menschen lesbare Metadaten. Eine TD ist im JSON-LD-Format (JavaScript Object Notation for Linked Data) verfasst. Das IoT-Gerät kann sie direkt bereitstellen, oder die Informationen liegen in einem Repository wie einem TD-Directory.

Die Web-of-Thing-Bausteine bieten einen einheitlichen Zugang: Das Interaktions-Paradigma aus Properties, Actions und Events bietet eine Abstraktion zwischen IoT-Systemen und Anwendungen (Abb. 3).

WoT ist ein protokollunabhängiger Ansatz und bietet einen einheitlichen Mechanismus zum Abbilden spezifischer Protokolle wie MQTT, HTTP, CoAP oder Modbus auf die Abstraktionselemente Properties, Actions und Events an. Für das Mapping und die protokollspezifischen Metadaten existieren WoT-Binding-Templates. Beispielsweise bietet eine Vorlage für ein bestimmtes Protokoll eine Richtlinie, wie ein Client jede WoT-Interaktionsabstraktion über eine netzwerkseitige Schnittstelle für das Protokoll aktivieren kann.

Der optionale Baustein WoT-Scripting-API definiert eine ECMAScript-API, die sich eng an die TD-Spezifikation anlehnt und die WoT-Interaktionsabstraktion nutzt. Er definiert die Schnittstelle zwischen der Verhaltensimplementierungen und einer skriptbasierten WoT-Runtime. Die Implementierung ist nicht auf Scripting-Umgebungen beschränkt: Programmiersprachen-APIs in Java oder C/C++ lassen sich von der WoT-Scripting-API ableiten.

Darüber hinaus behandelt Web of Things Themen wie Discovery und diverse Aspekte von Security und Privacy.