End of EJB Gaining Momentum?
Last month I wrote an article called “How To Save J2EE, And It’s Not EJB 3.0” that sparked a lot of controversy and a public spat with Gavin King (inventor of Hibernate and spec lead of EJB 3.0).
I argued that Java on the enterprise should be moved forward as a set of patterns and best practices, not just a set of JCP approved technologies. In other words, before you had an entire architecture (J2EE) and your designs at the application level had to conform to the architecture of the blessed JCP specification.
Or, in the words of a Jewish proverb, “You cannot break the law, you can only break yourself against the law.”
Well, it turns out that you can also change the law. That’s what I argued in my article, stating that people might not want to get wrapped up in EJB 3.0 propaganda and instead continue to use Hibernate and Spring, as well as push for new technologies that can be applied in a JEE context.
In other words, architecture becomes less important, and design extremely important as businesses develop applications that are more agile and service oriented. Most important, they can customize their JEE space to their business needs, not import the whole elephant just because you want the trunk.
A direct out-growth of that idea is a new article at O’Reilly’s OnJava called “J2EE Without the Application Server” by Guy Pardon, which gives good examples of practical design strategies for non-ejb J2EE development.
That is why I am very excited about JBoss going forward, and very nervous about hearing Oracle was looking to buy them. JBoss might be the way all application servers will look in the future, a pluggable framework of services (some JCP, some not) that offer to annotate a container with functionaity but is light-weight and flexable. You pick the architecture pieces, then design.
I’m sorry Sun, but I think the EJB ship has sailed. It was a good idea that never worked, at least not as transparently as the idea of “JavaBeans that persist state” would suggest.

February 10th, 2006 at 2:40 pm
It’s the idea that a reusable good implementation beats an abstract specification. Not always true, but I tend to prefer the implementation side of things. And we could spend less time worrying about people not conforming to specs. All this is one reason why I like open source. It tends to provide that reusable common core.
As a specific example of an implementation people like, we can see Sun’s Java. There are other implementations (including open source), but nobody wants those. Who cares if Java 5 is a spec from the JCP? Most people will go on to use the implementation they know. In this case, sadly, it’s not an open source implementation.
Sun has long trumpeted open standards with competing implementations, but things don’t always work out so well in real life? As some extreme examples, will there ever be other implementations of BeanShell or Groovy? Especially since these were open source to start with?
February 14th, 2006 at 4:34 am
[...] Ce ne sont que des rumeurs, mais font deja couler un peu d’encre dans les blogs comme on peut s’en rendre compte par ci par là Si on se tient a la news de SYS-CON, hier, Oracle aurait dû annoncer cet achat avant l’ouverture de la bourse, or il me semble que rien ne s’est passé. [...]