Yet another thread that I caught late.  Sorry, but this time someone stole
my car (seriously), so I'm a bit behind on a number of things today.

However event-based architecture is one subject one which I not only have
opinions but actually have some decent experience!
 

Leo Simons wrote:
> In summary, message-based systems are difficult.

Yes.

I've been using JMS for over three years now.  We adopted the technology
here pretty early and we used it in rather unusual ways.  JMS makes up the
backbone of our Java desktop applications.  That's right, desktop.  We have
a small JMS server (now using OpenJMS in Merlin) that runs in the background
on each of our client PCs.  Only recently have we considered using JMS over
the actual intranet.

Part of the decision to use JMS came from having services (actual Windows NT
services) which need to run always and desktop apps which can be started and
stopped at any time.  We needed a good reliable way to queue messages and
guarantee delivery and JMS's durable subscriber model solved that perfectly.

As others have mentioned, when you move to an event based system, you trade
dependency on API's in for dependency on data.  That means selecting your
data model is VERY important.  We ended up using a map scheme with XML and
plain old java implementations.

Handing the event topology can be a little tricky as things grow.  You have
to keep track of who knows what and when.  Most of our events are
asynchronous.  When we started trying to handle reply-request schemes we
eventually decided on going back to the API approach.  It was just less
complicated and performed better.  My favorite mix is to use AltRMI for
remote service requests and JMS for events.  It's even better if you come up
with a way to hide service location (ie- don't know if your looking up the
components with AltRMI or just via the normal ServiceManager).

Part of my idea for PhoenixMDS was to develop Message Based Services (MDS)
which would allow you to easily convert your Avalon component into a JMS
consumer.  Essentially what you would get would be Avalon-based Message
Driven Beans, which are the only part of the EJB spec which I like.  I've
been thinking about rewriting the code here as a JMS extension for Merlin.

Anyway, I've still got to finish reading this thread, figure out if I'm
going to have to buy a new car, and actually try to get some work done.  I'm
sure I'll have more to say later.

J. Aaron Farr
  SONY ELECTRONICS
  DDP-CIM
  (724) 696-7653


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to