© Excellent backgrounds/Shutterstock.com
Java Magazin
MQTT 5 für Java

Nachrichten aus dem Bienenkorb

Laut der Google-Trends-Analyse [1] ist MQTT mittlerweile das populärste IoT-Protokoll, um Applikationen und Geräte über das Internet zu vernetzen. Es wird in verschiedensten Branchen und für verschiedenste Anwendungsfälle eingesetzt, unter anderem für Industrie 4.0, Connected Cars, Mobile-Apps in der Logistik und immer häufiger als schlanke Alternative für leichtgewichtiges Messaging zwischen Microservices. Im Java-Umfeld ist MQTT mittlerweile vor allem populär, um klassische Enterprise-Anwendungen „IoT-ready“ zu machen. Es skaliert von einem Gerät bis zu mehreren Millionen und kann dabei hunderttausende von Nachrichten pro Sekunde austauschen, außerdem integriert es sich sehr gut in bestehende Enterprise-Applikationslandschaften. Dabei ist eine für Java-Projekte wichtige Komponente HiveMQ MQTT Client, eine Open-Source-Java-Bibliothek, die für den professionellen Projekteinsatz konzipiert wurde. Diese wollen wir in diesem Artikel näher betrachten.

Dominik Obermaier


Für den Einsatz von MQTT wird in erster Linie ein MQTT Broker benötigt, der die entkoppelte und bidirektionale Kommunikation der Clients ermöglicht. Als Broker-Implementierung für Projekte eignet sich der für professionelle Cloud-Deployments entwickelte Enterprise MQTT Broker HiveMQ [2], der für die Vernetzung von wenigen Geräten bis zu mehreren Millionen gleichzeitig verbunder Devices entwickelt wurde und sich durch das flexible Java-Extension-System nahtlos in alle bestehenden Enterprise-Softwarelandschaften integriert. MQTT-Clients können sowohl Geräte, Applikationen als auch Backend-Systeme sein und in den unterschiedlichsten Programmiersprachen über das Standardprotokoll miteinander kommunizieren (Abb. 1). Neueinsteigern in das Thema MQTT ist die unter [3] zu findende Einführung zu empfehlen.

Abb. 1: Die Möglichkeiten von MQTT-Kommunikation

MQTT 5

Vor Kurzem wurde der brandneue Standard MQTT 5 veröffentlicht, der offizielle Nachfolger des höchst erfolgreichen Vorgängers und praktisch überall eingesetzten MQTT 3.1.1. Alle neuen Features und Änderungen und auch der Grund für den Versionierungssprung von 3.1.1 auf 5 sind unter [4] zu finden. Das Spezifikationskomitee hat das Communityfeedback der letzten Jahre sehr ernst genommen, weshalb MQTT 5 mit den meistgewünschten Verbesserungen und Funktionalitäten daherkommt, die sich im Projekteinsatz als sehr nützlich erweisen, u. a. mit den folgenden:

Shared Subscriptions: clientseitiges Load Balancing für Topics mit hohem NachrichtendurchsatzNegative Acks: feingranulare Reason-Codes für gängige FehlerUser Properties: Custom Header für MQTT Pakete, ähnlich zu HTTPFlow Control: Backpressure-Handling auf ApplikationsebeneRequest/Reply: Unterstützung für End-to-end Acknowledgements auf Applikationsebene für verteilte SystemeSession and Message Expiry: Sowohl Sessions als auch Nachrichten können nun auf Protokollebene eine maximale Gültigkeit definieren

Für Applikationsentwickler bleibt MQTT trotz aller Erweiterungen jedoch sehr simpel, da viele Änderungen unter der Haube oder optionale Features sind, die bei Bedarf genutzt werden können. MQTT Broker wie HiveMQ unterstützen viele der Features bereits für die alte MQTT-Version (u. a. Expiry und Shared Subscriptions), jedoch als proprietäre Erweiterung.

HiveMQ MQTT Client

Durch die weitreichenden Änderungen in der neuen MQTT-Version und um den Anforderungen an moderne IoT Use Cases in Unternehmen gerecht zu werden, haben sich dc-square (die Entwickler des MQTT Brokers H...

Java Magazin
MQTT 5 für Java

Nachrichten aus dem Bienenkorb

Laut der Google-Trends-Analyse [1] ist MQTT mittlerweile das populärste IoT-Protokoll, um Applikationen und Geräte über das Internet zu vernetzen. Es wird in verschiedensten Branchen und für verschiedenste Anwendungsfälle eingesetzt, unter anderem für Industrie 4.0, Connected Cars, Mobile-Apps in der Logistik und immer häufiger als schlanke Alternative für leichtgewichtiges Messaging zwischen Microservices. Im Java-Umfeld ist MQTT mittlerweile vor allem populär, um klassische Enterprise-Anwendungen „IoT-ready“ zu machen. Es skaliert von einem Gerät bis zu mehreren Millionen und kann dabei hunderttausende von Nachrichten pro Sekunde austauschen, außerdem integriert es sich sehr gut in bestehende Enterprise-Applikationslandschaften. Dabei ist eine für Java-Projekte wichtige Komponente HiveMQ MQTT Client, eine Open-Source-Java-Bibliothek, die für den professionellen Projekteinsatz konzipiert wurde. Diese wollen wir in diesem Artikel näher betrachten.

Dominik Obermaier


Für den Einsatz von MQTT wird in erster Linie ein MQTT Broker benötigt, der die entkoppelte und bidirektionale Kommunikation der Clients ermöglicht. Als Broker-Implementierung für Projekte eignet sich der für professionelle Cloud-Deployments entwickelte Enterprise MQTT Broker HiveMQ [2], der für die Vernetzung von wenigen Geräten bis zu mehreren Millionen gleichzeitig verbunder Devices entwickelt wurde und sich durch das flexible Java-Extension-System nahtlos in alle bestehenden Enterprise-Softwarelandschaften integriert. MQTT-Clients können sowohl Geräte, Applikationen als auch Backend-Systeme sein und in den unterschiedlichsten Programmiersprachen über das Standardprotokoll miteinander kommunizieren (Abb. 1). Neueinsteigern in das Thema MQTT ist die unter [3] zu findende Einführung zu empfehlen.

Abb. 1: Die Möglichkeiten von MQTT-Kommunikation

MQTT 5

Vor Kurzem wurde der brandneue Standard MQTT 5 veröffentlicht, der offizielle Nachfolger des höchst erfolgreichen Vorgängers und praktisch überall eingesetzten MQTT 3.1.1. Alle neuen Features und Änderungen und auch der Grund für den Versionierungssprung von 3.1.1 auf 5 sind unter [4] zu finden. Das Spezifikationskomitee hat das Communityfeedback der letzten Jahre sehr ernst genommen, weshalb MQTT 5 mit den meistgewünschten Verbesserungen und Funktionalitäten daherkommt, die sich im Projekteinsatz als sehr nützlich erweisen, u. a. mit den folgenden:

Shared Subscriptions: clientseitiges Load Balancing für Topics mit hohem NachrichtendurchsatzNegative Acks: feingranulare Reason-Codes für gängige FehlerUser Properties: Custom Header für MQTT Pakete, ähnlich zu HTTPFlow Control: Backpressure-Handling auf ApplikationsebeneRequest/Reply: Unterstützung für End-to-end Acknowledgements auf Applikationsebene für verteilte SystemeSession and Message Expiry: Sowohl Sessions als auch Nachrichten können nun auf Protokollebene eine maximale Gültigkeit definieren

Für Applikationsentwickler bleibt MQTT trotz aller Erweiterungen jedoch sehr simpel, da viele Änderungen unter der Haube oder optionale Features sind, die bei Bedarf genutzt werden können. MQTT Broker wie HiveMQ unterstützen viele der Features bereits für die alte MQTT-Version (u. a. Expiry und Shared Subscriptions), jedoch als proprietäre Erweiterung.

HiveMQ MQTT Client

Durch die weitreichenden Änderungen in der neuen MQTT-Version und um den Anforderungen an moderne IoT Use Cases in Unternehmen gerecht zu werden, haben sich dc-square (die Entwickler des MQTT Brokers H...

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