Microsoft Proposes OData as de facto Web Data Protocol
Microsoft proposes OData as the web data protocol while Google uses GData. Microsoft invites Google to join forces with them in adopting OData. Will they do it?
The Open Data Protocol (OData) is a protocol for querying and updating data on the web, being a set of extensions to the AtomPub protocol. AtomPub is an HTTP-based protocol used for the same purpose, to create and update web resources, working in conjunction with the Atom Syndication Format, an XML-based language used for web feeds. OData was previously known as the Astoria Protocol, ADO.NET Data Services Protocol or as a set of conventions/extensions to AtomPub.
OData adds the following features to AtomPub, according to an ADO.NET Data Services Q&A page:
- A convention for representing structured data
- A resource addressing scheme and URL syntax
- A set of common query options (filter, sort, etc.)
- Schema describing resource structure, links and metadata
- Payload formats and semantics for batch and “unit of work” requests
- Alternate representations of resource content (JSON)
Microsoft has developed the protocol internally by using it in a number of applications over the last few years: SharePoint Server 2010, Excel 2010 (through SQL Server PowerPivot for Excel), Windows Azure Storage, SQL Server 2008 R2, Visual Studio 2008 SP1 and the .NET Framework. Client libraries are available for .NET, Silverlight, AJAX, PHP, Java, and work is underway to support it in other clients.
GData, the protocol and the API, is available online and it can be used to program against Google services, the license offering “a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this License) patent license for patents necessarily infringed by implementation (in whole or in part) of this specification”, the license being withdrawn only when someone initiates a litigation related to this patent. This sounds like an open license. Microsoft has released OData under Open Specification Promise, making it open to everyone, and there is already a major implementation outside of Microsoft, namely WebSphere eXtreme Scale REST data service. Microsoft invites the community, including Google, to participate in adopting and building OData:
We intend on working with others in the community, including Google, to move the features of OData into future version of AtomPub or other appropriate standards. We encourage Google (GData) to join us in these conversations.
It looks like each of the two companies, Microsoft and Google, has a similar protocol and it is inviting the other to use it. It remains to see who makes the next step in building a common data protocol or which protocol will have a wider adoption.
OData or Entity Framework for everyone?
Google Data Protocol License
OData is excellent news
I'm a big fan of ADO.NET Data Services. But this is a much broader positive step towards improved Open-ness. I welcome this move. Anybody who is genuinely a proponent of the Open philosophy will welcome this. Those who are at heart anti-MS will not welcome it, of course, because it comes from MS.
I would particularly reccomend the official Open Data Protocol Q&A page.
No trust of Microsoft
Re: OData or Entity Framework for everyone?
Microsoft's implementation of OData can be thought of as nothing more than Entity Fx + ADO.Net but don't confuse an implementation with a spec. As the author says WebSphere has implemented OData and that has nothing to with Entity Fx, ADO.Net or .Net in general as far as I am aware.