EJB the Beginning of the End?
|
|
The Middleware Company (TMC) (original post said TheServerSide, sorry) presents a pretty damning report about EJB servers. They compared 2 EJB servers (most likely Weblogic and Websphere) against a .NET server implementation. TMC modified and improved the Java Pet Store blueprint. Unfortunately, the results were pretty dissapointing. In essence, the .NET servers performed at least twice as fast and could handle at least twice the load as compared to the EJB servers.
However, my take on the conclusions is that the EJB concept, and Entity Beans in particular is a flawed concept. In fact, research done at Rice University comparing Servlet based vs EJB architecture draw similar conclusions. One study writes:
Session beans offer performance comparable to the Java servlets-only implementation. All other EJB-based implementation methods fare considerably worse. Session facade beans and EJB 2.0 local interfaces are more than a factor of 2 slower than session beans implementations. Implementation based solely on entity beans experience and even bigger performance drop, regardless of whether they use CMP or BMP.
The evidence is pretty clear, you don't even have to compare Entity Beans with a competing .NET server. For many years, java developers have been complaining about the problems of Entity Beans and EJB in particular (see softwarereality for a laundry list).
It's now time for Sun, IBM, Oracle, BEA etc to get real and ditch the excess baggage coming from the TM and CORBA worlds. It's time for a new kind of application server, Avalon could be the foundation for this. For high reliability and scalability features, RIO could be a good base. For a logical or programming model, either something like Rickard's Dynamic AOP or something along the lines of ACE (Model Driven Code Generation). The key is that you should be able to leverage a complete object model (unlike the crippled EJB concept) at the same time add on QOS aspects like Transactions, Persistence, Load Balancing, Journaling etc. The technology already exists, its up to the Java community to recognize it and exploit it.

