Institut für Verteilte Systeme
- 1:
Projekte. - 2:
Publikationen. - 3:
Lehre. - 4:
Personen. - 5:
Intranet.
Middleware
Praktikum im Hauptstudium / WS 2003/2004 / CS 5850
Angaben
- Dozent
- Prof. Dr. Franz J. Hauck
- Betreuer
- Andreas Schmied
- Termine
- nach Vereinbarung
- SWS
- 4P
Themengebiet
Eine der Forschungsgruppen der Abteilung Verteilte Systeme beschäftigt sich mit Middleware-Systemen. Diese Systeme dienen als Plattform zur Entwicklung verteilter Anwendungen. Beispiele für solche Systeme sind Java RMI, CORBA, .NET, Enterprise Java Beans und viele andere.
Im Praktikum werden in diesem Semester drei Themenbereiche angesprochen. Zum einen ist eine einfache fehlertolerante Anwendung zu entwickeln. Ziel hierbei ist es, die mögliche Unterstützung für Fehlertoleranz durch die Middleware herauszukristallisieren. Zum anderen wird eine Java-basierte CORBA-Middleware um die Fähigkeit fragmentierte Objekte zu verwalten erweitert. Weiterhin soll ein Code-Transformator für eine Middleware um Teilkomponenten erweitert werden. Der erweiterte Transformator soll schließlich als Open-Source veröffentlicht werden.
Alle Implementierungsarbeiten werden in der Programmiersprache Java durchgeführt.
Fehlertolerante Anwendung
Als fehlertolerante Anwendung ist ein einfaches Versionsverwaltungssystem vorgesehen. Es verwaltet eine Menge von Dateien, die von den Benutzern verändert und als neue Version in das System eingegeben werden kann. Das System speichert alle Vorgängerversionen und die Änderungsinformationen wie Zeitstempel, ändernder Benutzer etc.
Diese einfache Anwendung soll auf verschiedene Weisen verteilt und fehlertolerant werden. Denkbar ist ein passives Schema, bei dem mehrere Serverinstanzen die Daten abspeichern, jedoch nur eine die Änderungen durchführt. Alternativ können Änderungen auch simultan an allen Serverinstanzen durchgeführt werden. Interessant sind Überlegungen, was bei der Partitionierung der Serverinstanzen z.B. durch gestörte Netzverbindungen zu tun ist. Weiterhin könnte die Anwendung basierend auf Peer-to-Peer-Protokollen aufgebaut werden.
Ziel des Praktikums ist es hier, die Problematik fehlertoleranter Programmierung aufzuzeigen. Es ist möglich durch die einfache Struktur der Anwendung zu einfachen Lösungen zu kommen. Dabei soll herausgefunden werden, welche Voraussetzungen die einfachen Lösungen haben und wie ein Middleware-System solche Lösungen unterstützen könnte (z.B. Bibliotheken mit Unterstützungfunktionen oder Code-Generatoren).
CORBA-Middleware
CORBA ist eine Middleware für verteilte Objekte. Wir betrachten nur die verteilten Objekte im Java-Kontext. Die Software-Plattform wird gebildet durch einen ORB (Object Request Broker), welcher die Kommunikation zwischen verteilten Objekt ermöglicht und regelt. Dabei gibt es viele ORB-Implementierungen, einige auch als Open-Source.
Im Praktikum sollen Komponenten in einen bestehenden ORB (genauer die Open-Source-Implementierung JacORB) eingebracht werden, um den ORB auf fragmentierte Objekte zu erweitern. Solche fragmentierten Objekte haben Teilkomponenten an jedem Ort, an dem sie angesprochen werden und können daher besonders Eigenschaften wie Fehlertoleranz, Sicherheit, Effizienz etc. implementieren. Man nennt diese Eigenschaften auch nichtfunktionale Eigenschaften, da sie nur indirekt mit der eigentlichen Funktion einer verteilten Anwendung zu tun haben. Ein gutes Beispiel ist ein verteiltes Radio-Objekt. Nutzer des Objekts bekommen ein lokales Fragment des Objekts, welches den eigentlichen Radio-Server (ein anderes Fragment) kontaktiert und von dort die Audiodaten bezieht. Das eingesetzte Protokoll ist Sache der Objektimplementierung und für den Objektnutzer unsichtbar (transparent). Ein anderes Beispiel wäre die Anwendung aus dem ersten Themenbereich. Hier wird das konkret eingesetzte Fehlertoleranzverfahren für den lokalen Nutzer unsichtbar.
Ziel des Praktikums ist es hier, den Aufbau eines ORBs kennenzulernen und gezielt inkrementelle Erweiterungen für eine bessere Middleware-Implementierung zu integrieren.
Open-Source Code-Transformator
In einem unserer Projekte wird ein Tool zur Code-Generierung und insbesondere zur Code-Transformation eingesetzt, um die Anbindung von Programmcode in die Middleware und die Anpassung dieses Codes für fehlertolerante Anwendungen zu automatisieren.
Im Praktikum sind folgende Aufgaben zu bearbeiten:
- Der bisher verwendete Quellcode-Parser soll durch einen aktuelleren und eleganteren ersetzt werden. Dies ist neben technischen Gründen und als Basis für zukünftige Erweiterungen auch im Zusammenhang mit dem Punkt "Open-Source" lizenzrechtlich relevant.
- Der Code-Transformator soll als eigenständiges Werkzeug aus dem Projekt-Quellenpool extrahiert werden. Damit soll die Weiterentwicklung als Open-Source-Projektes ermöglicht und ggf. auch initiiert werden.
Dieses Thema öffnet Ihnen die Möglichkeit, neben der normalen alltäglichen Programmierung, das Generator-gestützte Entwickeln im Sinne der aspekt-orientierten Programmierung kennenzulernen. Sie können dabei die technischen Vorgänge "im Innern" eines Aspektwebers kennenlernen und können über das hinausschauen, was Aspektsprachen wie AspectJ heutzutage bieten.
Anmeldung
Bei Interesse melden Sie sich bitte unverbindlich bei Prof. Franz Hauck oder bei Andreas Schmied per E-Mail an. Spätestens in der ersten Woche des Wintersemesters wird eine konkrete Themenvergabe vorgenommen. Haben Sie Interesse und möchten nähere Auskünfte, so wenden Sie sich bitte ebenfalls an die Betreuer.
