O/R Impedance Mismatch? Users Speak Up! Third Series of User Reports published.
I have published the third series of user reports on using technologies for storing and handling persistent objects.
I have defined “users” in a very broad sense, including: CTOs, Technical Directors, Software Architects, Consultants, Developers, and Researchers.
The third series includes 7 new user reports from the following users:
- Peter Train, Architect, Standard Bank Group Limited, South Africa.
- Biren Gandhi, IT Architect and Technical Consultant, IBM Global Business Services, Germany.
- Sven Pecher, Senior Consultant, IBM Global Business Services, Germany.
- Frank Stuch, Managing Consultant, IBM Global Business Services, Germany.
- Hiroshi Miyazaki, Software Architect, Fujitsu, Japan.
- Robert Huber, Managing Director, 7r gmbh, Switzerland.
- Thomas Amberg, Software Engineer, Oberon microsystems, Switzerland.
I asked each users a number of equal questions, among them what experience do they have in using the various options available for persistence for new projects and what are the lessons learned in using such solution(s).
“Some of our newer systems have been developed in-house using an object oriented paradigm. Most (if not all) of these use Relational Database systems to store data and the “impedance mismatch” problem does apply” says Peter Train from Standard Bank.
The lessons learned using Object Relational mapping tools confirm the complexity of such technologies.
Peter Train explains: “The most common problems that we have experienced with object Relational mapping tools are:
i) The effort required to define mappings between the object and the relational models; ii) Difficulty in understanding how the mapping will be implemented at runtime and how this might impact performance and memory utilization. In some cases, a great deal of effort is spent tweaking configurations to achieve satisfactory performance.”
Frank Stuch from IBM Global Business Services has used Hibernate, EJB 2 and EJB 3 Entity Beans in several projects.
Talking about his experience with such tools he says: “EJB 2 is too heavy weight and outdated by EJB 3. EJB 3 is not supported well by development environments like Rational Application Developer and not mature enough. In general all of these solutions give the developer 90% of the comfort of an OODBMS with well established RDBMS.
The problem is that this comfort needs a good understanding of the impedance mismatch and the consequences on performance (e.g. “select n+1 problem”). Many junior developers don’t understand the impact and therefore the performance of the generated/created data queries are often very poor. Senior developers can work very efficient with e.g. Hibernate. “
In some special cases custom solutions have been built, like in the case of Thomas Amberg who works in mobile and embedded software and explains “We use a custom object persistence solution based on sequential serialized update operations appended to a binary file”.
I plan to continue to publish users reports on a regular base.