NetBoard is a lightweight system designed to act as the Blackboard in a micro-blackboard architecture for use within an OO system - even when within the same process/thread.
The model is influenced by Peter Coad's paper "Object-Oriented Patterns"1
in which he describes a broadcast system of objects to be used for communication between significant subsystems. However, the justification for a micro version
of that model is derived from the need to emulate a true message-passing approach to OO which is not easy to achieve in a strongly-typed environment.
The library is also inspired by David West's description of "Blackboard architectures" in his book Object Thinking2
. Of the three variants he describes, this library is most complete as a building block for the traditional "Bulletin
Board" or "Blackboard" variants (as opposed to the "Whiteboard" variant).
I've found it useful in service-based architectures, where services are repositories for significant processing of business rules, as a means of decoupling major groups of objects from each other. I also see it as a viable alternative to the extensive use
of dependency injection coupled with a static run-time object graph. An IoC container is still useful as a factory of the initial objects which depend upon the blackboard. More discussion of class-based design on the Discussion board... here:
Class-orientation and Object-orientation
I've gone with a new-BSD license in the hope that it will empower people to use and abuse the code as widely as possible. Enjoy!
Coad, Peter (September 1992). Object-oriented Patterns. Communications of the ACM (Special issue on analysis and modeling in software development)
, 35(9), 152-159.
West, David (2004). Chapter 9: All the World's a Stage, "Architectural Patterns and Objects" In
(pp 265-267). Redmond, WA: Microsoft Press