Do We Need ODBC for the Cloud?

by Jani on July 15, 2010

It is a good sign that Google has decided to expose their Storage API based on Amazon S3 API. Eucalyptus Walrus Storage API is completely compatible with S3.

There has been a discussion on standardizing the API for the Cloud Storage. What fueled this discussion further is a poll that ReadWriteWeb.com ran on their site.

Poll from readwriteweb.com (as on 7/15)
While majority of the participants of the poll felt that Amazon S3 API can be considered as the standard, James Urquhart from Cisco feels that it is too early to call anything a standard as of now. I completely agree with his viewpoint. Cloud Computing and Cloud Storage are still evolving and we will see many more capabilities in the future. With Amazon Web Services and Microsoft Windows Azure offering CDN as a service, it will quickly become a logical extension for the Cloud Storage API. Developers will just need to add a few flags to push the objects onto the CDN.

Let’s get back to the original discussion on Cloud Storage API standards.
If we look back in history, the industry faced exactly the same challenge in the late 80s when the RDBMS market started to explode. Businesses didn’t want to suffer from lock-in and developers wanted flexibility at the API level. During the transition from monolithic to Client / Server, Open Database Connectivity (ODBC) became the de-facto standard. Every DB vendor shipped their own libraries that adhered to the ODBC standard and developers could switch the libraries at runtime to talk to multiple databases. The front-end applications were completely insulated from the back-end.

For Cloud, we fortunately have the standards as the Lowest Common Denominator. What is common across all the APIs is that they are based on HTTP, REST, XML and SOAP. That makes it easy for abstractions to surface. What we need now is a Cloud version of ODBC. Let me take the risk of calling this as Open Cloud Storage Connectivity API. I am visualizing an architecture that looks something like this:

Open Cloud Storage Connectivity

This is based on the factory method pattern which is used by many enterprise architects. With this, a change in the configuration file will load the appropriate library for the target Storage service. This will be transparent to the Cloud Storage Consumer.

I already see this coming! Take a look at jClouds and Apache libcloud . The future of Cloud Storage is bright and exciting! What do you feel about the standardization of the Cloud Storage API?

  • Murty Eranki

    Hi Jani,

    I agree with your view point that standardizing the API for the Cloud Storage is very much needed today. It should not be limited to public cloud storage rather it should be available for every storage option. Thanks for sharing some important pieces like jClouds and Apache libcloud APIs.

    Best Regards,
    Murty Eranki

  • Nandavarapu Kiran

    I think it will take some more time for standards to be set in the cloud. I feel this as there is no proper and concrete strategy for the cloud from vendors. Simple case is from EMC, who stopped ATMOS, its Cloud Storage service just after its launch before 6 months. Reason might be the rift and direct competition from partners.

    I think once product maturity comes, then standard make more sense.

    Thanks,
    Kiran

    • http://www.janakiramm.net/ Jani

      Totally agree with you Kiran. It is too early to finalize anything as a standard.

  • Anonymous

    Are you aware of the SNIA CDMI standard for cloud storage? It might fill that need quite well.

    James

  • George Reese

    Dasein Cloud is ODBC (or JDBC) for the cloud.

  • http://www.techno-pulse.com/ Basant

    Being a developer; I can’t think of anything more useful than ODBC (and OLEDB in late 90s till now) to a developer! Anything of this sort for cloud standardization will help all the stake holders of cloud computing.

  • http://blog.richard.parker.name/ Richard

    Firstly, great article. I enjoyed reading it and I agree that it would be great to see an overarching “cloud API”. In fact, that’s one of the things I’ve been attempting to make a reality, at least from a C# .NET perspective with my open-source CloudStorageProvider project hosted at CodePlex: http://cloudstorageprovider.codeplex.com. The project is in it’s infancy and currently contains just code for the Windows Azure platform, however, it can be easily extended to support any number of providers and I actively encourage the community to check it out, download it and add their own provider!

  • Woainihehe1031

    Wow!! really Good!!! I will be back soon!!!

  • http://www.simba.com/odbc-sdk.htm Amyn

    The SimbaEngine ODBC SDK allows you to quickly build ODBC drivers for any cloud data source.  You can find more information here: http://blogs.simba.com/simba_technologies_ceo_co/.