© kabzarchyk/Shutterstock.com
Eclipse Magazin
Der neue Standard MQTT 3.1.1 steht vor der Tür: Lohnt sich ein Update?

Ein Standard für das Internet of Things

Seit Monaten gewinnt das schlanke Kommunikationsprotokoll für das Internet of Things, MQTT (Message Queue Telemetry Transport), immer mehr an Popularität. Die Anwendungsbeispiele reichen dabei von der Kommunikation von Businessanwendungen mit mobilen Geräten über den Einsatz von unternehmenskritischer Hardware in Verbindung mit Backend-Software bis zu klassischem Enterprise-Messaging. Bereits seit 2013 wird die Standardisierung der aktuellsten Version des Protokolls, nämlich MQTT 3.1.1, bei der Standardisierungsorganisation OASIS durchgeführt. Die Standardisierung wird voraussichtlich im September oder Oktober abgeschlossen sein, Grund genug also, uns genauer anzusehen, was der offizielle Nachfolger des MQTT-Protokolls Version 3.1 an Änderungen bringt und was der Status quo bei den Broker- und Clientimplementierungen ist.

Dominik Obermaier


Bereits 2013 formierte sich ein Standardisierungsgremium aus Industriegrößen wie IBM und Cisco sowie kleineren Firmen wie die deutsche dc-square GmbH, um die bereits seit 2010 frei verfügbare MQTT-3.1-Spezifikation [1] offiziell zu standardisieren. Zielsetzung war, die vorhandene Spezifikation als Grundlage zu verwenden und eine technisch genauere und verbesserte, jedoch weitgehend abwärtskompatible Spezifikation zu erstellen.

Seit 2010 hat sich ein recht breites Ökosystem mit unterschiedlichen freien und kommerziellen Client- und Serverimplementierungen gebildet. Deshalb wurde Wert darauf gelegt, dass sich diese bestehenden Implementierungen ohne sehr großen Aufwand auf die neue Spezifikation aktualisieren lassen. Die meisten der neuen Features betreffen die Serverimplementierungen. Darum lassen sich in der Praxis die meisten Clientbibliotheken mit überschaubarem Aufwand updaten.

Um die Akzeptanz des verbesserten MQTT-3.1.1-Standards im MQTT-Ökosystem möglichst früh zu erreichen, wurde bereits Anfang 2014 ein „Inter­operability Testing Day“ – organisiert von der Eclipse IoT Working Group [2] – durchgeführt. Es kristallisierte sich sehr schnell heraus, dass viele der gängigen MQTT-Clients und MQTT-Broker bereits den aktuellen Working Draft der MQTT-3.1.1-Spezifikation komplett oder zumindest teilweise unterstützen [3].

Was ist MQTT?MQTT ist ein sehr schlankes Kommunikationsprotokoll, welches sich durch seine skalierbare Publish-/Subscribe-Architektur perfekt für mobile und IoT-Anwendungsfälle eignet. Ursprünglich wurde es 1999 entwickelt, um die Steuerung und das Monitoring von Ölpipelines effizient zu gestalten. Es ist für unzuverlässige Netzwerkverbindungen wie etwa Mobilfunknetze optimiert. Durch seine herausragenden Features – darunter echter Message-Push, verschiedene Quality-of-Service-Levels, Push-Benachrichtigungen bei ausgefallenen Clients, Heartbeats und bidirektionale Kommunikation – eignet es sich perfekt für viele Anwendungen und gewinnt deshalb immer mehr an Popularität.

Unterschiede zwischen MQTT 3.1 und MQTT 3.1.1

Obwohl MQTT 3.1.1 eine weitgehend abwärtskompatible aktualisierte Version von MQTT ist, gibt es einige Änderungen und neue interessante Protokollfeatures:

