Jun 20, 2007

Hibernate, NHibernate, drivers and data

As with any software, individuals find their ‘mileage may vary’ when they implement ORM solutions. Things go wrong, or, more likely, things work, but they don’t work fast enough. While clearly seeking to complement and not supplement software like Hibernate/NHibernate, makers of established data access layer software tools may have a valid perspective on the issue when they say “Don’t forget the drivers!”

By Jack Vaughan
One area where the Java and .NET communities have seen at least a modicum of development overlap is in object-relational mapping via the Hibernate tool; that being Hibernate on the Java side and NHibernate on the .NET side. There are different schools of thought on the value of Hibernate/NHibernate, but little doubt that the software has proved useful and popular.

As with any software, individuals find their ‘mileage may vary’ when they implement ORM solutions. Things go wrong, or, more likely, things work, but they don’t work fast enough. While clearly seeking to complement and not supplement software like Hibernate/NHibernate, makers of established data access layer software tools may have a valid perspective on the issue when they say “Don’t forget the drivers!”

This message comes through in a recent conversation I had with Jonathon Bruce at Microsoft TechEd I Orlando. Bruce, a former Sun hand, is now program manager at DataDirect Technologies for .NET and XQuery Technologies.

As such, Bruce is involved with multiplatform issues, with data being the common thread. DataDirect has a long history in the forefront with ODBC and JDBC data access methods. [Obviously, for DataDirect and for most developers, data access is much more than just that - but let’s remember how formative ODBC and JDBC were when new!]

We asked Bruce if people have disappointment when implementing Hibernate/NHibernate but then overlook possibly related issues in the systems chain, such as with data drivers. He said:

“One of the things to remember when using things like Hibernate or NHibernate is that you are putting more effort on your application development time and your runtime to actually abstract yourself away the data base.”

“And in doing so you really expose yourself to the criticality of how you actually communicate with the data base. So the right thing to do from the get-do – and I will acknowledge that [Hibernate/NHibernate] certainly saves you a lot of development time - is making sure you have all your ducks lined in the right row.”

“You have to match up your … drivers or providers … so that you can be sure your application will perform and have the level of reliability that you really need – particularly when you move your application from a small production environment to a critical application environment.”

One can say: ‘Well, driver people would say that wouldn’t they?’ Yup, that is true. But they may know a thing or two, too.

Jonathon Bruce’s blog is a lively journal that regularly touches on these and related topics. Bruce is particularly interested in XQuery, which, when first discussed, seemed like a potent data interoperability solution of sorts. Reading his blog one discovers that – lo and behold - XQuery finally got through the standards process this year. It was a hard and too-long journey, really. But maybe it is time to revisit the XQuery firmament too. What do you think? What role do you think data interoperability plays in the overall world of application interoperability?


Source : Click