(计算机应用技术专业论文)基于wf工作流自定义活动的研究与应用.pdf_第1页
(计算机应用技术专业论文)基于wf工作流自定义活动的研究与应用.pdf_第2页
(计算机应用技术专业论文)基于wf工作流自定义活动的研究与应用.pdf_第3页
(计算机应用技术专业论文)基于wf工作流自定义活动的研究与应用.pdf_第4页
(计算机应用技术专业论文)基于wf工作流自定义活动的研究与应用.pdf_第5页
已阅读5页,还剩54页未读 继续免费阅读

(计算机应用技术专业论文)基于wf工作流自定义活动的研究与应用.pdf.pdf 免费下载

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

文档简介

中文摘要 业务流程管理( b p m ) 是当今管理信息系统共同关心的问题。不同的应用领 域具有不同的业务需求,同时,随着应用环境的发展,相应的业务过程也可能会 发生变化。工作流主要用于解决业务逻辑的问题。因此,将工作流概念引入到管 理信息系统中,使其具备自适应和重配置能力就显得相当重要。 w i n d o w sw o r k f l o wf o u n d a t i0 1 3 ( w f ) 是一个通用的工作流框架,是微软n e t f r a m e w o r k3 0 的三大组件之一。活动是其核心的概念,w f 将业务模块定义为活 动并在工作流中使用。如何利用w f 提供的基本活动以及自定义活动构建工作流, 以满足不同的业务需求成为业务流程管理的关键。 本文对在w f 中自定义活动的设计及其在建设项目招投标工作流中的应用进 行了分析。文章首先参考工作流管理联盟( w f m c ) 提出的标准,对工作流技术的基 本原理、工作流参考模型、工作流建模方法进行了论述;然后对w f 的工作流运 行机制、特点、体系结构和运行环境及其工作流模型进行了归纳和总结。 文章中心部分重点分析了建设项目招投标的业务流程、特点及其分层建模方 法;描述了以u m l 活动图为原型,基于w f 自定义活动的建设项目招投标工作流 的建模过程;在建模环节中,主要对招投标业务流程中几个核心模块的建模步骤, 以及自定义活动在简化工作流设计,提高流程的可读性、可控性方面的作用进行 了介绍。 文章最后部分讨论了w f 的服务,其中包括持久化服务、跟踪服务;对招投 标工作流中自定义活动的设计过程及其动态维护进行了详细地描述,探讨了动态 维护自定义活动在业务流程重组中的作用:介绍了评标流程的优化过程及w f 自 定义活动在业务变更中的应用,充分展示了自定义活动独立性、可复用性及其在 业务管理中灵活性的特点。 关键词:w f 工作流服务状态机自定义活动 a b s t r a c t b u s i n e s sp r o c e s sm a n a g e m e n t ( b p m ) i sac o m m o n l yc o n c e r n e dp r o b l e mi nt h e c i r c l eo fm a n a g e m e n ti n f o r m a t i o n d i f f e r e n ta p p l i c a t i o nf i e l d sc o n t a i nd i f f e r e n t b u s i n e s s r e q u i r e m e n t s ,a n d w i t ht h ee v o l u t i o no f a p p l i c a t i o ne n v i r o n m e n t s , c o r r e s p o n d i n gb u s i n e s sp r o c e s s e sm a yb ec h a n g e d w o r k f i o wi sm a i n l yu s e dt os o l v e t h el o g i c a lp r o b l e m si nb u s i n e s s t h e r e f o r e ,i t sg r e a ti m p o r t a n c et h a ti n t r o d u c i n gt h e c o n c e p to fw o r k f l o wi n t om i sa n dm a k i n gm i sp o s s e s sb eo fs u c hf e a t u r e sa s a u t o - a d a p t a b i l i t ya n dr e c o n f i g u r a t i o n a so n eo ft h et h r e em i c r o s o f t n e tf r a m e w o r k3 0c o m p o n e n t s ,w fi sa g e n e r a l w o r k f l o wf r a m e w o r k w fd e f i n e sb u s i n e s sm o d u l e sa sa c t i v i t i e s ,w h i c ha r er e g a r d e d a si t sc o r ec o n c e p t ,a n du s e st h e mi nt h ew o r k f l o w h o wt ou s et h eb a s i ca c t i v i t i e s p r o v i d e db yw fa n du s e r - d e f i n e da c t i v i t i e st oc o n s t r u c tw o r k f l o wt os a t i s f yd i f f e r e n t n e e d si nb u s i n e s sh a sb e c o m et h ek e yt ob m e t h i s p a p e ra n a l y s e st h ed e s i g n i n go fu s e r - d e f i n e da c t i v i t i e s i nw fa n di t s a p p l i c a t i o ni nt h ew o r k f l o wo fc o n s t r u c t i o np r o j e c tb i d d i n g f i r s t l y , r e f e r r i n gt o 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 f m c ) s t a n d a r d s ,t h i sp a p e re x p o u n d st h eb a s i c p r i n c i p l e s ,r e f e r e n c em o d e la n dm o d e l i n gm e t h o do fw o r k f i o wt e c h n o l o g y a n dt h e n t h ew fw o r k f l o wo p e r a t i o nm e c h a n i s m ,f e a t u r e s ,a r c h i t e c t u r ea n do p e r a t i n g e n v i r o n m e n ta n di t sw o r k f l o wm o d e la r es u m m e du pa n ds u m m a r i z e d i nt h ec e n t r a lp a r to ft h i sp a p e r , t h eb u s i n e s sp r o c e s sa n df e a t u r e so fc o n s t r u c t i o n p r o j e c tb i d d i n ga n di t sh i e r a r c h ym o d e l i n gm e t h o da l em a i n l ya n a l y z e d ,a n da t m e a n t i m et h em o d e l i n gp r o c e s st ot h ew o r k f l o wo fc o n s t r u c t i o np r o j e c tb i d d i n g b a s e do nu s e r - d e f i n e da c t i v i t i e sa n de m p l o y i n gu m l a c t i v i t yd i a g r a m sa sp r o t o t y p ei s a l s od e s c r i b e d i nt h es t a g eo fm o d e l i n g ,t h em o d e l i n gs t e p so ft h ec o r em o d u l e si nt h e p r o c e s so fb u s i n e s sb i d d i n ga n dt h ef u n c t i o no fu s e r - d e f i n e da c t i v i t yi ns i m p l i f y i n g w o r k f l o wd e s i g n i n ga n di m p r o v i n gi t sr e a d a b i l i t ya n dc o n t r o l l a b i l i t ya r ei n t r o d u c e d f i n a l l y , s u c hw fs e r v i c e sa sp e r s i s t e n c es e r v i c ea n dt r a c k i n gs e r v i c ea r ed i s c u s s e d , t h ed e s i g n i n gp r o c e s sa n dd y n a m i cm a i n t e n a n c eo fu s e r - d e f i n e da c t i v i t yi nb i d d i n g w o r k f l o wa r ed e s c r i b e di n d e t a i la n dt h ef u n c t i o no fd y n a m i cm a i n t a i n i n g u s e r - d e f i n e da c t i v i t yi nb u s i n e s sw o r k f l o wr e a r r a n g e m e n ti ss t u d i e d n e o p t i m i z i n g p r o c e s so fs e l e c t i n gb i d d i n ga n dt h ea p p l i c a t i o no fw fu s e r - d e f i n e da c t i v i t yi n b u s i n e s sc h a n g ea r ea l s oi n t r o d u c e d a n dt h e nt h ei n d e p e n d e n c y , r e u s a b l ec h a r a c t e r a n df l e x i b i l i t yo fu s e r - d e f i n e da c t i v i t yi nb u s i n e s sm a n a g e m e n ta r ef u l l yd i s p l a y e d k e y w o r d s :w f , w o r k f l o w , s e r v i c e s ,s t a t em a c h i n e ,u s e r - d e f i n e da c t i v i t i e s 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的 研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表 或撰写过的研究成果,也不包含为获得苤盗盘堂或其他教育机构的学位或证 书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中 作了明确的说明并表示了谢意。 学位论文作者签名: 一; 签字日期:- 刁年少月j 日 i 学位论文版权使用授权书 本学位论文作者完全了解苤鲞墨堂 有关保留、使用学位论文的规定。 特授权鑫洼盘堂可以将学位论文的全部或部分内容编入有关数据库进行检 索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校 向国家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名: 签字嗍彳年 导师签名:方劬刁 , 签字日期: 年矿月日 日 7 吕 心朋 天津大学硕f :学位论文第一章绪论 第一章绪论 长久以来,业务流程建模是程序人员需要应对的一个细节,经常需要通过定 制的代码来确保正确的业务流程建模,并且确保其在应用程序内部执行。程序员 需要编写额外的代码来处理流程中出现的错误、跟踪、日志记录以及流程的持久 化工作,用以查看指定业务流程进行的情况,保存持久运行的流程的状态。这样 就形成了业务与流程的绑定,使得在流程发生变化的同时,需要专业技术人员修 改业务代码,这样的修正工程有可能工作量很大,对系统来说,甚至是毁灭性的 重建过程。鉴于这个事实,需要利用其它的建模工具,譬如u m l ,以及本文所 介绍的w f 设计器,从而使用非技术性的术语以图形的形式来表示流程,同时需 要保持代码与视图实体的状态一致性。 随着计算机与网络技术的迅速发展,以及企事业单位内部流程的不断完善, 面向过程的计算机应用在今后的企业经营业务中将发挥越来越重要的作用,作为 面向过程建模、优化、执行与监控的工作流管理技术,正扮演着越来越重要的角 色,成为了同化企业复杂信息环境、实现业务流程自动执行的必要工具。工作流 技术为企业经营过程重组,完成由传统的面向功能的组织模式向面向过程的组织 模式逐步转变提供了有力的技术保障,有效地处理业务流程中的复杂性问题,提 高了企事业单位的工作效率。 1 1 研究背景 1 1 1 工作流的起源和发展现状 工作流【2 5 】的概念起源于生产组织和办公自动化领域,它所关注的问题是处理 过程的自动化,它根据一系列事先定义好的规则,把文档、信息或任务在参与者 之间传递与执行。 2 0 世纪六十年代,信息系统由大量的独立运行的应用程序组成。对于每一 个应用系统的用户接口和数据库系统而言,都必须进行独立的开发,所以这些用 户接口和数据库系统都只满足特定的应用程序。到了七十年代,应用程序中的数 据被分离出来。为了实现这一数据分离的目的,数据库管理系统( d b 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 s ) 产生了。同时, 上个世纪九十年代标志着工作流软件诞生的时期。如今的业务流程会经常发生变 化,而且,这些流程的复杂性也大大地增加了。所有这些在每一个企业或组织的 信息系统环境中的变化,都使得业务流程成为信息系统开发过程中的个重要的 问题。所以,将工作流管理系统这样的内部构筑模块引入到信息系统的组织与管 理之中就显得十分重要了。 1 9 9 3 年工作流管理联盟( w f m c ) 为工作流成立后就颁布了一系列的相关标 准和规范,其中包括:工作流模型及其各部分间协作的接口规范、工作流术语表 等内容。其中接口标准x p d l ( x m lp r o c e s sd e f i n i t i o nl a n g u a g e ) 是当今工作流领 域最重要的一个标准,很多工作流产品都是依据w f m c 的标准和规范进行设计 和开发的。 目前工作流技术的研究日益受到人们的重视,各大学和研究机构在开展多项 研究生产,各供应商也在不断地推出新的产品,来补充信息系统中存在的不足, 而不同的行业,为提高自身业务流程的自动化程度,也纷纷采用适用于不同行业 的工作流管理系统,正是因为对工作流管理的需求,也使众多的厂商将工作流管 理产品集成到不同的企业信息平台中,如现在比较优秀的e r p ,p d m 及c r m 等平台中都集成了工作流管理功能。同时,工作流的研究成果推动了工作流管理 技术的研究、应用和发展。 1 1 2w f m c 工作流参考模型 每个工作流系统中都包含一系列的公共组件,组件间采用一套被定义好的方 法进行协作;不同的工作流产品在这些公共的组件中,会表现出不同的处理能力。 为了实现不同工作流产品间的协同工作,需要在这些组件间制定一套标准的接口 和数据交换格式。通过实现这些标准接口,可以达到产品问的协同工作。如图 1 1 所示。 工作流联盟( w f m c ) 提出的工作流参考模型是关于工作流管理系统的一个基 本框架,由1 个工作流执行服务( w o r k f l o we n a c t m e n ts e r v i c e s ) 和5 个接口 ( i n t e r f a c e ) 组成。工作流执行服务器由一个或多个工作流引擎组成,它提供了 过程实例执行的运行环境,是工作流管理系统的核心。工作流执行服务器周围是 统的服务接口w a p i ( w o r k f l o wa p i s ) ,通过这些接口可以访问工作流系统的 服务,同时接口还负责控制工作流控制软件与其它系统组件间的交互。工作流管 2 天律 学硕士学位论文 第章绪论 理系统通过交叉使用这5 个接口来支持工作流管理功能为实现工作流产品之间 的交互提供了公共的1 7 台。 耳_ i 忧y ! i - _ _ _ _ _ _ - _ i t 四四 圈i 一1w f m c 工作流参考模型组件和接u 工作流联盟定义了五类接口l a l , 下面分别介绍这几个接口的功能 1 工作流定义及交换接u ( i n t e r f a c e l ) 为用户提供了可视化的定义工作流的标准。该接口位于流程建模工具与工作 流运行控制服务之问,主要提供工作流定义导入与导出的功能。既可以交换一个 完整的过程定义也可咀交换一个子集。用户可以通过该接口进行工作流程的分 析、建模、描述、归档等操作,并将业务流程生成工作流引擎能识别的语言。改 接口的规范有x p d l 和w p d l 等。由于众多标准的上作流系统都实现丁此接口 使得在定义的工作流程可以在不同工作流产品闻使用。 2 客户应用程序接口( i n t e r f a c e 2 ) 在要求有人员参与的活动中,工作列表处理程序负责与用户进行交互。此 接口提供了一种方式,用以处理工作流运行过程中需要人为参的操作。包括通 过任务表处理与终端用广进行交互,与普通的办公系统进行集成,终端用户对工 作任务列丧中任务项的操作,调用外部应用程序,处理相关数据等。客户应用程 序接口主要包括:会话建立、工作流定义撵作、过程控制功能、过程状态功能、 工作列表任务项处理功能、过程监控功能、以及数据处理功能。 3 应用程序调用接口( 1 r l t e r f a e e 3 ) 用于工作流引擎调用外部应用程序的规范。工作流管理系统能够处理在所有 一衄 重 天津大学硕i j 学位论文 第一章绪论 平台和网络环境中进行调用的逻辑,并使公共格式和编码对相关应用数据进行传 递。基于工作流运行控制服务标准接口的“激活”方法很多,大都用“应用代理” 所表示。通过标准的a p i 集与工作流运行控制服务进行通信,接收应用数据、信 号和响应活动事件等。应用工具和应用代理可以直接使用这些a p i ,与传统应用 或非工作流应用进行交互。 4 工作流互操作接口( i n t e r f a c e4 ) 本接口用来支持异种工作流系统中信息与控制流的交互。主要有以下功能: 在一定范围内必须能够对过程定义( 或子集) 做出共同的解释;支持在运行时刻 交换各类控制信息,在不同的运行控制服务之间传递工作流相关数据和应用数 据。w f m c 提出了多个互操作方案,既可以用于简单的任务传递,也可以用于整 个工作流的互操作。 5 系统管理和监视接口( i n t e r f a c e5 ) 该接口提供了标准化系统管理和监视功能。它管理应用与不同的工作流系统 进行交互的接口,包括以下几个类型的操作:用户管理操作、角色管理操作、核 查管理操作、资源控制操作、过程监控功能等。 1 2 项目背景 论文项目主要结合建设项目招投标工作流程的设计,来说明白定义活动在工 作流系统开发中功能和作用。建设项目招投标具有招标类型多样、管理部门众多、 审批流程复杂、审批时间较长的业务特点。近年来,随着国家对建设项目投入的 增加,建设项目招投标管理也随之成为了国家对建设项目投资监管的重要工作任 务之一。建立招投标统一平台,是创新政府管理体制,适应社会主义市场经济的 项改革。将建设项目交易、土地交易、产权交易和政府采购等交易活动归并集 中,形成统一的有形市场,完善了建筑市场的运作机制,加强了监管力度。 w f 工作流框架以活动作为管理单元,按照顺序、规则、状态三种模式进行 管理,持久化服务能够灵活的加载与卸载正在执行的流程,具有更高的进程和线 程的灵活性。可以将招投标中常用的系统功能定义为w f 活动,使之用于包含此 功能的其它工作流设计中,继而简化流程设计,提高了程序设计的效率。通过引 入工作流技术及w f 框架,使得建设项目招投标管理更加流程化、系统化,从而 推进招投标管理工作的进程。 4 天津大学硕:e 学何论文 第一章绪论 1 3 本文的研究内容及组织结构 1 3 1 本文的研究内容 ( 1 ) 参考工作流管理联盟( w f m c ) 提出的标准,对工作流技术的基本原理、工作流参 考模型、工作流建模方法进行了论述; ( 2 ) 对w f 的工作流运行机制、特点、体系结构和运行环境及其工作模型进行了归 纳; ( 3 ) 重点介绍了w f 活动的数据结构、生命周期等相关概念;简要地讨论了w f 的 服务,包括通讯服务、持久化服务、跟踪服务; ( 4 ) 详细描述了建设项目招投标工作流的建模过程,对自定义活动在简化工作流设 计,提高流程的可读性、可控性方面的作用进行了的分析; ( 5 ) 对基于s e q u e n c ea c t i v i t y 和面向w e bs e r v i c e 的自定义活动的设计过程, 利用跟踪服务自动监控流程执行,持久化服务在项目招投标工作流中应用等问 题进行了细致地说明;详细讨论了自定义活动的动态变迁的控制,突出显现了 自定义活动独立性、可复用性及其在业务管理中灵活性的特点。 1 3 2 本文的组织结构 本文共分为5 个部分:绪论主要阐述了本文的选题背景、工作流技术的研究 现状、选题的意义及研究内容。在w f 工作流框架模型研究中着重探讨了基于w f 的工作流的运行机制,并对w f 工作流的特点、体系结构、运行环境以及工作模 型和相关服务进行必要的归纳和总结。1 l f 自定义活动的研究部分,介绍了有限状 态自动机,1 f 自定义活动的相关概念。文章中间部分主要探讨了建筑项目招投标 管理工作流的设计; w f 自定义活动在建设项目招投标及流程优化中的应用;最 后对论题进行了总结与展望。 天津大学硕士学位论文第一二章w f 工作流及其活动的研究 第二章w f 工作流及其活动的研究 w f 是一个可扩展框架,它由宿主层( h o s t i n g ) 、运行时层( r u n t i m e ) 、工 作流模型层( w o r k f l o wm o d e l ) 构成的一个广泛且通用的引擎,是一套用于在 w i n d o w s 上快速生成启用工作流的应用程序的解决方案。 2 1w f 框架体系结构 w f 的核心是活动( a c t i v i t i e s ) 如图2 1 所示,整个工作流在宿主程序中 被创建,通过运行时服务使应用程序与工作流进行通信,通过运行时容器来运行 工作流,管理工作流状态。w f 在宿主层及工作流模型层提供了扩展接口,这体 现了w f 框架的可扩展性。 匝h o 互s tp r o 三c 三e s 三s 二二:二:二二 i 图2 一lw f 框架体系结构 宿主程序( h o s tp r o c e s s ) 是工作流的载体,它是w f 工作流与终端用户的接 口。w f 工作流引擎以独立线程的方式运行在宿主程序进程中,在开发工作流项 6 天津大学硕士学位论文第工章w f 工作流及其活动的研究 目中,用户首先需要在宿主程序中创建工作流运行时r u n t i m e ,之后在r u n t i m e 上加载服务、启动工作流并生成工作流实例。作为工作流载体的宿主程序可以是 任何类型的应用程序,如w i n d o w s 服务程序、w e b 应用程序、w e b s e r v i c e 等。 宿主层( h o s t i n g ) 在宿主程序层与w f 的运行时r u n t i m e 层之间提供各种类型 的服务。宿主层提供了以下服务:事务处理服务( t r a n s a c t i o n s e r v i c e s ) 、持续化 服务( p e r s i s t e n c e s e r v i c e s ) 、跟踪服务( t r a c k i n g s e r v i c e s ) 、 线程服务 ( t h r e a d i n g s e r v i c e s ) 、通信服务( c o m m u n i c a t i o n s e r v i c e s ) 、定时器服务 ( t i m e r s e r v i c e s ) ,此外,开发人员还可以自定义宿主层服务来支持w f 引擎运行 调度。 运行时层( r u n t i m e ) 是w f 的核心部分,是应用程序和工作流实例 ( w o r k f l o w l n s t a n c e ) 之间的一个通道,由于它被托管在应用程序的进程里面,因此 使得工作流和托管它的应用程序的交互更加容易。运行时层主要是用来执行工作 流和管理工作流的生命周期。运行库服务组件被设计成插件形式,提供了一组运 行库服务实现,这些服务能够满足大部分类型的应用程序。与其它层相比运行时 层包含了工作流执行与管理必需的关键服务。执行( e x e c u t i o n ) 、跟踪( t r a c k i n g ) 、 状态管理( s t a t em a n a g e m e n t ) 、调度程序( s c h e d u l e r ) 、规贝l j ( r u l e s ) 。 工作流模型层,为应用开发层,主要包含了多个工作流模板类型、配套的 o u t o f - b o xa c t i v i t i e s ( 基本活动) 以及开发人员在创建工作流和自定义活动时要用 到的a p i 。 2 2w f 的流程模式 w f 支持2 种内建工作流模式:顺序工作流( s e q u e n t i a lw o r k f l o w ) 和状态机工 作流( s t a t em a c h i n ew o r k f l o w ) 。同时w f 还提供一种基于规则( r u l e b a s e d ) 的工作 流模式,包括:c a o ( c o n d i t i o n e d a c t i v i t y g r o u p ) 和策略( p o l i c y ) ,c a g 用于执行柔性 的、规则驱动的活动。而策略专注于业务逻辑的表达,是为了将商业逻辑与应用 程序流程控制分离开,并且支持各种业务逻辑的定义语法。由于基于规则主要是 面向控制鉴权、用户角色和业务规则,所以它可以单独存在,也可以迁入到顺序 和状态机工作流两种工作流中,进行组合和变化,如图2 - - 2 所示。 2 2 1 顺序工作流模式 顺序工作流是一种结构化的工作流模式,顺序工作流按顺序逐个执行一组包 含的活动。顺序工作流的关键在于它有一个清晰的起点和终点可以向顺序工作流 添加其它复合活动以实现并行、事件驱动并行、数据驱动执行、事件驱动分支 7 天津大学硒 = 学位论文第= 章忭r 作疏厦萁活动的研究 围2 2w f 的3 种工作流模式 和强制性控制流模式,如条件分支和迭代:也可以利用w f 的扩展性编写自定 义复台活动,用这些活动实现您的解决方案需要的特定控制流模式如图2 3 所h 、,顺序工作流适用于操作按顺序依次执行直至最后一个活动完成的流程管 理,顺序工作流为流程驱动的。 图2 3 顺序t 作流示例图 天津大学硕士学位论文第一章肝丁作流厦其活动的研究 2 2 2 状态机模式 状态机工作流由一组状态、转换和操作组成,首先将一个状态表示为起始 状态然后基于事件执行向另个状态转换,直至终态结束。每个状态机至少包 含两种状态初态和终态。状态机工作流是事件驱动的。状态机工作流模犁则依 赖外部事件驱动来执行,直到任务执行完毕。状态机中包含一系列状态( 包括初 始状态和结束状态) 和事什如图2 4 所示。 - - j g e l 。 i 歪i i 五 f 盏二螽釜面三二 i 基_ l 五;i 奎五i i := := :? - t 二l d 2 篁k 图2 4 状态机工作流示例图 顺序工作流和状态帆工作流都可以接收外部事件,尽管顺序工作流也可以使 用规则,如分支和循环,但它的执行过程是可以预料的,并且总是向前执行直到 完成为止。 顺序工作梳模型比较传统,带有明显的时序性,适用于大多数血向s y s t e m 模式结构化的工作流应用;状态机总是停在一个预设的状态中,直到事件越发之 后才会跳转到新的状态上,非常灵活,带有事务特征。状态机工作流是为事件驱 动的工作场景设计的适台于面向h u m a n 模式非结构化的工作流场景。每个状 态机工作流内部是顺序的工作流。 2 3 w f 活动 活动是w f 中工作流处理的基本单位,如果将一个业务处理过程或工作流任 务进行分解+ 会发现它由更小,更细的任务组成。而每个这| j 鼍予任务又都包含 些执行步骤,每个步骤都会单独完成相麻的子任务,或者经过多个步骤来完成一 件子任务,这其中的步骤即为活动。 活动可被分为两个大粪:基本活动和组台活动。基本活动,是一个基于单 天津大学硕士学位论文 第一章w f 丁作流及其活动的研究 任务的活动,如读数据库文件、校验数据等等单一功能和任务的活动,这些基本 活动都实际承载特定的任务。组合活动由一个或多个基本活动组合而成共同完成 一项子任务。当组合活动中的每个基本活动完成时,组合活动的任务即宣告完成。 当流程中的所有活动都已经执行结束,工作流实例也就结束了。 w f 提供了一系列标准活动,同时也允许创建自己的活动。如w f 基本活动 库中与状态机相关的活动,如表2 1 所示。这增强了工作流组件的可扩展性和 重用性。如在定义组合活动时会将多个基本活动组合起来顺序地执行某个子任 务,这时可以将这些常用的组合活动定义为活动( 组件) ,以方便今后的重用, 为工作流系统的开发提供了便利。 表2 1w i = 基本活动库中与状态机相关的活动 活动 e v e n t d r i v e n a c t i v i t y s e t s t a t e a c t i v i t y s t a t e a c t i v i t y 说明 用于依赖于外部事件开始执行的状态。 e v e n t d r i v e n a c t i v i t y 活动必须具有实现 i e v e n t a c t i v i t y 接口作为第一个子活动的活动。 指定到新状态的转换。 表示状态机中的一个状态;可能包含其它s t a t e 活 动。 s t a t e l n i t i a l i z a t i o n a c t i v i t y 在进入某个状态时执行:可能包含其它活动。 s t a t e f i n a l i z a t i o n a c t i v i t y在离开s t a t e a c t i v i t y 活动时执行包含的活动。 2 4w f 程序的钝化 w f 中的一组活动,称为w f 程序,w f 程序是交互式程序,其特点是间断式 执行,并且可以跨越主机边界。它在执行时常常会因为等待外部实体信号而空闲, 因此经常被打断成一些小片断。在这段空闲期里,w f 程序实例处于非活动状态, 这时,w f 运行时可以将它钝化p j ( p a s s i v a t e ) 。 所谓钝化就是将内存中的程序实例存入到持久存储介质中,如数据库。w f 程序钝化采用书签机制来管理流程的恢复执行。书签是工作流程序运行过程中的 一个逻辑定位点。被钝化的工作流当受到外部刺激后,程序可以从这个逻辑定位 点恢复执行。当相关的信号到达时,w f 程序实例会重新恢复到内存中,恢复的 1 0 天津大学硕士学位论文 第二章w f 丁作流及其活动的研究 过程可能发生在另一台机器的另一个进程中。为了实现w f 程序实例的钝化,必 须在w f 运行时配置使用持久化服务。w f 中包括一个默认的持久化服务 s qj w o r k f l o w p e r s i s t e n e e s e r v i e e , 它使用s q ls e r v e r 作为w f 程序的持久存储介质。 为了启用钝化机制,还需要修改控制台程序逻辑,实例化 s q l w o r k f l o w p e r s i s t e n c e s e r v i c e 并将其加入到w f 运行时中。 当调用w o r k f l o w l n s t a n c e u n l o a d 后,程序实例就会被钝化。为了在另一个 c l r 应用程序域中恢复一个钝化的实例,需要某种能标识出特定实例的方法。 这就是w o r k f l o w l n s t a n c e 中的i n s t a n c e l d 属性。这个全局的唯一标识可以被保存 下来,在随后需要恢复实例时,它将作为参数传递给w o r k f l o w r u n t i m e g e t - w o r k l f l o w 方法,以便重新获得w o r k f l o w l n s t a n c e 。 w f 程序具有线程和进程灵活性。一个被钝化的程序实例,或许会在另一个 进程中被激活,或者在另一台机器上被激活。因此,这就要求w f 程序在被钝化 时,既要序列化程序状态,又要序列化w f 运行时的执行状态。 2 5w f 活动的生命周期 w f 程序就是一组活动,活动的整个执行过程是基于异步的。因为w f 的活 动是片断式执行的。当w f 程序实例因等待一个外部数据而空闲时,岍运行时 就将它存储到外部的持久存储媒介上,并销毁内存中的程序实例。这个存储和销 毁的过程正是下文中所介绍的“钝化”概念。待w f 运行时接到来自外部的触发 信号就会再次激活( r e a c t i v a t e s ) 程序,激活是钝化的逆过程,激活将被钝化的 程序从持久存储媒介载入到内存中,并恢复执行。可见,w f 程序实例在内存中 的时间相对于其逻辑生命周期来说是极短的。 2 5 1 活动自动机 活动是流程的基本组成单元,每个活动实现流程中具体的一项功能或任务。 而活动的生命周期就是一个有限状态自动机,称为活动自动机( a c t i v i t y a u t o m a t i o n ) 。活动的状态是有限的,因此,根据有限状态自动机理论,将活动视 为具有离散输入和输出的有限状态自动机。 1 ) 有限状态自动机1 1 0 1 ( f a f i n i t ea u t o m a t o n ) m 是一个五元组: m = ( q ,6 ,q 0 ,f ) 其中, q 一状态的非空有穷集合。v q q ,q 称为m 的一个状态。 卜输入字母表。输入字符串都是上的字符串。 天津大学硕士学位论文第_ 章w f 工作流及其活动的研究 江状态转移函数,有时又叫作状态转换函数或者移动函数,6 :q x 一 q , ( q ,a ) q ,6 ( q ,a ) _ p 表示m 在状态q 读入字符字符a 将状态变成p , 并将读头向右移动一个带方格而只想输入字符串的下一个字符。 q 旷- m 的开始状态,也可叫作初始状态或启动状态。q o q 。 f ,m 的终止状态集合。f g q 。v q e f ,q 称为m 的终止状态。 2 ) 设m = ( q ,6 ,q o ,f ) 是一个f a 。v x 木,如果6 ( q o ,x ) f ,则称x 被m 接受:如果 8 ( q o ,x ) 譬f ,则称m 不接受x 。l ( m ) = x l x 奉八8 ( q o ,x ) f ) 称为a m 接受( 识 别) 的语言。当m 接受某个l ( m ) 时,表示工作流引擎将实现或执行工作流过 程定义中的某项活动。 3 ) 确定的有限状态自动机:v q e q ,a ,6 ( q ,a ) 均有确定的值,称之为确定的 有限状态自动机。 4 ) 活动自动机主要有以下几个方面的特点: ( 1 ) 系统具有有限个状态,不同的状态代表不同的意义。按照实际的需要, 系统可以在不同的状态下完成规定的任务。 ( 2 ) 可以将输入字符串中出现的字符汇集在一起构成一个字母表。系统处理 的所有字符串都是这个字母表上的字符串。 ( 3 ) 系统在任何一个状态下,从输入字符串中读入一个字符,根据当前状态 和读入的这个字符转到新的状态。 ( 4 ) 系统中有一个状态,它是系统的开始状态,系统中还有一些状态表示它 到目前为止所读入的字符构成的字符串是语言的一个句子。 ( 5 ) 虽然将f 中的状态称为终止状态,并不是说m 一旦进入这种状态就终止 了,而是m 一旦在处理完输入字符串时到达这种状态,m 就是接受当前处 理的字符串。因此,终止状态又称为接受状态。 2 5 2w f 活动状态的变迁 w f 编程模型是根据有限状态自动机来实现w f 运行时和活动之间的交互 的。在w f 程序的执行过程中,活动自动机掌握着所有活动的生命周期,并控制 着状态的转移。w f 运行时确保活动严格地遵照活动自动机的状态转移规则执行; 而活动则决定着状态转移的路线。如图2 - - 5 所示。通常,一个活动的起始状态 为i n i t i a l i z e d ,一旦开始工作状态就迁移到e x e c u t i n g ,当工作完成后,就进入c l o s e d 状态。 活动自动机的i n i t i a l i z e d 状态 在活动自动机中,i n i t i a l i z e d 状态是所有活动生命周期的第一个状态,这个 天津大学硕士学位论文第_ 章w f 工作流及其活动的研究 状态的活动还没有开始执行,可以说处于潜伏态,但i n i t i a l i z e d 状态可以通过调 用i n i t i a l i z e 方法完成初始化工作。 图2 5 完整活动自动机示意图【5 】 活动自动机的c l o s e d 状态 可以通过调用u n i n i t i a l i z e 方法将活动由e x e c u t i n g 状态迁移到c l o s e d 状态, 即活动终止状态。当活动迁移到c l o s e d 状态时,w f 运行时会同步地调用活动的 o n c l o s e d 方法用以关闭活动执行期间分配的资源,之后,w f 运行时调用 u n i n i t i a l i z e 方法清理i n i t i a l i z e 方法在初始化过程中分配的资源。 活动自动机的e x e c u t i n g 状态 w f 程序调用a c t i v i t y e x e c u t i o n c o n t e x t e x e c u t e a c t i v i t y 方法可以使指定的子 活动调度执行。子活动的e x e c u t e 方法将作为一个工作项加入到调度器工作项队 列中。为了活动自动机的正常工作,在调用e x e c u t e a c t i v i t y 方法时,如果w f 运 行时发现子活动不在i n i t i a l i z e d 状态时,则会抛出异常。如果调用e x e c u t e a c t i v i t y 方法成功,一个工作项将被加入到调度器工作队列中,表示子活动的e x e c u t e 方 法将被执行。e x e c u t e a c t i v i t y 方法执行成功意味着子活动由i n i t i a l i z e d 状态迁移为 e x e c u t i n g 状态。 活动自动机的c a n c e l 状态 对活动的取消操作是通过a c t i v i t 3 r e x e c u t i o n c o n t e x t 来完成的,这一点类似 于活动的执行。取消实质上就是调度活动的c a n c e l 方法。w f 运行时不允许任何 复合活动在子活动尚处于e x e c u t i n g 状态时迁移到c l o s e d 状态。 活动自动机的c o m p e n s a t i n g 状态 如果一个w f 程序实例已成功地执行了一些活动,但随后程序的执行出了 问题,而希望程序能将那些已经执行的活动所造成的效果予以撤销,那么自动活 动机会进入到活动补偿状态。 w f 活动的逻辑生命周期不同于c l r 对象的生命周期,如图2 6 所示,c l r 对象的生命周期仅是在w f 程序实例没有被钝化时,暂时代表内存中的活动。 w f 活动本质上是一种可恢复的实体,它的逻辑生命周期是由活动自动机决定的。 天津大学硕士学位论文 第二章w f 工作流及其活动的研究 活动自动机的f a u l t i n g 状态 活动中诸如e x e c u t e 、c a n c e l 方法以及其它任何会被调度的

温馨提示

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

评论

0/150

提交评论