Web Service 资源框架支持

WebSphere® Application Server 中的 Web Service 资源框架 (WSRF) 支持为遵循 OASIS WSRF 规范的 Web Service 应用程序提供了环境。

WSRF 概述

Web Service 接口通常需要提供与服务的客户机的有状态交互。例如,Web Service 接口,如购物车,其中一项操作的结果会影响后续操作的执行。OASIS Web Service 资源框架 (WSRF) 定义了使用 Web Service 对有状态资源进行建模和访问的通用框架,这样就可以更容易地定义和实现服务以及集成和管理多项服务。

WSRF 引进了 XML 文档描述概念(称为资源属性文档模式),此概念由 Web Service 的 WSDL 描述所引用,并且显式地描述客户机与其交互的资源的状态视图。采用此方式描述的服务称为 WS-Resource

WS-Resource 定义为资源与用来访问该资源的 Web Service 的组合。下图说明了一个 Web Service(位于 http://www.example.com/service)及通过该 Web Service 来访问的三个资源(A、B 和 C)。因此,该图中说明了三个 WS-Resource:
请参阅描述文本
通常,用来唯一标识 WS-Resource 的 WS-Addressing 端点引用通过将 WS-Resource 的资源组件的标识包含在 EndpointReference ReferenceParameter 元素中来引用 WS-Resource。在上一个示例中,WS-Resource-C 组合了 Web Service 以及由 C 所标识的资源,而对 WS-Resource-C 的引用可能如下:
<wsa:EndpointReference>
    <wsa:Address>
        http://www.example.com/service
    </wsa:Address>
    <wsa:ReferenceParameters>
        <tns:SomeDisambiguatorElement>C</tns:SomeDisambiguatorElement>
    </wsa:ReferenceParameters>
    ...
</wsa:EndpointReference>

每个这样的 WS-Resource 都有一个用来描述资源状态的资源属性文档(一个 XML 实例文档)。WS-Resource 的 WSDL 通过 wsdl:PortType 元素的 ResourceProperties 属性来标识用来描述资源属性文档类型的 XML 模式。通过为资源属性文档模式指定此标准 WSDL 扩展,WSRF 就能够定义简单的与 WS-Resource 交互的基本消息。

例如,以 Printer WS-Resource 为例,它具有下列资源属性文档模式:
<?xml version="1.0"?>
<xsd:schema ...
   xmlns:pr="http://example.org/printer.xsd" 
   targetNamespace="http://example.org/printer.xsd" >
 <xsd:element name="printer_properties">
   <xsd:complexType>
     <xsd:sequence>
        <xsd:element ref="pr:printer_name" />
        <xsd:element ref="pr:queued_job_count" />
     </xsd:sequence>
   </xsd:complexType>
 </xsd:element>
 ...
</schema>
这样一个 WS-Resource 的 WSDL PortType 元素将“资源属性文档”类型声明为如下所示:
<wsdl:portType xmlns:pr="http://example.org/printer.xsd"  
               xmlns:wsrf-rp="http://docs.oasis-open.org/wsrf/rp-2"
               name="Printer" wsrf-rp:ResourceProperties="pr:printer_properties">

每个 WS-Resource 都具有唯一的逻辑资源属性文档实例,该实例是资源状态的视图。WS-ResourceProperties 规范描述 WS-Resource 可以实现的可互操作的协议消息,以通过对资源属性文档执行操作来获取、设置或查询资源状态。在这些操作中,某些操作会影响整个资源属性文档,而某些操作只对该文档中的一个或多个元素(各个资源属性,例如,pr:printer_name)执行操作。每个 WS-Resource 都可以具有有限的生命周期,并且即可以创建也可以破坏生命周期;WS-ResourceLifetime 规范描述 WS-Resource 资源可以实现的可互操作协议消息以破坏它或者改变它的终止时间。

有关 WSRF 的更多信息,请参阅由 OASIS 技术委员会发布的“WSRF Primer”文档。

WSRF 编程模型

WSRF 规范只定义协议消息以及 WS-Resource 在处理这些消息时期望获得的语义行为;这些规范并没有规定用来实现 WS-Resource 对象的方法。WSRF 主要是应用程序级别协议,而且用于实现 WS-Resource 的工具与用于实现任何其他类型的 Web Service 的工具相同。WSRF 使用 WS-Addressing 端点引用,而且 WS-Resource 的应用程序编程模型类似于任何使用 WS-Addressing 的 Web Service 的模型。

WSRF 通过两种方式来扩展 WebSphere Application Server WS-Addressing 编程模型,这两种方式可以区分 WS-Resource 和使用 WS-Addressing 通过 Web Service 来访问的通用资源:
  • WSRF 需要 wsdlPortType 元素上的 ResourceProperties 属性。此属性声明 portType 元素是由 WS-Resource 实现而不是由通用 Web Service 实现。WS-Resource 必须声明它支持哪些 WSRF 操作,可通过将这些操作复制到其 WSDL 定义的 portType 元素中来进行声明。WS-Resource 可自由选择任何实现策略来表示有状态资源和处理 WSRF 消息;可以使用简单 Java™ 类、无状态会话企业 Bean、受关系数据库支持的实体 bean、服务数据对象 (SDO) 等来实现资源。
  • WSRF 定义 Java BaseFault 类型的层次结构。

指示主题类型的图标 概念主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cwbs_wsrf
文件名:cwbs_wsrf.html