OData 是应用程序协作的通用语言吗?

  • Dilip Krishnan
  • 晁晓娟

2010 年 2 月 10 日

话题:SOA.NETREST语言 & 开发架构

开放数据协议 (OData) 规范为很多有意思的可能协作场景打开了大门。 Douglas Purdy、Pablo Castro 和 Jon Udell 特别强调了:

开放数据协议(OData)是一个查询和更新数据的 Web 协议。OData 应用了 web 技术如 HTTP、Atom 发布协议 (AtomPub) 和 JSON 等来提供对不同应用程序,服务和存储的信息访问。

Jon Udell 在一篇文章中探讨了开放数据协议 (OData) 规范的各种协作用例。他引用了一篇文章,在该文章里Pablo Castro解释了逐步实现 OData 规范的方法……

OData 被设计成支持模块化并且可以随着你需要更多的特性而不断增长。

……与一口气实现所有规范相反,他建议先实现某些特定的子集,如查询、服务元数据、批处理等。

我们并不想精确地定义一个服务需要做的每件事。相反,我们希望保证要是你想做某件事,你能用一种众所周知的方式来做,这样其他人都可以靠这种方式完成自己的需求。

Douglas Purdy提到了一种实现方法;并曝料 IBM 的家伙在实现该规格时完全依赖于协议文档,从来没有和微软的人协作过!他同时也提到了另一个帖子(Pablo 的截屏)说明了有一个通用协议的好处,它可以作为微软已有或将要实现的丰富多样的产品的粘合剂;这使得它们之间的数据交换大大简化了。

Jon Udel 还完美地阐释了这种协议的优势。他举的例子是根据区域代码过滤一组银行位置列表,说明了如何在Excel 2010 的 PowerPivot中消费 OData feed 来完成数据分析。

【如果我们】考虑 Pablo 的例子,基于开放政府数据方案工具箱来发布的一些华盛顿特区的数据集。……我想这对用户也有一个巨大的好处,……让我们通过 Excel 2010 的 PowerPivot 来看这些数据集中的一个——银行位置。

Jon 用一种非常有趣的观察总结了自己文章,基于这类服务对分散协作网络产生的影响。

即使当公共数据集提供了充分说明的 Web 命名空间,事情也可能会以一种更松散耦合的方式发生。我可以到处张贴我的反馈——如就在这个 Blog 上。 如果我想对位于 1500 K 街道,NW 的 WashingtonFirst 分行说些什么,我能够引用一个 URL 如1500 K Street,NW。[……] 这个 URL 在效果上是对数据集中某条记录的“回引(Trackback)”。存放数据集的服务能够针对这些入站链接扫描网络,如果需要的话,就返回给用户。

为了促进这种松耦合的协作,微软引入了代码名为“Dallas”的服务,它是一个信息集市,能够从领先的商业数据提供商和可靠的公共数据源一起为单一位置带来数据、图像,以及实时 Web 服务。

查看英文原文:Is OData The Ubiquitous Language For Application Collaboration?

SOA.NETREST语言 & 开发架构