Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, and Michael Stal
"The Blackboard architectural pattern is useful for problems for which no deterministic solution strategies are known. In Blackboard several specialized subsystems assemble their knowledge to build a possibility partial or approximate solution." (Buschmann, F., R. Meunier, H. Rohnert, P. Sommerlad, and M. Stal. Pattern-Oriented Software Architecture: A System Of Patterns. West Sussex, England: John Wiley & Sons Ltd., 1996)
The idea behind the Blackboard architecture is a collection of independent programs that work cooperatively on a common data structure. Each program is specialized for solving a particular part of the overall task, and all programs work together on the solution. These specialized programs are independent of each other. They do not call each other, nor is there a predetermined sequence for their activation. Instead, the direction taken by the system is mainly determined by the current state of progress. A central control component evaluates the current state of processing and coordinates the specialized programs. This data-directed control regime makes experimentation with different algorithms possible, and allows experimentally-derived heuristics to control processing. For a more detailed Motivation description for this pattern see: Buschmann, F., R. Meunier, H. Rohnert, P. Sommerlad, and M. Stal. Pattern-Oriented Software Architecture: A System Of Patterns. West Sussex, England: John Wiley & Sons Ltd., 1996.
This pattern has been used on the following systems: HEARSAY-II. This speech recognition systems task was to answer queries about documents then retrieve the documents from a literature database. (Engelmore, R. and T. Morgan (Eds), Blackboard Systems, Addison-Wesley, 1988.) HASP/SIAP. This enemy submarine detection system used hydrophone arrays to monitor an area in the sea by collecting sonar signals. Interpretation of the signals was done by the Blackboard system. (Nii, H.P., Blackboard Systems, Part I and II, The AI Magazine, vol. 7, nos 2 (pp. 38-53) and 3(pp. 82-106), 1986.) CRYSALIS. From X-ray diffraction data, this system inferred the three-dimensional structure of protein molecules. (Terry, A., Using Explicit Strategic Knowledge to Control Expert Systems, originally published in 1985, reproduced in Blackboard Systems, pp. 159-188.) TRICERO. This system extends the Blackboard architecture to distributed computing to monitor aircraft activities. (Williams, M.A., Hierarchical Multi-expert Signal Understanding, Technical Report ESL-IR201, ESL Inc., Sunnyville, CA, 1984. Reproduced in Blackboard Systems, pp. 387-415.) SUS (Software Understand System). The SUS goal is to support understanding of software and search for reusable assets. (Thomson, R., K.E. Huff, and J.W. Gish, Maximizing Reuse During Reengineering, Proceedings of the Third International Conference on Software Reuse, Rio de Janeiro, Brazil, pp. 16-23, IEEE Computer Society Press, 1994.)

Blackboard pattern, Buschmann patterns, architectural patterns, no known solution strategies, span several specialized subsystems
any system integrated with multiple, disparate systemslanguage parsing and analysisnumerical analysis
different sources of input data exist (i.e., network connection or hardware sensor)need many algorithms with variationneed to synchronize the state of cooperating componentsthe number and identities of the cooperating components is not known, nor staticthere is more than one object that may handle a request
efficiency by parallel processingflexibility by recombinationmakes exchanging product families easy
can be expensive on system resources if large volume of dataerror handling
Simple implementation of the pattern - KnowledgeSource.java. KnowledgeSource.javaSimple implementation of the pattern - Control.java. Control.javaSimple implementation of the pattern - Blackboard.java. Blackboard.javaSimple implementation of the pattern. blackboard.h