Suche
Was ist MQTT und warum sollte ich mich als Entwickler/Softwarearchitekt damit beschäftigen?

8 Gründe, warum sich jeder Software-Entwickler mit MQTT beschäftigen sollte

Christian Götz

Christian Götz

MQTT ist momentan in aller Munde. Selbstredend ist das IoT-Protokoll auch Thema zahlreicher Session auf der kommenden Internet of Things Conference (31. August bis 3. September 2015). Christian Götz (dc-square GmbH) stellt MQTT in seinem Workshop „Pub/Sub for the Masses. Eine Einführung in MQTT“ und der Session „MQTT von 0 auf 100 in einer Stunde“ vor. Auf JAXenter erklärt er, warum das Thema eigentlich für jeden Entwickler interessant sein sollte.

Das Internet-der-Dinge-Protokoll MQTT ist in den letzten 1-2 Jahren zu dem IoT-Protokoll schlechthin aufgestiegen. Ein Indiz dafür sind die deutlich ansteigenden Suchanfragen, wie man im Google Trend unschwer erkennen kann. MQTT ist keineswegs eine Lösung für alle Probleme bei der Vernetzung von IoT Devices und Software, doch viele Anwendungsfälle sind mit MQTT besser umsetzbar als mit anderen Protokollen, wie beispielsweise HTTP. Trotz steigendem Interessse gibt es immer noch viele Softwareentwickler und Softwarearchitekten, die noch nichts über MQTT gehört haben und deshalb oftmals umständliche Lösungen mittels HTTP bauen oder eigene proprietäre Protokolle entwickeln. Falls Sie noch nie etwas über MQTT gehört haben oder noch keine Zeit hatten, sich damit zu beschäftigen, sind hier 8 Gründe, warum Sie sich das Protokoll etwas näher ansehen sollten:

Publish/Subscribe statt Request/Response

Die Kommunikation mit MQTT basiert im Gegensatz zu HTTP auf dem Publish/Subscribe Pattern. Das ermöglicht eine entkoppelte 1-zu-N- oder 1-zu-1-Kommunikation von verschiedenen Geräten. Diese müssen sich untereinander nicht kennen und können trotzdem miteinander über hierarchisch aufgebaute Strings, genannt Topics, kommunizieren. Eine bidirektionale Kommunikation ist ebenfalls möglich, auch falls sich ein Gerät hinter einem NAT-Router befindet.

Push statt Polling

Jede MQTT-Applikation baut eine dauerhafte TCP-Verbindung zum MQTT Broker auf. Dadurch ist es möglich, Nachrichten sofort per Push-Kommunikation zu empfangen, sobald ein Ereignis diese Nachricht auslöst. Der Nachrichten-Push wird dabei ohne Verzögerung durchgeführt, und es ist kein Polling auf Clientseite nötig. Das spart nicht nur Bandbreite sondern erlaubt eine Kommunikation mit verschwindend geringer Latenz. Üblicherweise bewegt sich die Latenz im unteren Millisekunden-Bereich.

Prädestiniert für Kommunikation mit mobilen Geräten

Der Ausbau des Mobilfunknetzes wird immer besser. Dennoch gibt es immer noch viele Funklöcher und weiße Flecken auf der Versorgungskarte. Diese führen dazu, dass Verbindungsprobleme auftreten oder die Übertragungsgeschwindigkeit deutlich reduziert ist. Daher ist es besonders wichtig, dass Daten möglichst effizient übertragen werden und Garantien für die erfolgreiche Nachrichtenübermittlung auf Applikationsprotokollebene zur Verfügung stehen. Dies ist im MQTT Protokoll bereits ein elementarer Bestandteil in Form von Quality of Service Levels und muss nicht durch den Anwendungsentwickler behandelt werden.

Kosteneinsparung durch effiziente Übertragung

