监理公司管理系统 | 工程企业管理系统 | OA系统 | ERP系统 | 造价咨询管理系统 | 工程设计管理系统 | 签约案例 | 购买价格 | 在线试用 | 手机APP | 产品资料
X 关闭

使用REST体系结构样式构建可使用的Web服务

申请免费试用、咨询电话:400-8352-114

来源:泛普软件

使用REST体系结构样式构建可使用的Web服务

本文的重点是代表性状态传输(Representational State Transfer,REST)体系结构样式。通过使用Facade组件作为REST样式的接口,现有的SOAP样式的Web服务支持可自定义的URL、多资源格式表示、浏览器响应缓存、大型附件的流化以及使用HTTP方法来操作资源。

引言

代表性状态(REST)体系结构样式提供了壁垒较低的使用Web服务门槛。典型REST样式应用程序的外部接口包括大量统一资源标识符(Uniform Resource Identifier,URI)可寻址资源和一些操作,如创建、读取、更新和删除(CRUD)等。这样的体系结构样式的优势是其简单性。

开发人员兼作家Paul Prescod将REST Web服务定义为“使用HTTP协议的语法和语义将其功能完全作为一组URI可寻址资源提供的Web服务”(请参见参考资料)。可以将万维网本身视为REST样式的例子。位于Web底层的HTTP协议使用统一资源定位符Uniform Resource Locator,URL)来表示资源和一些广泛使用的HTTP方法,如用于操作资源的GET、POST、PUT、HEAD和delete。这个简单的体系结构样式通过重用Web的松散耦合与分布式基础设施来提供可伸缩性和交互能力。

本文给出了一个银行业务服务示例,该服务将贷款利率发布到类似于Bankrate的聚合器网站(请参见参考资料)。聚合器网站通常从多个不同的提供商收集信息,并将其聚合为客户端Mashup。这也称为透明地组合,可以将其视为组合应用程序。为了方便地创建此类Mashup,服务提供商需要公开一个简化接口。REST体系结构样式可很好地满足此要求。

本文建议使用Facade组件 来向现有SOAP样式的Web服务提供REST样式的接口。本文描述组件所需的功能,并将这些功能捕获在Rational Software Architect可重用资产规范(Reusable Asset Specification,RAS)模式中。此模式由端点和现有Web服务的操作进行参数化。可以将此模式转换为可部署的Java 2 Enterprise Edition(J2EE)Servlet实现,以调用现有Web服务。这个生成的Servlet支持所需的REST样式功能,如浏览器缓存、资源内容格式协商和使用SOAP Attachment for Java(SAAJ)标准进行大型附件的HTTP流化。

有关URI、CRUD、Mashup、Facade模式、SOAP样式的Web服务、RAS模式、SAAJ及其他资源的更多信息,请参见参考资料。

REST样式的Facade组件所需的功能

在REST样式的Web服务Facade组件中需要以下功能:

用于指示REST样式的资源的可自定义URL

REST体系结构样式支持采用URL来提供对细粒度资源的访问。例如,在贷款应用程序中,银行在特定日期提供的贷款利率就是一个必需的资源。通过使用不同的URL表示每个细粒度资源,可允许其他应用程序(如电子邮件)方便地引用这些资源。这还同时支持使用Web 2.0技术(如Ajax)进行客户端资源组合。因此,Web服务Facade组件允许应用程序开发人员自定义表示资源的URL。

用于操作资源的HTTP方法,如GET、POST、delete、PUT、TRACE和OPTIONS。

REST样式的Web服务允许通过数量较少的常用操作访问资源,如用于获取资源的表示形式、获取关于资源的信息以及操作资源的各个独立操作。HTTP协议已经定义了这样的操作集(GET、POST、PUT等等)。(有关HTTP方法的更多信息,请参见参考资料。)Facade组件支持使用这些HTTP方法。请注意,针对SOAP Web服务的Web服务描述语言(Web Service Description Language,WSDL)1.1仅支持HTTP POST方法。WSDL 2.0通过包括对 HTTP GET 绑定的支持对此进行了补充,但在WebSphere Application Server V6.1中尚不支持WSDL 2.0。另请注意,HTTP delete、PUT、TRACE和OPTIONS方法使用并不频繁,而且经常被防火墙阻止。

资源表示形式和内容格式协商

URL所访问的每个资源都可以使用不同的形式加以表示,具体取决于访问资源的客户机。客户机可以是台式计算机上的HTML浏览器或其他SOAP Web服务或Ajax或JavaScript Object Notation(JSON)客户机(请参见参考资料)。Facade组件查询HTTP请求的Accept Header字段来确定客户机所需的响应格式,并随后以所需的格式提供资源。

资源表示形式的浏览器与网关代理缓存

REST样式的结果最常用于使用HTTP GET方法访问资源。对于HTTP GET请求,REST样式的Web服务可以设置HTTP响应Header字段来提供指示信息,以确定Web浏览器是否缓存返回的资源表示形式以及缓存多长时间、要缓存的资源表示形式的有效或失效策略是什么。通过支持响应缓存,可提高应用程序的可伸缩性。Facade组件会相应地将HTTP Header Cache-Control响应指令设置为PUBLIC、PRIVATE等。

使用SAAJ来调用SOAP样式的Web服务

SOAP样式的Web服务以XML形式返回响应,而此格式通常是REST样式客户机需要的资源表示形式。所以,Facade组件可避免由于直接访问XML格式的SOAP响应消息而造成的不必要的取消封送开销。为此,Facade组件使用SAAJ来调用现有的Web服务。SAAJ还可以通过HTTP对Web服务响应中附件内的大量数据进行流化。

发布:2007-04-24 09:43    编辑:泛普软件 · xiaona    [打印此页]    [关闭]
相关文章:
广州OA系统
联系方式

成都公司:成都市成华区建设南路160号1层9号

重庆公司:重庆市江北区红旗河沟华创商务大厦18楼

咨询:400-8352-114

加微信,免费获取试用系统

QQ在线咨询

泛普广州OA快博其他应用

广州OA软件 广州OA新闻动态 广州OA信息化 广州OA快博 广州OA行业资讯 广州软件开发公司 广州门禁系统 广州物业管理软件 广州仓库管理软件 广州餐饮管理软件 广州网站建设公司