




已阅读5页,还剩44页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 工作流管理系统是近年来随着i n t e m e t l l n l r a n e t 的急剧推广而快速发展的软件系统之 一。该系统的主要目标是通过调用有关信息资源与人力资源来协调业务流程中的各个环节 使之按照一定的顺序依次进行,从而实现业务流程的自动化。虽然国内外虽然已经有了很多 t 作流管理系统的产品,但是它们大部分不能有效的处理1 :作流中的异常情况,极大的降低 了工作流管理系统的工作效率。然而,随着企业规模的扩大、业务过程的复杂化、市场需求 的快速变化、: 作流模型越来越复杂,迫切需要增强工作流管理系统的灵活性、可用性和容 错性。工作流异常处理便是其中所需的重要技术之一。 本文对工作流管理系统中的异常处理的研究现状进行了初步的研究分析。在基于事务的 工作流模型的基础上,对异常处理概念、各种异常处理策略等内容给出了较为完整的形式化 描述。并提出了一套系统化的异常处理策略,能够有效地解决 作流管理系统中可预测的和 不可预测的异常情况。对于可预测的异常,在e c a 规则模型的基础上,本文抽象并提出了一 种将对事件的监测管理与条r l 二的匹配管理统一起来的h c a 规则模型。对于不可预测的异常, 本文提出了一种层次式的失效恢复算法。该方法允许事务性或者非事务性子过程同时存在, 将工作流看作由嵌套结构的子过程组成,基于执行历史而不是工作流定义进行补偿。该算法 针对活动的恢复策略进行层次式的向上规约处理,动态确定补偿终止点,可有效减小补偿域。 随后,本文简要的论述了一个具有异常处理能力的工作流管理系统的实现,主要包括 工作流定义: 具的实现、工作流模型的存取以及跟异常处理相关的几个模块。最后,本文 对相关t 作进行论述,分析了一些创新点,并对未来的工作进行展望。 关键词:工作流,事务,异常处理,规则,层次式,回滚与补偿 a b s t r a c t w i t ht h er a p i de x p a n s i o no fi n t e r n e ta n di n t r a n e t ,s o m ek i n d so fs o f t w a r es y s t e m sh a v e b e e ng r e a t l ye v o l v e d ,e s p e c i a l l yt h ew o r k f l o wm a n a g e m e n ts y s t e m t h em a i ni n t e n s i o no f w f m si st h ea u t o m a t i o no fp r o c e d u r e sw h e r ed o c u m e n t s ,i n f o r m a t i o no rt a s k sa r ep a s s e d b e t w e e np a r t i c i p a n t sa c c o r d i n gt oap r e d e f i n e ds e to fr u l e st oa c h i e v ea no v e r a l ib u s i n e s sg o a l t h e r eh a v eb e e nal o to fp r o d u c t i o n so fw i m s n o w a d a y s b u ti nm o s to ft h e s ep r o d u c t i o n s ,i ti s n o tw e l lh a n d l et h ew o r k f l o we x c e p t i o na n dl o w e rt h ew o r ke f f i c i e n c yo fw f m s h o w e v e r w i t h t h ee x p a n s i o no fe n t e r p r i s ea n dr a p i dc h a n g e so fm a r k e tr e q u i r e m e n t ,w o r k f l o w sm o d e la r em o r e a n dm o r ec o m p l e x i t y i ti sv e r yn e c e s s a r yt om a k es o m eg o o dm e t h o d st oh a n d l ea l lk i n d so f e x c e p t i o ni nr u nt i m e a f t e ras t u d yo ne x c e p t i o nh a n d l i n gi nw o r k f l o w , b a s e do nt h ec o n c e p t u a lm o d e lf o r t r a n s a c t i o n a lw o r k f l o w , w ed e s c r i b et h eh a n d l i n ge l e m e n t st h a ti n c l u d ea c t i v i t i e s ,e x c e p t i o n e v e n t s ,s t r a t e g i e s ,a n dm e t h o d sb ym e a n so fa ni n t u i t i o n a lf o r m a lp r e s e n t a t i o n a n dw ep r o p o s ea s y s t e m a t i cm e t h o dt oh a n d l ee x p e c t a b l ea n du n c x p e c t a b l ee x c e p t i o n o nt h eb a s eo fe c ar u l e s , w ea b s t r a c ta n dp r e s e n th c ar u l e sf o re x c e p t i o nh a n d l e h c ar u l e sh a st h es t r o n gf l e x i b i l i t ya s t h ee c ar u l e sa n dt h e yc h a n g ee v e n tt e s ti n t ot h ej u d g eo fc o n d i t i o nm a t c h i n g f h e nw ep r o p o s e ah i e r a r c h i c a l e x c e p t i o nr e c o v e r ya l g o r i t h mf o ru n e x p e c t a b l ee x c e p t i o n i ts u p p o r t sb o t h t r a n s a c t i o n a la n dn o n - t r a n s a c t i o n a ls u bp r o c e s s e s ,a n ds u bp r o c e s s e so faw o r k f l o wa r en e s t e d s t r u c t u r e t h ea l g o r i t h md e t e r m i n e st h ee n dc o m p e n s a t i o np o i n td y n a m i c a l l yi nah i e r a r c h i c a l b o t t o mu pm a n n e r , s ot h ec o m p e n s a t i o ns p h e r ei sc o n f i n e da n dc o m p e n s a t i o nc o s t sa r er e d u c e d a f t e rt h a t ,w ei n t r o d u c eaw f m sd e v e l o p e dw i t ht h ea b i l i t yo fe x c e p t i o nh a n d l ea n d d e s c r i b et h ew o r k f t o wm o d e l i n gt o o l k i ta n dt h em o d u l eo f e x c e p t i o nh a n d l ei nd e t a i l f i n a l l y , t h e w o r ka b o u tt h i sp a p e ri sa n a l y z e da n de v a l u a t e d ,a n dt h ef u t u r ew o r ki ss i m p l yd i s c u s s e d k e yw o r d s :w o r k f i o w , t r a n s a c t i o n ,e x c e p t i o nh a n d l e ,r u l e s ,h i e r a r c h i c a l ,r o l l b a c ka n d c o m p e n s a t i o n i i 东南大学学位论文独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成 果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或 撰写过的研究成果,也不包含为获得东南大学或其它教育机构的学位或证书而使用过的材 料。与我一同工作的同志对本研究所做的任何贡献均己在论文中作了明确的说明并表示了 谢意。 研究生签名:显籀口期:蔓壁址 东南大学学位论文使用授权声明 东南大学、中陶科学技术信息研究所、国家图书馆有权保留本人所送交学位论文的复 印件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文档的内容和 纸质论文的内容相一致。除在保密期内的保密论文外,允许论文被查阅和借阅,可以公布 ( 包括刊登) 论文的全部或部分内容。论文的公布( 包括刊登) 授权东南人学研究生院办 理。 研究生签名:蠼扯导师签名:三之址日 期:泣n 丘6 _ 砂 第一章绪论 第一章绪论 1 1 工作流技术的发展及应用现状 工作流的概念起源于生产制造业与办公自动化领域,其目的是通过将工作分解成定义 良好的任务、角色,按照一定的规则和过程来执行这些任务并对它们进行监控达到提高 办事效率、降低生产成本、提高企业生产经营管理水平和企业竞争力的目标。根据工作流 管理联盟( w f m c ) 对工作流的定义,工作流是一类能够完全或者部分自动执行的经营过程, 它根据一系列过程规则、文档、信息或任务能够在不同的执行者之间进行传递与执行。工 作流管理系统是利用软件来定义、创建和管理工作流执行的计算机系统,该系统运行在一 个或多个能理解流程定义并与流程参与人相互协作的工作流引擎之上。工作流系统只有 在工作流管理系统的支撑下,通过集成具体的业务应用软件系统( e r p 、c r m 、s c m 等) , 才能良好地完成对企业经营过程运行的支持,在更广的范周内,不同的时间跨度上做好企 业的经营管理,提高企业的整体水平和竞争力。 工作流的研究开始于二十世纪七十年代,最初的工作流系统主要以企业内部的文档处理 为主。八十年代中期,f i l e n e t * l v i e w s t a r t 等公司率先开拓了工作流产品市场,成为最早的一 批工作流产品供应商。他们把图像扫描、复合文档、结构化路由、实例跟踪、关键字索引以 及光盘存储等功能结合在一起,形成一种全面支持某些业务流程的集成化的软件( 即早期的 工作流管理系统) 。 到了二十世纪九十年代,随着计算机的普及,计算机网络技术的迅速发展,企业的信 息化程度提高,企业信息资源越来越表现出异构、松散耦合的特点。i n t e r n e t 的发展和普及 促进了电子商务应用的极大发展,使得公司与公司之间、公司内部部门之间以及子公司之 间的业务相互处理成为可能,而电子商务的重要功能就是商务流程的管理和监控,如企业 供应链管理系统s c m ( s u p p l yc h a i nm a n a g e m e n t ) 和企业客户关系管理c r m ( c u s t o m e r r e l a t i o n s h i pm a n a g e m e n t ) 。在这种技术背景下,l :作流管理系统也由最初的无纸化办公环 境,转而成为集成企业复杂业务流程,实现业务流程自动执行的工具,工作流技术进入了 一个崭新的发展阶段。1 9 9 3 年工作流管理联盟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 ) 成立,并在工作流管理系统的相关术语、体系结构以及应用编程接口等方面制定了一系列 标准,同时工作流相关的概念得到了人们的认可,w t m c 的成立标志着:i j 作流技术开始进 入相对成熟的阶段。 目前,在全球范围内,对工作流技术的研究及相关产品的开发进入了更为繁荣的阶段t 更多更新的技术被集成进来,文件管理系统、数据库、电子邮件、移动式计算、w e b 服务 等已被容纳于工作流管理系统之中。工作流产品市场每年以两位数字的速度迅猛增长。随 着计算机技术的发展,新的技术不断地融入工作流系统中,使得工作流产品得到不断完善。 作为支持企业经营过程重组( b u s i n e s sp m c e s sr e e n g i n e e r i n g ,b p r ) 、经营过程自动化 ( b u s i n e s sp r o c e s sa u t o m a t i o n ,b p a ) 的一种手段,工作流技术的研究和应用日益受到学术 界与企业界的重视,国内外许多大学和研究机构也致力于工作流技术的研究和开发项目 其中比较有影响力的工作流研究中心主要有i b m 的a l m a d e n 研究中心和w i d ej 二作流 研究组等。 尽管经过工作流产品供应商与工作流研究人员的十几年的不懈努力,工作流技术由最初 的萌芽逐步发展起来,并取得了相当的成果,但是从工作流系统的实际应用状况来看,还远 未达到人们所期待的水平。目前在经营过程中采用_ t 作流管理系统的企业仍只是一少部分, 东南大学硕士学位论文 而且这些系统的应用范围也很有限,并不能全方位地支持企业地关键业务流程。从企业用户 应用的角度来分析,主要是工作流系统在标准性,兼容性,对大规模业务的负荷胜任能力以 及安全性等等方面的原因。因此,在工作流技术应用日益得到重视的今天,对工作流技术的 研究也正在向更深层次进行。工作流技术研究课题大致可以归纳为以下三个方面: ( 1 ) 工作流的理论基础:包括工作流管理系统的体系结构、模型、定义语言等。 ( 2 ) 工作流的实现技术:探讨利用先进的技术( 包括工作流的事务特性、先进的软件技术 应用、工作流仿真等) 提高工作流管理系统的性能和可靠性。 ( 3 ) t 作流技术的应用:工作流实施技术在不同应用领域的应崩方法、应用软件集成笛。 1 2 工作流异常处理的必要性 异常处理问题早在信息处理系统中就己经提出和研究了,m s d i a n e 莉l m m m i l l e r x 十 信息处理中异常的定义是pj :异常指没有人工干预计算机就不能正确处理的情况。但针对工 作流系统,异常处理又有了新的内涵。m k l e i n ;f l l c d e l l a r o c a s 等人对工作流的异常定义是1 2 i : 工作流异常是指对“理想”业务过程的任何偏离,包括活动执行时遇到的错误、活动参与者 之间的通讯错误、对活动和资源的变化缺少支持等等( 这个“理想”业务过程是指利用可使用 的资源以一种晟佳方式达到某项任务的要求) ”j 。也就是说,异常是指工作流运行过程中出 现了不能按人们事先定义的过程进行正常运行的情况。这里,我们要研究的异常可以定义为: 工作流异常是指由丁工作流系统外部异常、工作流系统异常或活动执行异常所引起的【:作流 活动失败和或工作流程失败,导致工作流不能按照预定义的+ r 作流模型正常执行的情况。 通过对工作流的异常的各种定义,我们可以认为工作流中的异常并不一定和错误划等号的, 异常只不过是正常的流程之外的流程,不一定都会成为错误;但是,在某些情况下,特别是 流程正在向无法挽回的错误的方向进行的时候,我们要让系统抛出异常,从而使系统通过异 常处理器和恢复机制回到正常的流程之中。 随着工作流技术的e 速发展+ 市场上出现了很多= i :作流产品。可是,由于火规模、分布 式信息系统的复杂性增强、业务过程的动态变化以及工作流执行时各种不确定因素的存在, 使得工作流在执行时经常出现各种异常。对于一个工作流管理系统来说,不仅要求它在正常 情况下能够发挥作用,更重要的是要求他能够灵活的处理各种异常情况,并且在某个结点发 生错误时候能够保证。整个系统不会发生崩溃。而现有的i 作流管理系统还缺乏对各融异常 处理的有效支持或只是简单的支持,如一些的单一的异常情况处理策略p 、系统容错能力 3 4 1 、数据保护以及数据恢复方法【l ”等等。远远不能满足企业应用的需要。工作流异常已经 成为困扰当今t 作流应用实施的重要问题。通过对工作流执行时出现的异常进行有效处理, 可帮助建立正确、可靠的_ 丁作流模型,并保证工作流的顺利、正确执行以完成过程的目标。 工作流异常处理是指在工作流执行中遇到异常时,通过适当的方法对异常进行有效的处 理来保证t 作流顺利执行。异常处理需要在工作流的建模阶段就进行很好地预测与建模,并 在工作流执行阶段进行正确的处理,这是一个具有挑战性的课题。近几年国外已经开展了一 些研究工作【2 5 ,1 l 】。近期国内也有学者进行了初步地研究,如对工作流异常处理进行形式化 描述,基于e c a 规则的异常处理策略,以及对基于a g e n t 的工作流的异常处理进行了研究等 等2 7 ,2 ”。 纵览工作流技术的全局,现阶段对工作流异常处理的研究有以下的意义: ( 1 ) 使工作流系统具有动态可适应性能力 对工作流的异常处理进行研究可以大大提高工作流系统的动态可适应性,使其具有灵活 的异常处理能力,使工作流技术更好的应用到企业和政府中。 ( 2 ) 使工作流系统更加稳定和健壮 2 第一章绪论 对工作流的异常处理进行研究能够更好的提高工作流系统的容错性,使工作流系统能够 处理不同层次的异常。从而更加稳定和健壮,这也是本文研究的重点。 总之,对工作流异常处理的研究已经成为完善工作流技术的关键之一,它直接决定了工 作流技术是否能够进一步很好的应用。对工作流系统异常处理情况解决的好坏也是衡量工作 流产品优劣的关键之一。 1 3 论文的主要内容与章节安排 本文采用一种真观的表达方法对工作流异常及其处理方法进行了完整的形式化描述, 研究一个比较全面的工作流异常处理策略,来处理工作流实例执行过程中出现的可预测和 不可预测异常为目标,其主要内容安排如下: 第二章主要讨论了工作流异常的一些基本概念,包括工作流异常定义、产生原因、分 类等。然后讨论了工作流异常处理的概念、处理方法等,并对当前的t 作流异常处理的研 究现状做了总结和分析。 第三章在事务概念和高级事务模型的基础上提出了一种基于语义原子性的事务工作流 模型的概念,并详细描述了事务工作流中的各种事务活动的相关特性。 第四章在比较完整的抽象并形式化描述异常处理概念及策略的基础上,提出一个比较 全面的工作流异常处理策略。引入了h c a 规则,并详细讲述了一个层次式的事务工作流 异常恢复的算法。 第五章节描述了一个具有异常处理功能的工作流管理系统。重点讲述了图形化的工作 流建模t i 具、工作流模型的存储形式以及异常处理相关的模块。 第六章总结了全文,归纳了论文的创新点,并阐述进一步研究的方向。 3 - 东南大学硕士学位论文 第二章工作流异常处理概述 2 1 工作流异常基本概念 工作流异常指工作流执行偏离正常的执行路线,但不一定就是错误1 4 j 。第一章中简单地 描述了本文所要研究的工作流异常的定义,本节我们给予具体的解释: 定义2 1 :丁作流异常是指由于工作流系统外部异常、工作流系统异常或活动执行异常 所引起的工作流活动失败和或_ 作流程失败,导致工作流不能按照预定义的工作流模型正 常执行的情况。 其中系统外部异常指操作系统、网络、通讯、基础组件平台等【:作流系统之外的因素所 产生的异常,这些系统都是与工作流管理系统密切相关的;工作流系统异常是指如工作流相 关数据对其约束条件的违反、无法为任务分配人员或资源等;活动执行异常是指每个活动在 执行时出现的如执行程序失败、执行者操作异常等。 c l a u sh a g e n 认为引起工作流异常的原因有技术原因和用户原凶pj ,技术原因包括通讯问 题、计算机断电、程序失败等;用户原因包括工作流模型错误、系统变化、缺少雇员等。 g u s t a v oa l o n s o 认为工作流异常包括系统失败和语义失败,系统失败是指工作流管理系统自 身的失败,语义失败是指工作流中某个活动的执行所遇到的失败,如发送没有库存的物品或 者扶空的银行帐号上提款等州。 实际上,产生工作流异常的原因很多,只要与工作流的执行相关的因素,都可以引起不 同种类的t 作流异常。例如过程定义描述的不准确或不完整,工作流管理系统的版本升级或 转换。执行条件不满足,所需资源不能获得等等情况都会引发工作流的异常。这,警因素涉及 到硬件、软件、通讯、工作流模型、工作流系统( 主要是工作流引擎和应用程序接口) 、工 作流执行者、相关应用程序、过程逻辑约束、上作流相关数据约束、时间约束以及执行算法 ( 资源分配算法、活动执行调度算法) 等等方面。 2 2 工作流异常的分类 通过对工作流异常进行分类,可帮助我们认清工作流异常的本质,为异常处理做好准备。 根据理解问题的角度不同,也就产生了不同的分类方法及结果。这里我们主要讲述三种分类 方法,并提出自己对异常分类的一些看法。 2 2 1 从体系结构上分类 缺工作流管理系统体系结构上看,工作流管理系统是建立在工作流管理联盟【1 1 提出的工 作流参考模型( 包括三个主要功能:构造时功能,运行时控制功能以及运行时交互功能) 所 述的体系结构上。因此,我们很容易就能得出三层异常分类p 目基础结构异常、工作流管理 系统异常、应用程序异常。 基础结构异常主要是指基础结构中产生的各种异常情况,包括计算机硬件故障、操作系 统故障、网络故障,也可以将数据库故障和异常包含在该类中。 应用程序异常主要是指工作流管理系统在运行中与之交互的应用程序产生的异常,如应 4 第二章工作流异常处理概述 用程序运行故障、产生错误运行结果、非法操作工作流管理系统中的共享数据等情况。 工作流管理系统异常则是指工作流管理系统在运行中,所有与工作流程不符的情况,包 括工作流模型中的描述错误、活动产生的错误操作、共享数据的非法操作,活动之间对资源 的分配和使用冲突等情况。 应用程序异常 工作流管理系统异常 基础结构异常 图2 1 三层异常分类 2 2 2 从对系统产生的影响上分类 不同的异常对j 二作流管理系统必然产生不同的影响,具体表现在对工作流过程实例运行 状态的影响, 此p e t e rjk a m m e r 从这个角度将异常情况分成三种 7 1 :i l i a ( n o i s e ) 、特殊异常 f i d i o s y n c r a t i ce x c e p t i o n ) n 演变异常 ( e v o l u t i o n a r ye x c e p t i o n ) 。 噪声:是指那些可以被容忍或者忽略的异常情况。如过程实例之间对资源的竞争,使得 个别过程实例得不到资源暂时无法运行,过程实例只需要等待,当资源满足后,就能继续运 行。 特殊异常:是指异常只出现在某个工作流实例当中。如过程实例中的相关数据出现了错 误而导致的异常情况。 演变异常:指工作流模型己经发生了变化,要求以后的工作流实例全部进行变化一如工 作流程己经发生了变化,原有的工作流模型已经不能准确描述当前的工作流程a 2 2 3 从对异常情况的认知角度分类 j e d e r 和w l i e b h a n 从对异常情况认知的角度,把工作流管理系统中的异常情况分成两 大类故障和异常口1 。其中,故障又可以分成普通故障、应用故障,异常又可以分成可预测异 常和不可预测异常。 普通故障:指工作流管理系统执行时出现的故障或执行环境的故障。像体系结构分类中 的基础结构异常。 东南大学硕士学位论文 应用故障:指的是工作流调用的应用程序出现的故障。等同于体系结构分类中的应用程 序异常。 不可预测异常:指一个业务流程的结果与它的原始定义不匹配。简单说就是所有在工作 开始前,无法预测的,可能影响工作流程的特殊情况。 可预测异常:指可以预见的工作流正常流程的一些偏离情况。包括了所有在实际工作中 可以预测的、在特定条件、特定事件下就会发生的工作流程中的特殊情况。 在上述分类的基础上,f c a s a t i 叉将可预测的异常按导致异常出现的时间又细分为4 类, 它们是工作流异常( w o r k f l o we x c e p t i o n s ) 、数据异常f d a t ae x c e p t i o n s ) 、时间性异常( t e m p o r a l e x c e p t i o n s ) 和外部异常( e x t e r n a le x c e p t i o n s ) ”j 。工作流异常指出现在任务或工作流实例的开 始或完成时的异常:数据异常指在对工作流相关数据修改时引起的异常:时间性异常指出现 在当一个指定的时间戳( t i m e s t a m p ) 至! j 达、或周期一眭( p e r i o d i c a l l y l 以及经过一定的时间间隔 ( i n t e r v a l ) 时的异常;外部异常是由外部事件引起的,并i 扫a g e n t s 或外部应用显式的( e x p l i c i t l y ) 通知工作流引擎。 2 2 4 对异常分类的总结 对工作流异常进行定义和分类是为了更好的解决工作流异常处理问题。我们认为j e d e r 和w l i e b h a r t 以及f c a s a t i 对异常分类的方法比较利于解决当前中等规模的一j 二作流系统异常 问题。我们进一步归纳一下,工作流的异常包括两大类:系统异常和逻辑处理异常。 系统异常:包括操作系统异常,数据库操作异常和支持系统异常。 逻辑处理异常;包括可预测异常和不可预测异常。 系统异常处理通常由操作系统,数据库系统和支持系统来完成,所以不作为本文研究的 主要内容。本文重点研究工作流的逻辑处理异常,对异常处理情况不仅是对工作流中错误的 处理,更主要的是指对工作流执行过程中出现的对各种与原t 作流定义不一致的处理。 2 3 工作流异常处理概念 2 3 1 工作流异常处理 根据本文中对工作流异常的定义,可以将工作流异常处理具体定义为: 定义2 2 :工作流异常处理是指通过一定的技术手段,按照某种处理机制和一定的处理 方法去解决工作流异常,以保证工作流的顺利、正确执行。 工作流异常处理要针对具体的异常情况,采用一定的处理方法,按照一定的处理机制进 行,这也是异常处理研究的重点。目前工作流管理系统中的异常处理主要集中在以下几个方 面:工作流管理系统中异常的分类、不同类型异常的解决策略及实现方法、解决异常处理过 程中可能出现的问题及处理策略等。 异常处理过程包括从异常事件的发生,到找到合适的处理措施,最后实施处理三个阶段。 工作流异常发生的时间是在工作流程被执行时出现的,异常处理也必须在工作流执行过程中 实时进行。重新修改工作流定义中的错误再重新执行一次,可以作为一种异常处理方法但 这种方法不属于异常实时处理的范围,这里不做讨论。这里讨论的异常处理指出现异常时, 能够实时的处理,保证一次流程的执行最后能够结束。 6 第二章工作流异常处理概述 2 3 2 工作流异常处理的分类 根据异常处理的难度,可以把异常处理的方式分为五类“j : 细微( t r i v i a l ) :异常( 通常是外部异常和可预测异常) 很小,可以由相关系统组件“透 明地”处理,工作流管理系统甚至可以不知道该异常的存在。 自动( a u t o m a t i c ) :工作流管理系统通过找到相应的异常处理器来自动处理异常。 人机合作( c o o p e r a t i v e ) :通过把异常通知专家,由专家给出指令或建议,然后由工作 流系统处理异常。 人工( m a n u a l ) :由人工专家来处理异常,期间工作流活动处于挂起状态直到异常解决。 失败( f a i l u r e s ) :工作流系统和专家都不能处理该异常,宣告失败。 一般情况下,工作流系统都试图自动处理异常,本文中所讨论的也是对于异常的自动处 理。如果不能确定使用哪个异常处理器,则需要人机结合或人工模式。异常处理器需要在工 作流建模时由建模人员根据已往的经验和对模型执行情况的预测来指定,当然,也可以在异 常出现后由执行人员根据具体异常情况动态指定。 2 3 3 工作流异常处理方法 处理工作流执行时出现的异常应该有具体的处理方法,对应的异常处理过程可能采用 的操作方法包括取消一个活动或活动块,以及活动的忽略、重试、替代、补偿1 3 ”等。 取消( a b o r t ) :一旦一个任务执行失败,不能重新执行或者选择其它方法处理。 忽略( i g n o r e ) :活动是否成功执行对后续活动没有影响,此时可咀对该活动出现的 异常选择忽略。 重试( r e t r y ) :对于出错的活动重新执行,直到活动运行正确完成或者超过了设定的 最大重试次数。 替代( r e p l a c e ) :如果活动失败,可以选择备用的活动路径来替代当前发生异常的活 动。 补偿( c o m p e n s a t e ) :给工作流任务殴置相应的补偿任务,以保证在异常发生时通过 孝卜偿任务的执行来消除原任务所产生的影响。使用该方法能够使过程实例的状态恢复到一 个可以重新执行的正常状态。 对于上面各种具体处理方法,本文将在下面的章节中继续详细讨论。 2 4 工作流异常处理的方法 2 4 1 失败补偿法 该类方法的基本思想源于线性s a g a 方法。线性s a g a ;噩g a r c i a - m o l i n a 和s a l e m 提出用 来解决长时间事务的方法。其基本思想是放松事务的原子性使得事务可以在全部结束之前释 放某些占用的资源,这样可以提高资源的利用率而且有利于对事务进行补偿。这可通过把 长事务( s a g a ) 分成一系列子事务( s u b t r a n s a c t i o n ) 来实现,而每个子事务都有一个与之相 应的补偿事务,每个子事务都具有a c i d 属性。在失败时可通过补偿事务来消除已经执行的 7 东南大学硕士学位论文 事务所产生的结果。令 ,”,砌是s a g a t 的子事务,c ,c 2 ,c h 是与每个子事务相对 应的补偿事务,保证丌,刀,砌被执行或者丌,力t j ;c j ;,c 2 ,a 被执行心 知。前 者是无异常出现的情况,各个子事务正常执行;后者是在第,个子事务处出现异常,通过逆 向执行补偿子事务来消除执行异常所带来的影响。 失败补偿法的思想就是每一个任务有一个相应的补偿任务对应,这个补偿任务在语义上 就是对己执行的任务产生的影响进行消除( u n d o ) ,当一个任务执行失败时,就启动执行补偿 任务( 通常是前面任务的逆执行) ,直到在过程中找到一个分支点,使整个过程能继续向前执 行下去。 i b m 的e x o t i c a 工程中的工作流失败处理措施采取了此种思想,通过为每个任务适当的插 入“补偿”路径,可以做到当出现活动执行失败时有条件的执行补偿任务】。 j e d e r 和w l i e b h a r t 在提出的活动模型w a m o 中,为每个任务定义了事务特性 ( t r a n s a c t i o n a lp r o p e r t i e s ) ,一个活动执行失败时,可以根据模型中的定义来进行补偿操作, 或不去补偿而直接夭折这个活动l 】2 i 。这种处理方式也属于失败补偿法。 2 4 2 基于e c a 规则的方法 基于e c a 规则的方法是一个综合的方法,可以全面考虑各种异常处理方式和方法,根 据不同的情况通过定义规则来处理异常。e c a ( e v e n t c o n d i t i o n - a c t i o n ) 规则法是一种解决工 作流异常的模型, e v e n t ( 事件) 描述了个潜在的可能发生的异常情况,c o n d i t i o n ( 条件) 用 于验证发生的事件是否满足一定的条件,a c t i o n ( 动作) 是对异常事件的反应动作。 e c a 规则要求对每一具体的异常类别建立相应的规则( 也称为触发器) ,根据发生的异常 件满足一定的条件去调用相应的动作( 活动,子过程,人工干预等) 。 w i d e 工程中使用了e c a 方法,丁程在异常的处理上定义了一种语青称为c h i m e r a - e x c , 对异常按照f c a s a t i 提出的分类方法,即根据导致异常出现的时间来分类对待对待。通过 c h i m e r a - e x ee x c e p t i o n 语言对每个任务定义了异常出现的触发器、事件、条件和动作。通过 数据库将己知的各种模式所对应的触发器保存,并提供工具可以检索、修改和增加【l “。 o p e r a 也采用的是e c a 方法,这里,异常被表示成一个四元组 。n 是异常 的名字,0 r 表允许的控制流选项( a b o r t 或r e s u m e ) ,i 是输入的一个数据结构,用于向处理程 序传递异常发生时的上下文,r 是输出的数据结构,用于表示返回给异常发生源的数据。异 常处理是通过异常句柄( e x c e p t i o nh a n d l e r ) 来处理的,如果没有为某个异常定义旬柄,系统 提供一个默认句柄( d e f a u l th a n d l e 0 来处理,默认旬柄采取的是中止执行的处理方式【l 。 2 4 3 基于知识库的方法 针对系统异常m k l e i n 和c d e l l a r o e a s 提出基于知识库( k n o w l e d g e - b a s e d ) 的方法“1 。 在知识库中将异常检测、异常处理都表示成知识。在异常发生后通过知识匹配,选择合适的 异常处理器来消除异常。每一个异常都有一个对应的知识库入i s l ,其中给出了异常的名称、 定义以及对预测的异常和检测到的异常的定义和相应处理方法。通过将异常分类,形成了一 个树状的异常分类结构,这个异常分类树可用于知识库的搜索和异常的匹配。基于知识的异 常处理方法分为三步:异常处理的准备( p r e p a r i n gf o re x c e p t i o n s ) 、异常检;坝u ( d i a g n o s i n g e x c e p t i o n s ) 和异常处3 塑_ ( r e s o l v i n ge x c e p t i o n s ) 。 8 第二章工作流异常处理概述 异常处理的准备:在工作流建模阶段就需要进行异常处理的准备工作。设计者预测可能 的异常并为过程指定可能的异常处理器。m k l e i n 认为过程是一个由总过程分解到子过程一 直到活动的树状结构,而处于下层结构的结点可以继承上层结构的某些特性,包括异常特性 于是工作流设计者可以根据从这些继承来的特性以及过程的结构来判断可能出现的工作流 异常,如资源竞争、角色分配、时间延迟等。 异常检测:在工作流执行阶段基于启发式分类方法检测 :作流异常。在检测异常时, 根据出现的异常情况从上至f 。遍历异常分类树,通过与当前发生的情况进行匹配找到相应的 异常。 异常处理:根据检测到的异常,在知识库中匹配相应的处理器,进行异常处理。 2 4 4 基于模式的方法 为了通过对e c a 规则的重用来更好地支持工作流的设计,f c a s a t i 在w i d e 项目中引 入了模式( p a t t e r n ) 的方法,并建立了支持和管理模式的环境w e r d e 】。设计模式( d e s i g n p a t t e r n ) 是支持面向对象软件系统开发、提高组件重用的一个有效方法,规则模式【l5 1 ( r u l e p a l t e m ) 是设计面向对象数据库应用的方法,可看作是设计模式在数据库设计中的扩展,用 以解决业务策略问题。w i d e 中借用了设计模式和规则模式的概念和相关处理方法来管理 e c a 规则,实现e c a 规则的重用,从而支持工作流异常处理的设计和重用。 在w i d e 项目中,e c a 规则又称为触发器( t r i g g e r ) ,触发器用来对异常情况进行建 模通过e c a 规则来描述异常发生的事件、异常条件和异常处理器。模式对异常处理的行 为进行建模,这些行为可以被重用。模式中描述触发器以及触发器之间的关系,为工作流设 计中重用以前的设计经验提供保证。 模式目录分三类,内置模式、一般任务和一般面向应用的结构。 内置模式描述关于基本异常情况的相关知识,它独立于所有可能应用的具体语义。 一般任务用“任务”的形式描述工作流设计中经常出现的活动,这些任务的描述与它们执 行时所需的信息无关。 一般面向应用的结构包括一些工作流模型片段和相关的异常,用以描述在: 作流应用中 经常出现的情况。 2 4 5 基于过程原子性的方法 c h a g e n ”考虑了工作流过程的原子性,在过程发生异常或失败时利用恢复机制,回滚 到活动执行前的状态。他把工作流系统看作是一个编程环境,用高级编程语言中的异常处理 方法( 如c + + 、j a v a 、c # 等) 来处理工作流异常,把异常处理与正常的程序执行流程分开, 以此来减少因为增加了各用路径而增加的系统复杂性,并通过提供前向恢复和补偿活动来保 证过程的原子性,按照该思想,基于可补偿、可重试和关键活动( 不可重试,而且一旦执行 就不可补偿) 的概念,分析了过程、活动块和程序的执行特性,定义了原子活动、准原子活 动和非原子活动: 原子活动( a t o m i ct a s k ) 是指具有事务语义的活动,即如果它失败不会产生负面影响。 准原子活动( q u a s i a t o m i ct a s k ) 是指在事务语义上没有原子性的活动,但是通过工作流系 统的帮助可以保证其原子性,如设法消除活动的影响( 此时需要回滚方法) 。每个准原子活 - 9 - 东南大学硕士学位论文 动必须定义一个相应的补偿活动。 非原子活动( n o n a t o m i ct a s k ) 是指关键活动,不可重试,也不能补偿。 c h a g e n 给出的这种方法借鉴了编程语言中异常处理的方法,提供了研究工作流异常处 理的一个新思路。 2 4 6 工作流异常处理方法的分析 上述的几种工作流异常处理方法中,都存在一定的片面性。失败补偿法是一种很好的异 常恢复的方法,但它并没有解决异常如何分析和监测的问题。e c a 规则法是一套完整的异常 解决方案,包括异常的分析和监测和处理,e c a 规贝法适用范围最j “,伸缩性也最强。该方 法是基于e c a 规则工作流建模方法的推广,可以对于不同的异常提供了不同的灵活处理方 法,但未考虑异常传播、工作流活动的事务特征和组织层次协调等问题。在e c a 规则法基础 之上又有基于知识库和基于模式的处理方法。知识库法要求建立一套异常知识库,通过知识 库能够比较精确的定位异常。该方法实现的难度也较大,而且虽然涉及到箨种处埋方法但目 前所能够处理的异常情况不完整,只是针对部分异常,如对于不可预测异常,则无法处理。 基于过程原子性的方法,从传统的d b m s 借鉴了事务的思想,为工作流异常处理的研究开辟 了新的道路。 通过分析比较上述处理方法,本文在基于过程原子性的方法之上,采用一种保证语义原 子性的事务工作流模型。基于该事务工作流模型,提出了一套比较全面的异常处理策略,使 之对于可预测异常和不可预测的异常都可以进行处理。在e c a 规则的基础上,引入h c a 规 则的概念,用于处理可预测异常;而对于不可预测异常,提出一种适用于复杂多层事务t 作 流的异常恢复算法。 1 0 第三章基于事务的工作流模型 第三章基于事务的工作流模型 3 1 传统的事务概念 事务的概念来自于数据库研究领域,用以解决数据的并发访问和出错恢复问题。事务 通常指一组对于物理的或者抽象的应用状态的操作组成的集合。事务处理系统通常指一个 完整的系统,包括应用生成器、操作工具、数据库、外设、网络和操作系统。一个事务处 理系统提供了工具来方便应用编程,并通过这些工具来提高应用执行和监控j j 二作的自动化 程度。事务与普通的程序操作的最大区别是它具有的事务特性,简称a c i d 特性。事务所 具有的这四个特性分别为: ( 1 ) 原子性( a t o m i c i t y ) :所有关于一个事务的操作必须当成一个原子单元,即或者 所有的操作都成功执行,或者一个也没有执行。如对数据库中数据所做的一系列操作必须 全部完成后才能提交,否则所做的部分操作必须全部取消; ( 2 ) 一致性( c o n s i s t e n c y ) :事务操作得到的结果必须保证是一致的,如对于数据库 操作生成的新的数据库状态必须满足数据库的一致性约束; ( 3 ) 分离性( i s o l a l i o n ) :在事务状态下执行的任何操作如同它在一个单用户环境r 执 行操作那样,它不受其他并行的操作执行的任何影响; ( 4 ) 持久性( d u r a b i l i t y ) :事务提交后,对数据的操作结果
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智能制造标准研究-洞察及研究
- 车辆共享模式创新-洞察及研究
- 元宇宙中的虚拟现实与增强现实协同应用场景探索-洞察及研究
- 虚拟参考咨询改进-洞察及研究
- 船舶减振降噪-洞察及研究
- 手拉叉车安全教育培训课件
- 手性判别课件
- 类星体吸积盘模型-洞察及研究
- 手工安全培训课件
- 水质污染溯源技术-洞察及研究
- 实用美术基础中职全套教学课件
- 债权债务法律知识讲座
- 南京财经大学《812西方经济学(宏观经济学、微观经济学)》历年考研真题及详解
- 个人停车位租赁合同模板
- 基于教育培训行业的客户关系营销研究
- 肉制品工艺学-香肠类制品-课件
- 超全QC管理流程图
- 2广告实务课程标准
- 001 比较思想政治教育(第二版) 第一章
- GB/T 2992.1-2011耐火砖形状尺寸第1部分:通用砖
- 中医门诊消毒隔离制度
评论
0/150
提交评论