Microsoft Has Released OData SDK and “Dallas” CTP 2
OData is an AtomPub-based protocol facilitating data sharing over the web through REST-like requests sent by a consumer to a data producer – an OData service point. OData adds the following features to AtomPub:
- 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)
A data request may contain the following components:
An example of such a query:
Using the REST convention, each resource has attributed an URI, but a data request may contain some query options that could be used as data filters for example, making the server to perform some activity on client’s behalf:
- Sample OData online services (northwind, etc) - open a browser and test out an OData Service.
- OData client libraries
- Windows Phone 7 series
- Online OData explorer (Source code also available for download from odata.org)
- Data Service Provider toolkit: Whitepaper and sample WCF Data Services provider implementation to demonstrate how to create a data service over *any* data source
- OData validation tool: A test harness and a few sample validation tests to make it easy to validate your OData endpoint. The harness is designed to be easily extended allowing anyone to easily add new tests.
I believe that if Microsoft wants to bootstrap the OData universe they need to seed this space not only with some existing services but also with an open source OData server implementation for Unix.
I should further add that they should not wait a single minute and open their server-side .NET implementation if they want to accelerate the OData adoption. …
Although the client libraries are great step to drive the adoption of the protocol for clients, it will do very little to unlock the data that sits today out in the web behind Linux servers running PHP, Java, Ruby or Python-based applications.
At the end of the day, the client side code is a relatively simple parser for an XML file format. The server side on the other hand is much more complicated to get right.
The server side requires a complete implementation of the query syntax, selection as well as access control and transaction support required to expose the data safely. …
If Microsoft were to open source their server side implementation of OData, we could overnight allow Linux users to expose their data in a format that can be mined. Linux users would only need to run a Mono front-end to the System.Data.Services library to expose the data that currently lives in their servers and is being served by Joomla, Wordpress, Rails, Django front-ends to become available as data services.
Microsoft has published a list of OData producers including SharePoint 2010, IBM WebSphere, and Microsoft SQL Azure. They have also released Codename “Dallas” CTP 2, aka Microsoft Pinpoint, a marketplace where vendors can sell their data using the OData protocol.