APP下载

Web服务组合综述

2012-07-12中国人民银行南昌中心支行

电子世界 2012年18期
关键词:正确性连通性组件

中国人民银行南昌中心支行 丁 坚

Web服务组合综述

中国人民银行南昌中心支行 丁 坚

近年来,Web服务技术作为服务计算(SOC)和面向服务架构(SOA)的主要实现技术,已经得到广泛应用,工业界和学术界分别从不同的角度对Web服务的相关技术展开研究。本文详细阐述了服务组合的概念、框架和分类,分析了几种常用的Web服务组合方法,并对这几种组合方法作了比较,最后,对Web服务组合方法进行了总结。

Web服务;组合方法;服务组合;工作流

1.引言

近年来,电子商务的迅速发展,使得基于网络的、分布式的、模块化的Web服务技术得到快速发展和广泛应用,Web服务遵循一定的技术规范,执行一定的任务。随着Web服务标准的持续完善和支持Web服务的企业级软件平台的不断成熟,越来越多的企业和商业组织参与到软件服务化(SaaS)的行列中来,纷纷将其业务功能和组件包装成标准的Web服务发布出去,实现快速便捷地寻求合作伙伴,挖掘潜在的客户和达到业务增值的目的[1]。然而,目前网络上发布的服务大多数都存在结构简单、功能单一的缺陷,无法满足企业复杂应用的需求。如何有效地组合分布于网络中的各种服务,实现服务之间的无缝集成,形成功能强大的企业级服务流程以完成企业的商业目标,已经成为Web服务发展过程中的一个重要步骤,也是SOC与SOA能否成功应用和实施的关键[2]。

2.Web服务基本概念

Web服务组合源于软件重用.其基本思想是使用现有的Web服务,通过它们一定顺序的组合或组合顺序的改变,创建出新的或更高质量的服务满足用户的需求。

2.1 Web服务概念

目前对Web服务组合尚无统一的定义,很多研究者从不同的角度和侧重点对Web服务组合给出了不同的定义。[3]

对Web服务组合定义是指由多个小粒度的Web服务相互之间通信和协作来实现大粒度的服务功能;通过有效地联合各种不同功能的Web服务,服务开发者可以借此解决较为复杂的问题,实现增值服务。

IBM对服务组合定义[4]是满足业务流程逻辑的一组Web服务,通过制定不同Web服务执行顺序和交互过程来实现新的业务功能。[5]

从两个不同的研究角度对Web服务组合进行了定义:(1)基于过程模型:从WSC内在因素的角度,将其定义为一个依赖于特定控制流和数据流结合起来的、能够完成一定任务的Web服务集合。(2)基于构件单元:从构件的角度,将WSC定义为一个由自治且能相互协作的自描述单元所组成的系统。

文献[1]提出了一个更为通用和完整的Web服务组合定义:用现有的分散的、小粒度的原子服务,根据服务请求者的需求,在某一特定的Web服务组合框架下,自动地选择满足需要的若干服务,并使它们按照一定的组合规则协同工作完成服务请求。

2.2 Web服务组合架构

典型的Web服务组合(WSC)的实现框架包括2种用户角色(服务请求者和服务提供者)和5个部件(翻译器、组合管理器、执行引擎、服务匹配器和服务库),可选部件本体库为服务描述提供本体定义和推理支持,如图1所示。WSC流程如下:

(1)服务提供者通过服务注册将服务信息发布到注册中心的服务库。

(2~3)服务请求者提交的服务需求经翻译器处理,从自然语言变为具有语义的需求描述传递给组合管理器。

(4)组合管理器根据需求描述和来自服务库的服务描述,生成满足服务需求的组合方案,传递给执行引擎。

(5~7)执行引擎将组合方案传递给服务匹配器,服务匹配器根据服务描述选择最适合的Web服务,将其句柄返回执行引擎。

(8)执行引擎根据组合方案和Web服务句柄调用并监控Web服务执行。

(9)最终将执行结果传递给服务请求者。

3.Web服务组合方法

3.1 Web服务组合方法

当前工业界和学术界从不同的角度对Web服务组合进行了大量的研究,提出了多种Web服务组合方法,总的来说,工业界方法侧重于提出组合描述语言,开发相关编辑工具和执行引擎;学术界的方法侧重于从语义、智能规划等方面研究自动组合,并通过形式化方法验证组合系统的正确性[1]。目前被普遍使用的Web服务组合方法有以下几种[1,6]。

(1)基于BPEIAWS的Web服务组合

BPEL4WS(Business Process Execution Language for Web Services)简称BPEL,它是2002年IBM、微软和BEA公司提出一个基于工作流的Web服务组合描述语言[7]。BPEL4WS是基于工作流方法中的典型代表。它集WSFL和XLANG两者之长,形成了一种较为自然的描述商业活动的抽象高级语言。它的作用是将一组现有的服务整合起来.从而定义一个新的Web服务,它能够将Web服务调用、操作数据、抛出故障或终止一个流程等不同的活动连接起来,从而创造出复杂的流程,这些活动町以嵌套到结构化活动中,结构化活动定义了活动的运行方式和控制流程。

(2)基于语义的Web服务组合方法

面向语义的Web服务组合通过在Web服务中添加语义信息,明确表达Web服务的数据、功能和性能等,使机器能够自动理解并进行需要的操作,最终生成Web服务过程。目前面向语义的Web服务组合的主要成果是OWL-S(Ontology Web Language forServices,Web服务的本体语言),OWL-S是一个服务本体,使服务能够自动发现、调用、组合、互操作和执行监控。OWL-S建模的服务本体有三个部分:ServiceProfile、ServiceModel和ServiceGrounding。在OWL-S中,ServiceProfile和ServiceModel是服务的抽象表达,而ServiceGrounding涉及具体的规范。

表1 五种Web服务组合方法的比较

图1 Web服务组合架构[5]

(3)Web组件方法

Web组件方法将服务看成组件以支持基本的软件开发原则,比如重用、细化和扩展。主要思想是将复合的逻辑信息封装在一个定义中,一个类定义表示一个Web组件。Web组件的公共接口可以被发布,用于服务的发现和重用。Web组件方法支持一些基本的组合结构:顺序的、顺序可选的、结果同步的并行和并行可选的。它们以condition和while-do结构扩展。

(4)基于Petri网的Web服务组合方法

基于Petri网的Web服务组合是较为常用的一种形式化的Web服务组合方法。Petri网是一个强连通图,其节点分别称为库所和变迁,库所(place)描述系统状态:变迁(transition)描述系统活动。这些节点通过有向弧相连。它是将具体的服务组合描述语言与形式化模型进行映射,实现流程描述到形式化模型的转换,然后再进行验证。由于Web服务的行为基本上是操作的一个偏序集,所以可以直接将Web服务映射到一个Petri网上。但这种方法都依赖于具体的流程描述语言,所以难以在现实的企业环境中被推广。

(5)基于进程代数的Web服务组合方法

进程代数是用于描述和分析并发、异步、非确定和分布式等系统行为的,是对动态实体进行建模的正式语言,具有严密的形式化语义,因此被引入到WSC研究中[5]。其中支持通道名称传递的π演算由于适用于描述结构动态变化的并发系统,而成为进程代数在WSC研究中应用的代表。

基于π演算的Web服务组合是又一常用的形式化的Web服务组合方法。π演算是Robin Milner提出的以进程间的移动通信为研究重点的并发理论,它是对CCS(Caiculusof Communication System)的发展。其基本计算实体为名字和进程,进程之间的通信是过传递名字来完成。由于π演算不但可以传递CCS中的变量和值等,还可以传递通道名,并且将这几种实体都统称为名字,这使得π演算具有了建立新通道的能力,因此π演算可以用来描述结构不断变化的并发系统。

3.2 Web服务组合方法的比较

