论文部分内容阅读
工作流引擎的设计和构造是工作流应用开发领域的核心问题。工作流引擎首先必须是一个工作流运算系统,才可能成为工作流服务的提供者,而“工作流运算模型”则是实现这种运算能力的基础。工作流运算模型是一种不同于工作流定义模型的专用模型,必须具备形式化的语义、确定的运算行为和完整的表达能力。但是纵观现有的工作流建模方法,不论是在学术界占主导地位的Petri-Net及其衍生方法,还是工业界流行的各种典型工作流建模方法(EPC、XPDL、BPEL、JPDL),都不能完全满足工作流运算的要求。本文的总体思路是围绕“构建一种语义精确、计算行为确定、表达能力完整的工作流运算模型”的研究目标,在对工作流模式的形式化分析基础上,通过对Petri-Net的语义、元素、行为、结构进行扩展,构造一种新的工作流运算模型——WE-Net(工作流执行网,Workflow Execution Net)。本文的研究内容主要包括以下三个方面:1.构建了一个以“规则运算”和“事件交互”为特征的工作流基本概念体系该体系完整地涵盖了概念、实例、组件、行为等关键方面,并具有内在的一致性,为后续的研究提供了统一的概念模型和基本假设。2.完成了对“过程流转模式”与“任务执行模式”的形式化分析及定义这些分析和定义使现有的“以直观为特征的、经验式的工作流模式集合”被抽象提升为“统一的、形式化的工作流模式体系”,是对当前的工作流模式理论的进一步发展。过程流转模式的研究对象是多个任务之间的衔接关系和单个任务的实例化规律。本文对“分支”、“汇聚”、“多实例”这三种基本模式进行了原理性的分析并给出了形式化的定义。提出用控制矩阵的方式来描述“分支”的本质特征;指出了“汇聚”模式复杂性的根源在于汇聚前提在逻辑上的多态性、以及在时序上的随机性和过裕可能性,汇聚运算的本质是对“可到达的随机汇聚事件时序”的处理;对于“多实例”模式则从业务目标和实例产生方式这两个角度剖析了多实例的本质。任务执行模式的研究对象是在任务执行过程当中工作流引擎与资源之间的交互行为。本文从交互的观点出发,提出了工作流引擎与资源之间“以任务为中心的交互”模型,将任务执行问题解耦为两个相对独立的子领域:任务分配问题、和任务执行状态变迁问题,避免了现有工作流资源模式研究在问题空间划分上的含混。然后,通过分层的工作项状态模型,以一种可扩展的方式实现了对任务执行状态变迁问题的建模。最后,对工作流任务分配问题进行了结构化的分解和剖析,标识了15种模式,归纳为三个类别:分配过程控制模式、候选资源定义模式、最终分配策略模式。并在这些模式基础上,对工作流任务分配规则给出了形式化的定义。3.构造了一种新的工作流运算模型WE-Net通过对Petri-Net的扩展和模式的运用,在运算原理层面彻底地描述和实现了复杂的汇聚模式、多实例模式、工作流实例的运行控制、工作流任务分配、以及过程嵌套。从而达到了“使WE-Net具备精确的语义、确定的计算行为和完整的表达能力”的研究目标。WE-Net对Petri-Net的扩展主要涉及到三个层次:首先是通过对基本元素的语义转换(Condition、Action、Edge)派生和约束,构造语义精确的、响应式的工作流运算模型;其次是通过定义Action激发算法和动态推算Condition可到达性算法,来支持复杂的汇聚模式;最后是通过子网扩展,建立与工作流运行时对象(过程实例、任务实例、工作项)的完整概念映射,从而在运算原理的层面彻底地描述和实现了过程嵌套、多实例、工作流实例的运行状态控制、工作流任务分配等四类模式。本文最后介绍了以WE-Net理论为基础自行开发的工作流引擎OpenJet,并通过四组工作流建模示例展示和验证了OpenJet/WE-Net的表达和运算能力,包括:对工作流实例的执行状态控制、对经典工作流模式的支持、运行时WE-Net之间的动态演化和层次关联、以及对复杂业务过程的描述和运算能力。