论文部分内容阅读
在计算机网络技术和分布式数据库技术迅速发展,多机协同工作技术日臻成熟的基础上,工作流产生并迅速发展起来。工作流将应用逻辑和过程逻辑分离 ,对生产经营过程或全部过程集成管理 ,有效地把人、信息和应用工具合理地组织在一起,支持企业实现对经营管理、生产组织的过程控制和决策支持,提高软件的重用率 ,发挥系统的最大效能。本文的研究内容来源于机械部第九设计院协同设计管理系统。结合实际应用的要求,依据工作流管理联盟的工作流规范,作者提出了一种分布式工作流系统架构,即基于J2EE的分布式多引擎工作流系统(J2EE-Based Distributed Multi-Engine Workflow System,以下简称DMEWf系统)。整个系统模型由过程模型、组织模型和资源模型三部分组成。过程模型是以流程定义图来描述过程,它由节点和有向边组成,其中,节点包括简单节点和复合节点,有向边包含路由选择信息。组织模型是以动态组织、静态组织、角色、权限、用户组成的有较高灵活性的模型。资源模型中利用重用性、共享性、动态性将资源分为八个各自独立的空间。整个系统由总控引擎、领域引擎、组织管理器和资源管理器、监控工具、工作表管理器等EJB组件构成,它们分布在不同的计算机上,而且多个工作流引擎是分布执行的。DMEWf系统的特点包括:(1)较强的过程描述能力;(2)易用性好;(3) 灵活性高;(4)系统扩容方便;(5)应用开发方面的高度灵活性;(6)具有较好的可移植性。在上面提出的DMEWf系统体系结构的基础之上,应用面向对象方法、使用统一建模语言工具Together和JAVA语言的IDE环境Eclipse,设计实现了DMEWf系统中工作流领域引擎的基本功能。DMEWf系统是一个基于J2EE的分布式多引擎工作流系统系统,工作流领域引擎除了要完成一般工作流引擎的功能外,还要实现领域引擎之间的通信和数据传送,分布式处理任务等。在设计领域引擎时,将其分解为引擎本身、服务管理器、各类实体仓库、以及流程运行器等几个部分。引擎本身用于本领域内所有流程定义、实例的操作以及与外部的接口。服务管理器主要用于管理各类实体仓库。实体仓库主要用于管理相应的实体类,如定义仓库对流程定义的增删查操作,实例仓库负责流程运行过程中的过程实例、活动实例等的创建、改变和查询。流程运行器是当流程实例运行时,对相应流程实例的调度管<WP=83>理器,每个流程运行器与一个流程实例相对应。DMEWf领域引擎的详细设计和实现基本达到了预期的目的,说明分布式多引擎工作流系统的整体框架是可行的、完整的,具有较高的实用性,可以保证系统的稳定性和分布特性。在工作流管理系统中,表达式求值器是非常必要的,因为路由的条件计算,工作流变量的定义和求值等都会使用到它。根据系统的功能需求,定义了一套表达式的描述形式,给出了相应的EBNF范式,用Java语言实现了表达式抽象语法树的生成,并用后序遍历方法求得相应表达式的值。正文中给出了相应的类图和该表达式求值器中用到的控制结构。该表达式求值器的设计和实现,使得DMEWf系统变得更加完整。通过对工作流长事务处理方面的研究,参考经典事务模型和多个高级事务模型,将Sagas模型进行扩展,提出了一种扩展事务模型-多层Saga事务模型(Multi-Level Saga Transaction Model)。该模型将一个流程看作一个全局事务,每个全局事务根据其特性可以分为多个局部事务,以此类推,每个局部事务最终可以分解为符合ACID特性的原子事务。对于每个流程定义,我们可以构造出一个全局事务定义图。当流程实例化并执行后,将产生相应的全局事务执行图。在执行过程中,可以动态指定安全点。当需要回滚时,根据上面产生的执行图动态生成补偿图,进行事务补偿操作,直到遇到安全点。如果出现异常,将由事务异常管理器进行处理。综上所述,本文提出了一个基于J2EE的分布式多引擎工作流系统的体系结构,实现了这个系统中主要部件-领域引擎的基本功能,定义了一个表达式的语法描述形式,并用JAVA语言实现了相应的抽象语法树构造器和求值器。同时,对Sagas事务模型进行扩展,提出了多层Saga事务模型。由于时间不足,DMEWf系统还不完整,MLST模型尚不成熟,作者将会在后续工作中对其进行改进和完善。