本文从连通性、非功能属性、组合正确性和组合可扩展性四个方面来比较上述提到的五种Web服务组合方法[5]。比较结果如表1所示。

(1)连通性

上述提到的五种Web服务组合方法都满足连通性的属性,连通性是进行Web服务组合的先决条件,可以说,这是进行Web服务组合应该满足的首要条件。

(2)非功能属性

非功能属性常被形容为Qos(Quarlity of Services,服务质量)。很多组合服务的方法忽略了非功能属性,致使在Web服务组合过程中无法衡量服务组合的安全性、可靠性、稳定性、代价和响应时间等。只有OWL-S组合方法允许用户定义一些非功能属性,但是这些定义还没有完全得到规范。

(3)组合正确性

组合的正确性取决于服务和组合规范。BPEL4WS和OWL-S没有提供检验正确性的方法。由于BPEl4WS侧重于处理执行而非规范,因此它没有提供一种形式化方法来验证组合方法的正确性。Web组件、Petri网、π演算都在不同程度上提供了组合正确性的验证手段。

(4)组合可扩展性

本文中提到的几种组合方法都可通过端口间的消息传递机制支持Web服务的连通性。然而,组合两个服务与组合十个甚至上百个服务的处理过程显然相差很大。而在很多的场合,服务的组合过程中,需要涉及到数量很多的服务进行交互。因此,如何衡量组合所包含的服务的数量,成为Web服务组合过程中的一个关键问题。

Web组件方法用类定义实现了良好的可扩展性,但是需要额外的时间用于类定义和XML之间的匹配和同步。在BPEL4WS组合方法中,随着服务个数的增多,XML文件就会变得越来越大,多服务组合显得有点冗长。OWL-S组合方法也有类似的问题。Petri网方法的可扩展性随着问题的复杂性而降低,因为Petri网不是一个可扩展的建模技术。π演算方法用功能强大的规约机制提供了简洁的符号表示,方便对复杂的服务进行规范。

4.结论

本文从Web服务组合概念、实现框架、典型方法这几方面来对Web服务组合对研究现状进行了综述。最后,从服务连通性、非功能属性、组合正确性和组合可扩展性四方面对Web服务组合方法进行了比较。可以看出,目前Web服务组合理论和技术研究还处于起步阶段,要真正实现Web服务的自动、高效的组合,真正将Web服务组合技术应用到实际中,还有很多关键问题需要解决,有待广大研究者在理论深度、技术多样性上做更为广泛、深入的研究探讨。

[1]苑庆涛,陈彦萍.Web服务组合方法研究综述[J].电脑知识与技术,2010.

[2]岳昆,王晓玲,周傲英.Web服务核心支撑技术:研究综述[J].软件学报,2004.

[3]胡海涛,李刚,韩燕波.一种面向业务用户的大粒度服务组合方法[J].计算机学报,2005,28(4):694-703.

[4]Eleymann D Roller,M T Schmidt.Web Services and Business Process Management IBM System Journal,2002.

[5]倪晚成,刘连臣,吴澄.Web服务组合方法综述[J].计算机工程,2008.

[6]Nikola Milanovic,Miroslaw Malek.Current Solutions for Web Services Composition[J].IEEE Internet Computing,2004:51-59.

[7]Dustdar S,Sehreiner W.A survey on web services composition[J].International Journal of Web and Grid Services,2005,1(1):1-30.

丁坚(1970—),男,江西南丰人,现供职于中国人民银行南昌中心支行,研究方向:软件工程。

猜你喜欢

正确性连通性组件
偏序集及其相关拓扑的连通性
中国自然保护地连通性的重要意义与关键议题
无人机智能巡检在光伏电站组件诊断中的应用
新型碎边剪刀盘组件
U盾外壳组件注塑模具设计
拟莫比乌斯映射与拟度量空间的连通性
一种基于系统稳定性和正确性的定位导航方法研究
浅谈如何提高水质检测结果准确性
高稳定被动群集车联网连通性研究
风起新一代光伏组件膜层:SSG纳米自清洁膜层