Java Reference
In-Depth Information
Die Anfragenachricht wird dann vom Broker an den Server-side Proxy des gefundenen
Servers geschickt.
Die Methode findeService() der Klasse Broker sucht in der Hashmap server-
Map nach dem passenden Server zu einem angefragten Dienst. Da der Broker nicht
mit einem Server direkt kommunizieren kann sondern nur mit dessen Server-side
Proxy, wird in der Hashmap serverMap die Referenz auf den Server-Side Proxy
eines Servers gespeichert. Über die Methoden anmelden() wird die Referenz auf
einen Server-side Proxy unter dem angegebenen Dienstnamen in die Hashmap ser-
verMap eingetragen. Ein Eintrag kann unter Angabe des Namens mit Hilfe der Metho-
de abmelden() aus dieser Hashmap wieder ausgetragen werden.
Auf ähnliche Weise leitet der Broker die Antwortnachricht eines Servers wieder an den
Client zurück. Dabei wird jedoch die Hashmap clientMap in der privaten Methode
findeClient() der Klasse Broker verwendet, um die Referenz des Client-side
Proxys zu ermitteln, an den die Antwortnachricht übergeben werden soll. Hier die
Klasse Broker :
// Datei: Broker.java
import java.util.HashMap;
public class Broker
{
private HashMap<String, IClientsideProxy> clientMap;
private HashMap<String, IServersideProxy> serverMap;
public Broker()
{
clientMap = new HashMap<String, IClientsideProxy>();
serverMap = new HashMap<String, IServersideProxy>();
System.out.println ("Broker: instanziiert");
}
// Ein Server-side Proxy wird angemeldet. Anforderungen fuer den
// angegebenen Dienst, koennen an ihn weitergeleitet werden.
public void anmelden (String dienstName, IServersideProxy proxy)
{
serverMap.put (dienstName, proxy);
System.out.println ("Broker: Dienst \"" + dienstName +
"\" angemeldet");
}
// Ein Dienst wird wieder abgemeldet und aus der
// serverMap entfernt.
public void abmelden (String dienstName)
{
serverMap.remove (dienstName);
System.out.println ("Broker: Dienst \"" + dienstName +
"\" abgemeldet");
}
// Diese Methode ruft ein Client-side Proxy auf,
// um einen Dienst anzufragen. Der Dienst ist in der
// Anfragenachricht enthalten ebenso wie der Clientname.
Search WWH ::




Custom Search