[Back]


Doctor's Theses (authored and supervised):

A. Bergmayr:
"An Architecture Style for Cloud Application Modeling";
Supervisor, Reviewer: M. Wimmer, F. Leymann; Institute of Software Technology and Interactive Systems, 2016; oral examination: 2016-05-03.



English 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 systematically 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 provisioning, 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 development 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 e ffectiveness 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 translation 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.

German abstract:
UML ist ein weitverbreiteter o ener 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 Verfeinerung 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 Erweiterungen 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 existierende 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 geeigneter 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 modellbasierten 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.

Keywords:
Cloud computing, Model based engineering, UML, Architecture modeling, Architecture style, Evolution, Modernization, Migration, Forward engineering, Reverse engineering


Electronic version of the publication:
http://publik.tuwien.ac.at/files/PubDat_249364.pdf


Created from the Publication Database of the Vienna University of Technology.