Sehr geehrte Damen und Herren, liebe Kollegen,

im Rahmen des Doktorandenkolloquiums werde ich am
16.2.2006 ab 16:00 c.t. in SR 307 über das Thema

"Adaptive Middleware für mobile verteilte Systeme"

vortragen -- hierzu möchte ich Sie herzlich einladen.

Mit freundlichen Grüßen,

Michael Lauer.
ABVS


Zusammenfassung:
Dem Fortschritt im Bereich verteilter, mobiler und ubiquitärer Systeme ist eine neue Form von Rechnerumgebungen zu verdanken, die sich durch einen hohen Grad an Dynamik auszeichnet. Die Unterschiede in der Verfügbarkeit von Ressourcen, Netzkonnektivität, Geräten und Programmen (d.h. Hard- und Softwareplattformen) haben großen Einfluß auf die Leistungsfähigkeit von Anwendungen.

Die zu erwartende Steigerung im allgegenwärtigen Arbeiten mit Computern wird die Zusammensetzung unserer Rechnerinfrastruktur weiter verändern und eine Vielzahl unterschiedlicher kleiner Multifunktionsgeräte mit sich bringen, die spezifische Protokolle und Regeln zur Kommunikation und Koordination erfordern, um die Anforderungen, Bedürfnisse und Erwartungen ihrer mobilen Benutzer zu befriedigen.

Entwickler von Anwendungen, die in mobiler Systemen eingesetzt werden, stehen nicht nur vor der Herausforderung, verschiedene Geräte mit unterschiedlicher Ressourcenausstattung und inkompatibler Softwareausstattung zu integrieren, sondern sie müssen auch die inhärenten Eigenschaften mobiler Kommunikation berücksichtigen: Bandbreitenschwankungen, Übertragungsstörungen, Verbindungsabbrüche und Änderungen der Netztopologie sind in mobilen Systemen nicht die Ausnahme, sondern die Regel. Durch die in spontan vernetzten Situationen oft fehlende Infrastruktur (bestehend aus fest adressierbaren Servern und Diensten) müssen benachbarte Stationen ad-hoc miteinander kommunizieren, um für den Anwender "interessante" Benutzer und Dienste zu entdecken. Zur Realisierung dieser Aufgaben ist eine dynamische Anpassung der verwendeten Kommunika- tions- und Koordinationsparadigmen seitens der Anwendungen unabdingbar.

Konventionelle Middlewaresysteme wie z.B. RPC, RMI, und CORBA arbeiten nach dem Prinzip der höchstmöglichen Verteilungs- transparenz und sind für statische Umgebungen, Client/Server-Architekturen und fest verfügbare Netze optimiert. Die Entwicklung verteilter Anwendungen in hochdynamischen mobilen Netzen unterstützen sie nur wenig. Funktionen zur Veränderung der zugrundeliegenden Architektur der Middleware finden sich dort beispielsweise nicht -- Anwendungen sind je nach Middleware auf jeweils nur eine Möglichkeit zur Kommunikation und Koordination festgelegt, obschon je nach Art des gegenwärtig durchgeführten Kooperation ein Wechsel sinnvoll erschiene.

Die triviale Lösung, je nach angepeilter Anwendung auf ein anderes Middlewaresystem zurückzugreifen, scheidet in mobilen eingebetteten Systemen zum Einen aufgrund der Ressourcenknappheit aus. Zum Anderen ist sich ein mobiler und dynamischer Benutzer eventuell gar nicht a priori im Klaren darüber, welche Anwendungen ihn wohl im Verlauf eines Tages interessieren werden. Middlewaresysteme, die ihre Architektur dynamisch rekonfigurieren können und die zusätzliche Funktionalität zur Laufzeit genau dann nachladen können, wenn sie von Anwendungsseite gebraucht werden, sind ein vielversprechender Ansatz, diesem Problem zu begegnen.

Ziel meiner Arbeit ist ein adaptives Middlewaresystem für mobile verteilte Systeme, das sich durch eine sichtbare und flexible Architektur auszeichnet. Durch Intervention auf hoher Ebene sollen Änderungen der Architektur veranlasst werden können, die sicher und konsistent sind.

Hierzu wird ein modulares, auf Komponenten basierendes Middlewaresystem vorgestellt, das in der Lage ist, seine funktionalen Bestandteile nach Bedarf auszutauschen, um sich so an veränderte Anforderungen seitens der Anwendungen einerseits und seitens der Umgebungsbedingungen andererseits anzupassen.

Als softwaretechnisches Mittel hierzu wird das Konzept Computational Reflection verwendet -- eine strukturierte Herangehensweise, um die Implementierung gekapselter Systeme teilweise zu öffnen und dadurch die Wiederverwendbarkeit und Anpassbarkeit dieser Systeme zu erhöhen. Übertragen auf die Architektur von Middleware ist es hiermit möglich, zu einer Architektur zu gelangen, in der zur Laufzeit weitgehende Anpassungen durchgeführt werden können, um letzlich die Entwicklung flexibler und adaptiver Anwendungen für den Betrieb in dynamischen mobilen Netzen zu unterstützen.