In dieser Aufgabe soll die Client/Server-Anwendung aus Aufgabe 2 mit Hilfe der
in Java enthaltenen Remote-Method-Invocation-API (RMI) gelöst werden.
Als Ausgangspunkt soll die Bibliotheksverwaltung aus Aufgabe 1 dienen.
Teilaufgabe a (RMI)
Wir beginnen mit der LibraryDB. Dieser soll wie in Aufgabe 2 die
Datenbank darstellen und von allen Clients über Veränderungen informiert
werden. Alle Clients sollten demzufolge auf ein Objekt dieses Types zugreifen
können. Verändern Sie das Interface, so dass ein Objekt vom Typ
LibraryDB als Remote-Objekt dient. Schreiben Sie nun eine Klasse
library.server.RMIServer, welche ein Objekt vom Typ
LibraryDBImpl erzeugt und es als Remote-Objekt exportiert und
geben Sie dieses Objekt über den Namensdienst von RMI bekannt. Ändern Sie
anschließend die Klasse library.client.LibraryFrontend, so dass
diese eine Referenz auf die Datenbank über den Namensdienst erhält. Die vom
Namensdienst benötigte URL soll dem Server wie auch dem Client als
Aufrufparameter übergeben werden. Zum Testen können Sie die
RMI-Registry auf einem Rechner im CIP-Pool starten. Als Portnummer
sollen Sie Ihre UID benutzen.
Teilaufgabe b (Listener-Observer)
Nun sollen Clients eine kurze Meldung ausgeben wenn ein neues
Item in der Datenbank eingetragen wird. Realisieren sie dazu das
Listener-Observer-Entwurfmuster. Der Client muss hierfür die
Möglichkeit haben sich am Server zu registrieren. Daraufhin kann der Server
alle registrierten Clients über Zustandsänderungen (bei einem
register-Aufruf) informieren. Für diesen Zweck muss auch ein
Remote-Objekt auf der Client-Seite implementiert werden. Erstellen Sie das
Remote-Interface DBObserver mit der Methode
newItem(). Nehmen Sie anschließend entsprechende Änderungen an
der Datenbankimplementierung und am LibraryFrontend vor.
Tipps: Damit eine Remote-Objekt wirklich als ein solches weitergegeben
werden kann muss es exportiert werden.
Bearbeitung: bis zum 18.12.2003/18:00 Uhr
Alle Dateien sollen im Verzeichnis
/proj/i4mw/loginname/aufgabe4/ abgelegt werden und mit
dem abgabe-Programm abgegeben werden.
Die Bearbeitung ist NICHT in Gruppenarbeit sondern alleine durchzuführen.