Axis、Struts、ColdFusion和WCF的REST

日期: 2008-06-09 作者:William Brogden翻译:杨君 来源:TechTarget中国 英文

从十年前相对简单的XML-RPC(远程过程调用)协议开始,Web服务的架构和标准变得更为复杂了。有时, SOAP似乎影响了开发商的想法,然而支持这些想法的开放源和商业结构日趋成熟。作为对这日益增长的复杂性做出的回应。REST格式越来越为开发商所重视。

我认为研究一下这些机构是如何在REST颇为大众所接受前响应这个潮流是非常有意义的。   不同程度的REST一致性   正如Fielding的论文中所叙述的一样,REST格式强调资源以及获取该资源的URI地址,这和强调要在创建资源的运动中设置一个过程的SOAP 和XML-RPC的定向是相悖的。REST格式提议者坚决认为用简单HTTP方法建立的一致结构……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

从十年前相对简单的XML-RPC(远程过程调用)协议开始,Web服务的架构和标准变得更为复杂了。有时, SOAP似乎影响了开发商的想法,然而支持这些想法的开放源和商业结构日趋成熟。作为对这日益增长的复杂性做出的回应。REST格式越来越为开发商所重视。我认为研究一下这些机构是如何在REST颇为大众所接受前响应这个潮流是非常有意义的。

  不同程度的REST一致性

  正如Fielding的论文中所叙述的一样,REST格式强调资源以及获取该资源的URI地址,这和强调要在创建资源的运动中设置一个过程的SOAP 和XML-RPC的定向是相悖的。REST格式提议者坚决认为用简单HTTP方法建立的一致结构和开始让你创建Web可以解释的服务。

  由Fielding 和其它专家发起的HTTP1.1协议标准,RFC 2616对于如何使用这些方法有着更清楚的建议。该标准强调GET, HEAD, PUT 和delete要求必须是幂等的——这就是说许多相同的要求应该和单个的要求有同样的效果。许多应用忽视了GET方法的要求。
 
  我在这里概括了RESTful服务应该如何使用HTTP方法。我发现大多数旧框架在使用这个格式的道路上才刚刚起步。

  ·GET –在一个专用表达(网络媒体型)资源中检索一种表现。

  ·POST –使用请求体中的数据改变资源。URI验证了一个能够解决密封数据的资源。

  ·PUT –请求体建立或设置了一个资源的当前状态,该资源由URI所验证。

  ·delete –在服务器删除一个特定资源

  ·HEAD –检索一个资源的状态信息,比如最后以HTTP头部的形式验证的日期。意图为一个程序提供避免额外GET的方式,如果资源没有改变。

  Apache软件基金-AXIS

  最初由IBM公司创建的早期的工具箱SOAP4J,就是人们所知的SOAP工程,在Apache软件基金安家落户,但是,这是在支持新出炉的例如WSDL标准的需求出现不久发生的,Apache Axis在2002被重设计。目前的版本Axis 1.4还在使用中。
 
  当第一个Axis正在开发中,Axis2就开始被重设计了。谈到Axis工具箱,其还有极大的不可确定的空间。因为Axis 和Axis2二者都在和“1.4版本”同时使用。

  我们研究仔细文档编制时发现,Axis2支持RESTful GET是通过将REST格式URI重新格式化入SOAP而完成的。该SOAP要求被转发到标准SOAP要求。并和XML格式的响应一起进行数据处理,该XML格式的响应不包含标准SOAP外壳。这足够支持XML的Ajax格式使用丰富的互联网应用(RIAs),但是它不能处理一个应用程序可能需要的其它资源类型并且也不能提供PUT 和delete方法的使用。

  Apache Struts是用Struts 1版本创建Java的Web应用程序的一个最受欢迎的开放源码框架之一。但是要想完全重新设计Struts 2还需要REST格式要求的支持。有一个Struts 2.1.1的"REST 插件"显然仍处于测试阶段,这使得在Rails格式下使用Ruby支持REST格式变得很容易。该方法把URLs映射为编码。

  ColdFusion框架
 
  ColdFusion是第一个( 1995年)Web开发框架。现在归Adobe Systems所有 ,它的主要目标是建立由ColdFusion标记语言编写的网站所驱动的数据库。最新的第8版,可以处理查询格式GET、POST请求并且可以以JSON 或者XML格式将数据返回到丰富的客户程序。但是,解释URI格式要求不受支持。ColdFusion引擎可以在在任何Java J2EE服务器或NET服务器环境下运行。

  微软的Web服务工具包

  在微软最早开发SOAP Web服务和SOAP协议的研究人员在不同的微软开发环境下都得到很好的支持。不像现有框架那样缓慢演进,Microsoft建立一个新的框架。微软最新框架Windows Communication Foundation 或者WCF是用Microsoft . NET框架建立连接系统的一个广义的Web服务堆栈。其仍然强调支持SOAP和WS-*标准但是为建立服务所使用的最新的(.NET 3.5)版本可以被配置为可以用SOAP 或者 REST格式所处理的版本。我们已经为支持GET, POST, PUT 和delete HTTP做了准备。我发现这些例子强调JSON (JavaScript Object Notation)的返回内容类型和 XML,并为识别要求的内容类型和建立正确的回应通过机制。

  结论

  一般来说,为了跟上新发展的步伐,旧的框架在过去几年中已经历重大重新设计。这样您的旧框架,可能会有创新,让您一开始就拥有休息Web服务。但是你不能只关注这一个框架,你也需要看看我在最近的文章中讨论的新方法。像Jersey 和 IBM’s Project Zero以前方法中多余的东西。

相关推荐