There is a new JCP proposal JSR-220 for Enterprise JavaBeans 3.0. Something about it was bothering me, but I couldn't put my finger on it until I wrote another blog post earlier today.
If you read the spec proposal (and the other J2EE specs in general, I guess) there is no real separation between the EJB programming model and the EJB runtime environment / model. The vast majority of the changes in the JSR-220 proposal effect the programming model, but this is not being done by layering this as an abstraction layer on top of the existing runtime, but by completely reving everything.
Personally, I would have expected the EJB runtime foundation to have stabalized by now, and not being constantly reved and altered. All future enhancements could, and should, be built out using extensibility points, rather than changes to the core - that's the only good way to build a solid and stable runtime platform IMHO. I believe it is perfectly possible to layer the new trendy development concepts like aspects and metadata onto the existing runtime, for example.
It seems to me that this is exactly the same problem mentioned about Web Service proxies - not keeping a clear separation between the runtime and programming models leads to increased confusion among architects, developers and users.
Of course, J2EE is both a development and a runtime platform, but to achieve ease-of-development improvements does not necessarily have to be tied to changes in the runtime too - unless of course you want to guarentee a constant stream of upgrade revenues, I guess.
Copyright (c) 2003-2008 Jorgen Thelin. All rights reserved.
This weblog is licensed under a Creative Commons License.