By: D.S. Olson
Published in: PHand
Category: Architectural, Distributed Systems
Summary: Extensions of Broker [Buschmann+96]
You want to decouple components of an application using Broker [Buschmann+96]. The architecture is peer-to-peer rather than client-server, and you don't care about efficiency but want an extensible system. All components should use the same mode of communication. Define each component as a transceiver to send or receive parcels. Parcels use Visitor [Gamma+95]
You're using Transceiver-Parcel, and you want the dumbest broker imaginable. Create a broker as another transceiver that understands two things: (1) use of a registrar to register a transceiver for the parcels it can receive and (2) routing parcels to transceivers based on information in the registrar.
You're using Broker as Intermediary. Your application will be distributed across processes and/or processors. Use at least one broker per process. Each broker should use Proxy [Gamma+95] for each kind of transceiver it supports in its address space. The Proxy receives parcels from other processes.
You're using Broker as Intermediary or Broker as Divorce Attorney, and the architecture is inefficient. Allow the broker to perform the first parcel routing between sending and receiving transceivers, supplying the address of the latter to the former and vice versa. The transceivers can then communicate directly.