wiki/ BlackboardArchitecture

Blackboard Architecture

(This discussion deliberately parallels FifoArchitecture: compare and contrast. Although it talks about the blackboard system as if it were built, it's all hypothetical at this point, so take it with a grain of salt.)

Description: The Blackboard Architecture is an alternate way of structuring the suite of flight computer software tasks. The blackboard is the focal point for all flight computer software interactions--- the suite of applications handles input/output to CAN and Wireless LAN in accordance with the flight computer state model.

The blackboard system consists of a handful of processes each focusing on a specific asynchronous task:

Agent management in the blackboard system is by cooperative multitasking. Facilities are provided for a thread to block until blackboard data is available, and to wake up blocked threads on message writes. Agents may be implemented as one or more threads, although typically only one is needed.

History: The blackboard architecture is a proposed replacement for the FIFO architecture, which replaced the earlier Can Muxer and Renegade architectures, which didn't get as far in implementation of the rocket application. The original flight controller was a hand-coded PIC assembly loop by AndrewGreenberg.

Pros: The main advantage to the blackboard architecture is its simplicity, flexibility, and extensibility. It provides a fairly intuitive fit to needed functionality. In addition, the architecture should provide for quite a bit of reuse of existing code, while allowing elimination of redundant, potentially buggy code.

Cons: The weakness to this model includes:

-- BartMassey - 08 Oct 2003