It seems that object databases are gaining some traction on the market, probably due to the good job done by db4o. Versant (my former employer) is also doing not too bad, at least from the financial point of view. I'll soon have some news about ObjectStore.
ODBMS have been a failure in the past. My personal view on it:
- Some technical reasons:
- Some ODBMS were not designed as real database engines, they were rather like storages for memory pages. This design did a lot against ODBMS in general, and most developers still think ODBMS cannot scale, just by design. Fortunately, some ODBMSare not designed like that and are real database engines, exactly like Oracle for instance.
- Lack of known QL like SQL. ODMG3's OQL has never really been seriously implemented by ODBMS vendors (but O2 maybe).
- Lack of ecology around ODBMS. For instance, major reporting tools never spent time accessing ODBMS.
- Some economical reasons
- ODBMS started in 1989, at the exact time when RDBMS tried to impose themselves on the database market. It was not the rigt time to propose a new database model and relational vendors have been very aggressive against ODBMS (I think the word FUD has been invented at that time).
- At that time, object programming was not generally used, unless for some technical applications. Database market is traditionally led by management and business applications.
- Most ODBMS vendors raised money from the market after IPOs around 1995. At that time the IT industry was between the Client-Server and Internet phases. Nothing really happened at that time. Raised money has been spent on useless marketing plans and most ODBMS vendors just missed the Internet bubble in 1997, with no more money.
So, most ODBMS tried to reinvent themselves either as caching technologies (Versant, Gemstone, etc.) or as XML databases (ObjectStore).
I think that because of Java, C# and now Ruby and Groovy the world has changed and might be ready for a new database model. Mapping technologies are now standardized. Some companies like Xcalia already evangelizes around mapping between business models and non-relational data sources. Standards for mapping and data access like JPA2, JDO2 and SDO2 tend to commoditize the storage layer. With requirements of huge commercial sites like Amazon, eBay and others, combined with the emergence of services, people tend to better understand limitations of the relational model.
Let's see what will happen in the coming months. ODBMS can have a role to play. But there is a also new kind of databases coming from internet players like Amazon or Google.
I'm still convinced that Data Access will become more critical than the storage itself. Developers want to manipulate their business models as easily as possible. And business models tend to become more and more complex every day. Flexibility and agility are keywords. It is now well admitted that traditional extended features of databases like data integrity, security or stored procedures should now be managed through services, outside the database. This could be an opportunity for best well-designed ODBMS, with a reliable and fast engine.