An Architecture Style for Cloud Application Modeling
Total Page:16
File Type:pdf, Size:1020Kb
An Architecture Style for Cloud Application Modeling DISSERTATION submitted in partial fulfillment of the requirements for the degree of Doktor der Technischen Wissenschaften by Alexander Bergmayr Registration Number 0255171 to the Faculty of Informatics at the TU Wien Advisor: Priv. Doz. Dr. Manuel Wimmer The dissertation has been reviewed by: Priv. Doz. Dr. Prof. Dr. Dr. h. c. Manuel Wimmer Frank Leymann Vienna, 4th April, 2016 Alexander Bergmayr Technische Universität Wien A-1040 Wien Karlsplatz 13 Tel. +43-1-58801-0 www.tuwien.ac.at An Architecture Style for Cloud Application Modeling DISSERTATION zur Erlangung des akademischen Grades Doktor der Technischen Wissenschaften eingereicht von Alexander Bergmayr Matrikelnummer 0255171 an der Fakultät für Informatik der Technischen Universität Wien Betreuung: Priv. Doz. Dr. Manuel Wimmer Diese Dissertation haben begutachtet: Priv. Doz. Dr. Prof. Dr. Dr. h. c. Manuel Wimmer Frank Leymann Wien, 4. April 2016 Alexander Bergmayr Technische Universität Wien A-1040 Wien Karlsplatz 13 Tel. +43-1-58801-0 www.tuwien.ac.at Erklärung zur Verfassung der Arbeit Alexander Bergmayr Maria-Tusch-Straße, A-1220 Wien Hiermit erkläre ich, dass ich diese Arbeit selbständig verfasst habe, dass ich die verwendeten Quel- len 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, 4. April 2016 Alexander Bergmayr v Acknowledgements I had the good fortune of getting to know Manuel Wimmer back in 2007. Since then we stayed in contact. When I joined the research group of Gerti Kappel in 2012, he guided me in my research and advised me on writing my dissertation. I am grateful to Manuel Wimmer for his extraordinary support in the last four years and to Gerti Kappel, who provided to me an inspiring environment for doing research. Thank you, Manuel and Gerti! I am indebted to Frank Leymann, who reviewed my dissertation. Thank you, Frank! Angelika Kebhart gave generously of her time to correct my dissertation. Thank you, Angi! I thank Martin Fleck for his final proofreading. Thank you, Martin! I thank the many people who contributed directly or indirectly to this dissertation: Michael Grossniklaus, Philip Langer, Tanja Mayerhofer, David Madner, Patrick Neubauer, and Javier Troja. I am deeply grateful to my family for all the patience, support, and love. Thank you, Nadine, Gustav, and Frida! No, no, I do not forget you Mum. Thank you! vii Abstract UML is a widely adopted open standard to create architectural models from multiple viewpoints for various domains. Its language-inherent extension mechanism is being applied to systemati- cally integrate domain-specific concepts via libraries and profiles because they are indispensable for model-based engineering (MBE). Cloud computing is an appealing target domain for MBE. Modern cloud environments support a relatively high degree of automation in service provi- sioning, which allows cloud users to dynamically acquire services required for deploying cloud applications. On the other hand, MBE aims at increasing the automation of application develop- ment by a systematic tool-supported refinement of high-level models towards a target platform and the environment underneath. The selected platform and environment designate the technical target domain whose concepts have to be captured on the model level in order to enable the refinement of architectural models. Modeling concepts and tools along with a set of constraints on how they can be used denote an architecture style. Providing an architecture style for cloud application modeling based on UML including tools that exploit automated processes of both cloud computing and MBE is thus highly desirable. Due to the generic nature of UML, it does however not provide cloud modeling concepts by default and existing UML tools do not yet adequately support cloud-specific model refinement. To address these deficiencies, the goal of this thesis is to realize cloud-specific extensions to UML and a toolset that together form an architecture style for developing cloud applications. In particular, we place emphasis on the automation of development processes and their effectiveness in producing truly useful models. Four main contributions are presented to achieve this goal. First we systematically review current cloud modeling languages (CMLs) and investigate major cloud environments to derive a core set of features inherent to the cloud computing domain. They serve as the basis for developing the UML-based cloud application modeling language (CAML), which is the second contribution. CAML supports semi-automatic model refinement towards the Java platform and three major cloud environments via dedicated libraries and profiles. The third contribution addresses the automatic translation of UML architecture models refined by CAML into TOSCA, a recently adopted standard that aims at automating application provisioning and management. Combining UML and TOSCA closes the gap between architecture modeling and application provisioning. As model transformations are key to automate the refinement and trans- lation of model-based artifacts, maintaining those transformations and their produced artifacts is addressed by the fourth contribution. We exploit incremental transformation to co-evolve existing models with changes to transformations. In addition to the conceptual contributions, we provide proof-of-concept implementations as open-source projects and present case studies for evaluating not only their practical relevance but also aspects such as quality and performance. ix Kurzfassung UML ist ein weitverbreiteter offener Modellierungsstandard für unterschiedliche Domänen, der es durch seinen sprachinhärenten Erweiterungsmechanismus ermöglicht, domänen-spezifische Konzepte systematisch zu integrieren. Die dadurch entwickelten Bibliotheken und Profile sind unabdingbar für den Einsatz von Model-based Engineering (MBE). Cloud Computing ist eine vielversprechende Zieldomäne für MBE. Heutige Cloud-Umgebungen bieten einen relativ hohen Automatisierungsgrad für die Serviceprovisionierung, der es Benutzern erlaubt Services für das Deployment einer Cloud-Anwendung dynamisch zu akquirieren. Ein Kernziel von MBE ist die Automatisierung der Anwendungsentwicklung durch systematische werkzeuggestützte Verfeine- rung von Architekturmodellen für eine Zielplattform und die darunterliegende Umgebung. Die gewählte Plattform und Umgebung bestimmen die technische Zieldomäne deren Konzepte auf der Modellierungsebene erfasst werden müssen, um eine Modellverfeinerung zu ermöglichen. Die Bereitstellung geeigneter Modellierungskonzepte und Werkzeuge in Form eines Architecture Styles basierend auf UML ist deshalb wünschenswert. Standardmäßig stellt UML jedoch keine Modellierungskonzepte für Cloud Computing zur Verfügung und existierende UML Werkzeuge bieten keine ausreichende Unterstützung für eine cloud-spezifische Modellverfeinerung. Um diese Limitierungen zu adressieren, werden in dieser Arbeit cloud-spezifische Erwei- terungen für UML und ein Werkzeugsatz vorgestellt, die zusammen einen Architecture Style für die Entwicklung von Cloud-Anwendungen bilden. In einem ersten Schritt werden existie- rende Modellierungssprachen und Umgebungen im Cloud Computing Bereich untersucht, um Kernaspekte der adressierten Domäne abzuleiten. Auf dieser Grundlage wird die UML-basierte Cloud Application Modeling Language (CAML) entwickelt. CAML unterstützt mit Hilfe geeigne- ter Bibliotheken und Profile die semi-automatische Modellverfeinerung für die Java Plattform und drei führende Cloud-Umgebungen. Zudem befasst sich diese Arbeit mit der automatischen Übersetzung von Architekturmodellen repräsentiert in UML und verfeinert durch CAML nach TOSCA, ein kürzlich verabschiedeter Standard mit dem Ziel die Anwendungssprovisionierung und das Anwendungsmanagement zu automatisieren. Durch das Zusammenwirken von UML und TOSCA kann die Lücke zwischen Architekturmodellierung und Anwendungssprovisionierung geschlossen werden. Da in der automatisierten Verfeinerung und Übersetzung von modellbasier- ten Artefakten die Modelltransformation eine Schlüsselrolle einnimmt, wird in dieser Arbeit auch die Modellevolution auf Grund von Transformationsanpassungen betrachtet. Die in dieser Arbeit vorgestellten Konzepte werden als proof-of-concept Implementierungen in Form von open-source Projekten zur Verfügung gestellt und anhand von Fallstudien evaluiert. Dabei wird nicht nur die praktische Relevanz der vorgestellten Arbeit demonstriert sondern auch Aspekte wie Qualität und Performanz untersucht. xi Contents Abstract ix Kurzfassung xi 1 Introduction 1 1.1 Problem statement . 3 1.2 Aim of the thesis . 5 1.3 Scientific approach . 9 1.4 Application scenario . 10 1.5 Structure of the thesis . 12 2 Preliminaries 15 2.1 Cloud services and environments . 16 2.2 Architecture viewpoints . 18 2.3 Model-based engineering . 21 3 Review of cloud modeling languages 29 3.1 Review framework . 31 3.2 Review process . 40 3.3 Results . 48 3.4 Summary . 65 3.5 Related surveys . 66 4 Cloud application modeling 69 4.1 Motivation . 72 4.2 UML-based language for cloud application modeling . 75 4.3 Extensions to UML for target platforms in the cloud . 78 4.4 Extensions to UML for target cloud environments . 91 4.5 Summary . 103 4.6 Related work . 104 5 Cloud application provisioning 109 5.1 Motivation . 112