Transparentes Redeployment in komponentenbasierten Softwaresystemen.

Bunge, Sven (2008) Transparentes Redeployment in komponentenbasierten Softwaresystemen. (Diploma thesis), University of Oldenburg, Germany, Oldenburg, Germany, 99 pp.

[thumbnail of Bunge2008TransparentRedeploymentInComponentBasedSoftwareSystems.pdf]
Preview
Text
Bunge2008TransparentRedeploymentInComponentBasedSoftwareSystems.pdf - Published Version

Download (2MB) | Preview

Abstract

An immer mehr Softwaresysteme wird die Anforderung gestellt an 24 Stunden am Tag, 7 Tage die Woche (24/7) verfügbar zu sein. Ein global agierendes Internetunternehmen kennt keine Geschäftszeiten und muss dauerhaft im Internet präsent sein. Bei einem Ausfall der angebotenen Leistungen kann ein hoher Verlust durch Schadensersatzforderungen für die nicht verfübaren Dienstleistungen entstehen.

Mit unterschiedlichen Mitteln lässt sich die Verfügbarkeit der Systeme gegen Defekte von Komponenten oder Strom- und Netzwerkausfällen sichern. Muss hingegen eine Softwarekomponente gegen eine Neue ersetzt werden, muss in der Regel das System abgeschaltet werden, um die Änderungen zu übernehmen. Dieses führt wieder zur nicht gewünschten Nichtverfügbarkeit des Gesamtsystems. Bisher wird eine Aktualisierung einer Softwarekomponente in mehreren Teilschritten erledigt und die einzelnen Teilsysteme nacheinander heruntergefahren und aktualisiert. Dieses Verfahren ist sehr anfällig für Fehler und benötigt zudem für die Durchführung der Arbeiten mehr Ressourcen, als für den eigentlichen Betrieb nötig sind.

Eine optimale Lösung wäre es die Änderungen an der Software während der Laufzeit des Systems zu übernehmen und die Änderungsarbeiten vom Anwendungsserver koordinieren zu lassen. Dieses würde menschliche Fehler ausschließen und die Verfügbarkeit des Systems nicht beeinträchtigen. Durch diese Wartungsarbeiten dürfen somit keine Anfragen an das System verloren gehen, noch dürfen laufende Anfragen oder Transaktionen abgebrochen werden.

Heutige Anwendungsserver bieten schon die Möglichkeit Änderungen an der Software ohne eine Abschaltung des Systems zu übernehmen. Dieser Vorgang unterbricht jedoch alle laufenden Anfragen und die Software steht während der Wartungsarbeiten nicht zur Verfügung --- es entsteht nur ein Zeitvorteil, da der Server nicht vollständig abgeschaltet werden muss.

Mit dem in dieser Arbeit behandelten Algorithmus ist es möglich Softwarekomponenten zur Laufzeit für den Benutzer transparent auszutauschen, ohne dass das System heruntergefahren werden muss. Die Anforderung, dass laufende Anfragen und Transaktionen nicht abgebrochen werden, sowie alle neuen Anfragen beantwortet werden, sind gegeben.

Sollen Änderungen an einer Softwarekomponente übernommen werden, verzögert der Server kurzfristig die Weiterleitung der Anfragen an die Komponente. Sind alle laufenden Anfragen abgearbeitet und Transaktionen beendet, wird die Komponente transparent zu anderen Komponenten und zum Benutzer ausgetauscht. Die in einer Warteschlange gesammelten Anfragen werden nach dem Abschluss der Arbeiten an die veränderte Komponente delegiert.

In dieser Arbeit wird der Algorithmus für ein transparentes Redeployment von Softwarekomponenten beschrieben und im Anschluss daran formalisiert. Mit dieser Formalisierung sind weitere Optimierungen möglich, die theoretisch behandelt werden. Um den Algorithmus in der Praxis testen zu können, wird dieser in die aktuelle Version des JBoss Anwendungsservers integriert. Die Testergebnisse am Ende der Arbeit zeigen, dass der Ansatz eines solchen Redeployments zur Laufzeit möglich und für den Benutzer transparent ist.

Document Type: Thesis (Diploma thesis)
Keywords:
Research affiliation: Kiel University > Software Engineering
Open Access Journal?: Yes
Date Deposited: 02 Oct 2012 14:17
Last Modified: 02 Oct 2012 14:17
URI: https://oceanrep.geomar.de/id/eprint/15483

Actions (login required)

View Item View Item