So for the last section of this chapter we are going to dive into Blackboard architecture. Oh boy, who has nightmares about the Learning Management System in highschool!? All of these shitty tools were implemented with the blackboard architecture. You could recognize these things by the fact that you could create like a ‘customized dashboard’. So most of the time you would just delete 90% of it to clean it up as much as you could.

Sorry for my rant there…

The idea behind a blackboard architecture is actually pretty neat. The idea is to create small decoupled, independent parts that the developers, or the users can fit together the way they want. So if you are developing some kind of dashboard, all the individual sections and widgets can be parts of the blackboard architecture. The cool part is that these widgets are so independent that there are no limits between they functionality. So some can be images, audio, buttons, text, but also more complex things like calendars.

So a blackboard architecture allows you to decouple components completely, providing a gathering place where problems can be solved. Data can be exchanged both synchronously and asynchronously. So pretty cool right?


Blackboard implementations

Next they provide some history on the blackboard architecture. This architecture stems from early speed recognition software or other knowledge-based reasoning systems. All kinds of subsystems would integrate into a large blackboard to process a large problem. Each component would just do its part and once it’s done it passes the knowledge on to the blackboard where it, or maybe some higher level components would gather the knowledge and do their job.

An advantage of such architecture is also that you have a single consistent interface. If implemented in a distributed manner you might have different components might have different interfaces. The blackboard is a nice integration point for both data and UI.

Andrew and David also provide an example in the book. It’s a proposed blackboard implementation for a mortgage and loan processing application. The numerous laws involved here are complex and change constantly. Modeling all the combinations of circumstances can be done through components of the blackboard. They can then be gathered on the dashboard and shown to the user.

But what would be a nice example of a blackboard architecture in a unity3d context!? Well maybe if you would want to model a customizable, complex gun, battleship or maybe player housing, you could use a blackboard architecture. Each individual can decide its own part but they must all integrate into the one big thing like a gun, battleship or house. You might even simulate an entire city using a blackboard architecture for some city building game. That actually seems like a fun thing to implement 🙂



01010010 01110101 01100010 01100101 01101110

Hey, sorry to bother you but you can subscribe to my blog here.

Never miss a blog post!

You have Successfully Subscribed!