Open Architecture

Also called the Container-Component, Reflective, or Plug-N-Play architecture.

Problem

To increase the popularity of their product company A wants to allow third-party developers to create enhancements and sell or give them directly to A's customers. But how can the design of A's product anticipate what these enhancements will be?

Solution

Company A publishes an interface it expects third party developers to implement. The interface only specifies that in addition to their basic functionality, third party components (also called plug-ins) should be able to describe this functionality to A's product (called the Container Application).

Structure

Behavior

Discussion

All Java objects inherit the getClass() method from the Object base class. This method corresponds to the describe() method.

In Open Distributed Architectures such as CORBA or the Web Services Architecture the ability of components to describe their functionality to other components is called discovery.