Tuesday, April 26, 2005

Visit to Bannerghatta

The majestic white tiger at bannerghatta

On Sunday, I had been to Bannerghatta wildlife sanctuary with a few friends. It was an amazing experience, although it was very depressing to see the human population surpassing the animal population at the sanctuary. We got to see a whole lot of wild animals --- Indian Python, Rat snakes, Russell’s vipers, King Cobras, Zebras, Bears, Leopards, Tigers, Lions, Hippos etc. I believe there are about 35 tigers at the sanctuary, including 3 white tigers. I didn’t get very good shots of the big cats as I hoped to get. Here are a few snaps that we managed to shoot. I wish I could take a break from work and shoot some more of the wildlife. Anyone willing to sponsor a wannabe wildlife photographer ??

Saturday, April 09, 2005


I was discussing with Sheroy about persistence frameworks and the need for O/R mappers in Enterprise applications. We were talking about Hibernate and how it is being incorporated in EJB3 specs. The conversation then (naturally ??) shifted towards OODBs. There seems to be quite a few advantages of OODBs.
The most significant advantage of OODBs is that we eliminate the need of a separate data model. The data model just reflects your object model. Most modern Enterprise Applications have different object models and data models, and an O/R mapper to map the objects to rows in the database. This adds another layer of complexity to an already existing complex system, at a substantial cost. An OODB eliminates the need for this layer altogether.
If your application uses an RDB and you must reconstruct an object from data in the database, you frequently have to perform multiple queries. These queries could result in serious performance bottlenecks if not written efficiently. Constructing Objects from OODB records is straightforward. Another advantage with OODBs is that we don't require a separate query language like SQL. All the queries can be written in the OO language itself.
If OODBs have all these advantages, why are we then stuck with RDBs yet ?? Here are a few reasons that I could think of -
RDB is a proven technology which has lasted the test of time. From legacy systems written in COBOL, to applications written in Java/C# interface with RDBs. This allows the us to change the application technology to enhance scalability, performance and security and still use the same data model. This is a significant advantage, since the persistent data is considered to be the vital part of an application. OODBs on the other hand, tie us to a specific programming paradigm (and possibly to a particular OO Language) .
OODBs are an excellent tool for storing and retrieving objects. Most applications do not always load objects. Rather, there will be times when we need to search by ranges, patterns, and fuzzy criteria spanning objects that do not have obvious relationships. OODBs may not provide adequate support to such ad hoc queries.
All said and done, I think OODBs are a great way of working with data, and definitely worth a closer look.