Java Reference
In-Depth Information
Ein Broker ist umgangssprachlich auch ein Vermittler. Das Broker-Muster hat auch
eine gewisse Ähnlichkeit mit dem Vermittler-Muster , dadurch dass die Kommunika-
tion zwischen Komponenten (Kollegen) zentralisiert über einen (verteilten) Broker
(Vermittler) abläuft. Bei einer genaueren Betrachtung ergeben sich aber wesentliche
Unterschiede:
x Beim Vermittler-Muster kommunizieren die Kollegen über den Vermittler, wobei ein
Vermittler auf Grund von eingehenden Methodenaufrufen betroffene Kollegen infor-
miert. Der Vermittler muss also die Information besitzen, welche Kollegen alle zu
informieren sind. Alle Beteiligten befinden sich im selben System. Beim Broker-
Muster spielt der Broker eine ähnliche Rolle wie ein Vermittler, jedoch können beim
Broker-Muster Clients, Server und Broker verteilt auf verschiedenen Rechnern ab-
laufen und außerdem leitet der Broker eine Nachricht nur an den einen einzigen, ge-
wünschten Empfänger weiter, der den entsprechenden Service zur Verfügung stellt.
x Eine Komponente teilt dem Broker den Empfänger einer Nachricht mit, der Broker
ist für die Lokalisierung der Empfänger-Komponente im verteilten System, den
Transport der Nachricht zum Empfänger und ggf. auch für den Rücktransport einer
Antwort zuständig. Dieser letzte Aspekt der Antwort fehlt beim Vermittler-Muster
vollständig. Dies liegt auch daran, dass es beim Vermittler-Muster keine 1-zu-1-
Zuordnung zwischen Sender und Empfänger wie beim Broker-Muster gibt, sondern
eine 1-zu-n-Zuordnung. Im Vermittler wird abgelegt, welche anderen Kollegen über
eine Nachricht informiert werden sollen.
Beim Muster Client-Dispatcher - Server [Gal03] wird zwischen das klassische Client-
Server Modell ähnlich wie beim Broker-Muster eine vermittelnde Schicht (Dispatcher)
eingezogen. Der Dispatcher sorgt aber im Gegensatz zu einem Broker nur für einen
direkten Kommunikationskanal zwischen Client und Server. Client und Server können
dann nach der Bereitstellung des Kommunikationskanals direkt über den Kommuni-
kationskanal miteinander kommunizieren.
Das Muster Forwarder-Receiver [Bie00] befasst sich mit der Interprozesskommuni-
kation zwischen den Komponenten. Ein Forwarder entspricht in etwa einem Client-side
Proxy des Broker-Musters. Auf der Serverseite hat ein Receiver eine ähnliche Aufgabe
wie ein Server-side Proxy. Auf die Vermittlerkomponente wird aber im Forwarder-
Receiver-Muster komplett verzichtet. Forwarder und Receiver kommunizieren direkt
ohne Vermittler miteinander.
Eine serviceorientierte Architektur ( SOA ) sorgt für die Entkopplung von Client und
Server. Dies ist auch das Ziel des Broker-Architekturmusters. Während beim Broker
der physische Ort der Leistungserbringung verborgen wird, ist er bei einer SOA prinzi-
piell bekannt und z. B. in der Web Service-Beschreibung vermerkt. Sowohl bei einer
SOA als auch beim Broker wird eine Zwischenschicht für die Kommunikation eingezo-
gen. Im Gegensatz zum Broker wird bei einer SOA die Abbildung von Anwendungsfäl-
len aus Verarbeitungssicht auf Komponenten berücksichtigt.
5.4.7 Programmbeispiel
In diesem Abschnitt wird eine Implementierung des Broker-Musters in Form einer Si-
mulation in einem einzigen Betriebssystem-Prozess vorgestellt. In dieser Simulation
Search WWH ::




Custom Search