InfoQ

News

Microsoft Proposes OData as de facto Web Data Protocol

Posted by Abel Avram on Nov 18, 2009

Community
.NET,
Architecture
Topics
Data Access
Tags
Google ,
Microsoft ,
GData

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.

Google has a very similar protocol called Google Data Protocol (GData), having the same purpose of extending AtomPub, and it has client libraries for Java, JavaScript, .NET, PHP, and Python. Besides, GData extends RSS 2.0 too. Already as version 2.0, GData is used internally by Google across many services accessing data.

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? by Ryan Riley Posted Nov 18, 2009 7:15 AM
Google Data Protocol License by Joe Gregorio Posted Nov 18, 2009 3:44 PM
Re: Google Data Protocol License by Abel Avram Posted Nov 19, 2009 12:14 AM
OData is excellent news by Tim Acheson Posted Nov 19, 2009 7:39 AM
OData Q&A by Tim Acheson Posted Nov 19, 2009 8:08 AM
No trust of Microsoft by Larry Johnson Posted Dec 2, 2009 4:05 AM
  1. Back to top

    OData or Entity Framework for everyone?

    Nov 18, 2009 7:15 AM by Ryan Riley

    If you look at the spec, OData is nothing more than the Entity Framework + ADO.NET Data Services stack with some extensions to Atom. Yes, it's similar to what GData is doing, but it is not really open. The W3c is pushing several other stacks for open, linked data. So now we have more, competing options. As if it wasn't hard enough to get standards spread. I see this as a FAIL and a real loss for the open web.

  2. Back to top

    Google Data Protocol License

    Nov 18, 2009 3:44 PM by Joe Gregorio

    ""the license being unclear [the author has not found it].""

    code.google.com/apis/gdata/patent-license.html

  3. Back to top

    Re: Google Data Protocol License

    Nov 19, 2009 12:14 AM by Abel Avram

    Joe,
    thanks. I updated the article.

  4. Back to top

    OData is excellent news

    Nov 19, 2009 7:39 AM by Tim Acheson

    This is great news for system architects, great news for web developers, and a positive thing for alt.net and the whole Open movement regardless of Microsoft.

    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.

  5. Back to top

    OData Q&A

    Nov 19, 2009 8:08 AM by Tim Acheson

    I don't agree with everything in this article. Thanks for the analysis, however. This inspired me to write my own very simple blog post containing just the key facts which I think everybody will agree on, and some links for further information:-

    www.timacheson.com/Blog/2009/nov/microsoft_anno...

    I would particularly reccomend the official Open Data Protocol Q&A page.

  6. Back to top

    No trust of Microsoft

    Dec 2, 2009 4:05 AM by Larry Johnson

    I don't trust any of Microsoft's open Licences (or the company in general). I do trust Google licenses and the company in general when it comes to providing open software. I may not like all the info google gathers, but at least its upfront about it. Google gives code... MS wants to own/license all code. Microsoft's history speaks for itself. Not to be trusted.

Educational Content

Brian Marick on 4 Challenges and 5 Guiding Values of Agile Software Development

Brian Marick takes us through a quick tour of the most important values and challenges to adopting Agile successfully (they aren't the typical challenges and values we hear in the community).

Are You a Software Architect?

The line between development and architecture is tricky. Does it exist at all? Is an ivory tower actually needed? There's a balance in the middle, but how do you move from developer to architect?

Agile – A Way of Life and Pragmatic Use of Authority

The word 'authority' sometimes produces an allergic response in hard-line agilists. Freedom and authority – both are bad if misused and both are good if used in right spirit for a noble cause.

Getting Started with Grails, Second Edition

"Getting Started with Grails" brings you up to speed on this modern web framework. Companies as varied as LinkedIn, Wired, and Taco Bell are all using Grails. Are you ready to get started as well?

Using ITIL V3 as a Foundation for SOA Governance

Those familiar with only ITIL V2 often scoff at the thought that ITIL could serve as a governance framework for SOA. With ITIL V3, the focus of the framework shifted towards service-orientation.

Adrian Colyer on AspectJ, tc Server and dm Server

SpringSource CTO Adrian Colyer discusses AspectJ, SpringSource's dm Server and tc Server products, OSGi and Scrum.

Adam Wiggins on Heroku

Heroku's Adam Wiggins talks about Rails, Background Jobs, Add-Ons, Ruby, and how Heroku manages to work around Ruby's inefficiencies using Erlang and other languages.

SOA as an Architectural Pattern: Best Practices in Software Architecture

For Grady Booch the foundation of a good architecture is patterns, SOA being just one of many patterns. In this Second Life presentation, Booch attempts to bring more clarity on what architecture is.