Was genau ist das Internet der Dinge? Die Antwort hängt stark von Ihrer Position in der Lieferkette ab. Viele haben sich an einer Festlegung versucht, und die unterschiedlichen Definitionen sind oftmals durch die Anforderungen der jeweiligen Branche oder die eigenen Interessen gefärbt. Doch als Hardware- oder Softwaretechniker ist Ihnen das Grundelement bereits vertraut: die Erstellung von Produkten, die miteinander vernetzt sind. Und eingebettete Systeme werden – wie schon jetzt – eine wichtige Rolle bei der Entwicklung des Internet der Dinge (Internet of Things, IoT) spielen. In diesem Artikel beschäftigen wir uns mit dem Internet sowie mit den vorhandenen und neuen Protokollen, die das IoT unterstützen. Bevor wir uns den Protokollen zuwenden, müssen wir zunächst den Begriff „Ding“ definieren, da die Aufgaben der Endgeräte den Großteil der von den Protokollen zu verwendenden Anforderungen vorschreiben.
Ein Internet der Dinge für die Industrie und eins für Verbraucher
Die Softwareanforderungen für IoT-Geräte aus Industrie- und Verbraucherperspektive können erheblich voneinander abweichen. Zwar sind ihnen möglicherweise ein Kernel und bestimmte Low-Level-Dienstleistungen gemeinsam, aber die für ihre Anwendungen erforderliche Middleware ist oftmals komplett unterschiedlich. |
Das industrielle IoT, sprich ein drahtloser Sensorknoten (Wireless Sensor Node, WSN), stellt einen Softwarestack für ein industrielles IoT-Gerät dar. Dieses kostengünstige Gerät mit geringem Energieverbrauch kann komplett über eine Batterie betrieben werden und verwendet in der Regel einen 32-Bit-Prozessor. Auch die Verwendung eines 8- oder 16-Bit-Prozessors ist möglich, aber dann laufen die Kommunikationsstacks auf Zusatzmodulen. Um die Übertragungszeit zu reduzieren und Strom zu sparen, ist ein leistungsstarkes Netzwerkprotokoll wie 6LoWPAN vonnöten. Auch eine drahtlose Bluetooth-Kommunikation über kurze Distanzen ist möglich. Als Edge-Knoten müssen die Daten vom drahtlosen Netz in ein IP-basiertes Netz (lokales oder öffentliches Internet) übertragen werden, wofür eine stromsparende Wi-Fi- oder Ethernet-Verbindung verwendet wird.
Die Softwareanforderungen für dieses Gerät sind natürlich deutlich anspruchsvoller, und es ist möglicherweise eine Java-VM erforderlich. Außerdem wird wahrscheinlich ein Protokoll für vertikale Märkte verwendet. Leider ist das IoT für Verbraucher in Bezug auf das Protokoll für vertikale Märkte (Anwendungsprotokoll) stark fragmentiert. Viele Unternehmen schlagen eigene Lösungen vor. Auf dem Verbrauchermarkt umfasst dies zum Beispiel:
Es gibt auch andere Beispiele wie PLC (Power Line Communication): HomePlug und HomeGrid.
Micrium bietet diese Protokolle nicht an. Ein Gerätehersteller, dessen Produkte mit einem dieser Protokolle für das Verbraucher-IoT kompatibel sein müssen, muss bei diesen Organisationen eingetragen sein und diese Protokolle dann im Rahmen der Produktanwendung integrieren.
Beim industriellen IoT ist diese marktgesteuerte Initiative weniger stark vertreten. Es gibt eine größere Kooperation namens IIC (Industrial Internet Consortium), zu deren Gründungsmitgliedern AT&T, Cisco, GE, Intel und IBM gehören. Doch abgesehen von IIC ist die Entwicklung von IoT-Geräten und -Systemen im Prinzip den Unternehmen überlassen. Aus diesem Grund sind Kenntnisse über das Internet und die Internetprotokolle (IP) heutzutage so wichtig für Entwickler von eingebetteten Systemen.
Internetprotokoll (IP)
Die Verwendung von IP-Technologie ist ein grundlegendes Merkmal des IoT. IP ermöglicht die Interoperabilität zwischen Systemen. Dies mag heute noch nicht so wichtig erscheinen, aber mit der Weiterentwicklung des IoT wird sich die Interoperabilität zwischen Systemen zu einer relevanten einkommenswirksamen Funktion auswachsen. Ethernet/Wi-Fi und 6LoWPAN stützen sich stark auf IPv4 und IPv6.
Im IoT verwendete IP-Protokolle
Es ist sicherlich möglich, ein IoT-System unter Nutzung bestehender Webtechnologien zu entwickeln, selbst wenn dies nicht so effizient wie die Verwendung der neueren Protokolle ist. HTTP(S) und WebSocket sind gängige Standards in Verbindung mit XML oder JavaScript Object Notation (JSON) als Nutzlast. Bei Verwendung eines Standardwebbrowsers (HTTP-Client) stellt JSON eine Abstraktionsschicht bereit, über die Webentwickler eine statusbehaftete Webanwendung mit persistenter Duplexverbindung zu einem Webserver (HTTP-Server) erstellen können, indem zwei HTTP-Verbindungen offen gehalten werden.
HTTP
HTTP ist die Grundlage des für das Web verwendeten Client-Server-Modells. Die sicherste Methode für die Implementierung von HTTP im IoT-Gerät ist die Verwendung eines Clients (anstelle eines Servers). Anders ausgedrückt ist es sicherer, wenn das IoT-Gerät Verbindungen zu einem Webserver initiieren, aber keine Verbindungsanforderungen empfangen kann. Schließlich sollen externe Computer keinen Zugriff auf das lokale Netzwerk erhalten, in dem die IoT-Geräte installiert sind.
WebSocket
WebSocket ist ein Protokoll, das eine Voll-Duplex-Kommunikation über eine einzelne TCP-Verbindung zum Senden von Nachrichten zwischen Client und Server bereitstellt. Dieses Protokoll gehört zur HTML-5-Spezifikation. Durch den WebSocket-Standard wird das komplexe Gefüge von bidirektionaler Webkommunikation und Verbindungsverwaltung sehr vereinfacht. Die Verwendung von WebSocket in Verbindung mit HTTP stellt eine gute Lösung für IoT-Geräte dar, wenn diese Geräte die HTTP-Nutzlast handhaben können.
XMPP
XMPP (Extensible Messaging and Presence Protocol) ist ein gutes Beispiel für eine bestehende Webtechnologie, die in der IoT-Struktur eine neue Verwendung findet.
XMPP hat seine Wurzeln in den Bereichen Instant Messaging und Präsenzinformationen. Das Protokoll hat in Sprach- und Videoanrufe, Zusammenarbeit, leichte Middleware, Content-Syndication und das allgemeine Routing von XML-Daten Eingang gefunden. Es ist ein Mitstreiter beim Massenmanagement von Haushaltsgeräten wie Waschmaschinen, Trocknern, Kühlschränken usw.
Aufgrund seiner Stärken, wie Adressierung, Sicherheit und Skalierbarkeit, ist XMPP wie geschaffen für verbraucherorientierte IoT-Anwendungen.
HTTP, WebSocket und XMPP sind Beispiele für Technologien, die für das IoT eingesetzt werden, ohne optimal dafür geeignet zu sein. Andere Gruppen arbeiten hart an der Entwicklung von Lösungen für die neuen Herausforderungen, vor die uns das Internet der Dinge stellt.
Spezielle Protokolle für das IoT
Viele IoT-Experten bezeichnen IoT-Geräte als Systeme mit Beschränkungen. Diese Fachleute sind der Auffassung, dass IoT-Geräte bei der Ausführung in einem Kommunikationsstack so kostengünstig wie möglich angeboten werden und die kleinsten verfügbaren MCUs verwenden sollten.
Die Anpassung des Internets für das IoT gehört derzeit zu den wichtigsten Prioritäten vieler globaler Standardisierungsstellen.
Wenn Ihr System keine TCP-Funktionen benötigt und mit den begrenzteren UDP-Funktionen auskommt, können Sie die Größe des gesamten Codebedarfs für Ihr Produkt reduzieren, indem Sie das TCP-Modul komplett entfernen. Dies ist der Beitrag von 6LoWPAN (für WSN) und CoAP (Lightweight IP) zur Welt des IoT. CoAP Obwohl die Webinfrastruktur verfügbar ist und für IoT-Geräte eingesetzt werden kann, ist sie für die meisten IoT-Anwendungen zu aufwendig. Im Juli 2013 hat die IETF das CoAP (Constrained Application Protocol) für die Verwendung mit verlustbehafteten (eingeschränkten) Knoten und Netzwerken mit geringem Energieverbrauch(Low-Power and Lossy Nodes and Networks, LLNs) veröffentlicht. CoAP ist wie HTTP ein RESTful-Protokoll. CoAP ist semantisch im Einklang mit HTTP und verfügt sogar über Eins-zu-Eins-Mapping mit HTTP. Netzwerkgeräte werden durch kleinere Mikrocontroller mit geringem Flash-Speicher und RAM beschränkt, während die Beschränkungen in lokalen Netzwerken, wie 6LoWPAN, auf hohe Paketfehlerraten und einen geringen Durchsatz (zig Kilobit pro Sekunde) zurückzuführen sind. CoAP eignet sich mitunter gut als Protokoll für Geräte, die über Batterien oder Energy-Harvesting betrieben werden. Merkmale von CoAP: CoAP verwendet UDP Da CoAP UDP verwendet, werden einige TCP-Funktionen direkt in CoAP repliziert. Beispielsweise unterscheidet CoAP zwischen überprüfbaren Nachrichten (die eine Bestätigung erfordern) und nicht überprüfbaren Nachrichten.
|