何为服务组合
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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是一种建立在情景演算基础之上的逻辑编程语言, 适
用于机器人和工业过程的高级控制,智能软件Agent编程和任务规划。
它利用情景演算的推理机制将复杂行为分解为一组可执行的原子动作序列,然后通过外部执行器逐步该动作序列中的各原子动作序列。
3. 2. 2 层次任务网规划法
Hierarchical Task Network(HTN) Planning利用OWL-S作为Web服务的描述语言, 通过任务分解的方法来组建组合服务。
与其他规划方法不同的是, HTN的核心不是状态, 而是任务。
一个基于HTN的规划系统将目标任务分解为子任务的集合, 这些子任务再分解成更小的子任务,一直循环这个过,直到所有的子任务仅包含原子Web服务,即现有的Web服务。
在每一轮任务的分解过程中, 都会检验是否违反给定的条件(如子任务数不能超过一定数目) 。
如果目标任务在不违反任何给定的条件下, 能够被成功分解成原子任务集, 则规划问题成功求解。
3. 2. 3 Rule-based规划
Medjahed提出了一种从高层次声明描述产生组合服务的技术, 这一方法使用组合规则来决定两个服务是否可以组合。
Sword就是利用基于规则服务组合方法的一个组合服务的开发工具集。
它不依赖于服务描述标准如WSDL、SOAP、UDDI和DAML-S,它使用ER图对Web服务建模。
它将一个Web服务表示成一个Hom规则,代表如果前提为真,结果可以达到。
创建组合服务时,请求者只需要指定组合服务的初始和最终状态,就可以通过一个基于规则的专家系统,来判断使用现有的服务是否能够实现所需的服务组合,并产生相应的组合方案,经确认后形成执行的组合服务表示。
3. 3 基于形式化方法的Web服务组合
形式化方法提供了以系统的方式,描述、开发和验证系统的框架结构,能够帮助发现系统描述的不一致,不明确或不完整,因此成为了提高软件系统的安全性与可靠性的重要手段。
在服务组合领域,对形式化方法研究的主要目标是在服务组合的规划阶段,对组合的方案进行检查,解决对服务目标的可达性验证、调用过程中的死锁检查、流程的正确性检验等问题。
在Web服务组合的应用中,利用不同的形式化方法,可以得到不同的解决方案。
比较有代表的形式化方法是Petri网方法。
Petri网具有异步、并发的特点,在执行、分析和检验服务组合方面,是目前研究者使用较多的工具。
具体说来,基于Petri网的Web服务建模研究集中于:服务组合的形式化表述(库所表达服务状态,变迁表示服务活动),服务组合的逻辑关系(如顺序、并行、选择、循环、合并、分支等),服务组合建立和执行的算法,可表示组合服务
内部及输入、输出数据类型的有色Petri网模型。
研究也包括利用Petri网的数学理论支持和分析工具,如可达图、标识树、不变量等,对建立好模型的面向服务软件系统仿真、分析和验证。
4. 总结和展望
Web服务组合是Web服务研究领域中的一个重要的研究分支,具有重要的理论意义和实用价值。
利用与平台无关的Web服务应用能够将商业智能功能整合到企业应用程序当中,在海量的组合方案中,能快速灵活地为用户选择出满足用户需求的服务组合方案。
Web服务的一个主要思想就是未来的应用将由一组应用了网络的服务组合而成。
如何基于语义准确地发现Web服务、如何准确产生满足应用需求及相应约束的组合方案, 如何对Web服务组合方案进行评估、优化, 以及监控Web服务组合的执行和相应的容错处理都是Web服务组合领域有待深入研究的问题。
随着Web服务研究的深入,以及Web服务应用的日益推广,我们相信服务组合技术将会在不久的将来被广泛应用于电子商务、企业应用集成,将成为企业业务服务增值的重要的途径。