InfoQ

新闻

REST在节节胜利吗?

作者 Stefan Tilkov 译者 李鑫 发布于 2007年5月31日 下午11时59分

社区
Architecture,
SOA
主题
Web服务,
REST,
Web服务标准
标签
WCF,
Rails,
Apache Axis,
微软,
Apache CXF,
Web服务标准

REST是否可以成为基于Web整合一个可选择方案?这个问题在InfoQ已经引起了数次争论。REST站在了Web服务的对立面,而Web服务被一个并不庞大但说话掷地有声的社群认为违背了Web的基本原则。

关于SOAP vs. HTTP的讨论最早可以追溯到2000年,头号支持者Mark Baker对James Snell。早在2002年,Paul Prescod写了一篇文章声称:隐藏在Web架构中的原则使其优于“Internet的DCOM(DCOM for the Internet)”(他给SOAP RPC贴的标签)。从那以后,争论就一直没有停歇过,与此同时还有一个值得注意的趋势,越来越多的专家同时支持WS-*阵营和REST阵营。InfoQ有一系列关于这个问题的文章,来自Mark BakerSanjiva WeerawaranaPete Lacey等人,都收到了许多评论,这些评论对REST方法的优点褒贬不一。

越来越多的Web服务工具,如Apache Axis2CXF,开始提供一些对REST模型的支持。Sun已经发起JSR 311来标准化Java平台对REST风格的Web应用程序的支持。Ruby on Rails从版本1.2开始已经支持REST,最近,微软对REST的支持也成为了新闻。

在二月份,W3C组织了一个研讨会,会上提交的一篇论文(作者是Gartner的VP之一Nick Gall)中包含这如下声明:

基于SOAP与WSDL的Web服务仅仅在名字上体现了“Web”,事实上,它们是Web技术中不友好的一层,它们所基于的传统的企业级中间件的架构风格已在过去10年中远远落后于人们的期望。

目前主张REST的一个重要声明来自Burton Group的分析师Anne Thomas Manes,她是Web服务领域的著名公众人物之一(并且撰写了该领域的一本书):

如果你准备采用REST技术,我建议你马上上路,并且走在潮流的前端[……]你将必须训练你的开发人员了解REST的准则,你可能会希望采用某一个新的框架或者自己建立一个框架来帮助你的开发人员实现REST风格的应用。毫无疑问你需要给你的开发人员提供指导。你想要做到的工作是使REST成为你的分布式应用的默认风格。

暂时忘掉我的编辑身份,我完全承认我的看法是偏向于REST的,所以,我的看法有可能是错误的。而且也完全有可能Pete Lacey说的一点没错,那些人听不见你说的(they can't hear you)。不过看起来显而易见的是,前SOAP/WS-*的支持者们之中不断有相当数量的人开始分享REST的经验想法了,而且最终供应商也开始支持它(REST)了。

REST是否在以正确的方式提供Web服务,同时WS-*是否会完全消失并被Web技术所取代?REST是否只是另外一种技术选择,但在更大范围内并不适用?基于SOAP、WSDL、WS-*的Web服务是否是支持SOA的正确的、毫无疑问的选择?

对此有何看法?

查看英文原文:Is REST Winning?
译者简介:李鑫,硕士毕业于北京航空航天大学软件学院;现就职于北京用友致远。喜爱Java开源技术,也希望自己自己能为开源社区做力所能及的贡献,闲暇时喜欢读书、与朋友们一起打篮球。为InfoQ中文站贡献内容,请邮件至china-editorial@infoq.com

深度内容

模块化Java:声明式模块化

本文是模块化Java系列文章的第4篇,介绍的是声明式模块化。文中描述了组件如何以声明的方式来定义并组织在一起,而无需让代码依赖于OSGI API。

Ian Robinson和Jim Webber谈论基于Web的整合

本采访是在伦敦举行的QCon2009上记录的,Ian Robinson和Jim Webber探讨了如何将Web作为整合平台以及REST在理论上和实践中的好处。

项目管理修炼之道(精选版)

项目管理对于项目成败至关重要,但实践中每个项目都有自己的独特性,没有现成的解决方案可以套用。书中从应对实际风险的角度出发,讲述了从项目启动、项目规划到项目结束的整个管理流程,展示了作者的思考过程。本迷你书从原书中精选出5个章节。

那是鸟,还是飞机?不,那是超人!

在这个演讲中,Fred将会揭示敏捷的一些外在因素,并会重点关注敏捷获得成功的内在原因。从案例研究和真实的项目经验来看,Fred认为:工具、管理体系都不能让你变得敏捷。敏捷的成功,植根于士气高涨、充分授权的工作者身上,他们能够以不同以往的方式思考问题。

访谈和书摘:Eben Hewitt的新书《Java SOA Cookbook》

Java SOA Cookbook

Eben Hewitt的新书《Java SOA Cookbook》从Java实现的角度讨论了面向服务架构。Eben在书中讨论了SOA基础、工具、最佳实践和SOA治理等主题。

Mark Richard的《Java消息服务》第二版

Mark Richards的新书《Java消息服务》第二版覆盖了JMS的许多主题, 包括发布和订阅模式以及点对点模式,消息过滤和事务等。InfoQ与Mark谈论了跟他的新作。

模块化Java:动态模块化

本文是“模块化Java”系列文章的第三篇,讨论动态模块化,内容涉及如何解析bundle类、bundle如何变化、以及bundle之间如何通信。

让测试也敏捷起来

对于测试组织来说,敏捷方法带来的快速迭代却让测试本身变得困难起来:缺乏“足够详细的文档”,缺乏“仔细设计用例的时间”等等。在本演讲中,段念将与大家探讨如何在敏捷过程中进行测试。