[
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