Geier, M. (2019). Ermöglichung von Mobilität und Nachrichtenübermittlungsgarantien in verteilten MQTT-Netzwerken : von Manuel Geier [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2019.60187
E194 - Institut für Information Systems Engineering
-
Date (published):
2019
-
Number of Pages:
152
-
Keywords:
publish; subscribe; MQTT; distributed network; internot of things; client mability; message delivery guarantee; migration process
en
Abstract:
Publish/Subscribe ist ein weit verbreitetes Kommunikationsmuster für Maschine-zu- Maschine-Kommunikation im Internet der Dinge (Internet of Things, IoT) und das MQTT Protokoll hat sich aufgrund seines leichtgewichtigen Designs zum De-facto- Standard etabliert. Zentralisierte Nachrichtenverteiler sind jedoch nur begrenzt in der Lage, die strengen Servicequalitätsanforderungen moderner IoT-Szenarien zu erfüllen, welche eine dezentrale und zuverlässige Kommunikation am Rand des Netzwerks erfordern. In vielen dieser Szenarien sind Endgeräte nicht mehr nur statisch an einem Ort, sondern bewegen sich in einer Umgebung. Dadurch werden zusätzliche Herausforderungen und Möglichkeiten für eine zuverlässige Kommunikation kreiert. In dieser Arbeit präsentieren wir einen Lösungsansatz für ein skalierbares, verteiltes MQTT-Netzwerk und einen Migrationsprozess, um eine zuverlässige und transaktionale Teilnehmermobilität zu ermöglichen. Wir erweitern MQTT v3 und führen ein transaktionales Migrationsprotokoll ein, das die Nachrichtenübermittlungsgarantien von MQTTs für einzelne Abonnements (höchstens einmal, mindestens einmal, genau einmal) verwendet und gewährleistet, um einen Teilnehmer zwischen (verteilten) Verteilersystemen zu migrieren. Mit Softwaretests, empirischen Experimenten und einer theoretischen Analyse evaluieren wir die Korrektheit, die Reaktionsfähigkeit und die Systembelastung unseres Lösungsansatzes. Die Evaluierung zeigt, dass unser Migrationsansatz es Teilnehmern ermöglicht, von einem Verteiler zu einem anderen zu migrieren, während die Nachrichtenübermittlungsgarantien gewährleistet werden, wobei jedoch zusätzlicher Aufwand verursacht wird. In typischen Szenarien, in denen Verteiler synchronisiert sind, beträgt die Migrationszeit etwa das Achtfache der Verbindungslatenz zwischen den Verteilern. In interregionalen Cloudszenarien, in denen die Verbindungslatenz zwischen den Verteilern etwa 80 bis 100 ms beträgt, dauert die Migration etwa 600 bis 800 ms. Wenn sich die Broker in unmittelbarer Nähe befinden, geht die Anzahl der verworfenen, duplizierten und gespeicherten Nachrichten gegen Null. Mit unserem Migrationprozess nimmt der Netzwerkverkehr mit höchstens einmal ab, nimmt mit mindestens einmal zu und bleibt bei genau einmal Abonnements, mit jedoch einem zusätzlichen Aufwand zur Speicherung von Nachrichten, gleich.
de
Publish/subscribe is a commonly used pattern for machine-to-machine communication in the Internet of Things (IoT) and the MQTT protocol has emerged as the de-facto standard due to its lightweight design. However, centralized messages brokers are limited in their ability to satisfy the stringent quality of service requirements of modern IoT scenarios which require decentralized and reliable communication at the edge of the network. In many of these scenarios, end devices are not static at one place anymore, but rather move around in an environment which creates additional challenges and opportunities for reliable communications. In this work we present an approach for a scalable, distributed MQTT network and a migration process to enable reliable and transactional client mobility. We extend MQTT v3 and introduce a transactional migration protocol which makes use of and ensures MQTTs message delivery guarantees for individual subscriptions (at most once; at least once; exactly once) to migrate a client between (distributed) broker systems. With software testing, empirical experiments and a theoretical analysis we evaluate the correctness, the responsiveness and the system strains of our solution approach. The evaluation shows that our migration approach enables clients to migrate from one broker to another while ensuring message delivery guarantees, but incurs additional overhead. In typical scenarios, where brokers are synchronized, the migration time is roughly eight times the link latency between brokers. In interregional cloud scenarios where the link latency between brokers is roughly 80-100 ms, the migration takes around 600-800 ms. When brokers are in close proximity, the number of discarded, duplicated and stored messages are close to zero. With our migration process, the network traffic decreases with 'at most once', it increases with 'at least once' and it stays the same with 'exactly once' subscriptions, but comes with an overhead in storing message.