On Slashdot today, there was an article about something called "Transaction Grids" being sold by a company called ActiveGrid. The gist of the article was that they want to replace J2EE clusters with LAMP clusters that use SOAP (a.k.a. the slowest thing anyone could come up with) to communicate.
I'm all for busting on bloated J2EE app servers, but it's a pretty silly article. Scaling a web app across multiple machines is basically a solved problem, at least at the load-balancing and failover level. The hard part is dealing with shared data, which this "grid" thing seems to ignore completely. You need to scale your app across a hundred cheap servers? Buy a LocalDirector off eBay for $100 and call it a day.
J2EE should be an easy target. It solves a problem almost no one has: the need to coordinate transactions across multiple databases or other data sources. This is why the ultimate defense that J2EE boosters usually cling to is "Oh yeah? Can your thing do two-phase commit?" In reality, the number of applications that truly need two-phase commit is so small that BEA would likely be out of business if only those people were buying their server.
It's too bad, because I actually like Java when it isn't mixed up in this stuff. I saw some really nice stuff at ApacheCon last week, where people were talking about Java web frameworks that actually contain useful ideas. None of them, however, are J2EE.
Re:What are the frameworks?
perrin on 2004-11-22T19:34:21
Those, and other things like HiveMind, Struts, and Tapestry.Re:What are the frameworks?
lachoy on 2004-11-22T21:00:51
Struts is currently pretty crufty. I think the Struts-like stuff in Spring's webapp framework is adequate for most applications, and Spring is more actively developed and IMO much better designed. My 2c of course:-) Re:What are the frameworks?
perrin on 2004-11-22T21:12:28
At this point, the interesting stuff is not Struts itself, but the additional things people build on it as extensions. Struts was always pretty obvious and about as innovative as dishwater, but people have done interesting things with taglibs, etc. on top of it.Re:What are the frameworks?
lachoy on 2004-11-22T22:17:56
I dunno, I think most of the useful Struts taglibs have been replicated better, and without all the confusing names, in JSTL. But you're right that because it's been the defacto webapp framework for a while (evidenced by all the books) there's some useful stuff built on top of it.Re:What are the frameworks?
perrin on 2004-11-22T22:21:32
Have you ever played with Tapestry? I'm deeply suspicious of anything that tries to hide the realities of HTTP, but it does sound neat.Re:What are the frameworks?
lachoy on 2004-11-23T02:38:12
I looked at it a while ago (~2 years) and the docs weren't where they are now. I share your suspicions about frameworks like this (see also: JSF), although the author is pretty sharp and Tapestry has the benefit of its core being written and evolved by a guy rather than a standards committee. HiveMind looks useful as well but I'm already hooked on Spring as a container.