Blackboard System

A blackboard system is a highly #decoupled system based on tuple space which has the following characteristics:

  • Modules doesn’t need to know each other existence
  • Modules watch the board for new influx of information, and add their own if needed
  • The data or information may come in many forms such as integer, graphics, data structure and so on
  • Modules may have vastly different responsibility between each other
  • The lifetime of the modules could be varied, and interact with the blackboard in different period

If implemented correctly, it can be of great replacement to the popular #Model-View-Controller (MVC). The following shows the example of libraries or implementation of such system:

  • JavaSpaces
  • T Spaces
Links to this page
  • SOLID

    Make a local inversion of dependencies in the lower level abstraction and then move it to the higher level abstraction. The user should not directly interact with low level modules, instead they should rely on a general contractor with high abstractions, that encapsulate such dependencies, and use the module on the user’s behalf. The Pragmatic Programmer See more in 202207041054# or 202207041156#.

  • Model-View-Controller (MVC)

    A theoretical better alternative to the MVC model is the Blackboard System#

#oop