In Blackboard several specialized subsystems assemble their knowledge to build a possibly partial or approximate solution. The Broker pattern 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-propagation mechanism ensures consistency between the user interface and the model. This subdivision separates the human-computer interaction aspects of the agent from its functional core and its communication with other agents. The Microkernel pattern applies to software systems that must be able to adapt to changing system requirements. It separates a minimal functional core from extended functionality and customer-specific parts.