Web服务组合综述

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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 for Services,Web服务的本体语言),OWL—S是一个服务本体,使服务能够自动发现、调用、组合、互操作和执行监控。

OWL—S建模的服务本体有三个部分:ServiceProfile、ServiceModel和ServiceGrounding。

在OWL—S 中,ServiceProfile和ServiceModel是服务的抽象表达,而ServiceGrounding涉及具体的规范。

(3)Web组件方法
Web组件方法将服务看成组件以支持基本的软件开发原则,比如重用、细化和扩展。

主要思想是将复合的逻辑信息封装在一个定义中,一个类定义表示一个Web组件。

Web组件的公共接口可以被发布,用于服务的发现和重用。

Web组件方法支持一些基本的组合结构:顺序的、顺序可选的、结果同步的并行和并行可选的。

它们以condition和while—do结构扩展。

相关文档
最新文档