Solution: Building the Blackboard Architecture

Solve problems that have no predetermined sequential solution by using a blackboard to coordinate the intermediate results of several knowledgeable subsystems to achieve the goal through refinement of partial solutions.

Exploring the effects of the blackboard

The independence of the parts of the system and their lack of direct communication enhances the capability of blackboard architectures to satisfy nonfunctional requirements such as changeability, maintainability, and dependability. Blackboard architectures are very useful when you don't know in advance how to reach the overall solution.

Benefits

Here are the benefits of using a blackboard system:

  • The blackboard makes it easy to experiment with different ways to solve the problem. Because there are no direct interactions among the KSes, you can change and revise them easily without affecting other parts of the system.

    images

    There isn't any perfect number of KSes, so you can add and remove them at will.

  • A KS can be reused between solutions. A KS doesn't have ties to any one particular blackboard system, any more than it has ties to the other KSes within the blackboard, so it can easily be reused elsewhere.

    images

    In order to reuse KSes, they must be designed to be general — avoid tying them ...

Get Pattern-Oriented Software Architecture For Dummies now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.