Why Microsoft’s Open Data Protocol matters

Why Microsoft’s Open Data Protocol matters

Summary: Microsoft’s newest version of the Open Data Protocol (OData) is something both developers and IT managers should check out.


I'm taking a couple weeks off before the busiest part of Microsoft's 2012 kicks into full gear. But never fear: The Microsoft watching will go on while I'm gone. I've asked a few illustrious members of the Microsoft community to share their insights via guest posts on a variety of topics -- from Windows Phone, to Hyper-V. Today's entry is all about OData and is authored by Chris Woodruff. The secret to data in the future will not be with the repositories which contain the data (like Microsoft’s SQL Server, Oracle or even the popular NoSQL databases) but the way we transport that data back and forth from applications, online services, and the cloud.

With the newest version of the Open Data Protocol (OData), Microsoft is bringing a richer data experience for developers, information workers and data journalists to consume and analyze data from any source publishing with the OData protocol. The goal is not to hide your data and keep it locked away, but to curate the data you provide to your partners, customers and/or the general public. By allowing a curated data experience, you will generate more revenue and allow your data more widespread adoption.

To gain a clearer picture of how this new forum will work, it's key to understand what the Open Data Protocol is and where it originated. There's more information about OData at my 31 Days of OData blog series, but the official statement for Open Data Protocol (OData) is that it is 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. Really what that means is that we can select, save, delete and update data from our applications just like we have been against relational SQL databases for years. The benefit is the ease of setting up the OData feeds to be utilized from libraries which Microsoft has created for us developers.

An additional benefit comes from the fact that OData has a standard that allows a clear understanding of the data due to the metadata from the feed. Behind the scenes, we send OData requests to a web server which has the OData feed through HTTP calls using the protocol for OData.

OData started back in 2007 at the second Microsoft Mix conference. The announcement was an incubation project codenamed Astoria. The purpose of Project Astoria was to find a way to transport data across HTTP in order to architect and develop web based solutions more efficiently. Not until after the project had time to incubate, did the OData team see patterns occurring which led them to see the vision of the Open Data Protocol. The next big milestone was the 2010 Microsoft Mix Conference where OData was officially announced and proclaimed to the world as a new way to handle data. The rest is history.

Recently, a third version of the OData protocol was announced which will allow developers to produce and consume data, not only to their own desktop applications, web sites and mobile apps, but also open their data up for solutions they may never have intended when creating the OData service, better known as a feed. The next version will include a number of new feature additions for both the server side which hosts the OData feeds, as well as the client side which developers will use to consume the data in their architected solutions.

Here are just a few of the new features:

  • Vocabularies that convey more meaning and extra information to enable richer client experiences.
  • Actions that provide a way to inject behaviors into an otherwise data-centric model without confusing the data aspects of the model.
  • OData version 3 supports Geospatial data and comes with 16 new spatial primitives and some corresponding operations.

An example is my own Baseball Statistics OData feed located here and publicly open to anyone to consume the data. The feed contains the entire 138 years of statistics for Major League Baseball including team, player and post-season stats. My baseball statistics OData feed will be updated to OData v3 very soon and will use many of the new features that were recently announced.

There are many libraries to consume and understand OData for developers to use in their solutions. You can find many of the libraries for your mobile, web and CMS solutions at the OData home site here.

What about the business aspects of OData for organizations that have valuable data they wish to share and wish to generate revenue from? By having data that is easy to consume and understand organizations can allow their customers and partners (via the developers that build the solutions using one or more of the available OData libraries) to leverage the value of curated data that the organization owns. Business customers can either host the data they own and control the consumer experience and subsequent revenue collection, or they can set up your OData feed inside Microsoft’s Windows Azure Marketplace and have Microsoft do the heavy lifting for them, in terms of offering subscriptions to theirr data and collection of subscription fees.

Think of the Windows Azure Datamarket as an App store for data.  It’s a great place to generate that needed revenue without having to create the infrastructure beyond the OData feed which surfaces your proprietary data.

In the end, maintaining valuable data in an organization should not solely consist of utilizing databases which are hidden from those outside corporate walls. The data should be curated and allowed to be consumed and even generate revenue for an organization. If you are a developer looking at either producing a method to get data to your applications, or you wish to consume the rich data you see others using in their applications, dig into OData. You will find that it is a great way to become an expert in Data Experience.  Furthermore, if you are a manager who is looking for new ways to get your data to the public either for free or to generate additional revenue for your company, explore the exciting world of OData.  You just might find some unexpected benefits waiting for you. Chris Woodruff (or Woody as he is commonly referred to) holds a degree in Computer Science from Michigan State University’s College of Engineering. Woody has been developing and architecting software solutions for almost 15 years and has worked in many different platforms and tools. As a speaker and podcaster, Woody has spoken and discussed a variety of topics, including database design and open source. He is a Microsoft Most Valuable Professional (MVP) in Data Platform Development. Woody works at Perficient, Inc. Woody is the co-host of the popular podcast “Deep Fried Bytes” and blogs at www.chriswoodruff.com.

