Java Reference
In-Depth Information
// Ein Server-side Proxy kennt den Broker und den
// eigentlichen Server.
private ITemperaturDienst temperaturDienst;
private Broker broker;
public ServersideTemperaturDienstProxy (Broker broker)
{
System.out.println
("ServersideTemperaturDienstProxy: instanziiert");
this.broker = broker;
temperaturDienst = new TemperaturDienst();
broker.anmelden ("erfrageTemperatur", this);
}
// Bearbeite eine Anfragenachricht, die vom Broker kommt.
// Aus der Anfragenachricht wird das Argument des Aufrufs geholt
// und anschliessend die Dienstmethode des Servers aufgerufen.
// Das Ergebnis des Servers wird in eine Antwortnachricht
// verpackt und an den Broker geschickt.
public void bearbeiteAnfrage (byte[] anfrage)
{
Tag tag = auspacken (anfrage);
Float temperatur = temperaturDienst.erfrageTemperatur (tag);
byte[] antwort = verpacken (anfrage, temperatur);
broker.antwortWeiterleiten (antwort);
}
// Packe aus einer Anfragenachricht das Argument des
// Dienstaufrufs aus.
private Tag auspacken (byte[] gepackteNachricht)
{
String string = new String (gepackteNachricht);
String[] entpackteNachricht = string.split (";");
Tag tag = Tag.valueOf (entpackteNachricht[2]);
return tag;
}
// Besorge aus der Anfragenachricht den Clientnamen und
// verpacke diesen zusammen mit dem Ergebniswert
// in eine Antwortnachricht.
private byte[] verpacken (byte[] anfrage, Float wert)
{
String[] strings = (new String (anfrage)).split (";");
String clientName = strings[0];
return (clientName + ";" + wert).getBytes();
}
}
Die Klasse ServersideWetterDienstProxy hat die gleiche Rolle wie die Klasse
ServersideTemperaturDienstProxy - sie ist allerdings für den Wetterdienst-Ser-
ver zuständig:
// Datei: ServersideWetterDienstProxy.java
public class ServersideWetterDienstProxy implements IServersideProxy
{
Search WWH ::




Custom Search