Wednesday, September 3, 2008

Is database-as-a-service a good idea?

Seen this article by Jean-Jacques Dubray on InfoQ, related to this other article by Arnon Rotem who explains why Database-as-a-Service (DBaaS) is a bad idea:

  • It circumvents the whole idea about "Services" - there's no business logic

  • It makes for CRUD resources/services

  • It is exposing internal database structure or data rather than a thought-out contract

  • It encourages bypassing real services and going straight to their data

  • It creates a blob service (the data source)

  • It encourages minuscule half-services (the multiple "interfaces" of said blob) that disregard few of the fallacies of distributed computing

  • It is just client-server in sheep's clothing


To me, DBaaS is just a new way to access a database and it is far from Data Services (which are all about data integration, mapping, persistence & SOA). The most interesting benefits of a DBaaS are to offer a DB that you won't administrate. Conversely, it also raises some questions in terms of scalability and confidentiality.

Is database-as-a-service a good idea?

Seen this article by Jean-Jacques Dubray on InfoQ, related to this other article by Arnon Rotem who explains why Database-as-a-Service (DBaaS) is a bad idea:

  • It circumvents the whole idea about "Services" - there's no business logic

  • It makes for CRUD resources/services

  • It is exposing internal database structure or data rather than a thought-out contract

  • It encourages bypassing real services and going straight to their data

  • It creates a blob service (the data source)

  • It encourages minuscule half-services (the multiple "interfaces" of said blob) that disregard few of the fallacies of distributed computing

  • It is just client-server in sheep's clothing


To me, DBaaS is just a new way to access a database and it is far from Data Services (which are all about data integration, mapping, persistence & SOA). The most interesting benefits of a DBaaS are to offer a DB that you won't administrate. Conversely, it also raises some questions in terms of scalability and confidentiality.

The coming wave in Data Services

A good introduction to Data Services by John Goodson, VP and GM of DataDirect, as part of the last Data Services World event, last June in NY.

The coming wave in Data Services

A good introduction to Data Services by John Goodson, VP and GM of DataDirect, as part of the last Data Services World event, last June in NY.

YAODBMS: NeoDatis

Yet another ODBMS: NeoDatis.

I have no time to review its features, but it is so funny to see all these new ODBMS.

YAODBMS: NeoDatis

Yet another ODBMS: NeoDatis.

I have no time to review its features, but it is so funny to see all these new ODBMS.

Alternative to the Entity Framework?

NHibernate 2.0 arrived. It seems there is no support for LINQ yet, but it is on the roadmap a next major release (2.1).

It seems this blog frequently covers the differences between NHibernate and the Entity Framework:

Alternative to the Entity Framework?

NHibernate 2.0 arrived. It seems there is no support for LINQ yet, but it is on the roadmap a next major release (2.1).

It seems this blog frequently covers the differences between NHibernate and the Entity Framework:

The need for fetch plans

As described in this article there is a strong need for fetch plans is JPA. Some people, even within the JPA expert group, seem to think there is no need for a specific API for fetch plans, they could be covered by criteria APIs. I personnaly think that a fetch plan is not a criteria or a filter, it is something related but different. Regarding this feature, data access technologies coming from the JDO world have some advantages, as this feature has been discussed with the JDO expert group since a long time.

Obviously, fetch plans are even more important when dealing with a disconnected data access model, like in Data Services. Some partial reconnection could be allowed when relationships are unknown during navigation, but current network technologies certainly cannot support full lazy loading over the Internet.

The need for fetch plans

As described in this article there is a strong need for fetch plans is JPA. Some people, even within the JPA expert group, seem to think there is no need for a specific API for fetch plans, they could be covered by criteria APIs. I personnaly think that a fetch plan is not a criteria or a filter, it is something related but different. Regarding this feature, data access technologies coming from the JDO world have some advantages, as this feature has been discussed with the JDO expert group since a long time.

Obviously, fetch plans are even more important when dealing with a disconnected data access model, like in Data Services. Some partial reconnection could be allowed when relationships are unknown during navigation, but current network technologies certainly cannot support full lazy loading over the Internet.

Tuesday, September 2, 2008

Versioning of objects

Versioning of persistent objects is a complex probem. People, mostly in the finance industry, are looking for solutions to this since years (see this post for instance). It seems there are now some solutions emerging, like Envers from RedHat/JBoss.

It is not clear from their web site if Envers supports JPA or only Hibernate, it seems to me it is limited to Hibernate.

LiDO, the old mapping technology of Xcalia, used to support this powerful feature in its version 2 (2003). This is something we have deprecated when we decided to open our data access engine, in order to support any kind of data sources, not only RDBMS.

Now that ORM is well established, and the basci problem is almost solved, it is the time to add features with business added-value like versioning.

Versioning of objects

Versioning of persistent objects is a complex probem. People, mostly in the finance industry, are looking for solutions to this since years (see this post for instance). It seems there are now some solutions emerging, like Envers from RedHat/JBoss.

It is not clear from their web site if Envers supports JPA or only Hibernate, it seems to me it is limited to Hibernate.

LiDO, the old mapping technology of Xcalia, used to support this powerful feature in its version 2 (2003). This is something we have deprecated when we decided to open our data access engine, in order to support any kind of data sources, not only RDBMS.

Now that ORM is well established, and the basci problem is almost solved, it is the time to add features with business added-value like versioning.

JDO Instruments v3

New version is released. This is an open source ODBMS, compliant with JDO.

http://www.theserverside.com/news/thread.tss?thread_id=50283.

http://www.jdoinstruments.org/

JDO Instruments v3

New version is released. This is an open source ODBMS, compliant with JDO.

http://www.theserverside.com/news/thread.tss?thread_id=50283.

http://www.jdoinstruments.org/