Meinels Web-Tutorial: Wie verständigen sich Maschinen im Internet?
Das »Internet der Dinge« eröffnet ein ganz neues und weltumspannendes Ökosystem von smarten Geräten, die sich mit dem Internet und – via Internet – auch miteinander verbinden können. Ohne menschliches Zutun können sie Daten austauschen oder auch im Verbund Prozesse steuern und so die Vision einer smarten Welt in ihren verschiedenen Facetten der Smart Factory, Smart Home, Smart City, Smart Traffic, … Wirklichkeit werden lassen. Damit das aber überhaupt möglich ist, müssen die vielen sehr unterschiedlichen smarten Dinge, Geräte und Services miteinander »sprechen« können. Webservices dienen hierbei als Übersetzer.
Ganz zentral für die Kommunikation und Interaktion zwischen verschiedenen Webseiten und Diensten ist die »Extensible Markup Language« (XML). Während HTML »nur« eine generell gut nutzbare Beschreibung für alle üblichen Webressourcen bietet, können mit Hilfe von XML ganz spezifische Beschreibungssprachen definiert werden, die für die jeweils individuell benötigten Zwecke maßgeschneidert sind. XML ist also eine Metasprache, mit der beliebige Daten aus spezifischen Anwendungsbereichen maschinenlesbar strukturiert und hierarchisch beschrieben werden können. Dabei entsteht eine simple Textdatei, die sich leicht über das Web versenden lässt. XML bietet so die Möglichkeit, den Datenaustausch auch für komplexe Maschine-zu-Maschine-Interaktionen zu organisieren.
Alle Folgen gibt es hier: »Meinels Web-Tutorial«
In der ersten Generation der M2M-Interaktion haben smarte Geräte mit Hilfe des SOAP-Protokolls (Simple Object Access Protocol) kommuniziert. Um Daten zu teilen, wird dazu ein XML-basierter »Briefumschlag« (SOAP-Envelope) erstellt, der anschließend zum Beispiel als Nutzlast im »Body«-Abschnitt eines HTTP-Requests oder -Responses transportiert werden kann. Statt HTML lassen sich auch andere Protokolle einsetzen. Damit die Nachrichten in den SOAP-Umschlägen von allen verstanden werden können, wurde eine WSDL (Web Service Description Language) bereitgestellt, die ebenfalls XML-basiert ist und die Webservice-Schnittstelle beschreibt mit den verfügbaren Verarbeitungsmethoden, Parametern und Rückgabewerten.
Als dann immer mehr smarte Dinge über das Internet zu interagieren begannen, mussten neue Fragen geklärt werden. Etwa wie man es schafft, dass so viele Geräte gleichzeitig und zuverlässig auch in Verbünden miteinander kommunizieren können, wie sich ihre Interaktionen orchestrieren oder absichern lassen. Zur Klärung all dieser Fragen wurden Webservice-Protokolle in stets wachsender Zahl entwickelt, zum Beispiel WS-Security, WS-Policy, WS-Coordination, WS-Federation und so weiter. All diese Webservice-Protokolle werden unter dem Namen »WS*-Protokoll-Suite« zusammengefasst. Sie finden vor allem im industriellen Bereich mit seinen besonderen Anforderungen an Sorgfalt und Sicherheit in der Interaktion Anwendung. Im alltäglichen Gebrauch ist die WS*-Protokoll-Suite zu unhandlich.
Auf der Suche nach schlankeren Methoden zur Organisation der Interaktion von smarten Dingen und Maschinen über das Web hat man zwei neue Wege gefunden: Mit dem XML-RPC (Remote Procedure Call) hat man sich auf die Ursprünge der Webkommunikation besonnen. Es ist ein ganz einfaches XML-basiertes Protokoll, mit dem verschiedene Kommunikationsmethoden im Web genutzt werden können. Die Aufrufe erfolgen über HTTP-POST-Befehle.
Eine weitere Möglichkeit, Maschinen einfacher miteinander kommunizieren zu lassen, besteht in der Anwendung der REST-Architektur. Der Service Instagram nutzt diese Methode, um mit weiteren Webdiensten wie Facebook, Twitter und Co. zu kommunizieren und zu interagieren. REST basiert auf der ROA (Resource Oriented Architecture) und benutzt das vollständige HTTP-Vokabular (wie GET, POST, PUT), um Nachrichten und Daten zu übermitteln. REST macht sich zu Nutze, dass Webanwendungen von Webressourcen leben und diese auch direkt über ihre URL adressiert werden können, egal ob es sich um ein physisches Ding oder eine virtuelle Ressource (zum Beispiel Medien, digitaler Einkaufskorb oder Uni-Kurs-Status) handelt. REST nutzt die Mittel des HTTP, um diese Web-Ressourcen zu manipulieren. Dazu wird eine Ressource über den HTTP-Pfad identifiziert und mit der für die angestrebte Manipulation geeigneten HTTP-Methode verändert. Die bei HTTP zur Verfügung stehenden Methoden beinhalten sehr einfache Anweisungen, wie folgende Beispiele zeigen:
- POST – Ressource wird erzeugt
- GET – Ressource wird gelesen
- PUT – Ressource wird aktualisiert
- DELETE – Ressource wird gelöscht
REST bietet eine sehr schlanke Interaktionsmethode, weil es sich als zustandsloses Protokoll sämtliche benötigte Daten durch Requests besorgt. Es orientiert sich über die URL an vorhandenen Datenstrukturen, registriert den entsprechenden MIME-Typ eines Requests und sendet das passende MIME-Format zurück. Heute ist die REST-Methode deutlich weiter verbreitet als XML-RPC.
Dank einer Vielzahl an Webservices für alle möglichen Anwendungen ist es uns heute möglich, sowohl im Industriellen als auch im Privaten von einer Vielzahl automatisierter Dienste zu profitieren, um die Vision einer »smarten Welt«, in der alles miteinander vernetzt ist, zu verwirklichen. Uns bietet sich damit ein leistungsfähiger Ansatz, die zahlreichen Wirtschafts-, Bildungs-, Energie- und Umweltprobleme in einer immer komplexer werdenden Welt mit einer immer größeren Weltbevölkerung in den Griff zu bekommen. Smarte Dinge und vernetzte Maschinen können uns helfen, diese Herausforderungen zu meistern.
Schreiben Sie uns!
Beitrag schreiben