(计算机科学与技术专业论文)工作流管理系统中的事务处理.pdf_第1页
(计算机科学与技术专业论文)工作流管理系统中的事务处理.pdf_第2页
(计算机科学与技术专业论文)工作流管理系统中的事务处理.pdf_第3页
(计算机科学与技术专业论文)工作流管理系统中的事务处理.pdf_第4页
(计算机科学与技术专业论文)工作流管理系统中的事务处理.pdf_第5页
已阅读5页,还剩61页未读 继续免费阅读

(计算机科学与技术专业论文)工作流管理系统中的事务处理.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

国防科学技术大学研究生院学位论文 摘要 工作流管理系统在实现业务流程自动化和企业应用集成等方面有着广泛的应用。由 于工作流管理系统大多运行在异构、自治、分布的复杂环境中,其自身的正确性和可靠 性成为制约整个应用软件系统成败的一个关键因素。在工作流管理系统中对事务处理提 供支持就是保证系统正确性和可靠性的一个重要方法。 本文从实际出发分析了工作流事务的特性,并与现有的事务模型进行对比分析。概 述了工作流事务的研究现状,从而明确了工作流管理系统中事务处理的特点和难点,以 此为基础提出了具有良好事务处理能力的工作流事务模型i n t e l l i f l o w 事务模型。该 模型赋予工作流事务以语义属性,形式化地定义了具有不同语义属性的各种事务,增加 了事务处理的灵活性。i n t e l l i f l o w 事务模型包括原子事务、子事务和长事务三种事务, 有效地解决了人工任务问题,允许业务人员灵活地指定事务的边界。本文给出了工作流 事务需要满足的松弛事务特性,提出分界点的概念实现了长事务的部分补偿。基于为摹 务赋予的不同语义属性,提出了一组事务失败处理模式对失败进行灵活有效的恢复。针 对工作流异常的特点,设计了一个多层的、可扩展的异常模型。 在上述研究的基础上,我们设计实现了i n t e l l i f l o w 事务模型,在过程建模阶段提供 了对子事务和长事务进行定义的支持,并实现了长事务的处理。 关键词:工作流,事务,长事务,补偿,恢复,工作流管理系统 国防科学技术大学研究生院学位论文 a b s t p a c t w t m s ( w o r k f l o wm a n a g e m e n ts y s t e m ) i sa p p l i e dw i d e l y i nt h ed o m a i no f i m p l e m e n t i n gb u s i n e s sp r o c e s s e sa u t o m a t i o na n de n t e r p r i s ea p p l i c a t i o ni n t e g r a t i o n w f m s o f t e nr u n si nh e t e r o g e n e o u s ,a u t o n o m o u sa n dd i s t r i b u t e de n v i r o n m e n t s t h e r e f o r e ,t h e c o r r e c t n e s sa n dr e l i a b i l i t yo fw f m si so fc r i t i c a li m p o r t a n c et ow o r k f l o ws y s t e ma n db e c o m e s o n eo ft h em o s tc a u s e so ft h es u c c e s so rf a i l u r eo ft h ee n t i r ea p p l i c a t i o n s ot h ew o r k f l o w s y s t e ms h o u l dh a v eg o o da b i l i t yo fs u p p o r t i n gt r a n s a c t i o nt oe n s u r et h es y s t e m sc o r r e c t n e s s a n dr e l i a b i l i t y i nt h ep a p e rt h er e s e a r c ho ft r a n s a c t i o ni nw f m sa n dt r a n s a c t i o nh a n d l i n gi se s t a b l i s h e d o np r a c t i c e s w ea n a l y z et h ed i f f e r e n c eb e t w e e nt h et r a n s a c t i o ni nw t m sa n dt h ee x i s t i n g t r a n s a c t i o n b a s e do nt h ea n a l y s i sw ep o i n to u tw h a t sm em o s ti m p o r t a n ta n dd i f f i c u l ti nt h e t r a n s a c t i o ni nw t m s i n t e l l i f l o wi st h ew f m sm o d e lw i t ht r a n s a c t i o n a lf e a t u r et h a tw e p r o p o s e t om a k ew f m ss u p p o r tt r a n s a c t i o np r o c e s sw e l l ,i ni n t e l l i f t o w , w eg i v et h e c o n c e p t i o no f t r a n s a c t i o ns e m a n t i c s ,c l a s s i f i e st h et r a n s a c t i o nm o r ea c c o r d i n gt ot h es e m a n t i c s c h a r a c t e r ,s ot h eu s e rc a nd e a lw i t hd i f f e r e n tt r a n s a c t i o n sw i t hc o r r e s p o n d i n gw a yf l e x i b l y t h e m o d e lc l a s s i f i e st h et r a n s a c t i o nt ot h r e ec a t e g o r i e s :a t o m i c - t r a n s a c t i o n ,s u b - t r a n s a c t i o n ,l o n g t r a n s a c t i o n ,w h i c hc a l ls o l v et h em a n u a lt a s km o r ee f f i c i e n t l ya n dt h eb u s i n e s s m a nc a nd e f i n e t h eb o r d e ro ft r a n s a c t i o nf l e x i b l yt os a t i s f yt h ee n t e r p r i s e sd e m a n do ft r a n s a c t i o ns u p p o r t i n t e l l i f l o wl o o s et h en e e do fa t o m i c i t y , c o n s i s t e n c y ,i s o l a t i o n r e q u i r e db yt r a d i t i o n a l t r a n s a c t i o nm o d e la n dp r o p o s et h e c o n c e p to f d e m a r c a t i o np o i n tt o i m p l e m e n tp a r t c o m p e n s a t i o n b a s e do nt h et r a n s a c t i o ns e m a n t i c s ,w ea l s op r e s e n ta s e r i e so fw a yo fd e a l i n g w i t hl o n gt r a n s a c t i o n sf a i l u r e t h e r ei sam u l t i t i r e sa n de x t e n d a b l ee x c e p t i o nm o d e lf o r w o r k f i o we x c e p t i o nt oe n s u r et h ew o r k f l o w sr e l i a b i l i t ya n dr o b u s t n e s s a c c o r d i n gt oo u rr e s e a r c h ,w ed e v e l o pa n di m p l e m e n ti n t e l l i f l o wt r a n s a c t i o nm o d e l i n t h em o d e l ,w ec a r ld e s c r i b et h et r a n s a c t i o ns e m a n t i c sa n dd e f i n el o n gt r a n s a c t i o na tb u i l d - t i m e a b o v ea l l ,w ef o c u so nt h el o n gt r a n s a c t i o n sd e f i n i n g ,m a n a g i n g ,i m p l e m e n t a t i o n k e y w o r d s :w o r k f l o wt r a n s a c t i o n ,l o n gt r a n s a c t i o n ,c o m p e n s a t i o n ,r e c o v e r y ,w o r k f l o w m a n a g e m e n ts y s t e m i i 国防科学技术大学研究生院学位论文 图1 1w f m c 的工作流参考模型 图2 1a c t a 框架 图3 1i n t e l l i f l o w 工作流模型 图3 2 几种不同类型任务的状态图 图3 3 事务的部分补偿 图3 - 4t 。撤销后可选择的事务操作 图4 1 工作流异常的层次分类 图4 2 工作流运行时期异常 图4 3i n t e l l i f l o w 异常模型 图4 - 4i n t e l l i f l o w 恢复框架 图目录 图5 1 运行服务系统的功能结构 图5 2 工作流引擎体系结构 图5 。3 事务管理器内部结构 图5 - 4 长事务设置界面 图5 5 定义事务语义的用户界面 图5 - 6 与事务管理相关的类图 图5 7 开始长事务 图5 8 事务失败时的回滚过程 图5 - 9 长事务的提交过程 图5 1 0 事务回滚的详细处理过程 1 2 18 1 9 2 6 2 9 j j ,3 4 ,3 5 3 8 4 4 、4 5 。4 6 ,4 9 5 0 5 l 5 2 5 3 5 3 5 4 独创性声明 本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得 的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含 其他人已经发表和撰写过的研究成果,也不包含为获得国防科学技术大学或其它 教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示谢意。 学位论文题目:王焦煎篮堡歪统生曲皇签越堡 学位论文作者签名:旌扯巍日期:2 一j 咩7 二月? o 日 学位论文版权使用授权书 本人完全了解国防科学技术大学有关保留使用学位论文的规定。本人授权 国防科学技术大学可以保留并向国家有关部1 或机构送交论文的复印件和电子 文档,允许论文被查阅和借阅:可以将学位论文的全部或部分内容编入有关数据 库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密学位论文在解密后适用本授权书。) 学位论文题目:王笠速篮堡歪缝主曲室盘矬翌 学位论文作者签名 作者指导教师签名 谭丛举 日期:血p 牛年n 月氕) 日 日期:2 毕年上月知日 国防科学技术大学研究生院学位论文 第一章绪论 1 1 课题背景 随着计算机技术的飞速发展和计算机网络的大面积普及,企业信息化建设逐步深入, 企业内部以及企业内部与外部建立起越来越多的业务应用系统。如何整合企业现有的i t 资源,以业务过程为中心进行应用系统的集成,最大程度地发挥各种资源的效益,提高 业务各环节间的响应速度,降低企业成本,正逐渐成为企业关注的重要问题。为了适应 外界环境的迅速变化,保持竞争优势,企业需要按照业务规则,把这些应用系统集成起 来,充分利用已有的资源,不断调整自己的组织模式和再造自己的业务流程。业务流程 的设计、优化和管理成为企业竞争的重要手段。业务过程管理b p m ( b u s i n e s sp r o c e s s m a n a g e m e n t ) 可以用来实现企业过程的灵活集成,将流程逻辑和实现该流程的应用相分 离,管理过程参与者之间的关系,并监控过程的运行。 工作流技术就是实现企业业务过程重组、业务过程优化、企业应用集成,从而最终 实现b p m 的核心技术。工作流的概念起源于生产组织和办公自动化领域,它通过将工 作分解成任务,并按照一定的业务规则执行,同时对任务执行情况提供有效的监控和管 理机制,以此来提高生产效率,降低生产成本,从而改善企业的生产经营管理。 企业的需求为工作流技术的应用提供了广阔的市场前景。因此,工作流技术的应用 范围不断拓展,目前,已经成功地运用到制造业、银行、医院、保险公司等多种行业和 部门。工作流技术巨大的潜在市场和广阔的应用领域吸引了全世界众多研究机构和软件 厂商的关注。国内外许多大学和研究机构开展了很多工作流的研究项目,并取得了众多 研究成果,对工作流技术的发展做出了积极的贡献。 目前市场上比较成熟的工作流产品就有2 0 0 多种,其中具有代表性的产品有:清华 大学研究开发的用于计算机集成制造的工作流管理系统c i m f i o w 【l 】、i b m 公司开发的 基于持久消息队列的分布式工作流管理系统e x o t i c a f m q m 2 和佐治亚大学计算机系丌 发的基于分布式主动数据库技术的工作流管理系统w i d e 3 1 。但是,目前尚没有一种工 作流产品或原型系统能够在过程执行的可靠性与致性方面达到与关系数据库管理系统 相当的水平。而随着网络技术的发展,工作流系统多运行在分布、异构的环境中,在许 多情况下,工作流系统自身运行的正确性和可靠性成为制约整个应用成败的一个关键囡 素。为了增强工作流系统的可靠性和在实际环境中的可用性,我们需要在工作流系统中 加入新的特性,良好的事务处理能力便是必需的特性之一。 事务的概念来自于数据库领域,主要是为了提高数据库的错误恢复能力和系统的可 靠性。目前在事务处理领域已经形成了并发控制、死锁预防、出错恢复等一系列机制和 第1 页 国防科学技术大学研究生院学位论文 方法,这为在分布式应用环境下编制具有高可靠性的大规模复杂系统奠定了基础。 但是,由于工作流运行环境和操作的复杂性,大多数工作流事务具有复杂和运行时 间长的特点,因此工作流的事务要比数据库中的事务复杂得多。高级事务模型( a t m , a d v a n c e dt r a n s a c t i o nm o d e l ) 1 虽然是为了解决长事务问题而提出的,但a t m 难以描 述工作流的复杂控制结构,它所提供的特征只是工作流系统所需特征的个子集。 良好的事务处理是保证工作流系统可靠执行的一个重要前提,对工作流事务的研究 具有十分熏要的理论意义和应用价值。 1 2 1 工作流管理系统概述 1 2 相关领域概述 工作流管理联盟w f m c ( w o r k f l o wm a n a g e m e n tc o a l i t i o n ) 给出的工作流定义【4 】是: “工作流是一类能够完全或者部分自动执行的业务过程,它根据一系列过程规则,使文 档、信息或任务能够在不同的执行者之间进行传递与执行”。 i b ma l m a d e n 研究中心对工作流进行了更具体的描述1 5 j :“工作流是业务过程的一种 计算机化的表示模型,定义了完成整个过程所需要的各种参数。这些参数包括对过程中 每一个步骤的定义、步骤间的执行顺序、条件以及数据流的建立、每一个步骤由谁负责 以及每个活动所需要的应用程序”。 工作流管理系统w f m s ( w o r k f l o wm a n a g e m e n ts y s t e m ) 就是在某种计算机表示的流 程逻辑的驱动下,完整地定义、管理和执行工作流的软件系统。w f m c 制定的工作流参考 模型定义了w f m s 的公共模型,是我们开展研究工作的基础。 建立 j 功能 图卜1w f m c 的工作流参考模型 篱2 弧 国防科学技术大学研究生院学位论文 现有的众多w f m s ,在运行环境和所适用领域上各有不同,但是所有的w f m s 都表现 出一些共同的特点,这些特点形成了w f m s 的基础结构。所有w f m s 都支持三个功能: 建立时功能:对业务流程进行定义,生成计算机可处理的过程定义; 运行时过程实例化及控制功能:负责创建和执行过程实例,定制工作流中每一 步的活动实例,激活相应资源和应用程序,通知任务参与人员等: 同用户及应用的交互功能:负责同具体的参与人员和应用交互。 根据这三个功能,一个w f m s 可划分为以下五大部件:过程定义工具、工作流运行服 务、客户应用、被调用的应用和构件以及管理监控工具。这些部件和部件间交互所使用 的接口构成了w f m c 的工作流参考模型,如图卜1 所示。 下面我们对该参考模型中各个部件的功能和部件间的接口进行说明。 过程定义工具其主要功能是为用户提供一种对实际业务流程进行分析和建 模的手段,并生成可被计算机识别和处理的业务流程的描述。接口( 工作流 过程定义读写接口) 定义了过程定义工具与工作流运行服务之间的标准交互格 式和a p i 调用 6 1 。 工作流运行服务为工作流的执行提供运行环境,解释并激活过程定义,控 制过程实例的执行过程,添加任务到用户的任务列表以及在必要时激活应用或 调用应用工具。工作流运行服务是w f m s 的控制中心,又称工作流核心服务。一 个工作流运行服务包含一个或多个工作流引擎,工作流引擎为流程实例提供运 行环境,并解释和执行流程实例。 客户应用在过程实例运行过程中给流程的参与者提供种人工参与任务的 手段,通过该部件,流程的参与者可以执行w f m s 为其分配的任务。 被调用的应用和构件指工作流运行服务在过程实例运行过程中调用的应用 程序和构件。可以通过接口三( 调用应用程序接口) 调用不同的应用系统。目 前该接口还有待深入研究,较常用的是在数据处理时如何方便、无缝地激活第 三方应用,如m i c r o s o f tw o r d 或邮件服务等【”。 管理监控工具主要是对组织机构、角色等数据进行维护管理,并对过程实 例的状态进行管理监控。管理人员可以通过该工具了解业务执行情况或干预流 程的执行。它通过接口五( 管理及监控接口) 与工作流运行服务进行交互。 下面介绍这些部件和接口是如何协同工作完成w f m s 的功能的。首先,流程设计人员 使用过程定义工具将业务流程定义成计算机可以识别的过程定义。工作流运行服务通过 接口一得到这些定义,由工作流引擎解释过程定义,创建过程实例并决定哪些任务可以 执行;在实例的执行过程中,工作流引擎负责定制活动的执行顺序,把任务和相关信息 发送给参与者,并在必要时激活应用或构件。同时,工作流运行服务也可通过接口四, 利用其他的工作流运行服务执行某些子流程。另一方面,管理人员通过接口五使用管理 第3 页 国防科学技术大学研究生院学位论文 监控工具与工作流运行服务进行交互,监控整个流程的执行过程,随时做出报告或反应, 如停止某一不恰当的过程实例。最后,对于每个任务参与者,可以通过接口二获取自己 的任务表单,完成其中的任务。直至流程的目标完成,该过程实例结束其生命周期。 1 2 2 事务处理橛述 事务主要用于解决数据的并发访问和出错恢复问题。所谓事务是指一组逻辑操作单 元,这些操作要么全部执行成功,要么一个也不执行。目前在事务处理领域已经形成了 死锁预防、出错恢复等一系列机制和方法,这为在分布式应用环境下编制具有高可靠性 的大规模复杂系统奠定了基础。 经典事务主要解决数据库中的数据一致性问题,它必须遵循严格的原予性、一致性、 隔离性和持久性,但这些特性不适合长时间执行的事务。如果继续使用经典事务模型, 就会因为长时间等待造成死锁、响应速度慢和执行效率低等问题。为了解决长时间执行 事务的问题,人们提出了a t m 。但是,a t m 对组织、角色、规则等业务方面的描述能 力很弱,而工作流过程却需要这些业务层信息。虽然不能把a t m 当作工作流系统建模 和执行的基础,但a t m 提出的一些思想,例如放宽事务特性,以及关于并发访问控制 和失败恢复的思想,却可以应用到工作流的事务处理中。 由于工作流事务涉及到许多对象,有复杂的控制逻辑,执行时间比较长,还要解决 组织方面和业务方面的异常问题,这使得工作流的事务处理异常复杂。虽然目前对工作 流事务的研究已取得了一定的进展,但是工作流事务处理仍存在许多问题没有很好地解 决,例如长时间执行的事务的处理、人工任务的处理问题等。 1 3 工作流事务处理的需求和研究意义 1 3 1 工作流事务处理的需求 尽管工作流技术从最初萌芽发展到现在已经有了很大进步,完成的业务功能越来越 丰富,但该技术仍不成熟。在今天的异构、分布的复杂环境中,w f m s 面对并发操作与操 作失败等情况缺乏保证正确性与可靠性的能力【8 1 9 1 1 1 0 1 【“1 1 1 2 】,主要表现为:对异构、分布 式计算框架支持的不足;没有明确定义的正确性标准:对并发工作流间的协同工作支持 不足,尤其是在系统出现异常时,系统的可靠性无法保证【l 引。 工作流系统的可靠性仍有待提高,目前尚没有一种工作流产品或原型系统能够在过 程执行的可靠性与一致性方面达到与关系数据库管理系统相当的水平。现有的w f m s 在实 际应用中仍很难达到用户所提出的在大业务量下保证系统高可靠性与数据无差错性的要 第4 页 国防科学技术大学研究生院学位论文 求【l ”。在许多情况下,w f m s 自身的可靠性成为制约工作流应用的瓶颈,而缺乏充分的事 务支持是引起w f m s 可靠性问题的主要原因之一。对事务处理的支持与实际的可靠性需求 相差较远,导致w f m s 在满足业务需求、处理长时间执行的事务、工作流数据的一致性、 异常处理等方面存在很多问题,使工作流技术的应用受到限制,尤其是在明确要求事务 性的应用中【1 5 】。 下面对工作流事务管理需要解决的问题进行详细讨论: 在实际的业务过程中,许多环节的执行存在一定的关联性,要求这些环节或者都 执行或者都不执行,即它们的执行必须满足原子性。例如,在电子政务联合审批 系统中的执照申请审批的业务过程中,假设要求公安局审批环节与消防审批环节 具有原子性,亦即公安局审批环节若失败则要求系统回退到消防审批环节开始前 的状态。如果工作流系统不能保证这种原子性,就需要从业务层面保证这种原子 性,从而给二次开发带来很大的难度和工作量。 工作流事务的持续时间通常比较长,主要有以下两个方面的原因:工作流事务 经常涉及到终端用户和外部应用程序的参与,而人的响应时间比计算机慢得多。 所以一旦人介入到事务中,事务的持续时间就会比较长。随着企业内部、企业 间的业务相关性不断提高,事务中的环节数量相应增加,使得事务的执行时间也 随之变长。对长时间执行的事务来说,如何进行资源分配和处理运行的中间结果 是非常重要的。 工作流执行环境的分布性;异构性等特点给工作流的事务处理带来新的特性和复 杂性。w f m s 需要事务使系统处于一致状态,但由于工作流中的运行时j l 自j 通常很 长,使得w f m s 中的事务所提供的隔离性等事务特性必须根据应用语义在不同级 别上放宽。例如,某零售商与供货方在地理位置上相距很远,当批货正在运输 过程中时,如果客户在线查看库存清单,会发现零售商没有他要购买的货物,这 种隔离性就会使零售商丢失不该丢失的订单。因此,工作流中的隔离性等事务特 性的实现要根据应用语义采取特殊的处理方法。 由于工作流系统的外界环境复杂多变,工作流实例的执行过程必然会出现各种异 常情况,由此导致工作流数据的不一致,这些不一致的数据可能涵盖了工作流运 行时的全部数据空间一工作流控制数据( 表示过程实例、任务实例的状态信 息) 、工作流相关数据( 与业务相关的数据,w f m s 根据这些数据确定过程实例 状态转移的条件) 和工作流应用数据( 具体的应用数据) 。对于工作流控制数据, 工作流过程实例和任务实例的状态数据可能会不致;对于工作流相关数据,工 作流参与者可能会使用过时的数据或文档;而对于工作流应用数据,外部数据源 可能会读出写入错误的数据。因此,必须采用有效措施来保护工作流数据的一 致性,以提高工作流系统运行时的可靠性,增强异常处理的能力【1 4 。 第5 负 国防科学技术大学研究生院学位论文 在工作流建立时期,建模人员在建立过程模型时会尽量考虑到流程运行时可能出 现的异常,并在流程中加以处理,但要考虑到业务过程执行时的所有异常是不可 能的。在发生不可预测的异常时,没有事务处理能力的工作流系统将无法很好的 处理这些异常,导致严重的系统异常。事务处理可以对不可预见的异常进行处理, 提高系统的可靠性, 目前,工作流模型般不具备失败处理与恢复的语义,通常依靠管理人员的人工干 预来实现,这使工作流很难应用到对事务和系统可靠性要求较高的场景中;而事务模型 则在自身的定义中重点对该方面的问题提出了相应的解决方法。工作流模型正好需要引 入一定的事务处理能力,以提高工作流系统的健壮性。 所以,必须在w f m s 中引入事务的概念并提供灵活的事务处理方法。没有良好的事务 处理能力,w f m s 就不可能真正走向成熟。 1 3 2 工作流事务的研究意义 缺乏对事务处理的支持严重阻碍了工作流技术的推广。工作流事务是当前工作流技 术亟待解决的首要问题之一,对工作流事务的研究具有十分重要的理论意义和应用价值。 在工作流管理系统中引入事务处理,是保证系统可靠执行的前提之一。良好的 事务处理可以推动工作流技术的迅速发展和广泛应用。反之,若没有事务支持, 就难以保证系统的安全性和稳定性,从而限制工作流的应用范围,阻碍工作流 技术的推广。 工作流事务可以为系统提供良好的并发控制和异常处理能力,使工作流系统具 有更好的健壮性和稳定性。 本文对工作流事务问题进行了有价值的探索。我们在工作流管理系统中引入了事务 处理的机制,增强了工作流系统的安全性。 1 4 本文的研究内容 目前,对w f m s 中的事务的研究主要有两种方法: 以工作流模型为基础,引入事务特性,使工作流模型支持事务处理。 对a t m 进行扩展,把扩展后的模型应用到工作流系统中,使工作流系统具有事 务处理的特性。 但目前a t m 还不能与工作流模型很好地整合【1 ,将a t m 应用到工作流中会使工作流 中的事务处理受到a t m 表达能力等方面的限制,所以本文采用第一种方法。该方法的优 势体现在:事务特性可以灵活定制,不依赖某种特定的事务模型而且工作流模型可以 独立扩展。随之带来的塑墼墨增加了建模难度但通过提供支持事务处理的图形化建校 鸽6 页 国防科学技术大学研究生院学位论文 工具可在一定程度上解决此问题。 本文分析了工作流事务与经典事务、a t m 中事务的不同,由此总结出工作流事务处 理的特点和难点,并提出了一个具有良好事务特别是长事务( 参见3 3 ,l 节中长事务的 定义) 处理能力的事务模型i n t e l l i f l o w 事务模型。 根据事务的语义属性将事务分成可重做子事务、可选择子事务、可补偿予事务和关 键子事务,在事务失败时可以根据不同的属性进行不同的处理,使事务处理更有针对性。 用户可以在建模工具中为事务指定语义属性和相应的处理方法。 不是所有的事务都可以补偿。对于不可补偿的事务增加一个确认机制,提醒用户在 提交此类任务之前仔细检查提交的数据是否出错,一旦事务失败只能撤销该事务所在的 整个流程,再由人工干预处理。 该事务模型包括三种事务类型:原子事务、子事务和长事务。系统希望在失败后能 够恢复到失败前最近的一致性状态,为此,我们提出了分界点的概念实现长事务的部分 补偿。在建模时用户可以在子事务的开始处指定分界点。作为补偿的终点和重新执行的 起点。 在工作流中引入事务的一个主要目的就是尽可能地保证系统在异常情况下的可靠执 行,由于工作流的运行环境具有h a d ( h e t e r o g e n e o u sa u t o n o m o u sd i s t r i b u t e d ,异构 的、自治的、分布的) 特点,使得工作流的异常情况多种多样。本文提出个可扩展的 层次异常模型,针对不同的异常类型,提出了不同的处理方法。 1 5 论文结构 本文是对我们研究和实现工作的总结,全文共分为六章: 第一章为绪论部分,介绍了w f m s 和事务处理这两个领域的相关内容,分析了w f m s 中事务处理的需求和研究意义,给出了本文的研究内容。 第二章首先从实际出发总结了工作流事务的特点,然后分析了工作流事务与经典事 务、高级事务模型中事务的不同之处,在对工作流事务现状进行研究的基础上,指出了 工作流管理系统中事务处理的难点。 第三章详细介绍了i n t e l l i f l o w 事务模型。该章首先给出了工作流事务处理的功能 需求,然后介绍了支持事务处理的i n t e l l i f l o w 工作流模型的主要组件,讲述了模型中 的事务类型、使用的松弛事务特性,形式化地描述了事务的补偿过程和具有不同语义属 性的各种事务,给出了一组长事务的失败处理策略。 第四章给出了事务中的异常处理模型和恢复框架。我们针对不同的异常类型,提出 了不同的处理方法。 第五章描述了i n t e l l i f l o w 模型中事务处理机制的设计和实现。详细介绍了事务处 第71 i f 国防科学技术大学研究生院学位论文 理模块的结构、事务的管理、实现和失败处理策略。 第六章是结束语,对全文工作进行了总结并展望了进一步的工作。 第8 页 国防科学技术大学研究生院学位论文 第二章工作流事务的研究 本章首先从实际出发总结了工作流事务处理的特点,然后将工作流事务与经典事务、 高级事务模型中的事务进行比较。在对工作流事务现状进行研究的基础上,分析了工作 流事务处理的难点。 2 1 工作流事务处理的特点 由于工作流系统本身结构复杂,组成模块众多,各模块之间的通信情况复杂,并且 经常有外部应用程序或终端用户参与工作流过程的执行,使得工作流的事务处理不同于 数据库中的事务处理,它具有以下特点: 工作流事务应该能够管理系统中各种不同性质的任务,如非事务性任务( 任务 的执行实体没有事务处理的能力,例如字处理系统) 和遗留系统中的任务等。 工作流事务的持续时间长。因为工作流任务经常涉及到人和外部应用程序的参 与,而人的响应时间比计算机慢得多,再加上工作流任务有时还是跨系统、跨 组织机构的,所以工作流事务的持续时间比较长。 工作流事务需要暴露未提交的数据。长时间运行的事务显示给用户的数据是未 提交的数据,比如多个用户合作一个设计,他们可能需要在整个事务提交之前 交换数据。 由于工作流事务涉及到许多对象,有复杂的控制逻辑,执行时间比较长,若遵 循经典事务的a c i d 特性,就不能及时地释放事务占有的资源,从而造成死锁问 题,严重影响系统的性能。工作流系统应该定义各种事务需要满足的事务特性。 2 2 工作流事务与经典事务的比较 事务的概念来自于数据库领域,用于解决数据的并发访问和出错恢复问题。所谓事 务是指一组逻辑操作单元,这些操作要么全部执行成功,要么一个也不执行。 事务与普通程序操作的最大区别在于它具有的事务特性,简称a c i d 特性【l ”。事务 具有的四个特性是: 原子性( a t o m i c i t y ) :关于一个事务的所有操作必须当成一个原子单元,即或 者所有的操作都成功执行,或者一个也不执行。 致性( c o n s i s t e n c y ) :事务的执行结果必须是使数据库从一个一致性状态转 换到另一个一致性状态。当事务执行失败时,所有被该事务影响的数据都应该 恢复到事务执行前的状态。 第9 负 国防科学技术大学研究生院学位论文 隔离性( i s o l a t i o n ) :个事务的执行不能被其他事务干扰。即一个事务内部 的操作及使用的数据对其他事务是隔离的,并发执行的各个事务之间不能互相 干扰。 持久性( d u r a b i l i t y ) :事务在提交之后,对数据的操作结果不会丢失,将持 久保留。 事务特性的提出主要是为了提高数据库的出错恢复能力和数据库系统的可靠饿。目 前在事务处理领域已经形成了并发控制,死锁预防,出错恢复等一系列机制和方法,这 为在分布式应用环境下编制具有高可靠性的大规模复杂系统奠定了基础。 因为工作流可以看成是一系列的有序操作的集合,所以工作流也可以被当作事务进 行处理,只不过这些操作的对象并不仅仅局限于数据库中的数据。由于工作流的运行环 境具有更广的分布性和更多的异构性,工作流事务操作复杂,运行时问长,因此工作流 的事务处理要比数据库中的事务处理复杂得多。工作流事务与经典事务存在很大不同: 数据库中的事务和事务处理系统中的事务都旨在保护数据的一致性,并在发生 异常时保证数据的可靠性。经典事务模型主要是对数据库中的事务进行处理, 以数据库为中心是它的主要特点。而工作流中的活动可能是事务性的( 活动执 行实体具有事务处理能力,比如数据库中的操作) ,也可能是非事务性的,所以 工作流中的事务处理的对象更加复杂。 经典事务的执行时间一般比较短,而工作流事务的执行时间相对比较长,涉及 到许多对象和复杂的控制逻辑。如果继续使用经典的事务模型,就会引起以下 问题: 夺经典事务在提交之前锁定资源,其他需要该资源的事务必须长时间等待,严 重影响了系统的执行性能。 夺如果长事务是线性结构,出现一个异常就会撤销整个事务,这样的恢复代价 非常昂贵。如果异常发生时事务的绝大多数工作都已经完成,这时撤销整个 事务对系统造成的损失将会更加严重。 夺经典事务中的隔离性要求,不同事务并发执行时不能相互干扰,也就无法进 行信息交换。然而对于工作流中的协同活动来说,不同的事务之问往往存在 依赖关系,需要互相交换信息才能共同完成活动。 因此,工作流的事务处理应该比经典事务具有更高的灵活性。 2 3 工作流事务与高级事务模型的比较 经典事务无法满足长时间执行事务的要求,a t m 1 l 就是为了解决长事务问题丽提出 的,通过从不同程度上放宽经典事务对a c i d 特性的要求,在保证系统正确性和一致性 国防科学技术大学研究生院学位论文 的同时,使系统具有更好的可用性。 2 , 3 1 高级事务模型 在现有的支持事务处理的工作流系统中,大部分系统的事务处理模型都是通过a t m 扩展而来的。本节将对现有的一些高级事务模型进行介绍和分析。 嵌套事务模型 事务模型发展中一个很重要的改进就是由单层的扁平结构扩展为多层结构。嵌套事 务模型【l 副把一个事务分解为多个子事务,每个子事务又可分解为更细的子事务,从而形 成一棵“事务树”。子事务只有在其父事务开始后才可以开始,而父事务只有在所有的子 事务全部结束时才能结束。若父事务取消,则所有的子事务必须取消,包括已经提交的 子事务也必须撤销。 子事务的引入使嵌套事务在事务内部具有更灵活的失败处理粒度和更高的并发性, 减少了处理的响应时间。但是子事务的结果只有在它的所有父事务成功提交之后才对外 可见,仍遵循经典事务的隔离性,很难满足多用户合作时需要交换未提交数据的要求。 s a g a s s a g a s i l 由h g a r c i a m o l i n a 等人提出用于解决与长事务相关的问题。该模型的基本 思想是允许事务在全部提交之前释放所占用的某些资源( 数据) ,这对长事务很有意义, 不仅大大提高了资源的利用率,也增强了系统的事务处理能力。一个长事务称为一个 “s a g a ”,它由一个预先定义好执行顺序的子事务集合和个相对应的补偿子事务集合 组成。任意子事务都具有a c i d 特性以保证数据库的一致性。一旦子事务完成,通过释 放锁定,它的操作结果对其它事务而言就是可见的。只有当所有子事务顺序提交后,一 个s a g a 才算被成功完成;如果其中的某个子事务执行失败,那么系统将通过执行补偿事 务来撤销失败的子事务和它前面的已经提交的全部子事务的操作结果。 该模型还存在补偿事务死锁等问题,只适用于事务可补偿的情况。此外它并没有全 部实现,但是它的思想可以应用到工作流的事务处理中。 a c t a a c t a 2 0 】是一个开放的综合性事务框架,不仅可以对已有的事务模型进行形式化描 述与推理,还可阻通过对属性的修改和综合来建立新的事务模型,是丌发新型事务模型 国防科学技术大学研究生院学位论文 的有力工具。a c t a 由两部分组成,如图2 - 1 所示。 a c t a 人 搴务方面 事务间的 依赖关系 对象方面 | 个 事务视图密务冲突集代理 图2 一la c t a 框架 在事务方面,主要是事务间的依赖关系这些依赖关系通过重要事件进行定义。 比如,提交依赖被表示为( t jc dt i ) ,即如果事务t j 与t i 都要提交,则t i 必须先 于t j 提交。 在对象方面,主要包括事务视图、事务冲突和代理三个部分:事务视图定义了 某一时刻对事务可见的对象状态;事务冲突集包括了正在进行中的可能产生冲 突的操作;代理主要用来定义事务间职责的移交( 通常情况下,发起操作的事 务将负责提交或者终止该事务,但在某些情况下,发起操作与提交或退出操作 不是由同一个事务来完成,这就发生了职责的转移) 。 但a c t a 没有提供访问控制的解决方法,而且定义一个事务使之具有某些属性并且 确保执行历史遵循这些特性是比较困难的,这些不足限制了它的应用范围。 柔性事务 柔性事务模型2 1 l 是专门为多数据库环境中的应用提出的。柔性事务提供可选的执行 路径,如果一个子事务失败,则执行另一个可选的子事务,子事务成功提交或者可选子 事务成功提交,柔性事务就成功提交。柔性事务使用补偿放松了对隔离性的要求,并允 许事务设计者定义可接受的状态来结束柔性事务。 2 3 2 工作流事务与高级事务模型中的事务的比较 传统的观点认为,具有事务特性的工作流就是有a t m 支持的工作流。其中,a t m 提供正确性和可靠性保证,活动被映射为a t m 中的事务,控制流被定义为事务性活动 之间的依赖关系。但由于工作流运行环境的多样性和自身的复杂性,工作流中的许多复 杂控制结构( 相关内容在3 2 1 节中介绍) 不能用a t m 描述,工作流中的事务远远超出 第1 2 撕 国防科学技术大学研究生院学位论文 了a t m 中的事务概念,这使得a t m 的概念不能直接运用到工作流管理系统中。工作流 中的事务和a t m 中的事务有以下区别: 工作流过程的实现需要业务层的概念,比如组织、角色和规则等等。虽然a t m 提出了事务处理的些技术,但没有考虑业务方面的问题,在这些方面的表达能 力很弱。 虽然a t m 从不同层次不同方面解决了长事务的问题,但在执行结构定义上有很 大局限性。a t m 仍然以是以数据库为中心,这使得a t m 的使用具有很大局限性, 而工作流以过程为中心,a t m 提供的特征只是工作流系统所需特征的一个子集。 虽然不能把a t m 当作工作流系统建模和执行的基础,但a t m 提出的一些思想,如 关于放宽事务特性、异常恢复等方面的思想,却可以借鉴用于工作流的事务处理中。 2 4 工作流管理系统中事务处理的现状 由于a t m 在长事务的处理方面仍有很多的局限性,人们的研究范围由专门的数据 库事务扩展到了工作流事务。本节将介绍现有的技术比较成熟的一些工作流事务模型和 产品。 2 4 1 事务模型 c o n t r a c t s 2 纠和事务工作流【2 纠是两个典型的从工作流出发研究工作流事务处理的事 务模型,它们的提出促进了工作流事务处理技术的迅速发展。 c o n t r a c t s c o n t r a c t s 模型是a n d r e a sr e u t e r 等人在c o n t r a c t s 研究项目中提出的。c o n t r a c t s 项目的研究范围不仅仅限于数据库,还拓展到了工作流管理的领域,这是一个很大的进 步,因为此前对事务的研究并未真正把工作流作为研究对象。研究人员详细分析了工作 流的用户需求,并在此基础上定义了一种高级数据模型,提出了一种高级并发控制机制。 一个“c o n t r a c t ”可以理解为个过程,由一系列定义好的步骤( s t e f ) 按照一定的 控制流脚本( s c r i p t ) 执行。在c o n t r a c t 脚本中,包含了对c o n t r a c t 局部变量的声明, 这些变量构成了c o n t r a c t s 的数据模型上下文的基本元素,汜录c o n t r a c t 中每一步 骤的提交情况。 为避免全局的隔离性,过程中的某些操作结果在过程执行时就已经对外可见, c o n t r a c t s 模型引入了补偿机制来撤销已经执行的步骤产生的结果。c o n t r a c t s 用谓词

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论