Die künstliche Restriktion, dass der Client Identifier, der beim Verbinden eines Clients mit einem MQTT-Broker nötig war, eine maximale Größe von 23 Byte besitzen darf, wurde entfernt. Client Identifier können nun eine Gesamtgröße von maximal 65 535 Byte haben. (Randnotiz: In der ...

Eclipse Magazin
Der neue Standard MQTT 3.1.1 steht vor der Tür: Lohnt sich ein Update?

Ein Standard für das Internet of Things

Seit Monaten gewinnt das schlanke Kommunikationsprotokoll für das Internet of Things, MQTT (Message Queue Telemetry Transport), immer mehr an Popularität. Die Anwendungsbeispiele reichen dabei von der Kommunikation von Businessanwendungen mit mobilen Geräten über den Einsatz von unternehmenskritischer Hardware in Verbindung mit Backend-Software bis zu klassischem Enterprise-Messaging. Bereits seit 2013 wird die Standardisierung der aktuellsten Version des Protokolls, nämlich MQTT 3.1.1, bei der Standardisierungsorganisation OASIS durchgeführt. Die Standardisierung wird voraussichtlich im September oder Oktober abgeschlossen sein, Grund genug also, uns genauer anzusehen, was der offizielle Nachfolger des MQTT-Protokolls Version 3.1 an Änderungen bringt und was der Status quo bei den Broker- und Clientimplementierungen ist.

Dominik Obermaier


Bereits 2013 formierte sich ein Standardisierungsgremium aus Industriegrößen wie IBM und Cisco sowie kleineren Firmen wie die deutsche dc-square GmbH, um die bereits seit 2010 frei verfügbare MQTT-3.1-Spezifikation [1] offiziell zu standardisieren. Zielsetzung war, die vorhandene Spezifikation als Grundlage zu verwenden und eine technisch genauere und verbesserte, jedoch weitgehend abwärtskompatible Spezifikation zu erstellen.

Seit 2010 hat sich ein recht breites Ökosystem mit unterschiedlichen freien und kommerziellen Client- und Serverimplementierungen gebildet. Deshalb wurde Wert darauf gelegt, dass sich diese bestehenden Implementierungen ohne sehr großen Aufwand auf die neue Spezifikation aktualisieren lassen. Die meisten der neuen Features betreffen die Serverimplementierungen. Darum lassen sich in der Praxis die meisten Clientbibliotheken mit überschaubarem Aufwand updaten.

Um die Akzeptanz des verbesserten MQTT-3.1.1-Standards im MQTT-Ökosystem möglichst früh zu erreichen, wurde bereits Anfang 2014 ein „Inter­operability Testing Day“ – organisiert von der Eclipse IoT Working Group [2] – durchgeführt. Es kristallisierte sich sehr schnell heraus, dass viele der gängigen MQTT-Clients und MQTT-Broker bereits den aktuellen Working Draft der MQTT-3.1.1-Spezifikation komplett oder zumindest teilweise unterstützen [3].

Was ist MQTT?MQTT ist ein sehr schlankes Kommunikationsprotokoll, welches sich durch seine skalierbare Publish-/Subscribe-Architektur perfekt für mobile und IoT-Anwendungsfälle eignet. Ursprünglich wurde es 1999 entwickelt, um die Steuerung und das Monitoring von Ölpipelines effizient zu gestalten. Es ist für unzuverlässige Netzwerkverbindungen wie etwa Mobilfunknetze optimiert. Durch seine herausragenden Features – darunter echter Message-Push, verschiedene Quality-of-Service-Levels, Push-Benachrichtigungen bei ausgefallenen Clients, Heartbeats und bidirektionale Kommunikation – eignet es sich perfekt für viele Anwendungen und gewinnt deshalb immer mehr an Popularität.

Unterschiede zwischen MQTT 3.1 und MQTT 3.1.1

Obwohl MQTT 3.1.1 eine weitgehend abwärtskompatible aktualisierte Version von MQTT ist, gibt es einige Änderungen und neue interessante Protokollfeatures:

Die künstliche Restriktion, dass der Client Identifier, der beim Verbinden eines Clients mit einem MQTT-Broker nötig war, eine maximale Größe von 23 Byte besitzen darf, wurde entfernt. Client Identifier können nun eine Gesamtgröße von maximal 65 535 Byte haben. (Randnotiz: In der ...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang