WS-CAF标准规范体系研究_数字图书馆论文

WS-CAF标准规范体系研究,本文主要内容关键词为:标准规范论文,体系论文,WS论文,CAF论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。

【分类号】G250.7

1 引言

Web服务复合应用程序框架(Web Service Composite Application Framework,WS-CAF)标准规范体系研究作为数字图书馆集成服务描述标准规范研究项目的子项目之一,在其中起到了重要作用。数字图书馆要进行集成服务,首先需要对这些服务进行规范描述,并且需要定义这些服务之间的通讯机制,使得这些服务能有效地集成。在研发这些服务的时候,需要一个有层次的、可扩展的开发机制,以使数字图书馆服务能适应环境的变化而无需抛弃以前的服务程序。WS-CAF是一个在不同层次上提供Web服务协调的一个框架,重点是定义联合使用Web Services时所需的支持服务,是数字图书馆进行集成服务的一个有效规范体系。对WS-CAF进行研究,能促使数字图书馆集成服务在实际层面上具有更大的可操作、可扩展和可实施性。

2 WS-CAF的产生

在传统的事务处理中,为了保证故障时事务的一致性,采用了原子事务技术[1]。原子事务的ACID属性(原子性、一致性、隔离性和持久性,即Atomicity,Consistency,Isolation,Durability)确保了即使是在复杂的业务应用程序中,不管并发的访问和故障情况如何,也可以保持状态的一致性。这是一项十分有用的容错技术,尤其是当涉及到多个可能是远程的资源时。

以前的事务处理系统在它们所解决的问题以及它们用来解决问题的抽象方法具有很大的通用性,尤其是事务处理系统是针对特定平台而开发的,而且每个系统都假定它单独控制事务域,因此,通常不必与其他事务处理系统进行互操作。

然而,在传统的原子事务系统中,可用的结构化机制是事务的连续而并发的组成部分。如果一个应用程序函数可以表示为一个原子事务,那么这些机制就已足够。事务最适于被看做是“短期的”实体,执行对系统的稳定状态变化;它们比较不适合于构造“长期的”应用程序函数(比如要运行数个小时甚至数天)。通过长期保持资源(比如锁定),长期的原子事务(通常出现在业务到业务的交互中)可以把系统中的并发性降低到一个可以接受的水平;此外,如果这类原子事务回滚,许多已经执行的有价值的工作就会被取消。

Web Services引出了一类不同的问题:它们明确与促进系统的互操作性有关。从事务管理的角度看,这引出了一些有趣的问题。有一个事实说明Web Services有趣,这个事实就是,体系结构故意不说明服务端点背后发生的事情——Web Services最终只与几方之间的结构化数据的传输有关,以及用于保护这类传输的任何元级别信息(比如通过加密或数字签名消息)——但是正是在服务端点之后,人们发现了支持业务行为的传统事务处理体系结构。

因此,人们面临一个悖论。Web Services平台提供一种面向服务的、松散耦合的而且可能是异步的方法,用于在多方之间传播信息。可是在幕后,人们拥有传统的事务处理基础架构,其行为不是可互相操作的。而且,在向第三方公开资源时,有一个事实可能会导致出现问题,即这些系统中的事务均被假定为显示ACID属性,因为它让各方有机会占用资源,并防止事务取得进展。因此,如果Web Services体系结构中对事务提供支持,那么无疑需要重新解决这个问题。

如何有效地解决这个问题,这就产生了Web服务复合应用程序框架(OASIS Web Services Composite Application Framework,WS-CAF)[2]。该技术是由Arjuna Technologies Ltd.、Fujitsu Limited、IONA Technologies Ltd.、Oracle Corporation以及Sun Microsystems,Inc发起,并于2003年提交给OASIS[3],其技术文档由OASIS WS-CAF技术委员会管理,并在其网站上向公众发布,地址为:http:// www.oasis-open.org/home/index.php。

3 WS-CAF体系结构

Web服务复合应用框架(Web Services Composite Application Framework,WS-CAF)是一个在不同层次上提供Web服务协调的一个框架,重点是定义联合使用Web Services时所需的支持服务。WS-CAF包括3个增量式的规范,可以支持各种不同复杂性的复合应用程序。这3个规范为:Web服务上下文(Web Service Context,WS-CTX)[4],这是一个用于简单上下文管理的轻量级框架,上下文环境以Web资源的形式建模并通过URI(Universal Resource Identifier)[5] 的方式访问;Web服务协调框架(Web Service Coordination Framework,WS-CF)[6],它定义了协调者的行为,协调者负责上下文管理和各Web服务之间的信息通讯;WS-TXM(Web Service Transaction Management)[7],它包括3个不同的协议,用于实现跨事务管理程序的互操作性,并支持多个事务模型:两阶段提交(Tightly-Coupled Intranet-Based Transactions,TX-ACID),长期运行的动作或校正(Internet-Scale Long Lived Transactions,TX-LRA),以及业务流程流(Business-Process Oriented Transactions,TX-BP)。

