13.1 The Blackboard Model

The blackboard model is an approach to collaborative problem solving. The blackboard is used to record, coordinate, and communicate the efforts of two or more software-based problem solvers. Hence 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 . 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 toward the solution, intermediate results, hypotheses, 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. 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 a routine that converts from Celsius to Fahrenheit or as complex as a smart agent that handles medical diagnoses. 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 with which it is familiar. If the solutions to any parts 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 integrate the partial solutions. A blackboard's problem solvers need not be homogeneous. Each problem solver may be implemented using different techniques. For instance, some problem solvers might be implemented using object-oriented techniques while other solvers might be implemented as functions. Furthermore, the problem solvers may employ completely different problem-solving paradigms . For example, solver A might use a backward-chaining approach to solving its problem, while solver B might use a counterpropagation approach. There is no requirement that the blackboard's problem solvers be implemented using the same programming language.

The blackboard model does not specify any particular structure or layout for the blackboard nor does it suggest how the knowledge sources should be structured. In practice, the structure of a blackboard is problem dependent. [1] The implementation of the knowledge sources is also specific to the problem being solved. The blackboard framework is a conceptual model describing relationships without describing the structures of the blackboard and knowledge sources. The blackboard model does not dictate the number or purpose of the knowledge sources. The blackboard may be a single global object or a distributed object with components on multiple computers. Blackboard systems may consist of multiple blackboards, with each blackboard dedicated to a part of the original problem. This makes the blackboard an extremely flexible model for problem solving. The blackboard model supports parallel programming and distributed programming. First, the knowledge sources may execute simultaneously , with each knowledge source working on its part of the problem. Second, the knowledge sources may be implemented in separate threads or in separate processes on the same or different computers.

[1] While a blackboard may be reused for other, very similar problems, it is nontrivial to design a blackboard that can be used for completely different kinds or classes of problems. Reuse is usually limited to problems that are very similar in nature. This is because the solution space is closely mapped to the problem and the rule component is closely mapped to the solution space, which prevents the use of the blackboard for general problems.

The blackboard can be segmented into separate parts allowing concurrent access by multiple knowledge sources. The blackboard easily supports CREW, EREW, and MIMD. We implement the blackboard as a global object or collection of objects when the knowledge sources are implemented in separate threads. Since the threads share the same address space, a blackboard implemented as a global object or family of objects will be accessible by each threaded knowledge source. If the knowledge sources are implemented as separate processes running on the same or different computers, the blackboard is implemented as a CORBA object or collection of CORBA objects. Recall that CORBA objects can be used to support both a parallel and distributed model of computing. Here, we use CORBA to support the blackboard as a kind of distributed shared-memory between tasks executing in different address spaces. The tasks can be PVM (Parallel Virtual Machine) tasks, tasks spawned by the traditional fork- exec functions calls, or tasks spawned by the new posix_spawn() . Figure 13-1 shows our two memory configurations for the blackboard.

Figure 13-1. Two memory configurations for the blackboard.

graphics/13fig01.gif

In both the cases in Figure 13-1, all knowledge sources have access to the blackboard. Knowledge sources in different address spaces will each make a network connection to a blackboard implemented as one or more CORBA objects. Also, when the knowledge sources are implemented as PVM tasks, the knowledge sources can supplement the blackboard communication with the message-passing model. This configuration provides for an extremely flexible model of problem solving.



Parallel and Distributed Programming Using C++
Parallel and Distributed Programming Using C++
ISBN: 0131013769
EAN: 2147483647
Year: 2002
Pages: 133

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net