4. Today’s Service Interfaces
Customers[] GetCustomersByZip(zip)
Customers[] GetCustomersByZip(zip, skip, take)
Customers[] GetCustomersByZip(zip, skip, take, sort)
Customers[] GetCustomersByRegion(region, skip, take)
Customers[] GetCustomersByRegion(region, skip, take, sort)
…
Problems with this approach:
Clients are very limited in what they can do generically – Each
service requires its own custom clients (N * N problem)
Leads to “interface bloat” – cost of maintenance
More likely to result in data silos with limited potential for reuse
5. What if we had a common way to access
information through services?
Customer is a resource that supports:
Query on properties
Navigation over relationships
Paging through results
Create, Read, Update, Delete operations
Solves key problems with today’s service interfaces
Enables a broad ecosystem of reusable clients
Simplifies interface maintenance – lowers cost
Encourages reuse of information, including in ways not foreseen at
the time the service was created
6. Open Data Protocol (OData)
A Web protocol for querying and updating data
that provides a way to unlock your data and free
it from silos that exist in applications today.
10. OData Ecosystem – Current implementations
Enterprise Consumer Government/Public Developer
PowerPivot Pivot Open Gov. Data Initiative .NET
SQL Server Reports (producer) Netflix Edmonton, CA Silverlight Client
SharePoint iPhone Vancouver, CA Java Client
WebSphere Windows Live Dallas (Many sources) PHP Client
Dallas (many sources) Facebook insights CDYNE* AJAX Client
SQL Azure Microsoft MediaRoom European Env Agency* iPhone
Dynamics NAV Twitpic UK Government* Mono/Mono Touch Client
Dynamics CRM eBay Data.Gov* Telerik Open Access
Next Gen Active Directory DigitalMap* Recovery.Gov* Intersoft Solutions
MS Pinpoint ESRI* MelissaData* ComponentOne
Powershell WeatherBug* United Nations* LinqPad
Office 15 Boundary Solutions* World Bank* OData4J
Tellago SO-Aware Stats.Com* DB40
Zillow.com* WCF RIA Services
Windows Azure Table Storage
OpenLink Virtuoso
Stack Overflow
PHP Server (in development)
Ruby on Rails
Windows Phone 7
Light Switch
* Available through DataMarket.Azure.com
11. Standards / Openness
OData
Based on AtomPub, HTTP, JSON
Released under the Open Specification Promise
○ Implemented by multiple 3rd parties including IBM
WebSphere
.NET client source code
Released under Apache 2.0 license
http://odata.codeplex.com/