Loading…
Thumbnail Image

Model-Driven Development of QoS-Enabled Distributed Applications

Weis, Torben

Der Ausdruck Quality of Service (QoS) beschreibt die Güte eines erbrachten Dienstes. QoS beschreibt Eigenschaften wie Antwortzeit, Verfügbarkeit, den Grad der Nachrichten-Verschlüsselung oder den Durchsatz. QoS ist sowohl für Multi-Media Anwendungen (Audio- und Video-Übertragung) als auch für Geschäftsanwendungen wichtig. Die vorgelegte Arbeit konzentriert sich dabei auf das Feld der Geschäftsanwendungen. Solche Anwendungen arbeiten mit Transaktionen wie etwa dem Bestellen eines Produkts oder der Überweisung von Geld zwischen Konten. QoS Eigenschaften solcher Anwendungen sind beispielsweise die Anzahl an Transaktionen während eines Zeitintervalls, die maximale Anzahl gleichzeitig mit dem System arbeitender Nutzer, oder die zu erwartende Verfügbarkeit. Durch Middleware kann die Realisierung von Verteilung vor dem Programmierer verborgen werden. In einer idealen Welt würde Middleware dasselbe für QoS leisten. Das heißt, der Entwickler spezifiziert nur die gewünschte Dienstgüte und kümmert sich nicht darum, wie sie realisiert wird. Das ist so aber nicht möglich, denn die zu erbringende Dienstgüte hat massive Auswirkungen auf das Design einer Applikation. Daher muss QoS schon in der Design-Phase angegangen werden, was mit einer rein Middleware-gestützten Herangehensweise nicht möglich ist. Die vorgelegte Arbeit zeigt, wie dieses Problem durch einen modellgetriebenen Ansatz behoben werden kann. Die Entwicklung beginnt dann mit einem Plattform-unabhängigen Modell (PIM), welches das Verhalten und die QoS Eigenschaften der Applikation beschreibt. Dieses Modell wird automatisch durch eine Modell-Transformation in ein Plattform-spezifisches Modell (PSM) umgewandelt. Das PSM beschreibt das Design einer Implementierung für eine spezifische Plattform und berücksichtigt dabei die im PIM beschriebenen QoS-Eigenschaften. Um dieses Szenario in der Praxis anwenden zu können, müssen zwei Probleme gelöst werden: das Modellieren von QoS Eigenschaften und die Modell-Transformation. Gegenwärtig erfordert das Erstellen einer Modell-Transformation detailliertes Wissen über die Modellierungssprache und ihre Interna. Um das zu vereinfachen, wurde im Rahmen dieser Arbeit die visuelle Regelbasierte Transformationssprache Kafka entwickelt. Kafka und die zugehörigen Werkzeuge bauen auf Graphtransformations-Theorie auf. Kafka vereinfacht das Erstellen von Transformationen weil es auf der Notation des PIM und PSM aufbaut. Daher muss der Entwickler nichts von den Interna (etwa dem Meta-Modell) verstehen. Um PIMs von QoS-fähigen Applikationen zu erstellen, wurde die Modellierungssprache PIQML entwickelt, welche auf UML 2.0 Komponenten, Hierarchischen Nachrichten Sequenz Diagrammen (HMSCs) und einer neuen Meta-Modell Erweiterung für QoS Verträge basiert. Die vorgelegte Arbeit zeigt, wie PIQML Modelle auf verschiedene Zielplattformen (Programmiersprachen und Middleware Produkte) abgebildet werden können. Basierend auf PIQML und Kafka wurde das Werkzeug Kase entwickelt, welches das Editieren von PIQML Modellen (PIMs), UML Modellen (PSMs) und Kafka Transformationen integriert. Das Ergebnis ist eine integrierte Werkzeug-Kette für das modellgetriebene Entwickeln QoS-fähiger verteilter Applikationen.
The term Quality of Service (QoS) describes how well an application or service performs. Hence, QoS can describe properties such as response time, availability, the level of encryption, throughput etc. QoS is important for multi-media (i.e. video and audio applications) as well as for enterprise applications. The presented work focuses on QoS-aware enterprise applications. Enterprise applications are concerned with business transactions such as ordering a product or transferring money between two accounts. QoS properties of enterprise applications determine, for example, how many transactions the system can handle in a certain time frame, how many concurrent users it can serve, or how available the system will be. Middleware tools and libraries shield the developer almost completely from the realization of distribution. In an ideal world, QoS-enabled middleware could do the same for QoS, i.e. the developer does not have to care how QoS is realized. However, the design of an application is highly dependent on its QoS properties. This means that QoS must be tackled at the design phase and this is not possible with an approach solely based on QoS-enabled middleware. This thesis shows how a model-driven approach can overcome this limitation. The development starts with a platform independent model (PIM), which describes the behavior and QoS properties of an application. This model is automatically transformed by a model transformation into a platform specific model (PSM). The PSM describes the design for a concrete implementation on a specific platform, i.e. operating system, programming language, and middleware. Due to the automatic model transformation, tools can influence the platform-specific design and take care of the PIM QoS properties. To realize this scenario, two problems had to be solved: the modeling of QoS properties in the PIM and the model transformation. Current approaches to model transformation require in depth knowledge of the modeling language and its internals. To simplify the construction of transformers, the visual rule-based transformation language Kafka and associated tools based on graph transformation theory have been developed throughout this thesis. Kafka simplifies the implementation of transformers because it builds on the notation of the PIM and the PSM. Hence, it shields the developers of model transformers from the internals of the modeling languages, i.e. the meta models. To create PIMs of QoS-aware applications, a modeling language called PIQML has been developed which is based on UML 2.0 components, hierarchical message sequence charts, and a novel meta model extension for QoS contracts. The thesis shows how PIQML models can be mapped to several target platforms, i.e. programming languages and middleware products. Based on PIQML and Kafka, the CASE tool Kase has been developed which integrates the editing of PIQML models (i.e. PIMs), UML models (i.e. PSMs), and Kafka transformations. The result is an integrated tool chain for the model-driven development of QoS-aware distributed applications.