一种有状态的Web Services技术——WSRF
来源:互联网 发布:销售用什么软件 编辑:程序博客网 时间:2024/05/16 00:48
1。简介
Web服务资源框架(Web Services Resource Framework,WSRF),其实际上是一组Web Service规范。WSRF针对传统的Web Service技术无状态的特点,通过对Web Service规范的扩展,成为是一个在Web环境中设计处理有状态资源的规范,以便在提供Web Service服务的时候可以保留资源信息,并且提供持久数据的方式。
WSRF引入WS-Resource来对Web Service服务上下文中的状态信息进行模型化的管理。一个WS-Resource可以被当作一个具有无状态消息处理器的Web服务,与有状态的资源的联合体。因此,可以简单地用公式(WS-Resource=Web Service + Resource)来理解WS-Resource的含义。
自从引入有状态的WSRF以后,资源就可以被理解为任何的具有扩展的生命周期的实体(资源可能是一个内存中的数值,甚至是存储器中的一个文件等),并且可以通过Web Service来获得这些资源信息。
WSRF作为一组Web Service规范,是由一系列处理细节的子部分组成的。这些子部分通常用于对WS-Resource管理,以下对五个子部分进行简单描述。
(1)WS资源属性(WS-ResourceProperties)
WS资源属性指定了同WS-Resource中定义的属性进行交互的实际方式。一个WS-Resource通常包含多种属性,例如一个文件资源可以包含文件名、文件大小和文件描述三个属性。
(2)WS资源生命周期(WS-ResourceLifetime)
WS资源生命周期定义了如何来管理和销毁WS-Resource的生命周期。资源没有永恒的生命周期,它随着服务的开始而创建,停止服务后会销毁它。
(3)WS服务组(WS-ServiceGroup)
WS服务组指定了如何来聚合或分组WS-资源和Web Service。
(4)WS基本错误(WS-BaseFaults)
WS-基本错误定义了被WSRF服务抛出的SOAP格式的错误。
(5)WS重用引用(WS_RenewableReference)
WS重用引用定义了一种机制用来更新已经无效的端点引用,其中端点引用代表一个特定的WS-Resource的地址。
除了上述的五个WSRF的子规范,以下两个规范与WSRF密切相关。
(1)WS通知(WS_Notification)
WS通知将基于主题的发布/订阅模式引入到Web Service。这个规范允许将Web Service配置成为一个通知(Notification)生产者,并且某个客户端成为通知(Notification)消费者。也就是说,当一个Web Service(或者WS-Resource)发生变化时,变化会被通知所有的订阅者。
(2)WS地址(WS-Addressing)
WS地址规范提供了一种定址Web Service的机制,端点引用(EndpointReference)是WS地址规范的核心内容。
综上所述,WSRF通过对相关规范的扩展,使Web Service成为一种可以处理有状态的资源的技术。Web Service技术作为一种面向服务(SOA)的技术,被广泛应用于网格服务设计,通过对Web Service扩展形成WSRF规范后,WSRF规范已成为编写网格服务程序的标准框架。WSRF不仅具被Web Service技术的平台无关性和可重用性,而且可以对资源信息进行有效的管理。
了解WSRF程序设计框架是编写网格服务程序的基础,通常编写WSRF服务程序需要经历五个阶段。 (1)使用WSDL定义服务接口 服务接口用于向外部程序或用户提供访问服务的基本方法。在Web Service的术语中,服务接口通常被称为端口类型(port type),它用于告诉外部的用户哪些服务方法可以被用户调用。服务接口定义的服务方法通常使用特别的XML语言来表示,这种基于XML的语言被称为Web Service描述语言(Web Service Description Language,WSDL)。因此,编写WSRF程序的第一个阶段,主要进行编写WSDL文档,以定义服务接口。 举例来说,假设有个系统中的提供主机信息服务注册功能,需要记录各个集群中主控结点的主机名和IP信息,因此,需要实现添加主机的方法:void addHost(string host)。这个方法在WSDL文件当中部分地显示为如下所示的XML代码,其主要描述了方法名(addHost)、需要传递的消息(AddHostInputMessage和AddHostOutputMessage),服务接口(ServiceRegisterPortType)等信息。 2.WSRF服务程序的编写规范
<types> <!-- REQUESTS AND RESPONSES --> <xsd:element name="addHost" type="xsd:string"/> <xsd:element name="addResponse"> <xsd:complexType/> </xsd:element> </types> <!-- MESSAGES --> <message name="AddHostInputMessage"> <part name="parameters" element="tns:addHost"/> </message> <message name="AddHostOutputMessage"> <part name="parameters" element="tns:addHostResponse"/> </message> <!-- PORTTYPE --> <portType name=" ServiceRegisterPortType" wsdlpp:extends="wsrpw:GetResourceProperty" wsrp:ResourceProperties="tns:HostResourceProperties"> <operation name="addHost"> <input message="tns:AddHostInputMessage"/> <output message="tns:AddHostOutputMessage"/> </operation>
(2)编写程序实现服务
第一个阶段定义了提供服务的接口,在第二个阶段需要实现服务接口的功能,并且编写相关的服务程序。WSRF程序设计框架基于Web Service技术,因此,可以使用多种语言实现服务程序。
服务程序至少包含两个类,第一个类用于描述服务,第二个类用于描述资源。描述资源的类需要包含资源属性信息,以及得到/设置(Getter/Setter)的资源属性方法。描述服务的类提供实现服务的方法。
(3)使用WSDD配置服务部署信息
服务程序提供服务需要使用Web Service容器,只用将其部署到Web Service容器,外部的客户端程序才有可能访问服务程序。部署服务程序的一个关键阶段是编写一个称为部署描述(deployment descriptor)的文件,它用于告诉Web Service容器如何发布自己的Web Service服务。部署描述文件当中需要包含服务名(service name)、类名(className)、WSDL文件名等基本信息。
(4)使用Ant工具创建GAR文件
这个阶段将前三个阶段产生的各种文件,例如WSDL文件、Java程序文件、WSDD文件等,进行绑定工作,最终形成一个网格归档(Grid Archive,GAR)文件。网格归档文件是一个单独的文件,它包含Web Service容器进行部署和对外提供服务所需的各种文件和信息。
创建GAR文件是一个非常复杂的过程,例如,需要对WSDL文件进行处理、创建和编译各种服务类等,使用Ant工具可以有效地完成这些过程。
(5)部署服务到Web Service容器
第四个阶段会产生一个用于部署服务的归档文件,这个阶段将这个文件部署到Web Service容器
相对于编写WSRF服务程序所需的五个步骤,其客户端程序的设计相对简单。只需依据服务URL(serviceURL),构建端点引用(EndpointReference),然后根据端点引用获得服务接口(PortType)的实例,通过调用服务接口实例提供的方法。
更详细的程序编写说明请参照:http://gdp.globus.org/gt4-tutorial/singlehtml/progtutorial_0.2.1.html
- 一种有状态的Web Services技术——WSRF
- 全方位解析 Web Services 开发技术—纪要
- Web Services技术见解
- 利用Web Services保持Http环境下的连接状态
- 轻量级的Web服务——RESTful Web Services
- Web Services学习3——用Axis2发布Web Services的方法
- Web Services 教程——Web Services 简介
- Web Services 教程——为何要使用Web Services?
- Web Services 教程——Web Services 平台元素
- Web Services 教程——Web Services 实例
- Web Services和其他的技术的比较
- 几点有关Web Services的技术学习总结
- 几点有关Web Services的技术学习总结
- SQL中“有且仅有”一种状态的写法
- Web Services技术系列概述(Web Services基础)
- Web Services技术系列概述(Web Services基础)
- Web Services的魅力
- web services的基本概念
- hibernate整合遗留数据库之处理主键(复合外键引用非主键)
- 解决Silverlight应用程序的不出地图的问题(SuperMap IS.NET做地图服务器)
- 20100929 朝会内容
- 如何获得积分
- 童趣 4
- 一种有状态的Web Services技术——WSRF
- 好邻居
- 古老的印度祝福语
- codewarrior for s12x 位域与内存对齐问题
- 通信工程师职称挂靠
- 1. POJO
- property=”*”
- 架构、框架、设计模式之间的关系
- 大洋蛋...我谁不着....倒数357...