MQTT – leichtgewichtiges Publish/Subscribe-Messaging-Protokoll
MQTT (Message Queuing Telemetry Transport) ist ein zunehmend beliebteres Protokoll, insbesondere für die Übertragung von Daten aus physischen Geräten in die Cloud. Obwohl es das Messaging-Protokoll eigentlich schon seit mehr als 20 Jahren gibt, erlangte es erst an Bedeutung für die Mitgestaltung des Internets der Dinge (IoT). Das leichtgewichtige Protokoll kann die verfügbare Bandbreite effizient nutzen und hat sich auf hohe Latenz spezialisiert. Aus diesem Grund ist es das optimale Protokoll für die “Machine to Machine” (M2M) Kommunikation.
In diesem Beitrag werden wir die Gründe dafür erörtern.
Bei einem Publish/Subscribe-Kommunikationsmodell besteht ein hohes Mass an Unabhängigkeit. Der Grund dafür ist, dass die Teilnehmer (Clients) asynchron miteinander kommunizieren. Eine zentrale Rolle spielt dabei der so genannte “Broker”, das Zentrum der Kommunikation. Die Clients verbinden sich mit dem Broker und können sowohl als Subscriber, Publisher oder beides agieren. Sobald der Broker eine Nachricht von einem Publisher erhält, leitet er sie an alle Clients weiter, welche diese Nachricht abonniert haben.
Anstelle einer traditionellen Client/Server Architektur erfolgt bei MQTT die Datenübertragung nach dem Publish/Subscribe-Prinzip. Das Protokoll ist zusätzlich sehr flexibel in Bezug auf “Quality-of-Service” (Vereinbarung zwischen Absender und Empfänger über die Garantie der Zustellung einer Nachricht). Dank seiner Leichtigkeit kann das Protokoll auch in Geräten mit begrenzten Ressourcen implementiert werden.
Es gibt verschiedene Arten von MQTT Brokern auf dem Markt, von Open Source Versionen (z.B. Mosquito) bis hin zu kommerziellen Produkten (z.B. HiveMQ).
Neben der flexiblen Gestaltung der Kommunikationsarchitektur kann auch der Inhalt der Nachrichten frei gestaltet werden. Die Adressierung der Nachrichten erfolgt über so genannte Topics: eine hierarchische Struktur von bestimmten Themen, ähnlich einer URL. An diese Topics können dann Nachrichten mit frei definierbarem Inhalt (Payload) gesendet werden. Häufig wird dafür das JSON-Format verwendet, ein Textformat, das für Menschen leicht zu lesen und für Software leicht zu interpretieren ist.
Um Clients und Broker dennoch eine gewisse Orientierung über die Struktur der Daten zu geben, kann man Sparkplug B oder OPC UA Pub Sub als Standard verwenden. Diese Standards fügen den Inhalten Metadaten hinzu, damit die Abonnenten selbst interpretieren können, welche Struktur und welche Art von Daten sie erhalten möchten. MQTT-Clients welche diese Standards unterstützen, können so leichter miteinander kommunizieren.
Der Einsatz von MQTT nimmt auch in der industriellen Automatisierung ein immer grösseren Stellenwert ein. Grosse Cloud-Anbieter wie Microsoft, Google und Amazon bevorzugen dieses Protokoll für die Datenaufnahme und bieten daher MQTT-Einstiegspunkte wie z.B. den Azure IoT Hub an. Andererseits ermöglicht die Einfachheit des Protokolls die Einbettung eines MQTT-Clients in alle Arten von Geräten: von kompletten Windows-Systemen bis hin zu Kleinstcomputern wie z.B. Raspberry Pi’s oder Arduino-Boards. Es gibt heute bereits schon Sensoren, die ihre Daten direkt mit MQTT veröffentlichen können.
Viele Produkte für den Datenzugriff und die Datenspeicherung unterstützen heute standardmässig MQTT. Hier finden Sie einen kurzen Überblick mit Links zu weiteren detaillierten Informationen unserer Produkte:
Wir erzählen Ihnen mehr!
Möchten Sie noch mehr erfahren über MQTT oder dessen Einsatz in Ihrer Produktionsumgebung?
Unsere Experten erzählen Ihnen gerne mehr!