Project Description
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!

Andrew Gibson



References
1 Coad, Peter (September 1992). Object-oriented Patterns. Communications of the ACM (Special issue on analysis and modeling in software development), 35(9), 152-159. http://doi.acm.org/10.1145/130994.131006
2 West, David (2004). Chapter 9: All the World's a Stage, "Architectural Patterns and Objects" In Object Thinking (pp 265-267). Redmond, WA: Microsoft Press

Last edited Mar 19, 2010 at 9:40 PM by goofballLogic, version 18