Die grundlegenden Ziele der ursprünglichen MQTT-Entwickler waren unter anderem, dass MQTT leichtgewichtig und effizient bei der Datenübertragung über das Internet sein soll. Gerade bei der Vernetzung von mehreren hunderttausend Geräten ist dies ein essentieller Punkt, da sich die Einsparung von einigen Bytes pro Nachricht erheblich auf die Kosten des Mobilfunkvertrages auswirken. Ebenso muss beispielsweise der TLS-Handshake bei einer sicheren Verbindung mittels TLS nur beim Verbindungsaufbau durchgeführt werden und nicht bei jeder einzelnen Nachricht, da MQTT eine stehende Verbinudung benutzt.

Sichere Kommunikation durch Industriestandards

MQTT selbst ist ein Protokol auf Applikationsebene und setzt für eine sichere Übertragung auf etablierte Standards wie SSL/TLS, welche auf den darunterliegenden Schichten im OSI-Modell für Sicherheit beim Transport der MQTT-Nachrichten sorgen. Auch Frameworks wie OAuth 2.0 lassen sich mit MQTT problemlos integrieren. Die gängigen MQTT Broker bieten außerdem eine feingranulare Authentifizierung und Autorisierung an.

MQTT ist simpel

MQTT ist sehr gut geeignet für ressourcenbeschränkte Geräte, wie Einplatinencomputer oder Mikrocontroller. Die Implementierung eines MQTT Clients ist sehr einfach und daher auch auf Mikrocontrollern problemlos möglich. Es gibt eine Vielzahl von Client-Implementierungen für alle gängigen Programmiersprachen.

Zentralisierte Kommunikation

Der MQTT Broker ist oft mehr als nur der zentrale Kommunikationsmittelpunkt zwischen mobilen Geräten, sondern auch die Schnittstelle zwischen Geräten und Backend-Systemen zur Weiterverarbeitung und Auswertung der Nachrichten. Dabei zeichnen sich MQTT Broker (wie z.B. HiveMQ), welche explizit für den Einsatz in Unternehmen geeignet sind, durch eine hohe Skalierbarkeit, Sicherheit und hohe Verfügbarkeit aus. Ebenfalls entscheidend sind hier die Integrationen, um vorhandene Systeme einfach anbinden zu können.

MQTT lässt sich auch in Webanwendungen verwenden

Zu guter Letzt kann MQTT nicht nur von kleinen und großen Geräten gesprochen werden, sondern auch jeder moderne Browser versteht MQTT, sofern er Websockets implementiert. Dabei greifen die Garantien von MQTT auch über die bidirektionale Websocket-Verbindung und bringen alle Features mit, die das Protokoll zu bieten hat.

Ausblick auf die IoT Conference 2015

Auf der IoTCon 2015 in Berlin gibt es zwei explizite Sessions zum Thema MQTT, welche sehr gut geeignet sind, um sich einen ersten Einblick zu verschaffen.

Für einen groben Überblick über Features und Aufbau des Protokolls ist der Talk “MQTT von 0 auf 100 in einer Stunde” gut geeignet. Hier erfahren Sie alles über das Protokoll und wissen dann genau, welche Funktionen MQTT bietet, um einschätzen zu können, für welche Anwendungsfälle es in Ihrem Umfeld in Frage kommt.

Falls Sie mehr wissen wollen oder direkt selbst die ersten Nachrichten über MQTT verschicken wollen, ist der Workshop “Pub/Sub for the Masses. Eine Einführung in MQTT” interessant für Sie. Hier gibt es ebenfalls eine kurze Einführung, allerdings besteht der Hauptteil des Workshops darin, selbst MQTT und die einzelnen Funktionen auszuprobieren und die ersten Anwendungsfälle beispielhaft umzusetzen.

Verwandte Themen:

Geschrieben von
Christian Götz
Christian Götz
Christian Götz entwickelt bei der dc-square GmbH hoch skalierbare Lösungen für das Internet der Dinge, basierend auf MQTT und dem MQTT Broker HiveMQ.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: