论文部分内容阅读
面向服务的软件架构已逐渐成为软件领域的一种重要设计模式,本文所研究的是其中的一个核心问题—组合Web服务。Web服务作为当前服务的主流实现形式,得到了广泛的关注。但由于可用Web服务功能相对单一,而用户的需求是复杂而且多变的,如果存在一种机制能够便捷地将可用Web服务组合起来,满足用户个性化的需求,无疑对软件行业是一个很大地促进。为此,研究者和系统设计人员从不同角度研究组合Web服务问题。工业界从最基本的Web服务标准开始,推出Web服务组合编制语言和标准,并开发了组合Web服务引擎支持组合Web服务的执行;学术界则从服务的建模、语义、自动组合和形式化验证等方面做了不少探索性的工作。然而,就目前已有的成果而言,还远未达到人们预期的自动化合成组合Web服务的目标。工业界的标准和产品虽然详尽和实用,但是需要程序设计人员人为地定义组合流程,绑定可用Web服务。学术界提出的一些基于工作流、人工智能、语义Web的方法有较高的灵活性,但是没有严格的功能方面的保证,且组合Web服务不能重用。而从形式化角度进行的组合Web服务分析和验证则条件过于严格,因而在实用性方面仍显不足。
为解决以上问题,本文以Web服务描述为基础,对组合Web服务的自动化合成问题以及组合Web服务的实现进行了深入地探讨。首先提出了一个由消息驱动的Web服务行为模型,该模型能够有效地表述Web服务的功能性语义,并支持组合Web服务的复用。同时给出了组合Web服务自动合成规则和实现方法,并证明了其完整性和正确性。此外,针对用户需求的多变性,进一步提出了面向需求变化的组合Web服务合成技术。最后设计了一个基于移动agent的分布式组合Web服务代理系统用于实现组合Web服务。本文的主要工作包括以下几个方面:
(1)新型的Web服务描述模型
针对当前Web服务描述中存在的问题,提出了一种新型的Web服务描述模型Moap。Moap着眼于表达有状态的Web服务,是一个基于Petri网的Web服务描述模型,能够有效地表述组合Web服务的流程逻辑,支持服务模块的并发执行,支持组合Web服务的复用。另外,根据Petri网的特性,Moap模型表现出了Web服务构架中的消息驱动行为的基本特征,因此能够有效地描述组合Web服务的控制流和信息流。
(2)组合Web服务的自动化合成技术在Moap的基础上,提出了一种组合Web服务自动化合成技术,并证明了该方法的正确性和完整性。遵循该规则进行服务组合,如果能够实现服务组合,那么该组合过程必然是正确的;而如果使用该方法不能实现组合Web服务,即目标组合Web服务中有部分行为无法指派给可用服务来完成,或者当目标服务行为都已经完成,而有部分参与的可用服务并没有达到终止状态,那么不可能在现有的可用服务中找到一组服务来完成组合Web服务。
(3)面向需求变化的组合Web服务合成技术
用户提出的目标服务在某些情况下并不完全同可用服务匹配,在自动化服务组合技术的基础上,提出了灵活的服务合成机制:(i)在服务组合过程中,系统对用户的需求进行精化;(ii)自动处理目标需求中增加的行为约束;(iii)对于用户提出的不完全的目标服务,自动生成完整的组合服务过程;(v)服务请求中加入用户约束,在组合服务执行过程中不需要再次同用户交互,提高了效率。
(4)基于移动agent的组合Web服务代理系统
研究了组合Web服务的实现,提出了一种基于移动agent的组合Web服务代理系统的设计mobiWSC。mobiWSC利用了移动agent来执行组合Web服务,这是一种分布式的服务实现过程。移动agent是服务实现过程中的控制实体,在移动过程中控制整个组合Web服务的执行,因此组合Web服务系统可以从服务执行中脱离出来:移动agent携带程序和数据到目标主机调用服务可以减少数据的传输量,提高响应速度;移动agent的克隆可以有效支持组合服务多个分支的并行执行,提高整个服务执行的性能。