文档介绍:上海交通大学
硕士学位论文
分布式工作流事务处理建模与设计
姓名:严刚
申请学位级别:硕士
专业:计算机软件与理论
指导教师:陈英
20081201
分布式工作流事务处理建模与设计
摘要
工作流技术是近年来发展最为迅速的几项新技术之一。它是实现企业业务自动化的
核心技术,也为协调复杂业务过程活动提供了有效的方法。工作流管理系统是开发和执
行工作流的工具和平台,主要应用于实现业务流程自动化和基于层面的企业应用集成。
为了在工作流管理系统运行过程中保证数据的一致性、正确性和可靠性,必须使工
作流管理系统具有事务处理的能力。因此,工作流管理系统中的事务处理逐渐成为近年
来研究的热点之一。为了更好地描述工作流的事务特性和解决工作流的事务处理问题,
人们提出了许多事务模型,包括传奇事务模型、柔性事务模型、Contract 事务模型、ACTA
事务模型等等。
Sagas 模型是由普林斯顿大学的 Molina 等人提出用于解决长事务问题的
一种模型。由于这种模型允许事务在全部提交之前释放某些占用资源,大大提高了资源
的利用率,并且也加强了系统的事务处理能力而受到广泛关注。
本文对 Sagas 模型做了详细分析,指出在按照 Sagas 模型定义的流程执行时存在着
三个致命缺陷,第一是 Sagas 模型强制要求每个子事务有对应的补偿事务,而在复杂的
工作流中,不存在补偿事务的子事务十分普遍;第二是当一个子事务失败时,必须回滚
之前的所有子事务,这个要求对于工作流事务而言显然过于严格和低效;第三是当复杂
工作流中出现多个事务实例同时运行时,Sagas 模型不仅不能很好的支持并发执行,而
且会产生由不可补偿事务引起的循环冲突问题,使工作流死锁并且无法从死锁中恢复。
针对 Sagas 模型的缺陷,提出了一种改进的 Sagas 事务工作流模型,对子事务属性进行
了分类并通过构造子事务间的关联关系使得可补偿子事务失败时无需强制所有子事务
失败;引入补偿服务完善了工作流模型的语义;给出了基于事务实例锁集和后继子事务
类型集的多事务多实例并发运行算法。该模型解决了 Sagas 模型存在的问题。
本文以成熟的 Java 和关系数据库技术为基础,对改进模型进行了详细的设计,定义
了在关系数据库中长事务和子事务的保存方式,并且对事务管理器进行了详细的分析和
设计。该模型在 X 市给排水系统中得到了应用,本文以系统中的合同管理模块中的合同
变更处理流程为例,对模型的应用效果进行了分析,证明该模型是可用并且有效的。
关键词:工作流,Sagas 事务模型,事务属性,可补偿事务,并发控制
I
Modeling and Design of Workflow based Transaction in
Distributed Environment
ABSTRACT
In recent years, workflow is one of the most rapidly developing technologies. It is the
core technology to implement business automation, and also an effective technique to
coordinate plex business process. Workflow management system(WFMS) is the tool
and platform to develop and implement workflow. It is mainly used to achieve business
process automation and enterprise application integration.
To ensure the consistency, validity and reliability of the data of WFMS while operating,
WFMS must have the ability of process transactions. Accordingly, transaction processing is
one of the focuses in WFMS research. In order to describe the characteristics of transactions
and solve the problem of transaction processing in work