论文部分内容阅读
Internet正从一个主要用于信息共享与交换的网络演变成为一种各类资源共享与集成的平台,服务计算正是顺应这一趋势而发展起来的计算风范。在服务计算应用开发模式下,Web服务组合是实现资源集成的有效方式,现已逐渐成为软件技术研究关注的热点。由于Web服务组合运行在开放的Internet计算平台下,为了在运行时刻有效地响应用户需求与运行环境的变化,它应该具有动态演化的能力。然而,目前有关Web服务和服务组合的标准、方法和技术还不足以完全支持这方面的要求。Web服务组合的动态演化还面临着许多技术挑战,具体表现为:(1)在服务组合静态演化方面,如何保证在演化过程中不破坏服务组合过程的正确性尤其是数据流正确性;(2)在服务组聚动态演化方面,如何在运行时刻对服务组聚的过程定义进行修改,使得过程定义的变化可动态地传播到正在运行中的服务组聚实例上;(3)在服务合组动态演化方面,如何在没有中心控制的前提下有效协同各个相关服务组聚的动态演化以实现服务合组的动态演化。针对上述问题,本文主要工作如下:1.分析了Web服务组合动态演化的技术要求,提出了一条基于过程感知技术的Web服务组合动态演化途径;以此技术途径为基础,提出了一个统一的Web服务组合动态演化概念框架。该框架不仅可以支持不同范围内(服务组聚和服务合组)的服务组合动态演化,还支持不同层次上(过程定义层和过程实例层)的服务组合动态演化。2.研究了Web服务组合(组聚和合组)静态演化时的数据流正确性保持问题,并提出了一些演化操作及其使用原则以协助软件开发人员正确地修改服务组合。这种方法的特点在于:首先,在判断演化操作是否影响Web服务组合过程的数据流正确性时,该方法仅对可能遭受影响的部分进行检查,这是一种增殖式的检查方式;此外,当演化操作影响到Web服务组合过程的数据流正确性时,该方法向软件开发人员提供了进一步的演化操作以消除这些问题,这是一种correctness-by-construction的方法。3.提出了一种基于柔性实例迁移技术的服务组聚动态演化方法,使得服务组聚过程定义的变化可动态地传播到正在运行中的服务组聚实例上。具体而言,首先给出了服务组聚实例迁移有效性的定义,然后提出一个满足服务组聚实例迁移有效性实例可迁移性准则,最后给出了该可迁移性准则的算法实现。与现有可迁移性判定方法相比,该方法具有更好的柔性,在保证服务组聚实例迁移有效性的前提下,它允许将更多的服务组聚实例迁移到演化后的服务组聚过程下恢复执行。4.针对基于合组的Web服务组合开发方法的特点,提出了一种基于服务组聚协同演化的服务合组动态演化方法。该方法具体实现为一个服务合组演化协议,该协议可以有效支持服务合组的传播、服务组聚的协同动态演化(服务组聚实例的协同迁移)。在该方法中,为保证服务合组演化的“事务性”,服务合组能够动态演化当且仅当所有受其变化影响的服务组聚可以同时动态演化。5.设计并部分实现了一个Web服务组合动态演化支撑系统。该系统基于广泛采用的JBossjBPM平台,提供了图形用户界面,可支持服务组合的开发和运行。我们对现有平台的功能进行了扩充,使得该系统能够支持服务组合的静态演化以及单个服务组聚的动态演化以及多个服务组聚之间的协同动态演化。另一方面,为说明上述Web服务组合动态演化技术的可行性与有效性,我们基于所实现的Web服务组合动态演化支撑系统,设计了一个可支持动态演化的旅行代理服务组合作为应用案例。