Architectural Pattern
Douglass'02
Support a symmetric distribution architecture (as for dynamic load balancing).
Allow objects to find each other without knowing their locations a priori (at compiling time).
Add a broker as an object repository, such that when servers run, they register with the broker; when clients need to access a server, they request the location of the server from the broker.
The broker is a more elaborated version of the Proxy pattern, which separates clients and servers.
Server location is only known when connecting to the broker.
The broker can use a Watchdog to ensure the integrity of the system.
Good support for symmetric architectures
Good commercial support with CORBA