Programming, Provisioning and Governing Iot Cloud Systems
Total Page:16
File Type:pdf, Size:1020Kb
Programming, Provisioning and Governing IoT Cloud Systems DISSERTATION zur Erlangung des akademischen Grades Doktor der Technischen Wissenschaften eingereicht von Dipl.-Ing. Stefan Nastic, BSc. Matrikelnummer 0527493 an der Fakultät für Informatik der Technischen Universität Wien Betreuung: Univ. Prof. Dr. Schahram Dustdar Zweitbetreuung: Priv.-Doz. Dr. Hong-Linh Truong Diese Dissertation haben begutachtet: Univ. Prof. Dr. Schahram Dustdar Univ. Prof. Dr. Uwe Zdun Wien, 15. April 2016 Stefan Nastic Technische Universität Wien A-1040 Wien Karlsplatz 13 Tel. +43-1-58801-0 www.tuwien.ac.at Programming, Provisioning and Governing IoT Cloud Systems DISSERTATION submitted in partial fulfillment of the requirements for the degree of Doktor der Technischen Wissenschaften by Dipl.-Ing. Stefan Nastic, BSc. Registration Number 0527493 to the Faculty of Informatics at the TU Wien Advisor: Univ. Prof. Dr. Schahram Dustdar Second advisor: Priv.-Doz. Dr. Hong-Linh Truong The dissertation has been reviewed by: Univ. Prof. Dr. Schahram Dustdar Univ. Prof. Dr. Uwe Zdun Vienna, 15th April, 2016 Stefan Nastic Technische Universität Wien A-1040 Wien Karlsplatz 13 Tel. +43-1-58801-0 www.tuwien.ac.at I dedicate this thesis to my mother and my father. Erklärung zur Verfassung der Arbeit Dipl.-Ing. Stefan Nastic, BSc. Rüdigergasse 6/6, 1050 Vienna, Austria Hiermit erkläre ich, dass ich diese Arbeit selbständig verfasst habe, dass ich die verwen- deten Quellen und Hilfsmittel vollständig angegeben habe und dass ich die Stellen der Arbeit – einschließlich Tabellen, Karten und Abbildungen –, die anderen Werken oder dem Internet im Wortlaut oder dem Sinn nach entnommen sind, auf jeden Fall unter Angabe der Quelle als Entlehnung kenntlich gemacht habe. Wien, 15. April 2016 Stefan Nastic vii Acknowledgements This PhD thesis marks the end of almost a decade long journey of my academic education in Computer Science. In spite many ups and downs, it was most of all a fun journey that largely shaped me into the man I am today – determined, strong in my beliefs, but open minded to new challenges and for the rest of my life an explorer. The work I have done would never be possible without a profound support of many people and now, looking back, I realize that this is not an achievement of a single person, but a result of caring and supporting environment of people who have all contributed in their own ways. First and foremost, I would like to express my gratitude to Prof. Schahram Dustdar, my mentor and my friend, who patiently guided me throughout the entire thesis. I am thankful to Dr. Hong-Linh Truong for the endless discussions and an enjoyable collaboration. I want to thank Porf. Frank Leymann for reviewing and helping improve this thesis. Also, I am most grateful to Prof. Uwe Zdun for serving as the examiner of the thesis. Moreover, I am grateful to my coworkers from the Distributed Systems Group for providing a highly productive and pleasant working environment. I would also like to express my gratitude to my colleges from Pacific Controls Cloud Computing Lab, for giving me the opportunity to apply my research in cutting edge industrial environment, as well as the fellow researchers from H2020 U-Test project, for the inspired discussions and wonderful collaboration. Special thanks are reserved for my friends, with whom I have shared so many enjoyable and memorable moments, for always finding a way to help me see the brighter side and for making me a better person. Finally and most importantly my deepest and sincerest thanks are dedicated to my family for their wholehearted love, endless support and everything they have done for me that cannot be put into words. My success will always be your success! Stefan Nastic Vienna, April 2016 The work conducted during the course of this thesis has been funded by Pacific Controls Cloud Computing Lab (PC3L), which is a joint lab between Pacific Controls L.L.C., Dubai and the Distributed Systems Group, TU Wien and; by EU Horizon 2020 Programme U-Test project, under grant agreement 645463. ix Kurzfassung In den letzten Jahren konvergieren Cloud Computing und das Internet der Dinge (IoT) immer stärker und schaffen große, geographisch verteilte Systeme. Solche IoT Cloud Systeme haben die Verbreitung von verschiedenen Anwendungen gefördert. Der drin- gende Bedarf an Volumen, Geschwindigkeit, die Vielfalt von IoT-Daten und schnellere Übertragung von geschäftskritischen Entscheidungen an den Rand der Infrastruktur zu ermöglichen waren die haupt Antriebe dafür. Die Vorteile von IoT Cloud sind zweifellos erkennbar. Jedoch, werden sie von einer Reihe von Herausforderungen begleitet. Eine davon ist das Programmieren von IoT Cloud Anwendungen. Gründe dafür sind die Verarbeitung großer Menge von IoT-Daten, die großen Anzahl von Domainabhängigen IoT Steuerungen und die komplexen Abhängigkeiten zwischen der Anwendungslogik und der Eigenschaften neuer Infrastrukturen. In IoT Cloud Systemen ist eine traditionelle Provisionierung aufgrund der Dynamic, Heterogenität, Umfangs und geographischer Verteilung von IoT Cloud kaum möglich ist. Bei der traditionellen Provisionierung wird implizit davon ausgegangen, dass das IoT-Gerät vor Ort verfügbar ist und eine manuelle Interaktion möglich. Schließlich ist IoT Cloud ein integraler Bestandteil der bestehenden Geschäftsmodelle und Wegbereiter für neue Geschäftsmöglichkeiten. Dies erfordert eine systematische Vorgehensweise in IoT Cloud Governance, die bisher unterentwickelt blieb. Diese Dissertation entwickelt ein reiches Ökosystem, das neue Modelle, Frameworks und Werkzeuge umfasst, die eine erleichterte Programmierung, Provisionierung und Governance von IoT Cloud Systemen ermöglichen. Zuerst wird ein umfassendes Pro- grammierungsframework eingeführt, dass die Programmierung auf ein deutlich höheres Abstraktion-Niveau hebt und eine einfachere und intuitivere Entwicklung von IoT Cloud Anwendungen ermöglicht. Andererseits, stellt das Framework ein flexibles Programmier- Modell, dass speziell auf ressourcenbeschränkte IoT-Geräte zugeschnitten ist und zur Unterstützung von Domain Experte vorgesehen ist. Zweitens werden ein Provisionie- rungsmodell und Middleware eingeführt, die unter anderem folgendes anbieten: i) Me- chanismen für die Ressourcen Abstraktion und anwendungsspezifische Anpassungen; ii) Unterstützung für die automatisierte Provisionierung von IoT Cloud Ressourcen, Anwendungskomponenten und Konfigurationsmodelle, in einer logisch-zentralisierten Art und Weise, durch Middleware verwaltete APIs; iii) Flexible Provisionierungs-Modelle, die auf Nachfrage Verbrauch von beiden IoT und Cloud Ressourcen unterstützen. Schluß- endlich stellt diese Dissertation GovOps vor – ein neuartiges Governance-Modell für die IoT Cloud Systemen. Dieses ermöglicht die nahtlose Ausrichtung von High-Level xi Governance-Zielen mit ausführbaren Operations-Prozessen und unterstützt GovOps Manager: i) Zeitkonsistente Governance-Prozesse in die IoT Cloud Systemen zu imple- mentieren; ii) Unsicherheit- und Elastizität-bewusste Govenrnacestrategien zu entwicklen. Die vorgesttelten Ansätze wurden evaluiert basierend auf der realen Welt Fahrzeugflotte- und Gebäudemanagementsysteme. Abstract Over the recent years, cloud computing and the Internet of Things (IoT) have been converging ever stronger, sparking creation of large-scale, geographically distributed systems. Such IoT Cloud systems have fostered proliferation of various applications, driven by an urgent need to respond to volume, velocity and variety of IoT data, but also to enable timely propagation of business-crucial decisions to the edge of the infrastructure. The benefits of IoT Cloud are undoubtable, but they are also accompanied with a number of challenges. Programming IoT Cloud applications is challenging due to the need to handle large volumes of IoT data in a nontrivial manner, plethora of domain-dependent IoT controls and, inherently complex dependencies between application business logic and novel infrastructure features. Because of dynamicity, heterogeneity, scale and geographical distribution of IoT Cloud, traditional provisioning approaches, which implicitly assume on-site presence or manual interactions with IoT devices are hardly feasible in this novel landscape. Finally, IoT Cloud systems are becoming an integral part of existing business models and key enabler for new business opportunities. This calls for systematic approach to IoT Cloud governance, which to date remains largely underdeveloped. This doctoral thesis contributes a rich ecosystem comprising novel models, frameworks and tools, intended to facilitate programming, provisioning and governing IoT Cloud systems. First, a comprehensive programming framework is introduced, which raises the level of programming abstraction, enabling easier and more intuitive development of cloud-centric IoT Cloud applications. On the other side, it provides a flexible program- ming model, specifically tailored for resource-constrained IoT devices, which is intended to support domain expert developers. Second, a provisioning model and middleware are introduced, which among other, offer: i) Light-weight mechanisms for resource abstrac- tion and application-specific customizations; ii) Support for automated provisioning of IoT Cloud resources, application components and configuration models in a logically centralized manner through middleware managed APIs and; iii) Flexible provisioning models, supporting on-demand consumption of both IoT and Cloud resources. Finally, the thesis introduces GovOps – a novel governance