Java Reference
In-Depth Information
« use »
«interface»
IService
+ callService()
« use »
Client-side Proxy
Broker
Server-side Proxy
« use »
« use »
+ callService()
+ returnResponse()
- packData()
- unpackData()
+ registerService()
+ unregisterService()
+ forwardRequest()
+ forwardResponse()
+ handleRequest()
- packData()
- unpackData()
« use »
Client
Server
+ operation()
+ callService()
Bild 5-24 Klassendiagramm Broker-Muster
Die gegenseitigen Abhängigkeiten zwischen Broker und den beiden Proxys, die im Bild
5-24 zu sehen sind, sollten in der Praxis mit Hilfe von Interfaces aufgelöst werden. 88
Diese Vorgehensweise wird im Programmbeispiel in Kapitel 5.4.7 gezeigt.
Die Klasse Server repräsentiert eine Server-Komponente und stellt beispielhaft als
Dienst die Methode callService() bereit. Die Aufrufschnittstelle dieser Dienstme-
thode wird im Interface IService definiert. Die Klasse Client stellt eine Anwendung
dar, die den Dienst callService() des Servers benötigt. Die Methode opera-
tion() der Klasse Client steht stellvertretend für die Anwendungslogik des Clients
und hat eigentlich für das Muster keine besondere Bedeutung. Es wird aber angenom-
men, dass im Rahmen der Methode operation() der Dienst des Servers benötigt
wird - also die Methode callService() aufgerufen werden soll.
Die Klasse Broker stellt zum einen Methoden zur Verfügung, mit deren Hilfe Dienste
dynamisch an- und abgemeldet werden können. Zum anderen wird in der Klasse Bro-
ker der Nachrichtenaustausch zwischen Client und Server implementiert: im Klassen-
diagramm sind dafür die Methoden forwardRequest() und forwardResponse()
vorgesehen. Durch Aufruf der Methode forwardRequest() des Brokers wird eine
Nachricht, die einen Dienstaufruf enthält, angenommen und bearbeitet. Dabei muss im
ersten Schritt bei der Bearbeitung dieser Methode ein Broker den Aufrufer identifizie-
ren und speichern, damit er eine spätere Antwort wieder an die richtige Adresse aus-
liefern kann. Im nächsten Schritt muss der Broker dann den Server ausfindig machen,
der den gewünschten Dienst anbietet, und schließlich die Nachricht an den entspre-
chenden Server-side Proxy transportieren. Die Methode forwardResponse() des
Brokers ist für den Rücktransport des Ergebnisses des Dienstaufrufs zuständig. Ein
Server-side Proxy ruft diese Methode auf und übergibt dabei eine Nachricht, die das
Ergebnis des Dienstaufrufs enthält. Der Broker reicht die Nachricht an den Aufrufer
88 Im Klassendiagramm jedoch wurde aus Gründen der Übersichtlichkeit auf diese Interfaces verzich-
tet.
Search WWH ::




Custom Search