Channels ▼

Cameron and Tracey Hughes

Dr. Dobb's Bloggers

Right On the Blackboard!!

September 30, 2010

The blackboard model is an approach to collaborative problem solving. It used to record, coordinate, and communicate the efforts of two or more software-based problem solvers. There are two primary types of components in the blackboard model -- the Blackboard and the problem solvers.

The blackboard is a centralized object that each of the problem solvers has access to. The problem solvers may read the blackboard and change the contents of the blackboard. The contents of the blackboard at any given time will vary. The initial content of the blackboard will include the problem to be solved.

In addition to the problem to be solved, other information representing the initial state of the problem, problem constraints, goals, and objectives may be contained on the blackboard. As the problem solvers are working towards the solution, intermediate results, hypothesis, and conclusions are recorded on the blackboard. The intermediate results written by one problem solver on the blackboard may act as a catalyst for other problem solvers reading the blackboard. Tentative solutions are posted to the blackboard. If the solutions are determined not to be sufficient, these solutions are erased and other solutions are pursued. The problem solvers use the blackboard as opposed to direct communication to pass partial results and findings to each other. In some configurations the blackboard acts as a referee informing the problem solvers when a solution has been reached or whether to start work or stop work. The blackboard is an active object not simply a storage location. In some cases the blackboard determines which problem solvers to involve and what content to accept or reject for the blackboard.

The blackboard may also organize the incremental or intermediate results of the problem solvers. The blackboard may translate or interpret the work from one set of problem solvers so that it may be used by another set of problem solvers.

The problem solver is a piece of software that typically has specialized knowledge or processing capabilities within some area or problem domain. The problem solver can be as simple as a routine that converts from Celsius to Farenheit or as complex as a smart agent that handles medical diagnosis. In the blackboard model, these problem solvers are called "knowledge sources". To solve a problem using

blackboards, two or more knowledge sources are needed and each knowledge source usually has a different area of focus or specialty. The blackboard is a natural fit for problems that can be divided into separate tasks that can be solved independently or semi-independently. In the basic blackboard configuration, each problem solver tackles a different part of the problem. Each problem solver only sees the part of the problem that it is familiar with. If the solutions to any part of the problem are dependent on the solutions or partial solutions to other parts of the problem, then the blackboard is used to coordinate the problem solvers and the integration of the partial solutions.


This is an excerpt from our book, "Professional Multicore Programming: Design and Implementation for C++ Developers".

Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.
 


Video