Microsoft, along with a set of other software industry leaders, is attempting to make its data query protocol OData an industry standard. A proposal has been submitted to the Organization for the Advancement of Structured Information Standards (OASIS) with the hope of generating wider adoption of this framework.
OData is a REST-based data access protocol that uses HTTP and represents data in Atom/XML and JSON formats. OData services leverage user-defined entity representations and use a series of URL query string semantics to expose data entities to consumers. These services may also leverage HTTP verbs such as POST, PUT and DELETE to create, update or delete data entities. Developers can build and consume OData services from a wide variety of platforms. An OData service can be created in .NET, Java, PHP and Node.js, and may be generated directly from Microsoft SQL Server or MySQL databases. It is possible to consume OData services via client libraries for mobile platforms and application frameworks such as .NET, JavaScript, Ruby, Java and PHP. In a blog post associated with the OASIS proposal announcement, Microsoft touted the developer ecosystem.
To enable those sorts of scenarios, developers need OData support for the languages, framework, and tools that they’re already using. Many developer tools already offer OData support. Here are a few examples:
- Microsoft Visual Studio offers comprehensive OData support through WCF Data Services.
- OData support is provided by OSS SDKs for iPhone, Android, and other frameworks.
- Telerik has developed a variety of developer tools and services for creating OData consumers and producers.
- ComponentOne offers OData support in their BarChart and LineChart controls.
- Validation is a critical step in creating robust OData services, and the Outercurve Foundation provides anOData Service Validation Tool that can be used to test implementations against the OData spec.
- The OData4j project is an open-source toolkit to help Java developers add OData support to their applications and services.
The OASIS proposal was sponsored by Microsoft, SAP AG, Citrix, IBM, Progress Software and WS02. Each company appeared enthusiastic about OData’s potential as a standard for cross-platform, web-based data access.
“Eliminating barriers in how data is accessed and shared is increasingly important for enterprise growth. IBM has a long history of supporting open standards and, especially, open standards for data access,” said Angel Diaz, vice president, Software Standards, IBM. “The movement of the OData specification into OASIS gives the standards community the ability to partner and help deliver pragmatic improvements for today’s enterprise data access requirements.”
Microsoft’s use of existing industry standards like AtomPub and JSON seemed to play a large role in the broad acceptance of the OData framework. In an interview with InternetNews.com, Paul Freemantle, the CTO of proposal sponsor WS02, described what he found attractive about OData.
Freemantle explained to InternetNews.com that WS02 today uses the Atom Publishing Protocol AtomPub). OData extends AtomPub with some query capabilities in a standardized way. He noted that AtomPub lets developers get and update data in a very RESTful way.
"The thing that you also get from OData on top of AtomPub are query capabilities so a standardized URL syntax that for example can let you restrict a query to certain things," Freemantle said. "It also has the ability to understand a little bit better, what the columns and values are in data."
Another benefit of OData is that it has both an XML and a JSON binding that is done in a RESTful manner.
"OData has the right balance of power and simplicity and I expect to see a lot of uses come out of it very quickly," Freemantle said.
At present, there are only a handful of major packaged applications that make use of the OData protocol. Microsoft’s own SharePoint and Dynamics CRM products use OData to a varying degree, and software vendors such as SAP, IBM and Citrix also have built-in support for OData within their product offerings. Microsoft is encouraging the community to participate in the OASIS OData Technical Community and provide feedback throughout the standardization process.