Kommunikation zwischen Applikationen im Internet of Things

Marcel Bernet (FG Open Source, ICTscope.ch und Ehrenmitglied /ch/open) beleuchtet die Kommunikation zwischen Applikationen im Internet of Things und wie Nutzen und Kosten gemessen werden. Er informiert zudem über den neusten Stand der Technologie.

/media/uploads/marcel1691/2015-04-13-kommunikation-iot.pdf

HTTP (Hypertext Transfer Protocol)

Das Hypertext Transfer Protocol (HTTP, englisch für Hypertext-Übertragungsprotokoll) ist ein Protokoll zur Übertragung von Nachrichten und Daten. Es wird hauptsächlich eingesetzt, um Webseiten (Hypertext-Dokumente) aus dem World Wide Web (WWW) in einen Webbrowser zu laden. Es ist jedoch nicht prinzipiell darauf beschränkt und auch als allgemeines Dateiübertragungsprotokoll sehr verbreitet.

Jede Nachricht besteht dabei aus zwei Teilen, dem Nachrichtenkopf (englisch Message Header, kurz: Header oder auch HTTP-Header genannt) und dem Nachrichtenrumpf (englisch Message Body, kurz: Body). Der Nachrichtenkopf enthält die Anfragemethode und Informationen über den Nachrichtenrumpf wie etwa verwendete Kodierungen oder den Inhaltstyp. Der Nachrichtenrumpf enthält die Nutzdaten (siehe HTML unten).

Von den Nachrichten gibt es zwei unterschiedliche Arten: die Anfrage (englisch Request) vom Client an den Server und die Antwort (englisch Response) als Reaktion darauf vom Server zum Client. Die mbed Board's können als HTTP Client oder als HTTP Server Eingesetzt werden.

HTTP-Anfragemethoden (nicht abschliessend)

  • GET: ist die gebräuchlichste Methode. Mit ihr wird eine Ressource (zum Beispiel eine HTML Datei) vom Server angefordert.
  • POST: schickt Daten zur weiteren Verarbeitung zum Server.
  • PUT: dient dazu eine Ressource (zum Beispiel eine Datei) auf einen Webserver hochzuladen.
  • DELETE: löscht die angegebene Ressource auf dem Server. Anwendungen

Holen, Schreiben und Löschen von Daten und Dateien auf HTTP Servern.

HTML (Nachrichtenrumpf)

Die Hypertext Markup Language (engl. für Hypertext-Auszeichnungssprache), abgekürzt HTML, ist eine textbasierte maschinenlesbare Sprache (markup language) zur Strukturierung digitaler Dokumente wie Texte mit Hyperlinks, Bildern und anderen Inhalten.

HTML-Dokumente sind die Grundlage des World Wide Web und werden von Webbrowsern dargestellt.

Import programHTTPServerUI

HTTP (RPC) Server mit UI

Import programRPCHTTPServerVariable

HTTP RPC Server mit vordefinierten Objekten

Cloud

In der Cloud stehen einen Reihe von Services zur Verfügung womit die Boards mit Steuerungsinformationen, wie Sonnen Auf- und Untergang, Wetterentwicklung etc. versorgt werden können.

Die gebräuchlichsten Format sind HTML, XML oder JSON (JavaScript Object Notation).

ProgrammableWeb liefert eine Übersicht dieser Dienste: http://www.programmableweb.com/apis/directory

Services / Device Server

Bei Internet auf Dingen Geräten stehen folgene Ziele im Vordergrund:

  • Direkt Adressierbar, Geräte zu Gerät oder Gerät - Cloud
  • Einfache Einbindung in bestehende Netzwerke
  • Limitiertes Ressourcen der Geräte oder Wissen der Anwender
  • Skalierbar von 250 - 300 Geräte in einem Haushalt
  • Antwortzeiten unter 100 Millisekunden für einen typische Interaktion
  • Nahtlose Integration mit Smartphones und Tablets
  • Lange Batterielebensdauer (ein Jahr und länger)

Um diese Ziele zu erreichen, werden eigene Protokolle und Device Server verwendet.

MQTT

Message Queue Telemetry Transport (MQTT) ist ein offenes Nachrichten-Protokoll für Machine-to-Machine-Kommunikation (M2M), das die Übertragung von Messdaten-Daten in Form von Nachrichten zwischen Geräten ermöglicht, trotz hoher Verzögerungen oder beschränkten Netzwerken. Entsprechende Geräte reichen von Sensoren und Aktoren, Mobiltelefonen, Eingebetteten Systemen in Fahrzeugen oder Laptops bis zu voll entwickelten Rechnern. MQTT basiert auf TCP-Sockets.

MQTT implementiert das Publish/Subscribe-Pattern. Es ersetzt die Punkt-zu-Punkt-Verbindungen durch einen zentralen Server (Broker), zu dem sich Datenproduzenten und -nutzer gleichermaßen verbinden können. Das Senden (publish) und Empfangen (subscribe) von Nachrichten funktioniert über sogenannte Topics. Ein Topic ist ein String, der eine Art Betreff der Nachricht darstellt, aber ähnlich einer Web Adresse aufgebaut ist.

Import programMQTTPublishSubcribe

MQTT Publish - Subscribe

CoAP

Constrained Application Protocol (Coap) ist ein Software-Protokoll welches für Internet der Dinge Geräte zugeschnitten ist.

COAP ist auf den meisten Geräten, die UDP Unterstützen, lauffähig.

Ein COAP fähiges Gerät publiziert seine Sensoren und Aktoren in einem Resource Directory oder stellt selber ein solches zur Verfügung.

Mittels Resource Discovery können die vorhandenen Sensoren und Aktoren mit ihren Attributen abgefragt werden.

Import programCOAPmbed

CoAP Device Server Client

Demo eines Internet der Dinge Projektes http://developer.mbed.org/cookbook/Internet-of-Things-Demonstration


Please log in to post comments.