(应用数学专业论文)工作流管理系统中动态指派参与者模型的设计与实现.pdf_第1页
(应用数学专业论文)工作流管理系统中动态指派参与者模型的设计与实现.pdf_第2页
(应用数学专业论文)工作流管理系统中动态指派参与者模型的设计与实现.pdf_第3页
(应用数学专业论文)工作流管理系统中动态指派参与者模型的设计与实现.pdf_第4页
(应用数学专业论文)工作流管理系统中动态指派参与者模型的设计与实现.pdf_第5页
已阅读5页,还剩65页未读 继续免费阅读

(应用数学专业论文)工作流管理系统中动态指派参与者模型的设计与实现.pdf.pdf 免费下载

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

文档简介

工作流管理系统中 动态指派参与者模型的设计及实现 专业:应用数学 硕士生:黄波 指导教师:朱思铭教授 摘要 工作流技术得到了越来越多的重视,无论是生产系统的工作流还是办公自动 化和电子商务的工作流都是软件界的研究热点。越来越多的工作流产品致力于动 态工作流技术,然而,当前工作流管理系统却将动态研究的目标集中于控制流而 忽视了工作流指派参与者唧p a ) 方面。当前市场上存在的大部分工作流产品主要 是基于角色的参与者指派机制,在动态指派参与者( d w p a ) 方面几乎没有什么 支持,不能根据运行时期的动态数据( 如工作流执行历史数据、参与者当前状态、 高级约束条件等) 进行动态指派。这样导致的后果是违背了执行工作流系统的初 衷:提供高效的自动化流程和组织管理。 本文致力于工作流管理系统中动态指派参与者机制的研究,综合考虑参与者 资格适合度、事件优先级、高级约束条件满足性以及参与者状态有效程度等方面 提出一个全新的动态指派参与者模型d w p a m 及相应的动态指派方法。 文中首先说明目前工作流产品中的工作流参与者指派机制,指出这些工作流 管理系统参与者指派机制的缺点,然后通过利用逻辑语言建立一种形式化的动态 指派参与者模型叫p a m 以及高级约束条件描述语言w c s l ,引出一种很好地 解决动态指派参与者问题的方法。 在系统设计、实现和应用方面,本文利用编译原理结合数据库技术设计实现 了支持d w p a m 模型的工作流引擎,并将该引擎应用到国内某人寿保险公司的 影像和工作流管理系统中,提高了客户的业务处理效率和客户服务质量。 关键词:工作流;工作流管理系统;动态工作流;参与者指派;动态指派参与者 模型 d e s i g na n di m p l e m e n t a t i o n0 fd y n a m i c w o r l o wp a r t j c i p a n ta s s i g n m e n tm o d e l - n w o r 埘i o wm a n a g e m e n ts y s t e m m a j o r :a p p e dm a t h e m a t i c s m a s t e r :h u a n gb o s u p e r v i s o r :p r o f z h us i r n i n g a b s t r a c t w b f l 【f l o wt e c l l n o l o g yh a sb e e na t t a c h e dm o r ea n dm o r ci m p ( n a n c cd u r i n gt t i ep a s t v e a f s ,w h c t h e ri nt h ef i e l do fm a n u f a c t u r i n gs y s t e mo r0 f e i c ca u t o m a t i o n0 r e - b u s s i n e ss m d r ca n dm o r ew o f k f l o wp r o d u c t s a f ed e c i 缸e dt op m v i d es o l u t i o nt o d v n 锄i cw o 】f k n o wt e c h n o l o p n e v e n h e i e 醛,i nc u n 锄tw 两f k f l o wm a n a g e m e n t s v s t e m sm es 0 0 p eo fd y n 锄j cm o d i a c a t i o n si sm a i n l yf b c u s e do nc o n t r o lf l 吣rw h i l e t h ed y n a m j c 髂p e c to fw o r l 【f l o w p a n i c i p a n ta s s i 萨m e n t ( w p a ) i ss 咖e w h a t d e s p i s e d m ) d a y sw b f k n o wm a i i a g e m e n ts y s t e md i s t r i b u t e sw o r ki t e m st or e s o u r c e s o rw o r k e r su s i n gr a t 量l e rp f i m i t i v em e c h a n i s m s ho t l l e rw o r d s ,m o s tw o r k n o w p r o d u c l st h a t a r ec u r r e t l ya v a i l a b l e 证t h em a r k e ta r em a i n l yo nar o l e - b 舔e d d i s t r i b u t i o no fw o r k ,y c tw i t hl i t t l eo fn od ”a m i cp a n i d p 卸t 船s i 弘m e n ts u p p o n r o l e - b a s e dd i s t 抽u t i o d o c sn o ts u 即o nd y n a m i cp a n i c i p a i l t 勰s i 弘m e n tb a s e do n t h o s ed y n 枷cd a t as u c ha sw o r l 【f l o wh i s t o r yd a t ad u f i n ge x c c u t i n 岛a v a i l a b i i i t yo f p a i t i d p 锄t sa n da d v a i l c c dc o n s t m i n t s ,e t c n i sc o n s e q u e n t l yv i o l a t e st h ep r i m a r y g o a lo ft l l ei m p l e m e n t a t i o no faw o r k f l o ws y s t e m 幻p f 0 v i d ea ne f f i c i e n t l ya u t o m a t e d p m c e s se x e c l l t i o na i l dm 卸a g c m e n tt oo 玛a i l i z a t i o n s n i sp a p e ra d 出c s s e st h ew p a a s p c c tb yb u i l d i n gad y n 枷i cw o r 姐0 wp a r t i d p a n t a s s i 印m e n tm o d d w e 枞) a i l dp r o i ) o s i l l g a s y s t e m a t i ca p p 帕a c hi nt e 瑚so f s u i t a b i l i t y 埘o r i t y ,a d v a n c e dc o n s l r a i n t sa i i da v a i l a b i i i t yb yf i r s ti l l u s t r a t i n ga n d c v a l u a l i n gt h ec i 】_ f r e n tw p am e c h a n i s m s 卸dt h e nh i g l l l i g h t i n gt h es h o n c o m i n g so f c o n t e m p o r a f yw f m s s n e x t ,ad v n 锄i cw p am o d e ln 锄e d 勰d w p a m 蛆daw o r k b o wc o n s t m i n t s p e c i f i c a t i o nl a n 卧a g ew c s la r ep i e s e n t e di nl o g i cl a n g i l a g et o b u i l dam r e c o m p r e h e n s i v em e c h 粕i s mf o rt h e 船s i 鲫m e n to fp a n i c i p 柚ti i law o r k n o ws v s t e m i nt h et h i r ds e c t i o n ,as o l u t i o na n di m p l e m e n t a t i o nu t i l i z i n gm e t h o d s0 fc o m p l i e r c o n s t m d j o np 咖d p l c sa n dd a t a b a s et c c h n o l o g yt ot h ed w p a m m e t h o d o l o g yi s o u t “n e d t h ef i n a ls e d t o ni n t m d u c c sh o wt oa p p i yt h cd w p a mm o d e i 卸dm e t h o d o l o g yi n t o i m a 百n ga n dw b r k n o wm a n a g e m e n ts y s t e mo fo n el i f ci 璐u r 帅c ec o m p a ny k e y w o r d s :w d r k f l o w ;w b 棚o wm a n a g e m e n ts y s t 锄;w f m s ;d y n 锄j cw b r k n o w ; r p a :d w e u 1 l 苎! 童堡垄 1 1 工作流管理系统 1 1 1 工作流问题 第1 章综述 工作流的概念起源于生产组织和办公自动化领域。它是针对日常工作中具有 固定程序的活动而提出的一个概念。提出的目的是通过将工作分解成良好的任 务、角色,按照一定的规则和过程来执行这些任务并对它们进行监控,达到提高 办事效率、降低生产成本、提高企业生产经营管理水平和企业竞争力的目标1 1 】。 实际上,自从进入工业化时代以来,有关过程的组织管理与流程的优化工作就一 直在进行,它是企业管理的主要研究内容之一。只不过在没有引入计算机信息系 统的支持以前,这些工作是由人工来完成的。在计算机网络技术和分布式数据库 技术迅速发展、多机协同工作技术日臻成熟的基础上于2 0 世纪8 0 年代中期发展 起来的工作流技术为企业更好地实现这些经营目标提供了先进的手段。工作流技 术一出现马上就得到广泛的重视和研究。至今工作流技术已成功运用到图书馆、 医院、保险、银行等行业,然而它更重要的应用还是在工业领域,特别是制造业 领域中。 工作流技术得到了越来越多的重视,无论是生产系统的工作流还是办公自动 化和电子商务的工作流都是软件界的热点。工作流管理系统( w b r l 【f l o w m 锄g e m e n ts y s t e m ,w f m s ) 就是通过软件来管理和执行工作流的通用系统。工 作流管理的目的在于使资源( 包括人、应用软件和其他资源) 适时地进行相应的 任务。 1 1 2 工作流定义 随着工作流技术的迅速发展,出现了越来越多的工作流产品。为了实现不同 工作流产品之间的互操作性,成立于1 9 9 3 年的工作流管理联盟( w b r k f l o w m a n a g e m 蛐tc o a l i t i o ,w f m c ) 在工作流管理系统的相关概念,术语,体系结构 及应用编程接口( w a p i ) 等方面制订了一系列标准。 工作流管理联盟给出的工作流定义是:工作流是一类能够完全或者部分自 动执行的经营过程,它根据系列过程规则,文档、信息或任务能够在不同的执 行者之间进行传递与执行。 除了工作流管理联盟,许多其他的研究机构、学者和工作流产品提供商也从 第1 章综述 不同角度提出了工作流的定义。 d g e o r g a k o p o u l o s 给出的工作流定义是l3 】:工作流是将一组任务组织起来完 成某个经营过程。在工作流中定义了任务的触发顺序和触发条件。每个任务可以 由一个或多个软件系统完成,也可以由一个或一组人来完成,还可以是由一个或 多个人与软件系统协同完成。任务的触发顺序和触发条件用来定义并实现任务的 触发、任务的同步和信息流( 数据流) 的传递。 范玉顺给出的定义是【1 】:工作流是一种反映业务流程的计算机化的模型,它 是为了在先进计算机环境支持下实现经营过程集成与经营过程自动化而建立的 可由工作流管理系统执行的业务模型。 这些工作流定义的一个共同点是基本上都采用非形式化语言对工作流进行 了描述,给出了关键要素。虽然表达方式不同,但核心思想都是:工作流是经营 过程的一个计算机实现,而工作流管理系统则是这一实现的软件环境。使用工作 流来作为经营过程的实现技术首先要求工作流系统能够反映经营过程的如下几 个方面信息【1 】: ( 1 ) 经营过程是什么:由哪些活动、任务组成,也就是结构上的定义; ( 2 ) 怎么做:活动问的执行条件、规则以及所交互的信息,也就是控制流 与信息流的定义: ( 3 ) 由谁来做:人或者是机器( 计算机应用程序,打印机等) ,也就是组织 角色的定义: ( 4 ) 做得怎样:通过工作流管理系统对执行过程进行监控,评估。 在企业应用中,工作流经常与业务过程重组( b u s i e s sp r o c e s sr e e n g i n e e r i n g , b p r ) 联系在一起。b p r 是关于企业( 组织) 核心业务过程的评估、分析、模拟、 定义以及其后的操作实现。尽管不是所有的b p r 都是采用工作流实现的,但工 作流技术是最佳的方法,主要因为工作流技术提供了业务过程逻辑与i t 操作支 持的分离,从而以后可以修改过程规则来重定义业务过程。相反,工作流技术并 不只在b p r 中采用,例如用于现有的业务过程中。 工作流管理系统通过管理工作活动序列,调用与各种活动步骤相关的人员、 1 1 资源,对业务过程提供自动化处理。工作流管理联盟这样定义工作流管理系 统:工作流管理系统是个软件系统,它完成工作流的定义和管理,并按照在计 算机中预先定义好的工作流逻辑推进工作流实例的执行。 一般地。工作流管理系统指运行在一个或多个称为工作流引擎的软件上的用 于定义、实现和管理工作流运行的一套软件系统,它和工作流执行者( 人、计算 机应用程序等) 交互,推进工作流实例的执行,并监控工作流的运行状态。必须 指出的是,工作流管理系统并不等同于企业的业务信息系统( 如m i s ,e r p :c r m 等) ,而是一个为企业的业务系统运行提供的软件支撑平台,类似于在计算机上 运行的操作系统。在工作流管理系统的支撑下,通过集成具体的业务应用软件和 操作人员的界面操作,才能够良好地完成对企业经营过程运行的支持。所以,工 作流管理系统在一个企业( 组织) 的经营过程中的应用过程其实是一个业务应用 软件系统的集成及实施过程。 工作流管理系统可以用来定义与执行不同覆盖范围( 单个工作人员、部门、 整个企业、企业之间) 、不同时间跨度( 分钟、小时、天、月、年) 的经营过程。 2 第l 章综述 这完全取决于实际应用背景的需求。按照业务过程以及组成活动的复杂程度的不 同,工作流管理系统可以采取许多种实施方式。在不同的实施方式中,所运用的 信息技术、通信技术和支撑系统结构会有很大的差别。工作流管理系统的实际运 行环境可以是在一个工作组内部或者在整个企业的所有业务部门,甚至是跨企业 之间。因此,工作流管理联盟提出的参考模型中从各种角度考虑工作流管理系统, 希望提供各种不同的实现技术、运行环境。 尽管实现的方法各种各样,但所有的w f m s 都表现出某种共同的特性,这 为不同产品问的集成、协同工作提供了基础。w f m c 参考模型描述了工作流系统 的一个公共模型,并且指出参考模型如何能使其与其他各种不同的实现方法相关 在最高层,所有的w f m s 都具有相同的特性,即为下面的三个功能提供支 持: ( 1 ) 建立时期( b u i l d t i m e ) 功能:定义、模拟工作流过程,及其组成活动: ( 2 ) 运行时期( r u t i m e ) 控制功能:在运行环境中管理工作流过程,管 理不同活动执行顺序: ( 3 ) 运行时期的人机交互功能:实现各种活动执行过程中用户与i t 应用工 具之间的交互。 图1 - 1 给出了工作流管理系统三个主要功能之间的关系。 图1 - 1 工作流管理系统的特性 1 1 0 工作流管理系统 工作流是正在迅速发展的技术,它在不同的行业已经得到了应用。工作流管 理技术与工作流管理系统得到广泛重视的一个重要原因是它能够在信息技术的 支持下实现基于人工和计算机活动组成的业务过程的自动化,它可以实现不同自 动化程度的规范化业务管理功能,具有良好的适应性。虽然工作流管理技术起源 3 第l 章综述 于办公自动化领域,如保险业、银行、政府等,它在工业领域的应用也取得了显 著的成果,尤其是在制造业得到了广泛的应用。 随着对工作流产品需求的不断扩大,许多软件供应商纷纷推出了不同的工作 流产品,如s t a f 斯a r e ,o r a c l ew j r k n o w ,i b mm qw d r l 【f l o w ,等等。这些工作流 产品都有自身的特性,也有一套自己的协议和接口,它们在不同的行业领域得到 了广泛的应用。然而,由于工作流管理技术与产品缺乏统一的标准,这些不同的 工作流产品从术语的定义和使用、产品与其它应用之间的集成十分困难。按照对 开放性的要求,这些工作流系统和产品的规范化程度、扩展性和开放性不够,导 致它们之间不能够实现互操作。工作流管理系统互操作是指两个或多个工作流引 擎之间通讯和协作工作的能力,具有通讯和协作的能力就称为可以互操作,否则 就成为不可互操作。不同工作流管理系统之间不能进行互操作的情况给软件供应 商和用户都带来了极大的不便,也在一定程度上阻碍了工作流管理系统的进一步 推广和发展。 为了能够更好的支持企业业务过程的建模、分析和实施,更进一步推广工作 流管理系统,需要建立工作流管理系统的相关标准,从系统结构、术语使用、接 口实旌方面提供标准化与规范化的定义,并以此为基础实现不同工作流产品之间 的互操作,方便与其他应用系统的集成。为了建立工作流的相关规范和标准, w f m c 提出了有关工作流管理系统的一些规范,定义了工作流管理系统的结构及 其应用、管理工具和其他工作流管理系统之间的应用编程接口( w a p i ) ,其主要 目的是为了实现工作流技术的标准化和开放性,从而实现不同工作流产品之间的 互操作性,并且其他应用可以通过使用工作流应用编程接口( w 奸i ) 访问不同 的工作流管理系统提供的服务,实现与其他应用的快速有效的集成。 图1 - 2 为工作流管理联盟提出的工作流参考模型的体系结构图。这个参考模 型的体系结构给出了抽象的工作流管理系统的功能组成部件和接口,它能够满足 工作流管理系统和产品所应该具有的主要功能、特性,可为实现工作流产品之间 的互操作性提供公共的基础。组成工作流管理系统的每个功能部件可以在不同的 软硬件平台上采用不同的方法实现,同样接口也可以在不同的软硬件平台上采用 不同的设计思想和编程技术进行实现。一般来说,工作流产品的供应商不会将这 些部件之间的所有接口完全对外开放,但是为了实现不同工作流产品之间的互操 作性,它们会按照互操作和协作的不同要求在一定程度上开放部分接口。 4 营墨巍 图1 2 工作流管理系统体系结构图 从图1 2 可以看出,工作流管理系统主要由三类组件构成,这三类组件分别 是: ( 1 ) 软件组件:完成工作流管理系统不同组成部分功能的实现; ( 2 ) 系统控制数据:工作流管理系统中的一个或多个软件组件使用的数据: ( 3 ) 应用与应用数据:对工作流管理系统来说,它们不是工作流管理系统 的组成部分,而是术语外部系统和数据,它们被工作流系统调用来完成整个和部 分工作流管理的功能。 从图1 2 还可以看出,工作流项目涉及到人员可以分成三类: ( 1 ) 过程建模人员:包括工作流管理系统实施顾问和企业业务分析部门或 其他熟悉企业业务流程的人。他们文档化、创建并测试工作流过程模型。过程建 模工作需要业务分析和系统分析能力。他们必须理解业务需求,功能需求以及业 务过程中需要用到的应用程序、数据结构和组织结构数据等。 ( 2 ) 最终用户:最终用户执行工作流过程中分配给他们的任务。为了保证 建模人员所创建的过程模型满足最终用户的需求,最终用户的代表通常会参与到 工作流过程模型的测试当中。 ( 3 ) r r 人员:通常所实旌的工作流管理系统不能很好地满足用户的需求, 这样程序员就必须做些自定义开发,对已有应用程序进行修改或开发新的程序 集成到当前工作流管理系统中。在实施和集成的过程中,同样需要数据库管理员 ( d b a ) ,系统管理员及网络管理员的参与。 工作流项目开始实施时,首先由过程建模人员通过图形化建模工具完成工作 流过程模型的定义、修改及存储。工作流建模工具类似于图1 3 所示: 5 第l 章综述 图1 - 3 工作流建模工具示例图 建模完成后,通常会有一个脚本文件( 比如,一个s q l 脚本用于创建数 据库相关内容) 被生成并导入到运行时期( r u n t i m e ) 的数据库作为一个过 程模板,在运行环境中,每启动一个过程,就会以对应的过程模板创建一个 实例。如果创建成功,最终用户可以在客户端应用工具中看到所有的过程实 例和分配给他们的工作项,如图1 4 所示。 6 图1 4 运行时期应用工具示例图 运行时期应用工具或称客户端应用工具是最终用户每天在工作流管理系统 中执行和发送任务的地方。 市场对工作流管理系统的大量需求和它的在不同领域的广泛应用使得工作 流技术被寄予很高期望。然而,一些研究人员指出工作流管理系统中存在的缺陷 【4 】。f c a s a t i 指出口l ,现代工作流管理系统的一个基本特性是灵活性,这在实时 工作环境中尤其重要,因为公司经常需要根据新的法规政策和市场需求等变化因 素对公司的业务流程进行调整和完善,同时业务流程也依赖于一些不可预计的因 素而变化。然而,遗憾的是,当今市场上的大部分工作流产品在灵活性方面部不 理想。工作流管理系统的开发、实施人员无法为那些期望有一个动态工作流产品 来迎合不断变化的业务需求的客户提供一个比较好的解决方案,只能通过二次开 发来达到客户的目的。 1 1 4 动态工作流技术 随着工作流产品的广泛应用,人们发现早期的工作流产品在处理业务过程中 缺乏灵活性和自适应能力,即无法处理工作流程中会发生变化的元素( 比如控制 流,组织数据等) 。传统的工作流产品,参照工作流管理联盟提出的参考模型, 分成建立时期( b u i l d - t i m e ) 和运行时期( r 岫t i i n e ) 两部分,其中建立时期通 过不同的建模方法定义过程,在运行时期由工作流引擎执行定义好的过程。然而, 在实际应用中,有的过程依赖于执行阶段的数据,即过程要到工作流执行阶段才 7 第1 章综述 能被确定,有的活动或予过程会发生变化。在这种需求下,传统的工作流就不能 适应了。因此,一种新的技术即动态工作流技术为之产生,主要集中于研究如何 适应过程在执行阶段的动态变化问题。 目前在动态工作流技术领域比较流行的研究集中于控制流的动态方面,这很 容易给人们一个误解:动态工作流只是动态控制流的代名词。然而,一个工作流 管理系统只有具备以下特性才称得上是真正的动态工作流管理系统: ( 1 ) 能很好地处理业务流程的动态改变; ( 2 ) 能动态选择最合适和可用的参与者完成某项任务。也就是说,在遵守 定义好的业务流程规则的基础上,通过一种高效的方式将工作任务分配给最合适 的参与者。 目前市场上大部分工作流产品和动态工作流技术研究集中于解决动态业务 流程的问题,即如何适应企业经营过程经常发生变化的问题。大部分厂商声称他 们的工作流产品支持动态工作流,也只是停留在支持动态流程和企业流程重组方 面。 关于第二个特性,目前的研究仍比较少,市场上的工作流产品也几乎忽略了 这个问题,这导致用户对工作流产品产生了不同程度的负面看法,他们不能容忍 标榜很好地支持动态工作流技术的工作流产品却不能解决参与者动态变化的问 题。关于工作流管理系统中的任务分配或参与者指派的研究领域,国内外的研究 主要集中于基于角色的访问控制、基于任务的访问控制、动态任务分配、角色授 权、代理技术以及任务分配过程中的高级约束问题等方面,可以根据这些研究的 目的分为两大类型:安全性和处理效率。基于角色的访问控制( r b a c ) 是出于 安全性考虑的任务分配机制1 6 ,7 8 ”,属于不同角色的用户拥有不同的权限,任务 与若干个角色相关。r b a c 机制非常有用但有很大的限制,它不能处理依赖于动 态数据和高级约束条件的动态分配问题【1 0 l 。基于任务的访问控制是一种动态的 访问控制机制1 1 ”,但它只考虑了任务的执行状态和职责分离,而没有考虑诸如 参与者的状态及业务约束条件等因素。静态和动态职责分离考虑了工作流执行过 程中参与者指派的一些约束1 1 2 1 。角色授权和代理是另外一种支持动态指派的机 制【9 1 ”,考虑了工作流执行过程中参与者不可用的问题,采用的是角色代理的 解决方法。部分研究人员也对工作分配过程中业务相关的规则和约束条件进行了 研究【1 ”,给出了基于逻辑的约束条件模型,但都没有给出很好的动态指派参与 者或动态分配任务的方法。在工作流任务分配方面,大部分研究和很多工作流产 品都集中在团队工作方式上”l ,提出了单列表、多视图的任务分配方式。在动 态指派参与者方面,国内外已经有部分研究人员作了一些工作。翟宜峰等提 出了一种基于p e t r i 网的参与者模型及其工作流的建模方法,唐达等【1 9 驯亦提出 了一种基于p e t r i 网的工作流参与者建模的方法,但他们的研究重心在于用p e t r j 8 兰! 量堡垄一一 网建立工作流参与者模型,在动态指派参与者方面,仅仅考虑了参与者的状态; m a r i u s z 等【2 t 1 提出了一种参与者指派语言w p a l 描述了参与者技能参数。其他 一些工作也对基于许可的指派模型【2 2 】和基于策略的资源动态分配进行了研 究。 1 2 工作流指派参与者机制 1 2 1 w p a 和d w p a 在工作流管理系统中,任务需要参与者执行。在工作流运行阶段,工作流引 擎需要通过预先定义好的过程模型数据静态或动态地将参与者指派给工作项。我 们将工作流中指派参与者给工作项的行为称作工作流指派参与者机制( w b r k n o w p a n i c i p a n ta s s i 印m e n t ) ,简称为w p a ,而将在运行时期能根据动态的数据( 如 工作流执行历史数据、动态约束等) 指派参与者的行为称为工作流动态指派参与 者机制( d v n 锄i c 、o r k f l o wp a n i c i p 粕ta s s i g n m e n t ) ,简称为d w p a 。w p a 类似 于工作分配( w b r kd i s 耐b u t i o n ) ,只是研究的角度不同,但都是以如何选择合适 的参与者作为工作的执行者为目标。 1 2 2 基于角色的访问控制 基于角色的访问控制( r 0 l c b a s e da c c e s sc o n t f o l ,简称为r b a c ) ,是一种 针对计算机资源的访问控制技术。在目前多用户的集成工作环境中,r b a c 对信 息安全的控制起了非常重要的作用。自从r b a c 被提出以来,该技术迅速被各 种计算机信息系统( 如m l s ,e r e w f m s 等等) 广泛采用。 目前大部分工作流产品采用r b a c 技术建立w p a 机制,即基于角色的w p a 机制。工作任务的分配根据过程模型定义中任务相关的角色,也就是说,在工作 流过程执行阶段,工作流引擎选择属于过程模型定义中任务相关角色的用户执行 该任务。 用户使用各种计算机系统时需要不同程度地访问相关资源,如查询信息,更 改订单,删除资料,等等。访问控制是指限制用户相应操作的能力。在计算机信 息系统中,访问控制除了规定谁或某个进程可以访问特定的系统资源外,还规定 访问的类型,如查询,修改,删除,等等。这些控制可以通过信息系统的功能实 现,也可以通过外部设备实现。 角色的定义依赖于组织结构中的部门、职位、职称等信息( 比如总经理,部 门经理,审核人员等) ,用户充当各种不同的角色。角色的分类必须通过分析组 织结构、所有用户的职能等信息来决定。 访问权限根据角色名称来分组,充当不同角色的用户具备不同的权限。比如 审核人员可以对理赔申请进行审核,而录入人员只能录入理赔申请。 9 篁! 皇堡垄 在r b a c 中,用户根据自身职责和能力被分配到相应的角色中。用户可以执 行的操作依赖于用户所属角色的权限。用户所属某角色的成员资格可以非常方便 地解除,同样地,新的成员可以方便地加到某角色中。如果出现了新的操作或需 要删除旧的操作,可以通过更新角色的相关联操作轻易地达到目的。这简化了权 限的管理维护工作。当某个职位的权限发生变化时,可以通过修改相应角色的权 限达成目的而不需要修改属于该职位的每一位成员。 在r b a c 中,可以通过角色的层次结构来反映组织结构中的层次。通常,属 于不同角色的用户需要处理部分相同的操作,即拥有部分相同的权限。所有的用 户可能拥有部分相同的公共权限。一个用户可能同时属于多个不同的角色,而多 个角色之间的权限可能会重叠,此时可以通过定义角色的层次结构和权限继承来 实现。角色层次结构是符合现实情况的组织角色进行反映授权、职责和能力的一 种方式。 一个采用r b a c 机制的应用程序可以让用户执行大量被授权的操作,同时为 应用程序提供巨大的灵活性和适应性。利用r b a c ,系统管理员可以如典型的企 业管理方式那样在一个抽象的层次控制访问。系统管理员通过建立和定义相应的 角色、角色层次、关系和约束来静态或动态地控制用户的活动。因此,一旦为一 个企业建立一个r b a c 框架,原则上管理活动就是将用户授予给角色或将用户 从角色中脱离。这与传统的使用更低层次的权限控制机制( 如权限控制列表) 恰 恰相反。传统的方式直接将权限赋予用户,不符合组织的管理方式,缺乏灵活性。 更进一步,从实现的角度来说,我们可以将r b a c 操作的概念与对象技术( 0 b i e c t t c c h i l o l o g y ) 对应起来,这样就可以在应用程序或操作系统中用对象技术来实现 一个r b a c 操作。 1 3 工作流产品 1 3 1s t a f 董w a r e s t a 脚a r e 】是目前最广泛应用的工作流管理系统之一。s t a 脚a r c 的一个核心 思想是工作队列( w o r kq u e u e ) 。一个工作队列会和一组用户或角色相关联。每 爪相关联用户组或角色内的用户共享该工作队列中的工作。工作项被推到一个或 多个工作队列中,会被相关用户组中的某一用户处理。当一个用户希望处理某 工作项时,她从队列里面选择该工作项进行处理,且在处理过程中,该工作项被 锁定,因此其他用户不能处理该工作项。处理完毕后,用户可以将工作项解锁或 返回到队列中。 1 3 2l o t h sd o m i n ow b r l m o w l o t u sd o m j n ow j r l ( f l o w ”是个以文档为中心、面向用户的工作流。在 1 0 第1 章综述 d o m i n 0 工作流中,虽然可以将一组用户指派给一个活动,但每次只能由其中一 个人( b i n d e r ) 绑定处理相关的文档。因此,永远都只有一个活动拥有者( o w n e r ) , 该活动拥有者就是绑定了该活动的用户。成组工作是通过团队( t e a m ) 概念来 实现的,每一个团队会有一个领导,该领导为活动的拥有者,只有她才能决定活 动何时完成,而其他成员可选择成为绑定者( b i n d e r ) 。在改变绑定者之前必须完 成的所有工作被集中到一个活动中。一个活动能包含各种各样的任务,但一旦有 用户掌管了它们,b t u s 工作流就不建议把它们分成单独的活动因为如果这样处 理会变成一个复杂的过程而不得不扩充d o m i n o 工作流的基本模型。比如,考虑 一个负责阅读收到的e m a j l 用户所需要处理的任务,比如,一个打开e m a i l 程序 并在工作日记中作一些注释的任务,然后是一个打开某应用程序的任务,最后是 启动传真程序将反馈传真给客户的任务。如果同一个人处理所有的三个任务,那 么它应该被定义为一个活动而不是三个。 图1 5 显示了相关思想: a c i i ,时a 一l 臼畿; : 舢b豳能2 腰 a 嘣谪y e 器 c i 鞫蒌i 图1 5i j 0 t u sd o i i l i n 0 工作流中活动的概念 这个特性是很有创造性并符合一定的实际情况的,但最大的缺点是无法适应 变化。 1 3 3o 糯d ew o r o w o r a c l ew b r k n o w 尚处于不断地完善当中。与大部分工作流产品一样,o r a c l e 工作流通过角色与活动的关联来达到任务分配的目的。o r a d e 工作流的角色 存储在0 r a c l e 目录服务( d i r e d o r ys e i c c ) 中,不过在o r a c l e 工作流b u i i d t i m e 中不能创建新的角色,只能显示和引用目录服务中的角色。为了增加用户和角色, 必须通过定义一个函数活动调用服务器端a p i 来访问目标目录服务。在0 描d e 工作流中,过程建模时将每个活动与一个角色相关联。然后一个预先定义好的活 动r o l er c s o l u t i o n 会附上指定的选择条件置于每个活动的前面。在运行时期,活 动r 0 1 er e s o l u t i 会根据附属的选择条件为下一活动从相关联的角色中选取属 于该角色的用户执行该活动。指定选择条件时有两个可用的可选项: ( 1 ) 负荷均衡:工作流引擎会比较每个有资格用户当前的工作负荷,从中 选取一个拥有摄少工作量的用户: ( 2 ) 连续性:工作流引擎从有资格的用户中选取一个最长时间没有接收过 第1 章综述 工作项的用户。 o r a c l e 工作流通过在运行时期可以通过动态选择参与者而显示出有一定动 态性的w p a 机制。 1 3 4i b mm qw o r l l l o w m qw b r k n o w 是一个以应用为中心的工作流产品。它分配工作项的机制与其 他产品相似,都是通过角色进行分配。在w e a 方面一个更灵活的支持是通过 调用工作流引擎的a p i 来进行自定义开发从而实现动态的w p a 【2 8 】,然而自定义 开发对于工作流实施人员和客户来说成本非常高。下图是m ow b 栅a w 的界而。 幽1 - 6m qw b r 如d w 中参与者的选择 一眼看上去似乎非常复杂,其实仔细研究后发现任务分配的对象其实就是两 种类型:角色和个人。m qw b r k f l o w 工作的方式与s l a 脚a r e 非常相似,只是术 语不同而已。s t a 脚a r c 的工作队列( w b r kq 眦u e ) 在m qw b r k n o w 种成为工作 列表( w o r kl i s t ) 。每个角色拥有自己的工作列表,只有属于该角色的用户才能看 到和执行该工作列表的工作项。默认情况下,工作被分配给角色而没有特定的用 户被指派给一个工作项,工作项停留在一个基于角色的工作列表中直到有用户执 行它为止。一旦一个工作项被某用户锁定,该角色的其他用户则不允许执行该工 作项。m qw b r 姐o w 通过一个自定义的包含许多用户属性的数据容器来实现动 态w p a 。工作项在初始化阶段获取执行者的信息,如果执行者的信息不能满足 预先定义的条件会引发错误导致工作项重新返回工作列表供其他用户选择。虽然 m q w b r k f l o w 的w p a 考虑了一些用户的动态信息,但指派用户时处于被动的状 态( 即由用户本身选择工作项时才触发) ,仍然不能满足实际应用的需要。 塑! 皇堡鲨一 1 4 工作流产品分析 通过研究和分析前面四种工作流管理系统产品,我们发现在工作分配和参与 者指派方面各有两种基本的机制。 工作分配机制有以下两种机制: ( 1 ) p u s h 机制:工作流系统将工作项“推”给一个单一的参与者。 ( 2 ) p u l l 机制:参与者从一个可见的公共工作列表( 工作“池”) 中“拉” 工作项。 参与者指派机制有以下两种机制: ( 1 ) 基于角色的机制:建模阶段定义每个任务与若干个角色关联。运行时 期,属于相应角色的所有成员都能在一个任务相关的工作“池”中看到和选择其 中的工作项。工作项一旦被一个成员锁定,其他成员不能处理该工作项除非原先 的成员释放该工作项。 ( 2 ) 基于个人的机制:在建模阶段定义活动的拥有者,在工作流执行阶段 只有活动的拥有者才能处理该活动。 这两类机制在某种意义上互相关联的。比如,一个基于个人机制中参与者的 选择相当于个p u s h 类型的工作分配;另一方面,一个基于角色机制中参与者 的选择相当于p u l l 类型的工作分配。 严格来说,p u s h 机制属于p u l l 机制的特殊情况,即当只有一个参与者能 看到该工作项时。p u s h 机制的优点在于可以保证很好的安全性,但缺陷在于缺 乏灵活性。在p u s h 机制中,如果一个工作项分配给了一个出差或休假的工作人 员,那个工作项将会一直待在那个工作人员的工作列表里面直到他回来。另一方 面,如果采用p u l l 机制,多个工作人员会同时看到这个工作项,这样该工作项 被其中一人处理的机会就高很多,从而提高了工作效率。因此,当前工作流管理 系统主要采取了灵活性更高的p u l l 机制作为工作分配的基本思想,即将工作按 照预先的定义分配给相关角色的工作“池”中,那么属于相应角色的所有参与者 都能在工作“池”中看到该工作,根据自己的需要从工作“池”中“拉”工作项 进行处理。换个角度说,就是采用基于角色的参与者指派机制,即分配工作项时 按照组织结构和参与者职责来选择参与者。这是一个相当原始的机制,在动态指 派参与者方面几乎没有什么支持,不能根据运行时期的动态数据( 如工作流执行 历史数据、参与者当前状态等) 进行动态指派。基于角色的参与者指派机制在处 理工作人员因为出差,生病,太忙,是否胜任等问题上遇到很大麻烦,因此也会 产生很多负作用,譬如选择了不可用的参与者或在资格上不合适的参与者。这样 就违背了工作流的目标:提供高效、安全的自动化流程和组织管理。 采用基于角色的参与者指派机制的当前工作流管理系统有如下缺点: 一、可用性和适合性方面 由于当前采用的p u l l 机制是基于角色的,即将工作分配给相关的角色,仍 具备p u s h 机制的部分特性,因此也在一定程度尚存在p u s h 机制的缺点,即 工作可能被分配给了不可用的参与者。 同时,由于工作项是分配给角色的,那么属于该角色的所有参与者都能看到 苎! 里鳖堕 _ _ 一 属于该角色的所有工作项。而由于角色的定义依赖于组织结构和参与者职责等静 态数据,却与参与者的经验、能力等动态数据无关,所以工作项难免会被在经验、 能力或熟悉程度等方面不大适合但属于同一角色的参与者执行,然而这不是我们 希望的。我们希望能选择无论在安全性还是在可用性方面都最合适的参与者来执 行任务。 比如: ( 1 ) 一个工作项按照角色只分配给了两个参与者,但刚好那两个参与者都 休假个星期。工作流系统对此毫无察觉。 ( 2 ) 一个工作项按照角色分配给了销售部门的所有员工,但实际上只有一 小部分熟悉相关的客户。 ( 3 ) 角色“高级审核人员”和“经理”被设定与任务“理赔申请批复”相 关联,那么所有高级审核人员都可以执行“理赔申请批复”任务,然而实际上, 我们却希望只有超过两年审核经验的高级审核人员才有资格执行该任务。 二、高级约束问题 当前工作流管理系统很难处理像这样一些约束,比如,“超过1 0 0 万的保单 必须由具备两年以上核保经验的核保员进行处理”,“照会回复单必须由发出该份 照会的客服人员处理”,“目前已经有1 0 0 张保单以上的录入人员不再分配新的任 务”等等。即使可以实现,也需要实施人员付出大量的自定义开发工作。 三、代理机制 当前系统不支持代理机制,即参与者无法处理一工作项时,系统无法自动寻 求代理者来完成该工作项。 1 5 本文工作 本文讨论的是工作流管理系统中动态指派参与者模型的设计、实现和应用。 主要工作有如下方面: 针对目前工作流产品中在参与者指派机制上的不足,利用逻辑语言建立了一 个形式化的动态指派参与者模型d w p a m 和高级约束条件描述语言w c s l 。 d w 队m 模型综合考虑了参与者执行任务资格适合度、事件优先级、高级约束条 件满足性和参与者状态有效程度等四个重要因素,采用了一种基于指派因子和指 派可接纳度的动态指派方法,很好地实现了动态指派参与者的目标,提高了工作 流的效率。这一部分在第二章讨论。 在第三章,本文给出了d w p a m 系统的设计与实现。d w p a m 系统包含过程 定义工具、工作流引擎和客户端应用工具三大模块,采用快速开发工具d e l 口h i 开发。其中包含w c s l 语言编译模块和d w p a m 指派模块的工作流引擎的实现 利用了编译原理和数据库技术。 在最后一章,本文介绍了如何将d w p a m

温馨提示

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

评论

0/150

提交评论