----- Original Message -----
From: "Andrew C. Oliver" <[EMAIL PROTECTED]>
> No EJBs suck.  I'm arguing we need something better.  I think you're
> thinking distributed systems as a whole are bad and perhaps we've worked
> in different problem areas so we've reached differing opinions on this.
> Distributed systems are NOT the answer for every system.  In fact MOST
> systems do not.  That being said, I've worked on plenty that used or
> needed a distributed approach regardless of whether they had one.
>
> I do thing CTMs are a good and necessary thing for some systems.  I just
> think the EJB implementation of one is very poor.

I've worked alot with CORBA, messaging middleware systems (MOM) , EJB
systems, web systems and more recently dabbled with SOAP (*). Each of these
main 'istributed system architectures have their own strengths & weaknesses
and approaches.

The interesting thing I've found wtih using all these technologies is that
at first, to an OO guy, CORBA and EJB seem kinda cool when you just start
looking at them (just like Object Databases too), - there's the 'wow,
everything looks like Objects and the network stuff gets hidden' feeling,
along with 'ooh, this is probably going to be the next big thing'. Then once
you've learnt and absorbed the technology, figured out how to use it and get
it to work well (which takes a very long time, much longer than you would
think for somthing that hides the network), there's a general feeling of
disappointment. That the emperor has no clothes - or maybe its just that the
object thing shouldn't pass across process boundaries ;-). The 'distributed
object' approach of distributed garbage collection, connection based
protocols, stubs and skeletons of CORBA and EJB just don't quite seem to
work properly, they're *very* complex, take many years to master properly,
require many patterns to use effectively and its far too easy to build slow,
unscalable, unperformant systems that take alot of time to build.

Now the interesting thing about MOM, web technologies and now SOAP is that
at first to an OO guy they seem, well, not very OO. They are all based on a
simple idea of message passing using MOM, HTTP/email/news or SOAP. Its
mostly passing data around though usually in a language andplatform neutral
way. All objects stay local, its just the messages that cross process
boundaries. You send a message/request to something, it does its thing and a
response may go somewhere, which may be back to you. You can layer on
synchronous programming if you wish, but often scalable & performant systems
often use asynchronous communication.

The web/MOM/SOAP approach is very easy to work wtih, its very easy to put
together a 'distributed system' that works well using various technologies
(look at the web).  Developers I work wtih tend to pick up the concepts
pretty fast. There's no hidden gotchas or huge books of patterns requjred to
describe how to build systems using 'messaging' since its pretty simple
stuff. The more you use them and work with them, the easier and more
powerful they seem. They feel 'right' in a worse is better approach.

They all pretty much have location transparency and are easy to implement
load balancing & fault tolerance but don't at all try to hide the network -
there's no magic you can pretty much dive in and see whats going on.

The interesting thing I find is that the web/MOM/SOAP approaches are all
pretty similar really. Both web and SOAP (JAXM) often use Servlets on the
Java Platform. The Commons Messenger project has some Servlets (and servlet
extensions called Messagelets) that processs MOM / JMS messages. i.e. the
only application server platform you require is a good servlet engine and
away you go (Aside: I should take a look at JAMES as well).


So you can probably guess my bias towards web/MOM/SOAP approaches for
distributed systems.
In terms of what's next in the distributed system arena, my own guess would
be more unification of the web / MOM / SOAP approaches (they are pretty
similar already) - maybe SOAP is this unification - with maybe a
consolidation of the platform/application server. Then maybe more tools on
top (AltRMI is one example) that put an object facade on top of the message
passing approach without making the same CORBA/EJB mistakes of connection
based protocols & distributed garbage collections.

Well thats my rather long & rambling 0.02 euros.

James

(*) One thing I've noticed with SOAP is that developers from the different
camps (web/MOM, CORBA/EJB) seem to see SOAP as different things. The web/MOM
guys tend to think of SOAP as a universal message format so the same
structured message can pass across many transports http/email/news/MOM to
connect anything to anything in a language, platform and transport neutral
way which is kinda cool. CORBA/EJB guys seem to view SOAP as, well its CORBA
but using XML rather than IIOP and go off building stubs/proxies/IDL
compilers etc just like with EJB/CORBA.



_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com


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

Reply via email to