论文部分内容阅读
工作流技术是近年来发展最为迅速的几项新技术之一。它是实现企业业务自动化的核心技术,也为协调复杂业务过程活动提供了有效的方法。工作流管理系统是开发和执行工作流的工具和平台,主要应用于实现业务流程自动化和基于层面的企业应用集成。为了在工作流管理系统运行过程中保证数据的一致性、正确性和可靠性,必须使工作流管理系统具有事务处理的能力。因此,工作流管理系统中的事务处理逐渐成为近年来研究的热点之一。为了更好地描述工作流的事务特性和解决工作流的事务处理问题,人们提出了许多高级事务模型,包括嵌套事务模型、分支/汇合事务模型、Sagas模型、柔性事务模型、ACTA等。此外,还出现了专门针对工作流的事务模型Contracts和事务工作流。Sagas模型是由普林斯顿大学的H.Garcia-Molina等人提出用于解决长事务问题的一种模型。由于这种模型允许事务在全部提交之前释放某些占用资源,大大提高了资源的利用率,并且也加强了系统的事务处理能力而受到广泛关注。本文对Sagas模型做了详细分析,指出在按照Sagas模型定义的流程执行时存在着三个缺陷,第一是当任意一个子事务出现异常时,就需要撤销全部已提交的事务;第二是当长事务完成补偿事务后会退出,而不是选择更有效的执行手段;第三是该模型只支持所有子事务的补偿子事务都存在的情况。针对这三个缺陷,在Sagas模型中增加一致点的概念来保存尽可能多的已完成任务,增加失败处理模式使模型在发生异常后能够更智能化地自动恢复,同时引入补偿服务的概念解决了补偿子事务不存在的问题。在此基础上,建立了改进的Sagas事务模型。本文以成熟的Java和关系数据库技术为基础,对改进模型进行了详细的设计,定义了在关系数据库中长事务和子事务的保存方式,并且对事务管理器进行了详细的分析和设计。该模型在镇江给排水系统中得到了应用,本文以系统中的合同管理模块中的合同变更处理流程为例,对模型的应用效果进行了分析,证明该模型是可用并且有效的。