Please choose your delivery country and your customer group
Applikationsserver haben etwa durch CORBA und EJB große Bedeutung gewonnen, denn auf ihnen fußen unternehmenskritische Anwendungen. Allgemein ermöglichen Applikationsserver den entfernten Zugriff auf Geschäftsfunktionalität mittels einer objektorientierten Dienstschnittstelle. Aus der Sicht einer Klientenanwendung, die ein derartiges System nutzt, gibt es aber ein großes Problem: Die Leistung des Servers in Bezug auf Skalierbarkeit und Antwortzeiten ist häufig unbefriedigend. Bisherige Lösungsansätze zur Leistungsverbesserung sind nur bedingt einsetzbar oder mit hohen Zusatzkosten verbunden. Da eine Anfrage an einen Applikationsserver viele Systemschichten durchläuft, können die Antwortzeiten eines Aufrufs auch bei niedriger Anfragelast schon unbefriedigend sein. Die Arbeit leistet in diesem Bereich Abhilfe, indem sie das Caching von Methodenresultaten auf der Klientenseite eines Applikationsserver-Systems ermöglicht. Die Arbeit entwickelt einen formalen Korrektheitsbegriff sowie einen Präzisionsbegriff für Cache-Modelle. Eine spezielle Algebra ermöglicht es, praxisrelevante Operationen auf Cache-Modellen auszuführen. Weiter behandelt die Arbeit ein einfach anwendbares Verfahren zur Korrektheitsprüfung von Cache-Modellen und beschreibt die kohärente Verwaltung mehrerer Caches. Ein praxisnahes Experiment, das auf einer Benchmark-Implementierung eines Auktions-Web-Sites beruht, weist deutliche Leistungsverbesserungen durch den Einsatz des Caches nach. Im Fall, dass Dienstmethodenaufrufe beim Klienten in ACID-Transaktionen eingeschlossen sind, ergibt sich eine andere Lösung, die auf Cache-Modelle verzichtet. Im Grundsatz wird hierzu ein Transaktionsverwalter, der dem Applikationsserver unterstellt ist, um die Verarbeitung von so genannten Methodenoperationen erweitert. Letztere spiegeln den Zugriff auf vorgehaltene Methodenresultate, die während einer Transaktion beim Klienten aus dem Cache gelesen wurden, wider. Der Cache arbeitet in diesem Zusammenhang intertransaktional. Insgesamt zeigt die Arbeit, wie man das Caching von Methodenresultaten als orthogonalen Systemaspekt im Applikationsserverbereich durchsetzt. Durch die Transparenz und Konsistenz der vorgestellten Ansätze kann man diese auch in späten Software-Entwicklungsphasen anwenden. Im nicht-transaktionalen Fall entsteht dabei hauptsächlich der Aufwand zur Erstellung des Cache-Modells. Im transaktionalen Fall gibt es kaum Zusatzaufwand. In Bezug auf Mehrschichtenarchitekturen plaziert die Arbeit einen Cache zwischen der Präsentationsschicht und der Anwendungsschicht. Konventionelle Caches arbeiten hingegen oberhalb der Präsentationsschicht (etwa als dynamische Web-Caches) oder zwischen der Anwendungs- und Datenhaltungsschicht (etwa als Objekt-Caches).