title: Laufzeitadaption wissenschaftlicher Service Workflows
title: Runtime Adaptation of Scientific Service Workflows
Creators: name: Juhnke, Ernst
Publisher: name: Philipps-Universität Marburg
Year: 2014
Subjects: Informatik
Cloud Computing
Web Services
Workflow Management
Business Process Execution Language
Runtime Adaptation

description: 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 be designed and implemented,
      existing software has to be integrated, and, finally, the new
      software has to be deployed, monitored, and, where
      appropriate, optimized during runtime under realistic usage
      scenarios. All of these situations often demand manual
      intervention, which causes them to be error-prone. This
      thesis addresses these types of runtime adaptation. Based on
      service-oriented architectures, an environment is developed
      that enables the integration of existing software (i.e., the
      wrapping of legacy software as web services). A workflow
      modeling tool that aims at an easy-to-use approach by
      separating the role of the workflow expert and the role of
      the domain expert. After the development of workflows, tools
      that observe the executing infrastructure and perform
      automatic scale-in and scale-out operations are presented.
      Infrastructure-as-a-Service providers are used to scale the
      infrastructure in a transparent and cost-efficient way. The
      deployment of necessary middleware tools is automatically
      done. The use of a distributed infrastructure can lead to
      communication problems. In order to keep workflows robust,
      these exceptional cases need to treated. But, in this way,
      the process logic of a workflow gets mixed up and bloated
      with infrastructural details, which yields an increase in its
      complexity. In this work, a module is presented that can deal
      automatically with infrastructural faults and that thereby
      allows to keep the separation of these two layers. When
      services or their components are hosted in a distributed
      environment, some requirements need to be addressed at each
      service separately. Although techniques as object-oriented
      programming or the usage of design patterns like the
      interceptor pattern ease the adaptation of service behavior
      or structures. Still, these methods require to modify the
      configuration or the implementation of each individual
      service. On the other side, aspect-oriented programming
      allows to weave functionality into existing code even without
      having its source. Since the functionality needs to be woven
      into the code, it depends on the specific implementation. In
      a service-oriented architecture, where the implementation of
      a service is unknown, this approach clearly has its
      limitations. The request/response aspects presented in this
      thesis overcome this obstacle and provide a SOA-compliant and
      new methods to weave functionality into the communication
      layer of web services. The main contributions of this thesis
      are the following: Shifting towards a service-oriented
      architecture: The generic and extensible Legacy Code
      Description Language and the corresponding framework allow to
      wrap existing software, e.g., as web services, which
      afterwards can be composed into a workflow by SimpleBPEL
      without overburdening the domain expert with technical
      details that are indeed handled by a workflow expert. Runtime
      adaption: Based on the standardized Business Process
      Execution Language an automatic scheduling approach is
      presented that monitors all used resources and is able to
      automatically provision new machines in case a scale-out
      becomes necessary. If the resource's load drops, e.g.,
      because of less workflow executions, a scale-in is also
      automatically performed. The scheduling algorithm takes the
      data transfer between the services into account in order to
      prevent scheduling allocations that eventually increase the
      workflow's makespan due to unnecessary or disadvantageous
      data transfers. Furthermore, a multi-objective scheduling
      algorithm that is based on a genetic algorithm is able to
      additionally consider cost, in a way that a user can define
      her own preferences rising from optimized execution times of
      a workflow and minimized costs. Possible communication errors
      are automatically detected and, according to certain
      constraints, corrected. Adaptation of communication: The
      presented request/response aspects allow to weave
      functionality into the communication of web services. By
      defining a pointcut language that only relies on the
      exchanged documents, the implementation of services must
      neither be known nor be available. The weaving process itself
      is modeled using web services. In this way, the concept of
      request/response aspects is naturally embedded into a
      service-oriented architecture.
description: 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.