Topics: Microsoft, Apps, Banking, Enterprise Software, Software Development


Mary Jo has covered the tech industry for 30 years for a variety of publications and Web sites, and is a frequent guest on radio, TV and podcasts, speaking about all things Microsoft-related. She is the author of Microsoft 2.0: How Microsoft plans to stay relevant in the post-Gates era (John Wiley & Sons, 2008).

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.


Log in or register to join the discussion
  • It's all about data representation

    which means there is no difference at all between representing data in "repositories which contain the data" and the "transport" of it.

    An RDBMS already completely encapsulates all interaction with the data using a single method of representation.

    Adding yet another layer is completely redundant and just adds unnecessary complexity. Though I believe Microsoft have several teams devoted solely to the task of generating PALC*.

    *PALC - Pointless Additional Layer of Complexity.
    • agree

      people need source code not proprietary protocols.
      The Linux Geek
      • Really?

        Here you go troll: http://www.odata.org/documentation
      • Did you check?

        You need to get out of your cave and stop being a hermit.
      • Documentation is needed, not source code

        Actually, people need good documentation more than anything else. I have had the pain of taking open source and trying to figure out whether a particular piece of the code is required, or just part of the implementation. What is really fun is when that question directly impacts performance by an order of magnitude or two. It is especially painful when you test N versions and decide you don't need to do this and can get the performance only to find that the N+1 version blows up without. Sorry open source is wrong, source code is documentation of an implementation, not documentation of the architecture.
      • No you don't agree

        The whole point of using an RDBMS is that you never, ever have to look at the source code.

        Only the logical representation of the data. The data can be stored physically however you want and is manipulated with a very small (but very powerful) set of operators - for which you absolutely do not need the source code.

        The other advantage of using an RDBMS is that you can query the metadata (which you might argue is documentation) with actually the same query language you use to query standard data.

        I'm not anti-Microsoft by the way, SQL Server is just as good as the other SQL-DBMSs on offer (and better than some). However like any large organization there are people doing good stuff and people doing daft stuff - Oracle, IBM or SAP (not to mention many open source projects) are no different from Microsoft in this respect.
  • Is the lack of IT productivity...

    ...traceable to Microsoft changing "standards" every year and IT having to eat the cost of the switch without any benefit?
    Tony Burzio
  • I never trust "Open" and "Microsoft" in the same

    sentence unless "is not" prefixes open
    • Nobody trusts you, so that makes eveyone

      even. ;)
      William Farrel
    • "Microsoft" and "Open"

      Goes together like crude oil and seafood.
  • OData looks dreadfully old fashioned

    All these entities and relationships. Surely the 70s are over now?

    Entity relationship modelling is not a very complete or adequate method of representing data.

    And before people start, if you understand RDBMSs properly you will understand that the word relational has absolutely nothing to do with the relationships in entity relationship modelling and relations (tables and views in SQL speak) are definitely not "entities".
    • OData is not old fashioned

      Maybe you think REST is old fashioned since it is over 10 years old :-)

      Wondering what you think is a better way to represent entities across HTTP? OData can return JSON payloads so it is great with modern web apps.
      • I don't think the protocol you use makes much difference

        The important thing is the logical representation (and manipulation) of the data.

        Therefore I would very much prefer to use a method of representation that is based absolutely directly on logic.
  • OData - Oh Dear

    The only concerns that the IT manager should have is:
    Have I got enough bandwidth to carry the extra payload. OData isn't too transport friendly i.e. It is VERY verbose. (Must get a 1 Terabyte back bone budgeted to carry all the extra decorations we get with an Oh data bulk transfer).
    Have I secured it, has the developer secured its end-point? Have we opened up more back doors (or left the Windows open - :-))?

    It is currently being (rammed down) introduced to the Visual Studio LoB developer community as being the Val Hala they've been looking for. VS LightSwitch (LoB RAD tool) now defaults to providing an OData service end-point for all deployed apps, for "version next". Default is "open" aka minimal to zero security, just in case you have a Johnnie Whizz who knocks up the latest "look at this" app.

    This alone will ensure that MS can state that OData is the most widely deployed data protocol and should have you thinking well "How open is open?". Dont worry the hackers already have the tools to easily sniff and collate courtesy of MS et al.

    It has its place but caveat emptor and all that jazz....

    PS I use it (OData protocol stacks) and use it to my advantage but I have done some homework!
    • The main trouble with Microsoft

      is that next year something else will be the next big thing for data.

      The only stable data component in the Microsoft stack is SQL Server. Everything else is best ignored.