Microsoft has moved forward with their REST data-access strategy. They’ve introduced the Open Data Protocol (oData). Formally known as Astoria, OData is a web protocol for accessing data using different formats, including AtomPub & JSON.
OData is supported in .NET 3.5 SP1. At first glance, it looks like a fancy way to access data, allowing a user to encode simple data queries in an HTTP URL query string and receiving data in the form of a feed. But with OData now being a standard protocol (ok, it’s a Microsoft standard, but it at least means Microsoft is putting its weight behind it, which is no small things), its usage is going to get widespread.
Now what does OData opens? For me, it really opens data-access through a business logic layer: application tier as opposed to data tier. A big limitation of SQL queries is that, hosted in Microsoft SQL Server (or other relational database server technology), it means your query has to look at tables or views. Having the queries running on the application tier opens up the visibility of what your query can look at.
Using .NET 3.5 SP1, a team I was leading implemented a little entity set accessible using OData. The entity set represented various state of an integration server (e.g. number of batch running, how many queued, etc.). What was interesting about it is that the data exposed there didn’t exist in any database. It was real time application server statistics.
You could think about different scenarios, exposing data from more than one database and an external service and what have you. That is just SOA, right? Well, with the amount of clients (consumers) of OData increasing, it’s now becoming a well understood web service. Think about a user bringing your data in Excel directly for instance.
Currently, the number of consumers is limited, but Microsoft has plan to get all its product lines consuming OData.
To me, that gives us a strong incentive to expose data using OData.