论文部分内容阅读
面向服务的计算成为Internet开放环境下构建应用和解决方案的一种重要计算范型。在面向服务的计算环境下,分布在Internet上的各类资源都可以封装成Web服务的形式,并以统一的接口规范对外发布。通过把这些相对简单且功能单一的Web服务按照特定的过程(也称工作流)组合起来构建新的服务是实现资源集成的有效方式。BPEL是支持这种服务组合的主流工业标准。由于Web服务组合运行于开放的Internet计算平台下,为了能够在运行时刻有效地响应用户需求和运行环境的变化,它应该具备动态更新的能力。然而,目前业界对Web服务组合的动态更新关注不足,尤其是对基于BPEL的Web服务组合的动态更新支持难以满足要求。 相对于通常的离线修改,Web服务组合动态更新面临的挑战是如何将过程模型的变化及时、有效地传播到正在运行的服务组合实例上。这里的难点在于保证更新后的实例能够合理地继续运行。针对这个问题,本文的主要工作总结如下: 1.提出了一个过程实例迁移的基本框架。该框架除了支持用户指定原状态-目标状态的过程实例迁移外,还能依据过程实例迁移有效性准则和过程更新的具体模式,自动判定当前实例状态的可迁移性并决定合适的目标状态。与现有工作相比,本文提出的方法针对性更强,同时综合考虑了过程的控制流和数据流,在保证过程实例迁移有效性的前提下,允许更多的过程实例迁移到变化后的过程模型下执行。 2.设计并实现了一个支持动态更新的BPEL过程引擎系统。该系统基于业界广泛使用的开源的工作流引擎——JBoss jBPM平台,在支持对BPEL过程模型表达的动态修改的同时,对源模型下正在运行的过程实例进行了妥善处理,让其中符合可迁移性准则的过程实例迁移到新模型下执行。 3.为了说明本文提出的过程实例迁移技术的可行性与有效性,我们设计了一个支持动态更新的旅行代理服务组合作为应用案例,演示了用户如何定制过程实例迁移的策略以及不同策略下过程实例迁移的效果。