----- 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]>