Web服务复合应用框架和其它规范及其事务协议的关系如图1[8] 所示。从图1中可以看出,WS-CAF所支持的不同规范和协议之间的关系,图1也展示了目前WS-TXM所支持事务协议的层次关系。WS-CAF概念是基于这样一个假设:为了完成一个共同的目的,多个Web服务经常被组合成不同的关系,因此,至少需要一种方法去共享公共上下文(活动域)和协同结果(协同域),以及可预测的长期事务运行单元(事务域)。

图1 WS-CAF与其它规范和事务协议关系图

WS-CAF套件包括3个规范,可以增量地实现它们以满足支持各种从简单到复杂的复合应用程序所需的要求。

3.1 Web Service Context(WS-Context)

如图2[9] 所示,WS-CTX是一个用于简单上下文管理的轻量级框架,上下文环境以Web资源的形式建模并通过URI(Universal Resource Identifier)的方式访问。

图2 WS-CTX上下文服务环境

设置多个Web服务通过共享上下文来实现服务间的通讯的原因是:

公共安全环境:多个Web服务在同一个授权会话或检查中执行。

公共输出协调:多个Web服务在同一个结果需要协调的事务工作单元中执行。

共同访问资源:多个Web服务一起访问如数据库、文件、队列等资源,这些Web服务可以通过共享一个连接来实现这些资源的访问,而无需每个服务独立建立一个连接。

3.2 Web Service Coordination Framework(WS-CF)

Web服务协调框架定义了协调者的行为,协调者负责上下文管理和各Web服务之间的信息通讯,如一个Web服务执行完毕,协调者负责通知所有与该Web服务执行结果相关的一系列Web服务或在一个Web服务执行失败时,通知所有相关Web服务恢复已完成任务。Web服务、协调者、复合应用的关系如图3[10] 所示,协调者也可以把自己作为参与者加入到另外一个协调者中,也就是说,协调者的定义是可以嵌套的。协调程序是一个软件实体,负责确保多方之间达成一致。协调程序位于CORBA、.NET、J2EE和其他分布式计算环境中,用于跨多个数据源协调典型的两阶段提交事务协议。然而,协调是一种更加基础的要求:它可以用于安全、复制、缓冲和其他领域中。

图3 Web服务、协调者、复合应用之间的关系

因此,通过使用一个支持多个协调协议的插件机制,WS-CAF中对协调程序的定义进行了扩展,以便用于Web Services。Web Services的设计目的是多协议的,因此可以映射为多项底层技术。WS-CF规范创建了一个能够驱动各种上下文类型和事务协议(如WS-TXM中定义的那些协议和其他协议)的通用协调程序,而不是把协调程序绑定到两阶段提交协议上,虽然后者是定义当前协调程序的方式。

3.3 Web Services Transaction Management ( WS-TXM)

WS-TXM包括3个不同的协议,用于实现跨事务管理程序的互操作性,并支持多个事务模型(两阶段提交,长期运行的动作或校正,以及业务流程流)。WS-TXM提供设计用于适用多个用例的模型,从紧密耦合的基于企业内部网的事务(Tightly-Coupled Intranet-Based Transactions,TX-ACID),到因特网规模的长期事务(Internet-Scale Long Lived Transactions,TX-LRA),再到面向业务流程的事务(Business-Process Oriented Transactions,TX-BP)。值得注意的一点是,这组协议并不是完整的。如果开发出其他更适合于各种用例的模型,那么就应该把这些模型添加到WS-TXM。

如图4[11] 所示,协调者中展示了WS-TXM协议的层级结构,WS-TXM定义了一系列可拔插的事务协议,这些协议和协调者一起,可用来和所有的参与者谈判活动集以及基于一系列相关Web服务执行结果的活动执行。这些执行通过使用共享上下文联系在一起。

图4 协调框架的事务关系

(1)原子事务(TX-ACID)[12]

这个模型的设计目的是通过Web Services支持现有的事务处理系统,使这些系统之间以及系统与新的系统之间能实现互操作,因为这类系统组成了企业级应用程序的骨干部分。尽管ACID事务可能不适合于所有的Web Services,但它们肯定会适合其中的一些,特别是金融中涉及到的那些高价值交互。在设计WS-TXM时定义的ACID事务模型已经考虑了互操作性,在ACID模型中,每种行为都被束缚在事务的范围内,这样,行为结束便会自动触发相关事务的终止(提交或回滚),也就是人们常说的两阶段提交。

(2)长事务(TX-LRA)[13]

