The Politics of Object Persistence
More and more developers are realizing the merits of an object-based interface, which brings me to the political aspect of JDO. The beauty of JDO is that it runs anywhere, which is great for the developer, but it seems to be a nightmare for some of the established database vendors. As a developer, once you've learned to write JDO, you can use it for any project. You can pick the JDO implementation that fits your project and select the most appropriate data store, without needing to retool and relearn every time you start a new project.
JDO also gives corporations much better bang for their bucks. The investment in training their developers and buying JDO toolsets will have a greater return over time than incremental training in various technologies, because the developers can reapply their JDO skills across multiple projects. Plus, JDO increases the level of vendor independencekey in an ever-changing computer industry.
|JDO runs anywhere, which is great for the developer but seems to be a nightmare for some established database vendors. |
It's just common sense to have such an object-based interface and to have it standardized.
However, solving the impedance mismatch has been one of the biggest political hurdles for JDO so far. Several relational database vendors are not endorsing the open standard yet because it removes the vendor lock-in they have enjoyed and nurtured for the past 20 years. For example, they've developed proprietary extensions to SQL and developed proprietary tools or mapping tools, all the while fencing off advanced database systems based on non-relational data models.
However, the mainstream has also shown positive signs of JDO adoption. The JBoss Group and Trifork announced plans to incorporate JDO into their J2EE application servers, and Sybase has partnered with Libelis, a European JDO vendor, to provide data-persistence products for enterprises.
The JDO Controversy Continues
A lot of controversy continues to surround JDO. Proprietary tool vendors such as Oracle's TopLink are touting their tools as being "JDO-like" but more robust, claiming JDO provides inferior performance because of the additional vendor-independent abstraction it provides on top of the native relational database interfaces. JDO vendors are addressing these claims with several benchmark projects. For example, JDO-specific implementations for the RuBIS, OO7, and PetStore benchmarks are under way and results should be published during the next few months.
Some technical details of JDO, such as the JDO code enhancer and the general persistence model, also have been under attack. Object persistence purists are holding out for a "transparent persistence" model that will work without any code enhancements, as a completely embedded part of the Java language. I have followed the transparent persistence discussion for close to 15 years (e.g., at standards body meetings from the OMG and the ODMG) and I strongly believe that this argument has no merits. First off, Sunthe Java gatekeeperis not going to change the Java specification to allow for such a mechanism. And, secondly, who wants to have a custom VM anyway? The JDO code enhancer is a great compromise that the JDO experts carefully drafted with full knowledge of what realistically can and cannot be done in this regard.
|I strongly believe that the transparent persistence argument has no merits. |
With the growing acceptance of JDO, I hope that such controversial discussions take place as active participation in the JDO 2.0 expert group, so the feedback can be funneled into future JDO releases. The Java community should accept JDO as the foundation for Java object persistence and collaborate even better in the future to improve and extend JDO.
The Next Best Thing in Database Development
JDO is here to stay, it is probably the next best thing since the database industry standardized on SQL about 25 years ago. It provides a complete database abstraction at the object (Java) level, it is database independent, it has broad product support, it is very powerful, yet simple to use, and it delivers significantly more bang for the buck.