Useful for problems for which no deterministic solution strategies are known. In Blackboard, several specialized subsystems assemble their knowledge to build a possibly partial or approximate solution. Can be used to structure distributed software systems with decoupled components that interact by remote service invocations. A broker component is responsible for coordinating communication, such as forwarding requests, as well as for transmitting results and exceptions. The Model contains the core functionality and data.
Views display information to the user.
Controllers handle user input. Views and Controllers together comprise the user interface. A change-propogation mechanism ensures consistency between the user interface and the Model. Defines a structure for interactive software systems in the form of a hierarchy of cooperating agents. This subdivision separates the human-machine interaction aspects of the agent from its functional core and its communication with other agents.