




已阅读5页,还剩59页未读, 继续免费阅读
(计算机软件与理论专业论文)微工作流架构的研究与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微r 作流架构的 j j | 究oj 心用 中文摘要 工作流管理系统是随着i n t e r n e t 和i n t r a n e t 的普及而快速发展的软 件系统之一,其主要目标是通过调用有关信息资源与人力资源来协调业 务流程中的各个环节,使之按照一定的顺序依次进行,从而实现业务流程 的自动化。然而,现有的工作流管理系统在面临当今复杂多变的应用环境 和快速开发部署的需求下显得力刁i 从心。 微工作流架构是近年来工作流技术发展过程中研究人员提出一种的 新的工作流模型。与传统工作流技术相比,微工作流架构分离了控制层和 逻辑层,具有较好的可复用性、可移植性、可扩展性。开发人员在其基础 上定制需要的功能以满足个性化的需求。 本文首先从理论上对微工作流架构进行分析,对比微工作流架构与 传统工作流技术的异同,然后在研究了微工作流核心的基础上,扩展和丰 富它的功能,提出了一个微工作流引擎的设计方案。围绕该方案里具体地 阐述了如何结合事件机制和规则机制驱动工作流流程。最后,设计和实现 了一个工作流定义语言解析器( x p d lp a r s e r ) 对工作流定义语言进行解 析。 本文末尾给出了一个具体的应用实例并对所做的工作进行总结,提 出今后需要研究和改进的方向。 关键词:工作流管理系统。微工作流架构,x p d l 解析器,工作流引擎 作者:赖蔚明 指导老师:刊、涌 r e s e ajc ha n da p p l i e a t i o do fm i c lo w o lk f o wa r e h i t e c t u lp a b s t r a c t w it h t h ew i d es p r e a do fi n t e r n e ta n di n t r a n e tt e c h n o l o g y w o r k f l o w m a n a g e m e n ts y s t e m ( w f m s ) h a sd e v e l o p e dr a p i d l yi nr e c e n t y e a r s t h em a i ni n t e n t i o no fw f m si st o a u t o m a t et h eb u s i n e s s p r o c e d u r eb yc o o r d i n a t i n gi n f o r m a t i o na n dh u m a nr e s o u r c e s b y u s i n gw f m s ,t h eb u s i n e s sp r o c e d u r ec a nb ep e r f o r m e da c c o r d i n gt o ac e r t a i nb u s i n e s sl o g i c i ns p i t eo ft h i s ,t h e r ei sa l m o s tn oh o p e f o rc u r r e n tw f m s p r o d u c t s t om e e tv a r i o u sa n d c h a n g e f u l r e q u i r e m e n t s t h em i c r o w o r k f l o wa r c h i t e c t u r ei san e ww o r k f l o wm o d e lw h i c h r e s e a r c h e rp r o p o s e d i nt h el a t e s t y e a r s b y c o n t r a s tw it h t r a d i t i o n a lw o r k f l o wf r a m e w o r k ,t h em i c r o - w o r k f l o wa r c h i t e c t u r e s e p a r a t ec o n t r o la n dl o g i ca s p e c t s ,s o ,i t sr e u s a b l e ,p o r t a b l e a n de x t e n s i b l e d e v e l o p e r sc u s t o m i z ew o r k f l o wf u n c t i o n a l i t yt o s a t i s f yv a r i o u sr e q u i r e m e n t so nt h eb a s i so fi t a c c o r d i n gt ot h et h e o r e t i ca n a l y s i s o fm i c r o w o r k f l o w a r c h i t e c t u r e , w ep r e s e n t sd i f f e r e n c e sa n dr e l a t i o n s h i pb e t w e e n i ta n dt r a d i t i o n a lw o r k f l o wt e c h n o l o g y ,a f t e rt h i s ,w ee x t e n dt h e f u n c t i o n a li t i e so ft h es y s t e ma n dd e f i n ee v e n t st y p ea n dr u l e s ,g i v e t h ew a yt oh o wt om a n a g et h e m i m p le m e n ta nx p d l ( x m lp r o c e ss d e f i n i t i o n l a n g u a g e ) p a r s e r , e n a b l em i c r o w o r k f l o w c o r et o s c h e d u l ea ns a m p l ew o r k f l o wc a s e f i n a l l y ,t h ep a p e rs u m m a r i z e sa l lo ft h ew o r ka n ds u g g e s t e dt h e f u t u r ei m p r o v e m e n to nit k e yw o r d s :w o r k f l o wm a n a g e m e n ts y s t e m , m i c r o w o r k f l o w a r c h it e c t u r e ,x p d lp a r s e r ,w o r k f l o we n g i n e w r i t t e nb yl a iw e i m i n g s u p e r vis e db ys u ny o n g 苏州大学学位论文独创性声明及使用授权声明 学位论文独创性声明 本人郑重声明:所提交的学位论文是本人在导师的指导下,独立 进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文 不含其他个人或集体已经发表或撰写过的研究成果,也不含为获得苏 州大学或其它教育机构的学位证书而使用过的材料。对本文的研究作 出重要贡献的个人和集体,均已在文中以明确方式标明。本人承担本 声明的法律责任。 研究生签名:妊日期:立竺毕 学位论文使用授权声明 苏州大学、中国科学技术信息研究所、国家图书馆、清华大学论 文合作部、中国社科院文献信息情报中心有权保留本人所送交学位论 文的复印件和电子文档,可以采用影印、缩印或其他复制手段保存论 文。本人电子文档的内容和纸质论文的内容相一致。除在保密期内的 保密论文外,允许论文被查阅和借阅,可以公布( 包括刊登) 论文的 全部或部分内容。论文的公布( 包括刊登) 授权苏州大学学位办办理。 研究生签名: 导师签名: 期:塑型:三2 期:塑:兰:兰2 第一章绪论 本章在论文的课题背景里介绍了工作流技术、工作流系统现状和存在的问题,随 后介绍7 研究现状、课题的目标及意义本文主要工作内容和论丈的结构 1 。1 课题背景 t 1 1 工作流技术简介 工作流技术最早出现在办公自动化系统和任务批处理当中。上世纪 8 0 年代,随着人们对计算机自动化的深入认识及其带来的商业与竞争回 报促使着工作流技术高速发展。根据工作流管理联盟( w o r k f l o w m a n a g e m e n tc o a l i t i o n 简称w f m c ) 的定义,工作流就是自动运行的业务过 程部分或整体,表现为参与者对文件、信息、任务按照规则采取行动,并 令其在参与者之间传递m 1 。简单地说,就是业务活动按时间或逻辑关系构 建成业务流程,在业务流程中实现了全部或部分计算机自动化就称为工 作流。工作流技术应用广泛,作为一种过程建模和过程管理的核心技术可 以和c p 3 t 、e r p 等应用系统有效的结合。 当今工作流技术已经广泛应用在银行、政府机关、制造业、保险业 等诸多领域。随着现代企业经营和生产规模的日益扩展,它涉及的资源范 围越来越广,相应的业务流程可能与跨公司不同地域的资源相关。而且, 随着市场需求的变化和企业自身的调整及业务的重组优化业务规则不 断地变化。因此需要利用工作流技术来解决这些复杂而多变的业务。 工作流软件又可以分为独立的工作流管理系统和嵌入式组件两种。 一般在企业级应用中使用嵌入式的工作流软件来协调企业各应用间的工 作。如下图所示,一个单独的应用所解决的复杂的整体问题被分成若干个 独立成分: 虚用 f 虻 u i u s d f f m s 操作系统 图卜1 系统功能发展图“1 图l 一1 描述了近年来系统功能发展的演变。众所周知,d b m s 部分将管 理大量信息的工作从原有操作系统文件处理系统的功能中剥离出来,从 而以一种方便有效的、能对变化做出需求的方式处理信息。同样,u i m s ( 用 户接口管理系统) 、w f m s 也处于应用和操作系统之间,这样用户管理、流 程管理与应用逻辑分离开来。 从发展的前景看,工作流系统的作用不仅是当初简单的单个的业务 流程的批处理。从开发者的角度看,从用户角度来看它起着对现今分布式 跨平台跨企业涉及多应用的协调作用,作为企业应用系统集成( e a i ) 平 台的基础,当前大部分企业级i t 架构中包含各种专门应用;这些专门应用 提供了一组固定的自动化业务流程;而工作流系统将业务流程描述作为 输入并管理流程实例的执行,比专门应用更灵活。因此,工作流系统和专 门系统是相互补充的,使用工作流系统管理全局的业务流程,结合所有的 专门应用,来构建一个e a i 平台。 1 1 。2 工作流系统现状 这里,工作流系统泛指以工作流技术为核心的产品,包括小至工作流 轻型引擎,大至功能完备的工作流管理系统。目前,无论在国内还是在国 外,商业领域还是开源社区,工作流项目都活跃其中,工作流产品的数量 也是不胜枚举。 国外的工作流产品形成了明显的产品层次,实力雄厚的大公司依靠 它们的技术上的优势将工作流产品和它固有的产品结合在一起形成一整 套的解决方案。下面简要介绍两个具有代表性的产品: 微t 作流架构的研究j 心用 i b m 公司的m q s e r i e sw o r k f l o w 是m o s e r i e s 系列产品之,架构在 m q s e r i e s 和m q s e r i e si n t e g r a t o r 之上。它是企业业务流程管理的核心引 擎,实现了企业灵活性、服务级管理以及基于w e b s p h e r e 和m q s e r i e s 的快 速流程部署。消息中间件m o s e r i e s 为其提供一个安全、可靠的信息传输 系统,m o s e r i e si n t e g r a t o r 为企业业务集成提供了一个集成基础架构,使 工作流模型能包含各种应用程序。因为它的可靠性和容错能力使得用户 在当今的电子商务环境下提供流程处理引擎,并在由m o s e r i e s 支持的平 台上可靠地与交易进行交互。 o r a c l e 公司的o r a c l ew o r k f l o w 包含在o r a c l e9 ia p p li c a t i o n s e r v e r 的企业版中。o r a c l ew o r k f l o w 提供了一套完整的工作流管理系统, 支持以商务流程为基础的集成。o r a c l ew o r k f l o w 在企业内外实现了商务 流程的自动化,并简化了商务流程。其技术可以实现商务的模型化、自动 化,并不断地改进商务流程。o r a c l e 的集成数据仓库可以解决信息存取问 题。通过o r a c l ea p p l i c a t i o i ld a t aw a r e h o u s e 可以对关键商业信息进 行完整的多维分析可提供企业信息的全貌。它甚至可以把工作流自动扩 展到企业之外。利用它对电子通知的全面支持。您可以把任何e d i ( 电子 数据交换) 、电子邮件或具有i n t e r n e t 能力的客户、供应商或商业伙伴纳 入工作流内。 1 1 3 存在的问题 现在工作流技术的应用场景和实施技术都与发展之初时有着很大的 不同。当前工作流系统不再局限于完成早期工作流系统的诸如文档传递 等简单功能。在新环境下,工作流系统面临新的问题挑战,这些问题概况 起来有以下几个方面: 1 ) 通用性不足 图1 - 2 是工作流管理系统参考模型一构件和接口图。w f m c 的标准文档 w f m c - t c - 1 0 0 3v i 1 t h ew o r k f l o wr e f e r e n c em o d e l 对该图提供了 详尽的描述,这些描述包含功能说明、逻辑参考、模型建议等等。 微t 作流梨构的研究j m 用 图1 2 工作流参考模型一构件和接口 从图中可以看到有5 个接口。实际上很多商用和开源的工作流系统都 没有严格遵照这个标准,或者说没有统一。这里有一部分原因是规范的不 足,例如w f m c 的标准对于很多细节( 例如对于循环及子流程的定义等等) 没有明确说明,所以,虽然制定了标准,但各家的工作流系统之间,还是没 法互通消息,在实现时只好各做各的。还有一个原因是工作流系统与业务 系统关系密切,受业务系统的限制或约束太大,因此支持不同业务的工作 流在细节上差异很大,标准不易统一,导致做一个通用的工作流系统难度 比较大。 2 ) 集成性不理想 目前的工作流管理系统大多作为一个单独的应用来开发,具体体现 为个公文流转系统、电子政务系统等。这样,工作流管理系统在设计和 实施中,没有提供足够的柔性去满足不同应用的需要。 信息系统没有达到真正的集成,还是在自己独立地运行,处理一些行 政上简单的流程业务,不能很好将o a 、e r p 、c r m 、s c m 等具体事务处理系 统紧密地联系在一起,达到数据录入一次即可有效的目的。具体体现在现 有的信息系统缺乏统一的业务基础架构。现有的信息系统,无论是独立的 工具软件还是集成的解决方案,大多是孤岛型的应用,或者是业务功能模 块的简单累加。这些孤岛系统,相互之间是孤立封闭的。而实现流程连接、 加强团队协作正是工作流管理系统的特长。 如何使系统问的信息将不仅仅是用于共享,使这些信息被有效的管 微丁作漉架构的研究o j 心用 理起来是设计工作流系统时要考虑的重要问题。也就是在企业应用集成 方面,使得工作流管理器成为业务支撑系统的核心,将业务系统构造在基 于标准的工作流基础上,实现业务逻辑和应用逻辑的解耦。蚓。 3 ) 复用性差 不同的商业应用背景和实施技术的差异以及各厂商在开发工作流产 品时附加的不同功能决定了工作流产品的重量级( h e a v y w e i g h t ) 。这些工 作流产品变的越来越庞大也越来越难以维护,这就导致了工作流系统很 难被复用、定制、与其它环境的集成“。 我们知道实现重用的目的是希望开发人员能够使用已有的经过测试 的可靠的构件来组装生成软件系统。这在某些方面重用开始有所体现。 最为显著的是在g u i ( 图形用户界面) 的开发和数据库的交互方面。然而在 工作流方面进展比较缓慢。目前还没有工作流软件的标准构件出现,因为 工作流领域没有标准的框架。 4 ) 可扩性差 现有工作流系统有一个问题:其系统结构一般是封闭的。应用系统的 开发者要么完全接受它所强制提供的结构,要么完全不采用它。在开放性 越来越成为趋势的情况下,这种产品难以适用于构建大型的企业级应用。 1 2 研究现状 目前对工作流技术的研究方向可以分为三个方面m 。:第一方面是工 作流的理论基础,包括工作流管理系统的体系、模型与定义语言,这一部 分工作相对来说比较薄弱,还有许多问题需要迸一步研究。第二方面是 工作流的实现技术,第三方面是工作流技术的应用。 目前对工作流架构的相关研究成果有:分布式体系结构的基于消息 队列的工作流管理系统e x o t i c a ”1 、以文献 3 9 为代表对自适应的体系结 构的研究、对m e n t o r 一1 i t e “0 1 年h m i c r o w o r k f l o wa r c h i t e c t u r e ”( 微工作 流架构) 的研究等。 对本文研究的微工作流架构,它的提出者d r a g o ,sa m a n o l e s c u 用 v i s u a l w o r k ss m a l l t a l k3 1a n dg e m s t o n e s5 1 4 在l i n u x 下实现了一 个原型系统,同时用j a v a 基本实现了微工作流架构的关键部分微工 作流核心。 微t 忭流架构的i f 究,m 用 1 3 课题的目标及意义 本课题的研究目标是扩展j a v a 实现的微工作流核心,设计个基于 微工作流架构的功能初具的工作流引擎并使其能够解析工作流定义语言 的工作流流程。它的意义有: 1 ) 开发一个功能完善的工作流系统是一件非常困难和复杂的工作。 本文在微工作流体系结构下进行设计与开发,对工作流技术领域的研究 者来说,有一定的借鉴意义。 2 ) 可以针对客户的不同需求定制工作流系统,提高了工作流系统的 灵活性和易用性。这种柔性构造的功能为用户带来更大的方便,对解决 1 1 3 节提出的工作流系统当前存在的问题做了有益的尝试。 1 3 本文主要工作内容 本文阐述了微工作流架构的组成和特点,在分析微工作流核心的基 础上扩展它的功能并设计和实现了一个基于x m l 的过程定义语言解析器 ( x p d lp a r s e r ) 使其与实际的工作流应用相关联,从而也论证了微工作流 架构不仅在理论上有优势而且在实践中可行。具体地,本文的工作有: 1 ) 分析了微工作流架构和微工作流核心的实现。 2 ) 对微工作流核心的组件进行扩展,以便处理流程的上下文信息。 3 ) 归类系统中的事件,设计事件管理器结合e c a 规则管理器驱动流程 的执行。 4 ) 设计及实现了x p d lp a r s e r 配合微工作流核心工作使x p d l 定义的流 程被微工作流核心调度运行。 5 ) 介绍一个实际的应用项目,通过它说明文中的设计思想。 1 4 论文的结构 本论文的后续章节按照如下的结构组织: 第2 章微工作流架构:概述了微工作流架构的结构、微工作流架构的 核心组件即微工作流核心,并讨论了它与其它工作流技术的差异。 第3 章微工作流引擎的设计与实现:首先描述r 工作流引擎的功能 和当前的微工作流核心,然后在当前微工作流核心的基础上提出r 微工 微t 作流架构的研究,j 避用绪论 作流引擎的总体设计方案,接着对该方案展开进行详细的讨论。 第4 章x p d l 解析器:首先介绍了工作流定义语言的功用及背景,接下 来详细介绍了w f l d c 提出的工作流定义语言x p d l ,然后说明了如何设计、实 现及测试微工作流架构中的x p d lp a r s e r 。 第5 章应用实例:概要地描述了一个实际应用项目。通过这个具有代 表性的实际项目进一步论证了本文所阐述的设计思想的有效性和可行 性。 第6 章结束与展望:对本文的工作做出总结,并提出下一步需要关注 的问题。 第一章相关技术背景 微r 仵流架构的埘究,j 啦用 笫二章相关技术背景 本章介绍了本文中主要使用或相关的技术:u m l 、x m ls c h e m a 、s a x 、d o m 。 通常工作流系统等大型信息系统十分复杂,如何对它进行分析设计, 用规范化的符号语言将所要开发的系统完整准确地表达出来,是需要解 决的一个问题。要做到这一点,就必须对于所要开发的系统有工程化的 描述,因此,产生了信息系统的各种分析设计方法与设计工具。 u m l ( 统一建模语言,u n i f l e dm o d e l i n gl a n g u a g e 的简称) 是目前软件 业普遍采用的设计方法,u m l 建模语言出现子7 0 年代中期, j m l 是一种 定义良好、易于表达、功能强大且普遍适用的建模语言。它溶入了软件 工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象 的分析与设计,还支持从需求分析开始的软件开发的全过程。u m l 通过用 例图、顺序图、对象图、活动图、状态图、协作图、部署图表达软件系 统的各个本质特征,u m l 能够把模型与实际应用紧密地联系起来。通过 模型与代码之间的映射。可以直接为不同的程序开发环境生成系统结构 的框架。 下面对常用的几种视图做简要的介绍: 1 ) 用例图( u s e c a s ed i a g r a m ) 显示多个外部参与者以及他们与系统 提供的用例之间的连接,一个用例是对系统提供的某个功能( 该系统的一 个特定文法) 的描述“。u m l 用例视图从外部用户的角度捕获系统的行为。 它将系统功能划分为对活动者( 系统的理想用户) 具有意义的事务。用 例通过系统与一个或多个活动者之间的一系列消息描述了与活动者的交 互。 2 ) u m l 顺序图更进一步显示出随着时间的变化对象之间是如何通信 的。它在在对象交互的表示中加入了时间维。 3 ) u m l 类图是以类为中心来组织的,类图中的其他元素或属于某个类 或类相关联。静态视图用类图来实现。正因为它以类为中心,所以称它为 类图。 徽t 作流架构的研究j 心用 笫一帝相关投术背景 2 2x ls c h e m a x m l 是一种自描述语言,它给开发人员提供了灵活性。可是。太大的灵 活性对x m l 应用是有害的。在某些情况下,可以使用自由形式的x m l ( 没有 定义文档模型的x m l 文档) ,但是定义用户的x m l 文档必须遵守的严格文档 会使这些模型更有用。在设计x m l 应用时,存在有效性必须得到满足的情 况。 x m ls c h e m a 的预期用途是给一类x m l 文档定义一个文档模型。x m l s c h e m a 文档模型设计用来定义各种模式成分的用法与关系。比如:数据 模型、元素及其内容、属性及其值、可重用成分及其内容、表示法。 在定义文档模型的过程中,需要x m ls c h e m a 解决下列问题“: 1 ) 结构模式:描述定义文档模型的构造。比如与名字空间的集成以 及基础数据类型的集成。 2 ) 基本的数据类型化:使开发人员能够给整数、日期以及同类东西 定义约束。 3 ) 一致性:定义模型与x m l 文档实例之间的关系。此外,还定义模式处 理程序的职责。 通过使用x m ls c h e m a ,我们在数据形成阶段就能对数据的有效性和正 确性进行部分检验,提高了数据的可靠性和可用性。 2 3s a x 和d o m 本文需要解析的x p d l 文档是基于x m l 的,因此对x p d l 文档解析前,需 要选择一个好的解析方法。围绕核心x m l 标准发展了一系列的相关技术, 解析器通过s a xa p i 或d o ma p i 来实现对文档的解析,以下是对基于事件驱 动的s a x 与基于对象模型的d o m 的介绍和比较。 1 ) s a x s a x ,即“s i m p l ea p if o rx m l ”( 用于x m l 的简单a p i ) ,是用于解析x m l 文档的简单易懂的,基于事件的a p i ( 许多不同的x m l 解析器,包括x e r a e s , m s x m l ,o r a c l e 的用于j a v a 的解析器等都实现了s a x a p i 。s a ) ( 是一个基于 事件的推模型,当x m l 解析器读入x m l 文档时,它会实时从文档向程序发送 信息。每当读到起始标签,结束标签,字符数据或处理指令时,解析器就会 通知程序。不需要象d o m 那样在开始处理文档前等待读入整篇文档,文档 q 第一章相关投术背景 微t 怍流架构的训宄。,心用 会从前到后的顺序一次一部分的提供给程序。程序中可以将感兴趣的部 分存储下来知道读入整篇文档,也可以一接到信息就进行处理。最重要的 是,整个文档不必保留在内存中。这个特性使s a x 成为超大型文档解析的 良好选择,因为这些超大型文档很难全部存储到内存中。 2 ) d o m d o m ( 文档对象模型,d o c u m e n to b j e c tm o d e l ) 是由w 3 c 推荐的,它描述 了用于在内存中存储层次文档的与编程语言无关的对象模型( 当前最新 版本d o m 3 提供了操作x m l 文档,h t m l 文档和样式表的模型) 。本文将主要 讨论用于x m l 文档的d o m 的一部分,目d d o mc o r e d o m 试图成为与操作系统和 语言无关的,因此所有d o m 接口都使用由对象管理小组组织( o b j e c t m a n a g e m e n t g r o u po r g a n i z a t i o n ) 定义的i d l ( 接口描述语言,i n t e r f a c e d e s c r i pt i o nl a n g u a g e ) 来指定。d o mc o r e 接口对所有支持的文档内容 类型提供了通用访问,例如,可用通用接口访问h t m l 中具体的文档结构, 如表格、段落和 标签。由于x m l 的设计目的是创建新的,独特的、结 构化的标记语言,标准主体不能预先定义特定与应用之外的接口。取而代 之的是,d o mc o r e 接口可以用一种完全与应用无关的方式操作文档元素。 d o mc o r e 被进一步划分为f u n d a m e n t a l ( 基本) 接口和e x t e n d e d ( 扩展) 接 口。f u n d a m e n t a l 接口与x m l 和h t m l 文档都有关,而相反的,e x t e n d e d 接口 只处理纯x m l 文档接口,如实体声明和处理指令。所有的d o mc o r e 接口都 派生于n o d e 接口,该接口为访问文档或文档片段的结构和内容提供了一 组通用的接口。 2 4 本章小结 本文运用u m l 来描述系统关键的静态结构和动态行为。本文设计的 x p d l 解析器执行的最基本的任务就是检查x m l 文档的照构性和通过x m l s c h e m a 对文档进行数据结构的有效性验证,同时利用d o m 对x p d l 文档进行 解析。 第三帝微t 作流架构 第三章微工作流架构 本章介绍和分析了微工作流架构及微5 - 作流核心,对比了微工作流架构与传统工 作流的关系,并讨论了微工作流架构的特点。 3 1 背景介绍 对于架构的定义,目前学术界尚未形成统一的意见,不同的学者有不 同的看法。借鉴b 0 0 c h r u m b a u g h j a c o b s o n 关于它的定义架构是一系 列重要决策的集合,这些决策与以下内容相关:软件的组织、构成系统的 结构元索及其接口的选择,这些元素在相互协作中明确表现出的行为,这 些结构元素和行为元素进一步组合构成的更大规模的子系统,和引导这 一组织一包括这些元素及其接口、它们的协作、它们的组合一的架构风 格”。微工作流架构是在工作流领域的一个可重用性框架。 3 1 1 微工作流架构的提出 为了实现工作流软件的构件复用,必须建立一个不能太过复杂,也不 能太过庞大的公共框架。这样它所支持的应用领域应该非常宽广,并且基 于该领域的有效的概念模型。然而,开发这样一个框架在策略上是很困难 的,这需要很强的领域知识和建模能力“1 。 随着工作流的应用越来越广泛,许多厂商陆续推出他们的工作流中 间件或者框架产品。这些产品从数据的存储、运行环境到开发工具甚至 软件的生命周期,往往都有自己的一整套独特的体系结构n 1 。工作流管理 系统能够成为业务的流转的工作流支撑环境,它必须是一个框架,能够集 成现有的业务应用环境“1 。 1 9 9 9 年初,m i c h e lt i l m a n 提出了”微工作流”这个概念”“,2 0 0 1 年底 左右,d r a g o sm a n o l e s c u 在前人的基础上比较完整的提出了微工作流架 构。 微工作流架构从轻量级的概念出发,不再明显区分w f m c 定义的各个 接口的界限以及其所具有的特定的功能,以够用、灵活和低成本的设计原 则实现出我们所理解的工作流引擎最小化的核心功能。它运用了面向对 象的方法,首先从众多的业务需求中抽取出工作流模型所包含的对象,再 微t 仵流槊枷的研究j 应用 分析各个对象之间的逻辑关系,然后提出一个系统结构,再进行模块划 分。 3 1 ,2 相关架构 其它较为著名的架构主要有m e n t o r l i t e 、x r l x m l 、n e t s ,以下着重 介绍一个有代表性的工作流架构m e n t o r nt e : m e n t o r l i t e 项目是从m e n t o r 工作流管理系统发展而来的,是一个轻 量级的工作流管理系统。它是利用中间件方式来进行设计工作流程的系 统,已经历经了多次改版的雏形系统。它的设计从早期的以j a v a 为基础加 上c o r s a 的设计架构,到目前以x m l 为基础的架构。它利用了c o r b a 来设计 其工作流引擎,利用一个分散式状态图的架构来当作工作流程执行状况, 并且整合o r a c l e 的x s q ls e r v l e t 的架构,从而隐藏了工作流系统引擎执行 的细节。图3 - i 是m e n t o r - l i t e 的体系结构图,参考文献e l o 对它进行了详 尽的解释。 图3 - 1 e n t o r l it e 体系结构图“” 它被设计成支持对所在环境的工作流管理系统的单步整合这需要 对控制流实现的单步整合和替代。这样工作流管理系统能够和系统中 已存在的应用更好的结合,从而将大型系统发生变动后的风险降低”。 微t 作流架构的讲究o j 心月l 第二章微t 作流挺构 3 2 微工作流架构简介 3 2 1 架构组成 微工作流是相对传统工作流的轻量级工作流。它由微工作流内核和 扩展模块组成。一些用户感兴趣的传统工作流的功能如w o r k l i s t 、 p e r s i s t e n c e 、m o n i t o t 、h i s t o r y 等功能块作为它的可扩展模块根据需要 进行动态加载,从而使得开发者在开发时分离控制和逻辑层,实现流程的 独立口1 。分析微工作流体系结构,也即分析它的组成要素、要素之间的联 系。 如图3 2 所示,微工作流内核( m i c r o - w o r k f l o wc o r e ) 是微工作流架构 的基石,附加的功能模块在微工作流内核的层次之上: 匿 厂i 目 l j 一 厂瑁 l j ;r 一 瞧眶黩件 3 2 2 核心组件 口鲴 图3 2 微工作流体系结构图。 船二章微t 作流架构 根据0 0 设计的开放一封闭法则,软件组成实体应该是可扩展的,但是 不可修改的m3 。因此微工作流设计时用最小限度的组件实现它的核心功 能。微工作流的核心组件由图2 中c o r e 范围内的执行组件( e x e c u t i o n m o d e l ) ,同步组件( s y n c h r om o d e l ) ,过程组件( p r o c e s sm o d e ) 组成。如 图3 3 所示: 茸程飒忭 图3 3 微工作流核心图 下面概要地介绍这三个组件: 1 ) 执行组件: 执行组件包括活动定义和活动执行实体。按照面向对象软件设计的 思想,活动执行实体实例化出具体类在一定的上下文环境中执行。执行组 件在这里类似与操作系统中的进程概念。 2 ) 同步组件: 同步组件把消息和处理分离开来,这样调用者不和具体实现交互,只 和接口关联,这也体现了面向接口编程的原则。活动执行实体与外部消息 隔离,使得外部消息去控制活动执行实体的运行。 3 ) 过程组件: 过程组件抽象了一系列的活动的执行序列,也就是活动的执行顺序 关系。这些基本活动是不可以再划分的功能单元抽象,过程组件包含循环 活动、条件活动、分支活动、合并活动等。过程组件的实现提供了活动 的执行序列的集合。利用过程组件可以定制工作流的流程序列。 微t 作流架构的州究1o 腑用第三章微t 作流架构 3 3 微工作流与传统工作流的关系 微工作流提供最小化的工作流基本功能,从而与外部应用分离出来。 微工作流核心之外的扩展组件实现工作流的高级功能。微工作流与工作 流之间的关系如图3 - 4 所示: 图3 4 工作流与微工作流”1 虽然与传统的工作流有着密不可分的联系,但是微工作流还是和它 有比较大的不同。区别主要在三个方面呻1 : i ) 作用范围不同:传统的工作流作用在顶层的应用层,而微工作流 的作用范围在应用内。 2 ) 面向的用户不同:传统的工作流面向的是非技术性人员,而微工 作流面向软件开发人员。非技术人员与软件开发人员需求不同。从这个 角度上说,微工作流架构并不是直接面向商业应用的。 3 ) 过程实体不同:传统的工作流活动过程需要与相关应用和人员进 行交互,而微工作流的过程实体是组成组件应用程序的对象。 3 4 微工作流体系架构的特点 衡量工作流软件的标准一般从三个方面去评估:一、功能评定即工作 流引擎能做什么二、技术评定即怎样设计和构造该引擎三、商业评定 即技术支持、售后支持及产品相关问题。在功能评定方面目前的商业 工作流产品都能涵盖流程创建、流程管理、任务分派等功能点。在第二 个方面一些产品就有所欠缺。使用传统的技术虽然可以满足一时之需但 1 5 第三章微t 作流架构微t 作漉架社j 的州究o 成甩 从长远看就落后了。未来工作流的技术趋势是i n t r a n e t 与i n t e r n e t 进一步走向融合。为了顺应这种趋势以保证系统的良好扩展,我们 的设计应该立足于现有的先进技术与思想,比如吸取设计软件架 构的模式的思想、开发中使用面向对象的方式等等。微工作流体系 结构是工作流系统体系结构的一种。下面从体系架构的角度来分析它: 1 ) 微工作流体系架构有着比传统的单一结构更强的可靠性和可扩展 性。从软件设计的角度上看,问题本身应该独立于解决问题的实现。2 0 多 年前k o w a l s k i 提出把“w h a t ”也即用来解决问题的知识和“h o w ”也 即用来解决问题的策略分离开来( 参考图3 5 ) ,使程序对新问题有更强的 适应性,从而提高自身的可修改性”。 鼍一8 合 图3 5 问题与策略分离图 传统的单一工作流架构作为流程依赖的应用把控制分散在实现当中 当一方改变时势必影响另外一方。微工作流体系结构将问题领域和行为 领域分离开来,很好的体现了流程独立性。流程独立与流程菲独立的对比 如图3 6 : 卜用匡ikppltc争itionobject2 j 匡垄雪匿塑1 吨垂到 图3 6 流程独立应用( 图左) 与流程非独立应用( 图右) ”1 2 ) 微工作流架构的另一个主要优点是在不影响系统其他部分的情况 1 6 一、l,一、ilrf, 第二章微t 作流架构 下,用更高效的实现代替现有模块将会更加容易。我们甚至可以在系统运 行时将开发出的新系统模块或者需要替换现有模块的模块直接而迅速地 加入系统。 从工作流实现模型的角度来看,传统的工作流软件以过程为中心,微 工作流架构以活动为中心。简而概之,与传统工作流架构相比,微工作流 架构具有以下几个特点:基于活动的建模方式、模型规模小、模型复杂程 度简单、扩展功能( 如资源约束由扩展模块描述,它能描述复杂的模型但 不混乱系统的原有结构) 。具体表现在以下三点: 1 ) 通过这样的定义方式过程定义不必定义具体到单个任务,过程实 体可以保持对上层的功能抽象。 2 ) 可以控制模型的粒度。粒度太小会增加工作流系统实现的复杂度, 导致系统空间开销过大,组件间通讯的总的等待响应时间太多。粒度太大 使得引擎内部实现的代价太大,对消息的实时反应慢,选择适当的粒度可 以达到系统时间代价和空间代价,反应速度和运算时间的均衡。 3 ) 软件可复用,支持模型的演化。 3 5 本章小结 本章从整体上概述了微工作流架构。微工作流架构的精华在于它的 核心组件即微工作流核心的设计与实现,因为微工作流核心抽象出了工 作流系统的内在共性。据此,本章在3 3 节对比了微工作流和传统工作流 后,总结出微工作流架构的特点,从而在理论上说明了微工作流架构能够 在一定程度上解决工作流系统当前存在的问题。 第叫章微t f f 洫0 擎的设计,实珧微丁作流架构的研究,应用 第四章微工作流引擎的设计与实现 在上一章对微工作流框架进行的研究的基础上,本章首先说明工作流引擎的功 能、分析工作流引擎的用倒和当前的微工作流核心,然后提出微工作流引擎( 即基于微 _ t - 作流架构的工作流引擎) 的设计方案并展开说明该方案。 4 1 前期分析 在设计一个系统前,首先应该进行需求的调研与分析,自然就要考虑 采用什么样的功能模块来满足业务需求,这正是系统设计的任务。一般而 言,一个信息系统需要表达出系统的体系结构、系统功能模型、系统过程 模型、系统信息模型、系统接口设计等关键问题。 本文在选定了微工作流体系结构后,对工作流系统的核心一一工作 流引擎的功能进行分析,从而为系统的开发过程提供一个基础。功能分析 即分析系统的功能结构,反映出系统将为用户能提供那些服务以及这些 服务间的逻辑关系。前期分析还包括对当前微工作流核心的实现进行分 析,在这个步骤以后才提出对微工作流核心的扩展思路,进而设计一个微 工作流引擎。 4 1 1 工作流引擎 个完整的通用工作流管理系统应当包括过程定义工具、过程定义、 工作流引擎、工作流控制数据、工作流相关数据、工作列表处理程序、 应用程序和应用数据等七个部件和数据。 工作流引擎是工作流管理系统的核心,实际上它是企业经营过程的 任务调度器。并且还在某种程度上是企业资源分配器。在采用工作流管理 系统支持其经营流程运行的企业,工作流执行服务可以看成是企业的业 务操作系统。企业的业务过程在它的管理、监控和调度下运行。工作流 执行服务由一个或多个工作流引擎组成( 在分布环境下由多个工作流引 擎组成) ,它提供了过程实例执行的运行环境。 微t 作流架构的埘究j 心用第p q 章微t 作流l 擎的设计实现 图4 1 是用u m l 用例图显示的外部参与者( a c t o r ) 观察到的工作流弓 擎功能: 图4 1 工作流引擎用例图 上图表示工作流引擎的用例图。其中的外部参与者包括 e n g i n e m a n a g e r ( 引擎管理器) 与l o g f i l e s ( 日志文件) 。e n g i n e m a n a g e r 负 责控制工作流中所有元素的状态,是工作流调度的核心。l o g f i l e s 阶段 性将固定格式的文字记录为日志,用以保存。这里的用例有 p r o c e s s c o n t r o l ( 控制过程实例) 、t r a n s i t i o n c o n t r o l ( 控制转移) 、 a c t i v i t y c o n t r 0 1 ( 控制活动) 等,工作流引擎控制工作流各个组成元素 的状态,以达到控制工作流的目的“”。这些用例为一个过程实例提供一个 运行态的执行环境,它的功能主要有:控制流程实例的创建、激活、挂起 和终止等,实现流程活动导航,为商业过程的实例的执行提供可操作的功 能等瞳”。这里具体地阐述工作流引擎的功能: 1 ) 实例化及执行过程模型:解释企业经营过程的过程定义,根据过程 执行需要的初始条件和执行参数生成过程实例,运行过程实例并管理其 运行过程。这里需要指出的是一个过程模型实际是企业经营过程的一个 模板,它可以被执行多次,也可以有多个有关这个过程模型的实例在同时 运行。 2 ) 为过程和活动的执行进行导航:根据过程定义和相关数据,为过程 实例的运行进行导航,如根据过程的进入和退出的条件启动和终止一个 过程实例:根据活动之间的关联和活动的执行条件,决定并行或串行执行 后续活动:给用户提供需要操作的工作流任务项信息;或者根据所需激活 第叫常微丁作流引擎的设计q 实现微t 作流架杠j 的研究j 心用 的应用程序信息启动相应的应用程序等等。 3 ) 与外部资源交互完成各项活动:工作流执行服务通过两种途径完 成与外部资源和用户的交互:客户应用接口和直接调用应用接口方式。 4 ) 维护工作流控制数据和工作流相关数据:工作流在执行过程中要 维护不同过程和活动实例的内部状态信息,以用于协调和恢复的各种检 查数据和恢复重启,还包括用户传送的必要的相关数据。 4 1 2 当前的微工作流核心 现实的业务流程虽然很复杂,但却是由工作流模型( w o r k f l o w
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 主-肺动脉隔缺损的临床护理
- 浙江省衢州市五校联盟2024-2025学年高二下学期期中联考技术试题(含答案)
- 帛琉旅游住宿太平洋度假村风景秀丽
- 网上研修学习心得体会模版
- 建筑材料与人居环境
- 安保试用期总结转正工作总结模版
- 造口病人自我护理
- 高二英语下学期期末总结模版
- 肺炎疫苗接种后高烧护理常规
- 发力新质生产力赛道
- 欠款抵车的协议书范本
- 设备购买合同模板示例
- 基于JAVA的宠物管理系统实现毕业论文
- 2024年小区地下车位租赁合同
- 2022-2023学年上海市闵行区八年级(下)期末数学试卷
- 专题03 陕西省(A卷)-2022-2023年各地中考英语听力真题合集(含听力原文及MP3)
- 诺如病毒校园防控知识
- 常见神经系统疾病康复15节
- 关于梳理、修订、完善公司规章制度的通知
- 会计信息考试系统复习题(试题及答案)
- 高中物理学习中的数字化教学资源
评论
0/150
提交评论