Die zweite Übungsaufgabe wird weiter ausgebaut. Stellen Sie
sich dazu eine Firma mit den beiden Abteilungen
Einkauf und Vertrieb
vor. (Eine Verallgemeinerung auf mehr als zwei Abteilungen ist nicht
erforderlich.) Jede Abteilung führt ein eigenes
Telefonverzeichnis, das mit dem der jeweils anderen Abteilung
strukturell identisch ist, inhaltlich jedoch abweicht.
Die Betriebsleitung soll beide Verzeichnisse
so abfragen können, als läge nur ein einziges vor. Der
Aspekt, dass jede Abteilung ihr Telefonverzeichnis auch selbst
abfragen können soll, gehört
nicht zur Aufgabenstellung. Hier soll
nur die Betriebsleitung abfragen können.
Die Abfragen sollen mit Hilfe einer HTML-Form an einem Web-Browser
vorgenommen werden. Führen die Benutzereingaben
zu Suchvorgängen in den beiden Telefonverzeichnissen,
dann werden sie per RMI
nebenläufig an beide
Telefonbücher weitergereicht und dort bearbeitet. Die
Ergebnisse werden zusammengeführt, durch einen Hinweis auf
die Abteilung, aus der sie stammen, ergänzt und am Browser
ausgegeben.
In den Telefonbüchern der beiden Abteilungen bleiben das
Suchverfahren nach Name und/oder Telefonnummer mit
nebenläufig arbeitenden Threads und alle übrigen
Anforderungen der ersten Übungsaufgabe bestehen.
Konkretisierung
Überführen Sie den Telefonbuchserver aus der
zweiten Übungsaufgabe in einen zentralen, von der
Betriebsleitung per Web-Browser abzufragenden
Telefonbuchserver. Ergänzen Sie ihn durch eine
Methode, die den Query String, der in der zweiten Aufgabe
dem Telefonbuch übergeben wird, per RMI
nebenläufig an die Telefonbücher der beiden
Abteilungen weiterreicht.
In jeder Abteilung wird das Telefonbuch aus der ersten
Übungsaufgabe an die Namen und Telefonnummern der
jeweiligen Abteilung angepasst. Ansonsten bleibt es
unverändert. Dem Telefonbuch wird jeweils ein
Abteilungsserver vorgeschaltet, der als RMI-Server arbeitet,
und mit dem übermittelten Query String das zur
Abteilung gehörende Telefonbuch abfragt. Das Ergebnis
der Suche im Telefonbuch wird zum Rückgabewert des
RMI-Aufrufs.
Der Browser, der zentrale Telefonbuchserver und jeder
Abteilungsserver müssen jeweils auf eigenen Rechnern
des Übungsraums laufen. Das Testat wird an dem Rechner
abgenommen, auf dem der Browser läuft.
In der zweiten Übungsaufgabe hatte der Benutzer die
Möglichkeit, den Telefonbuchserver über die
HTML-Form zu beenden. Dieser Vorgang soll jetzt (ohne
Fehlermeldung) sowohl den zentralen Telefonbuchserver als
auch die beiden Abteilungsserver beenden.