何为服务组合

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

服务组合综述

近年来,随着Web服务相关标准的持续完善和支持Web 服务的企业级软件平台的不断成熟,越来越多的稳定易用Web服务共享在网络上。然而单个Web服务的功能有限,难以满足实际应用中的多种多样的需求,因此为了更加充分地利用共享的Web服务,有必要将共享的Web服务组合起来,提供功能更为强大的服务。Web服务组合的研究正是在这种背景下被提出来,并吸引了工业界和学术界的广泛关注。

1. 基本概念

1.1 Web服务

Web 服务是基于网络的、分布式的、自描述的、模块化的组件, 它执行特定的任务, 遵循一定的技术规范, 提供了面向Internet应用的统一服务发布、发现、调用和合成机制。现在它已经成为广域环境下实现互操作的一种主要机制, 得到产业界和学术界的广泛认可。1.2 Web服务组合

由于目前尚未有统一的定义,不同的研究人员从不同的角度对Web 服务组合问题进行定义。我们对 Web服务组合提出一个更为通用和完整的定义:利用Internet上分布的现有Web服务,根据用户的应用需求,把相对简单的服务按照一定的逻辑方式组合起来,从而组合成更强大、更完整的服务的过程。Web服务组合可以利用较小的、较简单的、且易于执行的轻量级服务来创建功能更为丰富、更易于用户定制的复杂服务,从而能够将松散耦合的、分散在Internet上的各类相关 Web服务有机地组织成一个更为可用的系统,支持企业内、外部的企业应用集成和电子商务等网络应用。

Web 服务组合方法从组合方案生成方式来分有两大类:静态组合和动态组合。静态组合意味着请求者应在组合计划实施前就创建一个抽象的过程模型。抽象的过程模型包括任务的集合以及任务间的数据依赖关系, 每个任务包含一个查询的子句, 用来查找完成任务的真正的Web 服务。而动态组合不仅自动地选择、绑定Web 服务, 同时更重要的是自动地创建过程模型。

2. Web服务相关技术

Web服务的主要思想,就是未来的应用将由一组应用了网络的服务组合而成,只要求两个等同的服务使用统一标准和方法描述自己;Web服务另外一个重要的思想就是:所有东西

都是服务,这些服务发布一个API(application programming interface)供网络中的其它服务使用,并且封装了实现细节。Web服务的体系结构如下图所示。

从上图看出,在Web服务的体系结构中共有3种角色:

(1)Service provider:服务提供者,负责向服务代理发布自己提供的Web服务,并且对使用自身服务的请求进行响应,它是Web服务的实际执行者;

(2)Service broker:服务代理,负责Web服务的注册和对外发布功能,并对已注册的服务进行分类和查找;

(3)Service requester:服务请求者,利用Service broker提供的服务查找功能,得到所需的服务信息,然后调用Service provider提供的服务。

在这些角色之间进行的操作有:

(1)publish:使Service provider可以向Service broker注册自己提供的Web服务的功能描述信息及访问接口;

(2)find:使Service requester可以通过Service broker查找满足要求的服务;

(3)bind:使Service requester能够真正调用Serviceprovider提供的服务。

为支持上述3种操作,首先需要对服务进行一定的描述。Web服务描述语言WSDL(web service description language)就是用人和机器能阅读的方式提供的一种描述语言,用于描述Web服务的功能,地址信息,以及函数,参数和返回值。

UDDI(universal description,discovery and integration)可以支持对服务的组织和查找,它是一套基于Web的、分布式的、为Web服务提供的信息注册中心的实现标准规范。

SOAP(Simple Object Access Protocol)提供了标准的远程调用来访问Web服务,它完全继承了XML的开放性和描述的可扩展性。

总之Web服务体系中使用了一系列标准和协议来实现相关功能。使用WSDL来描述服务,使用UDDI来发布、查找服务,使用SOAP来调用服务。

3. 国内外研究现状

简单来说,Web服务组合就是把相对简单的服务按照一定的逻辑方式组合起来,从而组合成更强大、更完整的服务的过程。当今主要的Web服务组合方法有:基于流程的Web服务组合,基于AI规划的Web服务组合,基于形式化方法的Web服务组合等。

3. 1 基于流程的Web服务组合

基于流程的Web服务组合主要是从功能执行和数据控制的角度来进行组合,它有两种方

式:编制和编排。编制需要一个总过程来控制所涉及到的Web服务,并协调Web服务不同操作

的执行。所涉及到的Web服务并不知道它们是组合服务过程的一部分,只有中央的控制过程

知道它们是如何组织和协调。相比之下编排并不依赖中央的总控制过程,其中涉及到的每个

b服务都知道何时执行自己的操作,以及与谁交互。编排方式集中在消息的交换,所有的编

排参与者都需要知道业务流程,要执行的操作,要交互的消息以及交换消息的时机。

其中BPEL4WS(Business Process Execution Language for Web Services ,Web服务的商

业流程执行语言)是专为组合Web服务而制定的一项标准的流程语言。BPEL4WS的作用是将一

组现有的服务组合起来,从而定义一个新的Web服务。它能够将Web服务调用、操作数据、抛

出故障或终止一个流程等不同的活动连接起来, 从而创造出复杂的流程,这些活动可以嵌套

到结构化活动中,结构化活动定义了活动的运行方式和控制流程。

3. 2 基于AI规划的Web 服务组合

OWL-S的出现为基于AI规划的组合方法提供了可能,将Web服务看成AI中的动作, 通过

输入输出参数、前提和结果等来描述Web服务。并且只要将Web服务的这些描述映射为动作

形式化描述, 在Web服务空间中以构造Web服务组合为目标,根据形式化验证后的模型,动

态的选择服务。基于AI的规划方法包括情景演算规划法、层次任务网规划法和基于规则的

规划法。

3.2.1 情景演算

情景演算是一种用一阶谓词逻辑描述变化的世界的方法,是描述状态变化和动态推理的

形式化方法,其目的是提供一种逻辑语言为活动建模。它假定世界的变化都是由动作产生,

在一个情景执行特定的动作将达到另外一个情景。

McIlraith于2002年提出了一个形式化的方法,将服务组合问题转换为一个满足目标属性

要求的程序执行问题,通过提供高层次的通用进程和自定义的用户约束来说明Web服务组合

问题,使用Golog来表示和推理。Golog是一种建立在情景演算基础之上的逻辑编程语言, 适

相关文档
最新文档