Hasso-Plattner-InstitutSDG am HPI
Hasso-Plattner-InstitutDSG am HPI
Login
  • de
 

Dissertation Andreas Rasche

Ausführung und Entwicklung adaptiver komponentenbasierter Anwendungen


Adaptive Anwendungen können sich an Änderungen ihrer Umgebung anpassen, u.a. um von den Nutzern vorgegebene Anwendungseigenschaften zu gewährleisten. Diese Eigenschaften können durch die variierende Verfügbarkeit von Ressourcen, wie z.B. der Bandbreite eines Netzwerks, verletzt werden. Eine Lösungsstrategie für die Anpassung ist die Auswahl ent-sprechender Softwarekomponenten, den Bausteinen einer Anwendung, die in alternativen Varianten vorliegen können. Während die funktionalen Anforderungen an eine Anwendung oft von mehreren gültigen Zusammenstellungen erfüllt werden können, unterscheiden sich die resultierenden Anwendungseigenschaften in den verschiedenen Umgebungssituationen. Durch die Auswahl und Aktivierung der besten Zusammenstellung bei Änderungen der Um-gebung kann die Anpassung implementiert werden.

Softwarekomponenten sind zunächst für den Zeitraum vor der Laufzeit definiert und ermögli-chen während dieser Zeit den unabhängigen Austausch alternativer Bausteine. Um die Aus-tauschbarkeit von Softwarekomponenten auch während der Laufzeit zu ermöglichen, wird in dieser Arbeit das Konzept der so genannten Kapseln eingeführt, die eine Menge von Objekten gleicher Softwarekomponenten zusammenfasst. Während der Laufzeit kann eine komponen-tenbasierte Anwendung auf verschiedenen mit einem Netzwerk verbundenen Rechnern ausge-führt werden. Veränderungen der Zusammenstellung der Kapseln werden als dynamische Rekonfiguration bezeichnet und können das Hinzufügen neuer Kapseln oder die Verlagerung auf einen entfernten Rechner umfassen. Für die Nutzung der Komponentenorientierung als Grundlage der Adaption müssen dynamische Rekonfigurationsmeachnismen in aktuelle Komponentenplattformen wie die Java- und .NET-Plattform integriert werden. Dies stellt den Schwerpunkt der vorliegenden Arbeit dar.

Bei der dynamischen Rekonfiguration müssen Änderungsoperationen und Anwendungsaktivi-täten synchronisiert werden, um die Konsistenz der Anwendungsdaten zu gewährleisten. Hierfür wird in der vorliegenden Arbeit ein entsprechender Algorithmus vorgestellt, der An-wendungen mit parallelen Aktivitäten und zyklischen Aufrufstrukturen unterstützt. Für einen Spezialfall der dynamischen Rekonfiguration, der dynamischen Aktualisierung, die das Ein-spielen neuer Versionen von Softwarekomponenten während der Laufzeit ermöglicht, wird ein Verfahren für den notwendigen Zustandstransfer beschrieben, das durch den Einsatz von Basistechnologien ohne eine Manipulation der virtuellen Laufzeitumgebung auskommt. Das Verfahren kann auch für das Einspielen fehlerbereinigter Softwareversionen ohne Neustart der Anwendung verwendet werden.

Einen weiteren Schwerpunkt der Arbeit bildet die wiederverwendbare Generierung komple-xer (re-) konfigurationsspezifischer Logik, welche die Entwicklung adaptiver komponenten-basierter Anwendungen vereinfacht. Mit dem Distributed Control Lab wird eine Infrastruktur zur entfernten Ausführung von Steuerungsexperimenten über das Internet vorgestellt, in der für den Schutz vor bösartiger Software eine adaptive Anwendung verwendet wird, in der Steuerungen der Nutzer während der Laufzeit überwacht und im Fehlerfall durch eine sichere Steuerung ersetzt werden.

Link zur Dissertationsschrift: