Data distribution for fog-based IoT applications

Hasenburg, Jonathan

FG Mobile Cloud Computing

Fog computing is an emerging computing paradigm that employs edge devices, machines within the core network, and the cloud. Distributing IoT data via fog-based pub/sub systems has many advantages, including low latency communication between physically close clients, better availability, and reduced bandwidth consumption in the wide-area network. For building, testing, and evaluating such fog-based pub/sub systems, we identified two main needs: First, the need for considering the unique characteristics of the fog and the IoT. Second, the need for automated execution of fog application experiments in a controllable environment. In this thesis, we present three main contributions to address these needs: Our first contribution is BCGroups, an inter-broker routing strategy for distributing IoT data within fog-based pub/sub systems. BCGroups can be used with existing cloud-based pub/sub offers. For routing messages between brokers fast and efficiently, BCGroups uses IoT-specific domain knowledge: low communication latency is often only required between devices in physical proximity. Our second contribution comprises GeoBroker & DisGB, two pub/sub broker systems that leverage geo-context for IoT data distribution. In many IoT scenarios, geo-context information is readily available, i.e., publishers often know where their data is relevant, and subscribers can often specify where relevant data originates. When running on a single machine, GeoBroker reduces the load on the broker system, bandwidth consumption, and the number of irrelevant messages that subscribers need to process. DisGB builds upon GeoBroker and also comprises two novel strategies for inter-broker message routing in multi-machine setups. Both strategies achieve a similar communication latency as flooding events or subscriptions while requiring significantly less inter-broker messages. Our third contribution is MockFog, an approach for the automated execution of fog application experiments in the cloud. The main idea is to use an emulated infrastructure testbed that can be manipulated based on a predefined orchestration schedule. This way, fog applications and fog systems can run in the cloud while experiencing comparable performance and failure characteristics as in a real fog deployment. Moreover, it allows application engineers to test arbitrary failure scenarios and various infrastructure options at large scale.
Fog Computing ist ein gerade entstehendes Rechenparadigma, welches die gleichzeitige Nutzung von Edge-Ressourcen, von Maschinen innerhalb des Kernnetzwerkes und der Cloud ermöglicht. Die Nutzung von Fog-Ressourcen zur Verteilung von IoT-Daten mittels Pub/Sub-Systemen hat viele Vorteile; dazu gehört unter anderem die Möglichkeit für physisch nahe Geräte mit geringer Latenz miteinander zu kommunizieren, eine erhöhte Systemverfügbarkeit und eine geringe Nutzung von Bandbreitenressourcen in überregionalen Netzwerken. Um solche Fog-basierten Pub/Sub-Systeme zu entwickeln, zu testen und zu evaluieren, wurden zwei grundlegende Erfordernisse identifiziert: Erstens die Notwendigkeit IoT-spezifische und Fog-spezifische Charakteristiken zu berücksichtigen. Zweitens der Bedarf an einer automatisierten Durchführung von Experimenten mit Fog-Anwendungen in einer kontrollierbaren Umgebung. Zur Erfüllung dieser Erfordernisse leistet diese Dissertation drei entscheidende Beiträge: Der erste Beitrag ist BCGroups, eine Strategie zur Verteilung von IoT-Daten innerhalb von Pub/Sub-Systemen in Fog-Umgebungen. BCGroups ermöglicht dabei auch die Einbindung bereits bestehender Pub/Sub-Angebote. Für die Verteilung von Nachrichten zwischen einzelnen Brokern wird IoT-spezifisches Domänenwissen genutzt: Nachrichtenaustausch mit geringer Latenz wird überwiegend von Geräten, die sich in physischer Nähe zueinander befinden, benötigt. Der zweite Beitrag beinhaltet GeoBroker & DisGB, zwei Pub/Sub-Systeme, die das Verteilen von IoT-Daten mittels Geo-Kontexten optimieren. Geo-Kontextinformationen sind in vielen IoT-Szenarien vorhanden, so wissen Publisher häufig, wo ihre Daten von Relevanz sind, während Subscriber häufig spezifizieren können, woher relevante Daten kommen. Durch die Nutzung dieser Informationen reduziert GeoBroker in zentralisierten Setups die Systemlast, die Nutzung von Bandbreitenressourcen, sowie die Anzahl an irrelevanten Nachrichten, die von Subscribern verarbeitet werden müssen. DisGB baut auf GeoBroker auf und beinhaltet zusätzlich zwei neue Strategien zur Verteilung von Nachrichten zwischen Brokern. Beide DisGB-Strategien erreichen eine vergleichbare Latenz beim Nachrichtenaustausch wie das direkte Verteilen von Events oder Subscriptions an alle Broker, aber sie resultieren in einem deutlich geringerem Nachrichtenaufkommen. Der dritte Beitrag ist MockFog, ein Ansatz zur automatisierten Ausführung von Experimenten mit Fog-Anwendungen in der Cloud. Die grundlegende Idee ist die Emulierung einer Infrastrukturtestumgebung, welche basierend auf einem vordefinierten Orchestrierungsplan manipuliert werden kann. Dadurch können Fog-Anwendungen und Fog-Systeme vollständig in der Cloud betrieben werden, während sie ähnliche Performance- und Fehlereinflüsse wie in ihrer tatsächlichen Fog-Umgebung erfahren. Zusätzlich ermöglicht dies das Testen von beliebigen Fehlerszenarien auf verschiedensten Infrastrukturoptionen im großem Maßstab.