Open Data Protocol, three short words that pack a powerful punch. If your organization is interested in self-service Business Intelligence or exposing data for use by a multitude of client platforms OData may be a tool to make your life easier.
What is OData?
The technical specifications for the OData protocol is can be found on odata.org, summarized:
It is Open
OData is covered under Microsoft’s Open Specification Promise so you don’t need to license the technology from them to create and sell your software. It is also built upon open web standards like HTTP, AtomPub and JSON.
It is Data
OData exposes all CRUD operations to any client that can interface with URIs. There are server libraries available for Java, Rails, MySQL and .NET. If you’re using the .NET Framework, probably the easiest way to get data from an OData service is using the ADO.Net Entity Data Model. However, anything that implements IQueryable can be exposed via OData. This means your data doesn’t necessarily need to come from a database.
It is a Protocol
OData uses HTTP to communicate between the client and server. It also uses either AtomPub or JSON to represent the data entities being transmitted. It builds on top of HTTP, AtomPub and JSON to provide a set of conventions for query operations and for the links between data entities.
How is OData Consumed?
Any client that can connect to a URI can consume OData. There are a number of client libraries already created to make it easy to work with the OData feed including libraries for:
- .NET Framework
OData is baked into PowerShell, SharePoint and Excel. As a technology professional that is trying to promote self-service BI, the integration with Excel opens up a lot of options for the BI Analysts I work with.
What Problems does OData Solve?
OData enables cross platform data accessibility because the protocol is interoperable on many clients. The ability to submit ad-hoc queries improves flexibility at the client and means applications are not locked into a fixed set of Get methods on a web service. If a client tool needs to change the way it analyzes data that change may not require any modification to the server side architecture, the client simply modifies its query and is ready to go.
I envision an organization that has divisions separated by security needs or geographical location being able to more easily expose, and share, useful data via OData services. BI Analysts can mash-up any of these sources in Excel without direct access to data warehouses or the networks they live on.
Exposing data outside the organization via OData can simplify data transfers to third parties and improve how customers interact with your data. Again, the ability to create queries (rather than having fixed exports) should make changing business needs over time much simpler.