Since the release of our Restlet extension for ADO.NET Data Services in September 2009, many changes happened on this front. Microsoft has been busy enhancing their technology, splitting it into an open specification for the REST API called OData, for Open Data Protocol, and using WCF Data Services for the server-side framework. This article gives an overview of the technology, and this page the full specifications of the protocol.
The OData protocol has also been embraced by IBM in its Java-based WebSphere eXtreme Scale product and Microsoft has leveraged it in several of its products like Excel PowerPivot, SharePoint Server, Windows Azure Table Storage and SQL Server Reporting. Other recent initiatives are the project code-named “Dallas“, which offers a market place for data services with full support for access control and billing, and the OData visualizer part of Visual Studio 2010.
In addition, public OData services are starting to pop-up, like the one to access Netflix’s media catalog. Microsoft has been providing examples via the OGDI initiative and for the MIX’10 conference. Here is a longer list of producers.
Enhanced Restlet extension
While preparing our recent Restlet Framework 2.0 RC1 release, we enhanced our Restlet extension for OData, moving it from the “org.restlet.ext.dataservices” to the “org.restlet.ext.odata” package and adding support for those advanced features:
- Projections, similar to database views
- Transparent server-side paging
- Blobs, to expose media resources
- Row counts retrieval
- Customizable Atom feeds
- Version headers
- Operations, to expose stored procedures
The extension is also available on the Restlet edition for Android, allowing you to directly access OData services, for example hosted on Azure cloud computing platform, from a smart phone.
The diagram above illustrates how useful the Restlet extension for OData is becoming, as a high-level client for data services powered by a growing number of server-side technologies. For explanation on how to use this extension, read the Restlet user guide page for the extension as well as a detailed tutorial.
All those initiatives have caught attention with articles and posts like:
- InfoQ – Microsoft Proposes OData as de facto Web Data Protocol
- InfoQ – Is OData The Ubiquitous Language For Application Collaboration?
- Jon Udell – OData for collaborative sense-making
- Jon Udell – Producing and consuming OData feeds
- Stephen Forte – The Open Data Protocol
An interesting thing to watch going forward is how this technology will be compared with Google Data Protocol (GData) alternative. In his OData Q&A page, Microsoft hopes for a collaboration with Google on an official set of extension to the Atom suite of standards.
Yahoo! has also worked on a similar technology called DataRSS, and finally the W3C is pushing the Linked Data, an application of the Semantic Web, as a way to transform the Web of documents into a Web of data, with technologies like RDF and SPARQL.
- Thomas Conté (Microsoft) – Consommer des services OData en Java avec Restlet (French)
- Jean-Christophe Cimetière (Microsoft) – OData interoperability with .NET, Java, PHP, iPhone and more
- Jean-Christophe Cimetière (Microsoft) – Improving experience for Java developers with Windows Azure