Bachmann, K. (2016). Design and implementation of a fog computing framework [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2016.40086
fog computing; cloud computing; edge computing; internet of things; programming model; software framework; fog computing framework; real-world test-bed; resource provisioning
de
Abstract:
Die stetige Digitalisierung und Vernetzung von alltäglichen Gegenständen führte in den letzten Jahren zu einem enormen Wachstum an datenproduzierenden Geräten. Das resultierende Internet der Dinge (engl. Internet of Things, IoT) und dessen Verbreitung erfordern eine Veränderung in der Verwendung eben solcher Geräte, um eine erfolgreiche Datenübermittlung und Datenverarbeitung zu ermöglichen. Aufgrund der Tatsache, dass diese Geräte nicht nur Daten generieren, sondern auch Rechen- und Speicherkapazitäten aufweisen, entstand ein neues IT-Paradigma. Dieser dezentralisierte Ansatz verlagert den Fokus von der zentralen Cloud-Computing-Umgebung and den Rand des Netzwerks und führt zur Einführung einer neuen Zwischenebene - dem Fog Computing. Die zentrale Idee von Fog Computing besteht darin, bestehende Ressourcen am Rande des Netzwerks zu nutzen, indem IoT-Dienste auf verfügbaren Geräten ausgeführt werden. Die Entwicklung einer dynamischen Fog-Computing-Softwareumgebung birgt folgende Forschungslücken, die es zu lösen gilt: dezentrale Datenverarbeitung, Ressourcenvirtualisierung, IoT-Geräteverwaltung und die Bereitstellung von Diensten und Ressourcen sowohl in der Cloud- Umgebung als auch in der Fog-Landschaft. Das Schließen besagter Forschungslücken resultiert in einer Softwareumgebung, fähig die dynamischen Ressourcen am Rande des Netzwerks zu nutzen, den Datentransfer zu verringern und somit die Cloud zu entlasten und das IoT zu unterstützen. Eine derartige dynamische Softwareumgebung ist ein Fog-Computing-Framework. Der aktuelle Stand der Technik konzentriert sich hauptsächlich auf Cloud Computing, Fog- Computing-Konzeptarchitekturen und Ansätze zur cloud-basierten Ressourcenbereitstellung. Da sich nur wenige wissenschaftliche Beiträge mit der Entwicklung eines konkreten Fog- Computing-Frameworks befassen, werden in dieser Arbeit IoT-Anwendungsfälle, verwandte IoT-Frameworks und Best-Practices im Bereich verteilter Systeme analysiert. Basierend auf dieser Analyse wird ein dynamisches und erweiterbares Fog-Computing-Framework entwickelt. Das entwickelte Fog-Computing-Framework schafft die Vorraussetzungen für die Verwaltung zugehöriger IoT-Dienste in einer realen Fog-Landschaft. Darüber hinaus ermöglicht das Framework die Verwaltung der Geräte, Kommunikation zwischen den Geräten und realisiert die Bereitstellung von Ressourcen und IoT-Diensten in der Fog-Landschaft. Zusätzlich ist das Framework in der Lage, auf verschiedene Systemereignisse, z. B. Gerätebeitritt, Geräteversagen und Geräteüberlastung, zu reagieren. Die Evaluierung des Frameworks befasst sich neben der Handhabung besagter Ereignisse mit der Analyse weiterer Metriken, z. B. Kosten, Ausführungszeiten und variierenden Dienstanfragen. So bietet das Framework die Möglichkeit, die Dynamik der Fog-Landschaft zu bewältigen und führt zu geringeren Bereitstellungszeiten von IoT-Diensten und erheblichen Kostenvorteilen. Schließlich erlaubt die Gestaltung des Frameworks zukünftigen Forschern, die Komponenten des Frameworks so zu konfigurieren, zu erweitern und zu verbessern, dass es den individuellen Anforderungen und Forschungsproblemen gerecht wird.
de
The prevalence of ubiquitous computing devices encouraged by the expanding technology trend of the Internet of Things (IoT) demands a change in how these devices are used and where the generated data is processed. Since these computing devices not only generate data but feature computational and storage capabilities, a new paradigm evolved. The decentralized computing paradigm that shifts the focus of interest away from a centralized cloud computing environment towards the edge of the network is called fog computing. The main idea of fog computing is to utilize the processing and storage resources at the edge of network by deploying IoT services on available edge devices to reduce latency and processing cost. The research challenges to be tackled in order to develop a dynamic software environment realizing the vision of fog computing are decentralized data processing, resource virtualization, service deployment, IoT device orchestration, and resource provisioning in both the cloud environment and the fog landscape. Such a dynamic decentralized software environment is a fog computing framework. State of the art approaches are mostly focusing on cloud computing, conceptual fog computing architectures, and cloud-based resource provisioning approaches. Only few contributions deal with the development of a concrete fog computing framework. Therefore, in this work, IoT use cases, related IoT frameworks, and best practices in the area of distributed systems are analyzed in order to design and implement a dynamic, extensible, and flexible fog computing framework. The fog computing framework provides the tools to manage IoT services in the fog landscape by means of a real-world test-bed. Furthermore, the framework facilitates the communication between the devices, fog device orchestration, IoT service deployment, and dynamic resource provisioning in the fog landscape. In addition to these main functionalities, the framework is able to react on various system events, e.g., device accedence, device failure, and device overload. The consequent event handling and assessment of other important metrics, e.g., costs, deployment times, and service arrival patterns, is performed in the evaluation of the framework. As a result, the framework provides the utilities to deal with the dynamism of the fog landscape and yields lower deployment times of IoT services and considerable cost benefits. Finally, the design of the framework allows future researchers to configure, extend, and enhance the components of the framework to fit the individual requirements and research challenges.