A Pocket-Sized Broker

By: D.S. Olson
Published in: PHand
Pages: 171-181
Category: Architectural, Distributed Systems

Summary: Extensions of Broker [Buschmann+96]

Pattern: Transceiver-Parcel

Pages: 172-174

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]

Pattern: Broker as Intermediary

Pages: 174-177

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.

Pattern: Broker as Divorce Attorney

Pages: 177-179

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.

Pattern: Broker as Matchmaker

Pages: 180-181

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.