@dokondr: the blackboard mechanism you mention is just a distributed
associative memory, and there is already a Java specification for such
a system (search for Jini and Javaspaces), with several open source
and commercial implementations available. Unfortunately, anyone who
has ever worked with such a mechanism can probably tell you how
difficult it is to go beyond some simple use cases. Also, the fact
that it's not language agnostic (Javaspaces works with Java objects)
doesn't actually make it better, since it imposes big limitations on
the objects you can use efficiently with this mechanism. There are
other limitations I have encountered in my work with such systems,
mostly related to the lack of support tools (administration,
monitoring, etc).

>From my experience with distributed Java applications, JMS is
generally a good fit for most systems. It offers transactions (even
XA) and persistence, which are both necessary more often than not in
such systems, while the API is simple. Additionally, most JMS
implementations can be clustered (giving you fail-over and/or load-
balancing functionality) and the message content can be language
agnostic. Implementing even a subset of these features "naitvely" in
Clojure would represent a very big effort, and for what gains? A JMS
wrapper library for Clojure would make much more sense, especially if
it could integrate with the STM (a successful JMS commit has side-
effects, so maybe this is impossible ) / Agent support. Also, there
are good implementations and support tools for JMS, since it's been
around for a long time.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To post to this group, send email to clojure@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to