长事务模型是特别为那些持续较久的业务交互而设计的。在这个模型中,行为可以影响业务交互,在应用程序范围内执行的所有工作都必须是可补偿的。因此,对于应用程序的工作来说,要么成功执行,要么什么都不做。单独的Web Services如何执行它们的工作并确保在需要补偿时能够撤消工作,这是实现的选择,并未公开给LRA模型。LRA模型只为补偿动作定义了触发器和执行触发器所需的条件。

在LRA模型中,每个应用程序都被绑定在补偿交互的范围内。在嵌入的LRA范围内执行的工作必须保持是可补偿的,直到一个封闭服务通知单独的服务不再需要它为止。值得注意的是,应用程序服务可能是不可补偿的(比如,打印和邮寄支票的应用程序级服务),或者补偿能力可能是暂时的。LRA模型允许应用程序把可以进行补偿的服务与不能进行补偿的服务结合在一起。显然,通过混合这两种服务类型,用户得到的结果可能是,业务行为最终由LRA模型撤销,但是这可能需要外部(特定于应用程序的)补偿。

LRA模型定义了一个叫做Compensator的协议实施者,它代表服务进行操作,取消它在LRA范围内执行的工作。如何开展补偿显然与服务有关;补偿工作可以由其他自身拥有Compensator的LRA执行。

(3)商业过程事务(TX-BP)[14]

在TX-BP模型中,业务流程中涉及到的所有方都位于业务域(Business Domain)中,它们本身可能会使用业务流程来执行工作。业务流程事务负责管理这些域之间的交互。业务流程(业务到业务的交互)被划分为很多业务任务,而每个任务都在一个特定的业务域内执行。业务域本身可以以一种递归的方式再分为其他业务域(业务流程)。

如果模型的联合更加适于行为,每个域可以代表一个不同的事务模型。每个业务任务(可以被建模为作用域)可以在必须取消封闭作用域的事件中起到特定于实现的反作用。另外,控制应用程序可以周期性地请求整个业务域具有它们的状态点,这样,它们就可以通过应用程序一致地回滚到该检查点,或者在事件失败时从该检查点重新启动。

3.4 层级式实现

WS-CAF各个部分结合在一起的总体目标是,提供一个支持各种事务处理模型和体系结构的完整解决方案。WS-CAF的实现可以从小开始,然后随着时间的推移,逐步壮大为包含更多功能。WS-CAF的各个部分构成了一个堆栈,从WS-Context开始,加入WS-CF,然后加入WS-TXM,从而交付了复合应用程序所需的完整特性和功能。WS-CAF的实现可以从具有简单上下文管理功能的WS-Context开始,稍后加入具有其他上下文管理功能和上下文消息交付保证的WS-CF,最后加入可以管理各种恢复协议的WS-TXM。

4 应用建议

WS-CAF的应用使得商业过程中的分布式工作得以以流程编排和信息交互的方式实现,这种分布式的应用程序通过共享公共上下文来实现信息的交互。目前,数字图书馆的应用也是分布式的,如馆际互借、远程服务等,甚至馆内的应用程序也是分布式方式,传统的应用集成在数字图书馆领域起到重要的作用,但在这种分布式应用程序中无法做到真正的集成。鉴于数字图书馆业务流程的分布式与商业领域的业务分布式原理相同,可将在商业上成功解决分布式集成的WS-CAF引入到数字图书馆领域,使得数字图书馆中的分布式应用程序能实现无缝集成。将WS-CAF规范引入数字图书馆规范将具有重要的作用和意义,将会促使数字图书馆服务的广义化。

在数字图书馆领域中研究和推广使用WS-CAF规范,应充分考虑以下几点建议:

(1)在仔细研究WS-CAF标准以及与其相关的协议的基础上,参考WS-CAF在商业领域的成功应用案例,构建适合于数字图书馆服务平台的复合应用框架。

(2)研究适合于数字图书馆的WSDL自动生成器,用于对外发布数字图书馆服务。

(3)研究将商业编排、商业执行语言等纳入数字图书馆服务的方式。

(4)研究将数字图书馆服务映射成Web服务的方式并使用商业编排、执行语言将服务集合构成活动的方式。

(5)根据研究的规范,构建数字图书馆的复合应用框架原型。

5 结语

本文在对WS-CAF产生的背景及其基本框架进行研究的基础上,对WS-CAF在数字图书馆领域中的推广应用进行了分析,并在研究的基础上提出了几点建议。文中没有对WS-CAF在数字图书馆中的应用案例进行全面的剖析,也没有构建WS-CAF在数字图书馆中的应用原型,这是本文的不足之处,也是后续要研究的内容。

标签:;  ;  ;  ;  ;  ;  ;  ;  

WS-CAF标准规范体系研究_数字图书馆论文
下载Doc文档

猜你喜欢