Checking EJB 3.0 performance
EJB 3.0 is supposed to drastically simplify EJB development, but at what cost? Peter Zadrozny and Raghu Kodali try to find that out by running and comparing the performance of an application over an EJB 2.1 and an EJB 3.0 setup.
The authors conclude that “We’re very attracted to the simplicity and power of EJB 3.0. The wonderful work done with annotations and the persistence, the ability to use POJOs, and the ability to test outside of the container are very attractive all by themselves. But now, with an implementation that equals or doubles the performance of EJB 2.1 (at least for our test cases), we can’t wait for the final specification and formal release of EJB 3.0. “
So it does look like EJB 3.0 has many things working for it and it might just replace a lot of cool tools like HibernateÂ
The most popular isn’t always the best long term or short term strategy. Eclipse has serveral flaws IHMO. SWT is a big one, APIs that are more like moving targets, too much influence from its originator. IBM spends lots of resources just maintaining SWT alone and it is quite buggy given the release + os version. NetBeans has superior J2EE SOA tooling and support. Business is about today and tomorrow and you choose what is best for your project and technology needs. Blanket statements like the WTP providing more functionality is a bit reaching as these IDEs are competing daily. I’ve used those mentioned plugins that add value. . . .buggy and consistently buggy due to a number of reasons. I use both IDEs but prefer the one that is stable across all platforms . . . .
I believe work has begun on creating a Spring annotation framework. Hibernate already has annotations to support JBoss’s EJB3 framework using Hibernate3. I think to say that there is a threat at all says there is little understanding of the advantages of spring/ejb3/hibernate/etc. The dependency injection of Spring will not be threatened by any project until there is a day when dependency injection is the EJB2.1 of EJB’s. Spring does not rely on any J2EE platform specifications to create an application. Hibernate is not threatened because it is closely entwined with EJB3 in JBoss 4.03. The only threat I see here is explaining to my boss why I have a little extra time on my hands to work on other projects instead of programming BMP’s, CMP’s, Session Facades, DTO’s, Assemblers, etc, etc.
There’s a threat to Spring as well as Hibernate. EJB 3.0 being standards-based and uses annotations, makes it a better choice. Is an annotations based Spring and Hibernate version expected?
The EJB FAQ at Sun says that ‘First, this new API will simplify the development of J2EE and J2SE applications using data persistence. Second is to get the entire Java community behind one standard Java persistence API. This new single persistence model will draw upon the best ideas from earlier persistence models’.
‘Customers will no longer face the choice between incompatible non-standard persistence models’
So EJB 3.0 is meant to replace Hibernate. Although late, a standard persistence model is good news.
ejb 3.0 has adopted the hibernate POJO approach, so it could be the standardized hibernate of the future. Spring goes well beyond what’s there in EJB 3.0 so there’s no threat there.