● 摘要
随着互联网应用的日益普及,Web服务已成为互联网松耦合环境下解决异构应用之间互操作和集成的主流技术。然而单个的Web服务功能有限,为了能发挥Web服务的潜力,需要把独立的Web服务组合起来,实现企业内部和企业之间的业务流程自动化,同时兼顾用户多样化、个性化的需求。本文研究并实现了一种基于Web服务的轻量级工作流引擎,为BPEL4WS(Business Process Execution Language for Web Services)语言的运行和管理提供了基础支持。本文从Web服务工作流的应用需求和技术特点入手,分析了当前主流的Web 服务工作流引擎的功能特性以及存在的共性问题,明确工作流引擎的设计目标;接着讨论了Web服务工作流的关键技术和应用模式,从而进一步加深对Web服务工作流技术的理解;然后设计了基于堆栈解释执行BPEL语言的算法,提出了层次化的体系结构,描述了引擎的工作原理;进而详细介绍了引擎核心模块和运行机制的实现;最后对引擎的功能实现情况和实际运行能力进行了对比分析和测试。本文所设计的轻量级工作流引擎具有如下的特点:1. 工作流引擎采用独立运行架构,不需要服务器的支持即可运行。此外,引擎采用层次化的处理结构,按照“底层通信+工具集+工作流机”的原则将引擎划分为三个大的层次,使问题的解决约束在不同的层次,保持各个部分的相对独立,也增强了引擎的扩展性;2. 引擎能够同时处理大量流程实例。引擎在运行时,为每一个流程实例分配一个单独的线程;同时,为了解决多线程机制中系统状态难以维护的问题,在对每个流程实例的具体执行方式上,采用基于堆栈的解释执行算法,通过控制堆栈的弹栈与入栈操作,以此控制流程实例的运行状态;3. 引擎具有完善的流程实例生命周期管理,支持Web服务的同步和异步调用。流程实例具有持久化机制,可以有效的解决Web服务异步调用时流程实例长时间占用系统资源的问题;4. 引擎支持WS-Reliability1.1 协议,为调用Web服务时的消息传递过程提供了可靠性保障。5. 引擎能够作为组件内置到建模工具中,使其具备调试流程模型的功能,增加了流程模型的准确性。