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