WCF 的未来是 RESTful

  • Abel Avram
  • 胡键

2010 年 11 月 4 日

话题:SOA.NETREST语言 & 开发架构文化 & 方法

Windows 通信基础(WCF)的产品经理,Glenn Block 在主题为“WCF,Evolving for the Web”的在线研讨会上表示,微软面向服务应用的构建框架将进行根本性的重构,新的架构将以 HTTP 为中心。

在这次在线会议的开始,Block 总结了业界的当前趋势:

  • 向基于云的计算转变
  • SOAP 逐渐淡出
  • 浏览器运行于各类设备之上日渐盛行
  • REST 采纳的增长
  • 类似 OAuth、WebSocket 这样标准的出现

他表示,WCF 的当前架构在很大程度上是基于 SOAP 的,如下图示:

WCF 的一个关键特性是,在相同编程模型下支持多种传输协议(HTTP、TCP、命名管道)。遗憾的是,一旦触及 HTTP,它的大量好处(伸缩性、内容协商)就消失了,原因在于 WCF 只是把它当作一种传输手段。因此,Block 期望将支持 HTTP 的 WCF 视为一种具备简单灵活编程模型的一流应用协议。如下图示:

HTTP 是在.NET 3.5 中引进的,这让创建通过 HTTP 访问的服务成为可能,但是“没有办法访问所有 HTTP 必须提供的东西,它是一种非常扁平的模型,面向 RPC,但 Web 不是这样的。在 Block 看来,Web 是一种非常丰富的资源集”。与其将当前的 WCF 改造成可以在 HTTP 之上正常工作,Block 认为 WCF 应该“以 HTTP 的思想,使用 RESTful 方式”重新构架。

WCF 将包含助手 API,完成预处理 HTTP 请求或响应、解析和操纵所有参数、将 HTTP 信息封装到对象中以供未来处理之用。只要愿意,用户就可以利用它将自己从直接处理 HTTP 内部细节的痛苦中解脱出来。这个特性还将提供一种插件功能,主要针对像 JSON, Atom, OData 等这样的数据格式的媒体类型格式化器。WCF 将内置部分格式的支持,但是用户能够加入自己的格式化器。

新的 WCF 已经正在构建当中,Block 演示了使用它的样例代码,但他表示这个特性集和 WCF 将来的样子尚未最终定案。他们不久将在 CodePlex 上发布框架的初始版本,让社区能够进行测试和反馈,让 WCF 的未来逐渐成型。更多的细节将在PDC 2010大会期间得到公开。

更新

我们向 Glenn Block 问起了其他协议,尤其是 SOAP,的未来状况。他的答复是,WCF 将完全支持现有的技术栈,当前的发展旨在将 WCF 演变成完全支持 HTTP,而又不宣布放弃 WCF 目前已经取得的成果。

现在,WCF 社区站点搭建完成,所有对 WCF 演变感兴趣的人们可以通过它了解 WCF 的近况。

在 PDC 2010 大会上,Glenn Block 在WCF 未来和它与微软在 SOA 技术中的当前投资之间的关系里给出了更多细节。

查看英文原文: The Future of WCF Is RESTful [Updated]

SOA.NETREST语言 & 开发架构文化 & 方法