Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[udig-devel] more fun with blackboards

Hello all,

Jody and myself had a discussion about blackboards yesterday, I thought I would move it to the list. I know that some of this has been covered before, but please bare with me.

As I see it, there are a couple of different roads we can take for a blackboard implementation.

The first is just a map. A place to store key value pairs that is visible to multiple plugins. Taking this a step further would be adding persistance and event notification.

A problem I see with this is dependencies. Plugins will start to "loosley" declare dependencies on each other and the framework will have no way to police them. Which could lead to dependency cycles, etc..

Thankfully, this problem has already been solved, and the solution is called PicoContainer. Which brings us to a second implementation of Blackboard which is backed by a pico container.

Any thoughts?

On a related note, the current blackboard interface contains put and get methods for various data types. But the methods do not really inforce a contract. For example what should happen if a user asks for a value that does not exist on the blackboard. Should null be returned or should the blackboard attempt to create a default value, should an exception be thrown, etc...

Should we try to come up with a tighter contract for all blackboards, or give the individual implementations the freedom to define all the behaviour. Well that was a bit of a rant :).

Justin

--
Justin Deoliveira
Refractions Research Inc.
jdeolive@xxxxxxxxxxxxxxx
(250) 885-4387


Back to the top