Runtime Adaptation of Scientific Service Workflows
Software landscapes are rather subject to change than being complete after having been built. Changes may be caused by a modified customer behavior, the shift to new hardware resources, or otherwise changed requirements. In such situations, several challenges arise. New architectural models have to...
Main Author: | |
---|---|
Contributors: | |
Format: | Doctoral Thesis |
Language: | English |
Published: |
Philipps-Universität Marburg
2014
|
Subjects: | |
Online Access: | PDF Full Text |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
Je komplexer eine Softwarelandschaft wird, desto wahrscheinlicher treten Veränderungen ein. Dies kann sowohl während des Entwurfs als auch zur Laufzeit einer solchen Architektur eintreten und die Software selbst wie auch die ausführende Hardware betreffen. In diesem Fall müssen neue Architekturen entworfen, umgesetzt und ausgerollt werden. Deren ständige Überwachung - zumindest zu Beginn - kann bis dato unentdeckte Schwachstellen aufzeigen, die dann wiederum behoben werden müssen. Die erfolgreiche Umsetzung der meisten dieser Schritte erfordern einen oder mehrere manuelle und fehleranfällige Eingriffe. Diese Arbeit beschäftigt sich mit derartigen Laufzeit-Anpassungen. Mit einem Schwerpunkt auf Service-orientierte Architekturen werden Lösungen vorgestellt werden, die die Integration existierender Software als Webservices erlauben. Ebenso wird eine Lösung präsentiert, die das Modellieren von Workflows auch für Nicht-Workflow-Experten zugänglich macht, indem die Aufgaben und die Rollen des Domänen- von der des Workflowexperten getrennt werden. Ein Monitoring-Werkzeug überwacht die Auslastung der in einer Service-orientierten Architektur genutzten Ressourcen. In Kombination mit einer durch Plugins erweiterten Workflow-Engine wird eine automatische horizontale Skalierung durch die Nutzung von Infrastructure-as-a-Service-Anbietern erreicht. Im Bedarfsfalle werden nicht nur neue Ressourcen hinzugefügt, sondern auch im Nicht-Bedarfsfalle genauso automatisch wieder entfernt. Dies geschieht aus Workflowsicht transparent und ermöglicht einen kostensparenden Einsatz. Netzwerk-basierte Kommunikation führt aber auch eine weitere Fehlerebene in die Ausführungslogik ein. Um Anwendungen bzw. Workflows robust gegenüber solcherlei Fehlern zu gestalten, muss eine gesonderte Fehlerbehandlung durchgeführt werden. Dies bewirkt aber, dass die Prozesslogik mit Details der ausführenden Infrastruktur durchmischt wird und komplexer macht. Eine Lösung wird in dieser Arbeit vorgestellt, die automatisch infrastrukturelle Fehler behandeln kann und damit die Trennung von Infrastruktur- und Prozesslogik aufrecht erhält. Wenn Komponenten in einer verteilten Umgebung verändert werden müssen, muss dies an jeder Komponente einzeln durchgeführt werden. Auch wenn Techniken wie Objekt-orientierte Programmierung oder bestimmte Entwurfsmuster diesen Vorgang erleichtern können, so muss doch jeder Service einzeln rekonfiguriert oder umprogrammiert werden. Aspekt-orientierte Programmierung wiederum erlaubt es, neue Funktionalitäten in den existierenden Programmcode zu weben, ohne den Sourcecode dafür verändern zu müssen. Allerdings muss dafür auf der Implementierungsseite eines Services eingegriffen werden. Service-orientierte Architekturen allerdings abstrahieren über die Implementierung eines Services und kommunizieren durch den Austausch implementierungsunabhängiger Dokumente miteinander. Auf dieser Ebene setzen die vorgestellten Request/Response Aspects an und erlauben das Einweben neuer Funktionalitäten auf Kommunikationsebene in einer SOA-kompatiblen Art. Die wesentlichen Beiträge dieser Arbeit sind: Integration: Die generische und erweiterbare Legacy Code Description Language und das dazugehörige Framework erlauben die einfache Integration existierender Software in Service-orientierte Architekturen. Die Komposition bestehender Services wird mit dem vorgestellten SimpleBPEL-Ansatz, der die Rollen und damit die jeweiligen Entwicklungsaufgaben zwischen dem Domänen- und dem Workflowexperten trennt, vereinfacht. Laufzeit: Basierend auf der standardisierten Business Process Execution Language wird eine Lösung vorgestellt, die eine automatische Ressourcenallokation vornimmt. Bei entsprechender Nachfrage und Auslastung werden automatisch passende Ressourcen allokiert und hinzugefügt. Sinkt die allgemeine Auslastung wieder, werden nicht mehr benötigte Ressourcen freigegeben und de-allokiert. Der Allokationsalgorithmus berücksichtigt die Datenübertragung, um unnötige Transfers zu vermeiden, da diese zu einer Verlängerung der Gesamtausführungszeit eines Workflows führen können. Ein mehr-dimensionaler genetischer Algorithmus ist darüber hinaus in der Lage, die durch die Nutzung eines Cloud-Anbieters entstehenden Kosten zu berücksichtigen. Der Nutzer kann dabei seine persönliche Präferenz zwischen günstiger und schneller Ausführung festlegen. Kommunikationsfehler werden dabei automatisch überwacht und - unter Einhaltung gegebener Rahmenbedingungen - korrigiert. Kommunikation: Die vorgestellten Request/Response Aspects erlauben es, neue Funktionalitäten in die Kommunikationsebene von Webservices zu weben. Durch eine Pointcut-Sprache, die auf die ausgetauschten Dokumente ausgelegt ist, gelingt es, das Einweben von Aspekten vollkommen implementierungsunabhängig vom jeweiligen Service zu gestalten. Die Kontrolle über das Einweben wird durch Webservices gesteuert. Dadurch wird eine natürliche Integration in Service-orientierte Architekturen erreicht.