MQTT
MQTT (Message Queue Telemetry Transport) ist ein Nachrichten-Protokoll basierend auf TCP. Es ist offen, einfach und so konzipiert, dass es leicht zu implementieren ist.
MQTT zeichnet sich durch einen geringen Overhead bei der Kommunikation aus, bietet aber dennoch ein stabile Nachrichtenzustellung. Damit eignet es sich für den Machine-to-Machine- (M2M) und Internet-of-Things- (IoT-) Kontext, in dem Geräte nur über eine geringe, beziehungsweise eingeschränkte oder kostenintensive Bandbreite angebunden sind, aber dennoch regelmäßig Informationen bereitstellen bzw. beziehen sollen.
Praktische Anwendungsbereiche, in denen MQTT bereits verbreitet eingesetzt wird, sind "Track & Trace"-Applikationen, die verschiedenste Messwerte erfassen (z.B. Temperaturen, Drehzahlen, Wasserstände etc.). Die Geräte können dabei vom Einplatinenrechner (SoC), also beispielsweise einem Raspberry Pi, der mit GPIO um entsprechende Sensoren erweitert wurde, über Smartphones, die die entsprechenden Werte mobil bereitstellen, bis hin zu industriellen Fertigungsanlagen, deren Produktions- bzw Hardwarestatus überwacht werden sollen, reichen.
Ein MQTT-Client kann als "Listener", also als Teilnehmer, der auf Nachrichten anderer MQTT-Clients hört, oder als "Publisher", also als Teilnehmer, der Nachrichten versendet, fungieren.
Die Zuordung der Nachrichten ist in Kanäle, sogenannten "topics", gegliedert, d.h. damit sich im einfachsten Falle zwei MQTT-Client "unterhalten" können, wird bei beiden dasselbe Thema ausgewählt.
Das kann im einfachsten Szenario genügen, um z.B. per Smartphone regelmäßige Berichte der Pegelhöhe eines Wasserkraftwerkes zugestellt zu bekommen. Sobald aber mehrere Clients im Spiel sind und verschiedene Topic-Stränge existieren bzw. verwendet werden sollen oder der Zugriff entsprechend gesichert werden soll, bietet es sich an, einen sogenannten "Broker", also einen MQTT-Server zu verwenden. Dieser bietet zudem die Möglichkeit weitere Protokolle, wie z.B. JMS (Java Messaging Service), einzubinden.