Broker is an architecture pattern and is used to structure distributed software systems with decoupled, remote components. An architecture pattern describes the basic structure and organization of an application at the highest level of abstraction.
The broker architecture was the basic pattern for the development of CORBA (Common Object Request Broker Architecture). A variation can be found in the Enterprise JavaBeans( EJB) of the J2EE platform as well as the . NET platform. Java Remote Method Invocation( RMI) also incorporates basic principles of the broker pattern. Likewise, registry and naming services are parts of the broker. Stub as well as skeleton classes are generated as the client and server proxies.
An architecture pattern describes the set of predefined subsystems, specifies their responsibilities, and contains rules for organizing the relationships between the subsystems. In principle, architecture patterns are neutral with respect to a specific language and independent of a platform. Concrete manifestations are tied to a specific operating system or programming language, as in the case of the EJB or the .NET platform, for example. The figure shows the stakeholders of the broker architecture pattern.
The advantages of the broker pattern are:
- Location-independent: The broker takes care of locating services.
- Easy changeability and extension of components provided the interfaces are stable.
- A broker system is portable.
- Multiple broker systems are interoperable.
- The components of a broker system can be reused.
However the following disadvantages are assigned to the Broker pattern also:
- Limited efficiency and high network load.
- Low fault tolerance.
- Difficult tests and difficult debugging.
In addition, other limitations arise in the practical use of Broker. In particular, the intended interoperability between multiple broker systems has never been achieved. Also, reuse usually only works efficiently within a server.