It's perhaps the one way that database interaction can work reliably using any format, any server and any client on the Web today. It happens to be a protocol created by Microsoft. But in a symbol of how Microsoft is now perceived today as just another major player instead of a dominant force, the leading platform makers are joining Microsoft in a formal move to standardize OData, the Open Data Protocol. The reason Microsoft and IBM are no longer fighting over this? The real competition is no longer just amongst these old-line technology companies, but largely between them and a new breed of competitors often based around new mobile devices and consumer platforms.
Nearly six years ago one of the most bitter standards battles in all of computing was fought between OASIS, caretaker of the OpenDocument format, and Microsoft. The issue was whether, by making the document formats for Microsoft Office available as open standards, the company was unfairly leveraging Office's broad base of installation to unseat its only real competitor, the storage format behind OpenOffice.
That year, 2006, marked the turning point in Microsoft's public stance towards openness and interoperability. This despite bitter opposition led by IBM, which was working to resurrect the Symphony brand it had acquired through Lotus. IBM argued that Microsoft was undermining the standards process to suit its purposes. Just how much the computing environment has changed since then was made evident today as IBM (whose heart grew three sizes this day) joined with SAP and Citrix in backing a move by Microsoft to declare the OData HTTP-based database interaction prototol - also known as Open Data Protocol - an OASIS standard.
"OData is an application-level protocol for interacting with data via RESTful Web services," reads a white paper on an OData extension for XML published by OASIS (PDF available here). "An OData Service’s contract is defined by simple, well-defined conventions and semantics applied to the data model exposed by the service, providing a high level of semantic interoperability between loosely coupled clients and services."
Phrasing data in XML, ATOM or JSON format does allow it to be visible to many different database engines. They can see data in these formats, so that's not the problem. Essentially, how does a Web client (any browser on any device) request data from any server (any database engine or framework), and then initiate a dialog with that server so it can update or change one or more records? Remember, HTTP is a stateless protocol: Clients make GET requests and the occasional POST statement, and servers acknowledge and, when they can, comply.
So OData enables communication using any of these three formats for data expression, setting up the mechanism for clients to authenticate themselves and enter into a secure dialog. It already works. And as IBM discovered two years ago, OData was pretty much the only way of creating a single Web client for WebSphere data that worked with .NET, AJAX and PHP clients.
While an XML document contains the body of data, expressed explicitly within the markup, OData expresses the schema - the arrangement and relations between data in a database. It also allows for vendor-specific properties that enable features that one vendors database might utilize while another's does not, though these properties are typically flagged within the metadata using obvious vendor-specific tags; for example,
Writing on behalf of the OData organization today, Microsoft's senior program manager for OData Alex James said today, "With interoperability front and center in OData we saw more and more technology stacks that started to work with it. Now there are a number of companies that use OData in their products to ensure the data they manage is easily accessible beyond the boundaries of their applications. Many of these companies regularly collaborate on the ongoing design effort for OData. While so far we’ve run the OData design process as transparently as we could (sharing designs, taking feedback through the odata.org blog and distribution list, etc.), we are at a point where the level of adoption and the scale at which organizations are betting on OData require a more formal commitment to shared ownership of the design of this protocol."
It’s tempting to draw the conclusion that Microsoft and IBM are “joining forces,” in coalition against a common enemy. The facts are more economic than melodramatic: Waging platform wars, especially over something that should be as ubiquitous as data exchange, costs way too much money. While the Open Office XML/OpenDocument fracas generated plenty of headlines and even sparked a few campaign rallies, it was a drain on both sides’ resources at a time when the platforms supporting both standards – client-side applications – were starting to become obsolete anyway. The fact of the matter is, OData works, and creating a competing format just to rally the troops and produce headlines is a waste of time and money. It’s best that companies pick their battles more wisely. What’s more, IBM, Microsoft, and SAP alike have come to the realization – perhaps a mutual one – that the best platforms are never islands unto themselves.
IBM sign by Simon Greig.