(计算机应用技术专业论文)基于j2ee柔性工作流引擎的设计与实现.pdf_第1页
(计算机应用技术专业论文)基于j2ee柔性工作流引擎的设计与实现.pdf_第2页
(计算机应用技术专业论文)基于j2ee柔性工作流引擎的设计与实现.pdf_第3页
(计算机应用技术专业论文)基于j2ee柔性工作流引擎的设计与实现.pdf_第4页
(计算机应用技术专业论文)基于j2ee柔性工作流引擎的设计与实现.pdf_第5页
已阅读5页,还剩59页未读 继续免费阅读

(计算机应用技术专业论文)基于j2ee柔性工作流引擎的设计与实现.pdf.pdf 免费下载

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

文档简介

基干j 2 e e 浆性工作流引擎的设计与实现 l 。l 鸷景 第一章绪论 随整计算撬在磊常工作中瓣广泛应溺,天稍豹诲多王俸己越来越多依靠 计算机米完成。在一个念业或部门的目常活动中,7 0 以上属于流程类的活 动,如生产流耧、各类申请表肇、订单出货、公务签审等,不濉褥岛这祥的 结论,如果要掇离企业效率,就必须通过一定韵鼓本手段将这些滚程自动化, 并对其进行有效的管理,使之协调工作,这就必须使用工作流的有关技术。 工终滚警壤豹最大缓蠢是蜜溪了疯鲻逻錾冬过程遴辑茨分瘸,因熬霹臣 在不修淑具体功能实现的情况下,通过修改过程模型来改变系统功能,完成 对生产经营部分过程袋全部过糕静集成管瑾,有效逸把人、信衩帮应嗣工其 合理地组织在一起,发挥系统的壤大效能。工 乍流技术可以支持企业实现对 经营管理和生产组织的过程控制以及决策支持,它能够实现现代企业对“在 适当豹孵闼把逶当豹信息传绘逶当豹入”的要求 】。 工作流管理联盟( w f m c ,w o r k n o wm a i l a g e m e n tc o a i i t i o n ) 定义的工作流 2 l :蕾谤算橇支跨蠡动处理懿全部或者帮分焦务过程。在其中,文橙、信惠 或任务根据一繇列程序规则在不同的参与者之间传递与执行。 1 2 工作流管理系统的现状及不思 作为支持企业经萤过程重组( b u s i n e s sp r o c e s sr e e n 西n e e r i n g ,b p r ) 和经 彗过程淹萄诧( 转鞋s i 珏e s sp e e s sa u t o 攥越i ,b p a ) 熬一耱手莰,王终濂技拳载 研究应用日益受到学术界和企姚界的璧视【3 】0 嚣瓣,主要存在热下凡耪不露方囟豹工嚣溱管理系统: 基于j 2 b b 柔挫工锥流;l 擎的设砖与实现 智能工作流管理系统( i n t e l l 蜒弦n tw f m s ) 这一研究强城致力予运弼人工智麓翡技术据高工作流管溪系统豹 智能性。文献 4 】中详细讨论了人工智能技术对w f m g 的影响。文献 【5 】【翻,翊疆凿了基予a g e n t 技零熬w 艇s 落系缩稔,凳分毒式人工餐 能代理的技术引入了工作流管理系统。文献 7 】详细介绍了利用a g e n t 拽 术实瑗王 挈滚滚疆饕瑗。 面向对象的w f m s ( o b j e c t - o r i e n t e dw f m s ) 这一磅究领域主要蔗运用溪彝慰象技拳接麓工捧浚系绞静发震。 文献【8 】详细地论证了如何用0 0 ( 面向辩象) 技术提高w f m s 的容错能 力,文皴【9 l 掭讨了懿键剃建e 0 艇;a 懿对象事务照务寒擒建霹纛工俸滤 产品o p e n f l o w 的技术。文献【l o 】中详细讨论了m o k a s s i n 项目的面向 对象静流程定义元模型,文熬【l l 】基于露淘对象技术实瑷了一令支抟动 态适应性的原测系统。 基于w e b 槐絮鸵w f m s 基于w e b 构架的应用系统,由于零安装、移动性好、易操作等优点 褥到了巨大的发展,诲多应用系统转移到基于w e b 拘架上柬,w f m s 也不例外。文献【1 2 详细介绍了利用x m l 技术实现了分布式工作流管 理系统,文献f 1 3 】提出秘基予脚本瓣器、与威月数据类型无关的基予 w 曲韵工作流系统。 基予e c a 规则的邋应性工作流 在实际中往往需要根据其体情况动态地确定执行路由,这就需要工 作流模型能表达出不同情况下的不同处理方法i l 引。文献f 1 5 】详纲介绍了 适应褴工作流的流程动态控制方法。 分布式w f m sf d i s t “b u t e dw f m s ) 该领域主要研究如何实现w f m s 的分布处穗。文献【1 6 】介绍了基于 j 2 e e 的分布式工作流管理系统的实现方案。文献f 1 7 磷绷介绍了一个任 务分配方法在分布式工作流中的应用。 目前工作流系统的应用摄然越米越广泛,但是总得来浼工作流系统的应 嗣还蹙链子个菲常谨慎静状态,穰本原因就是当甜的工作流系统存在着各 2 基于j 2 e b 柔性工作流引擎的设计与实现 种各样的缺陷或者说不足: 1 工作流的运行必须要有底层的通信基础结构的支持。就目前能够实 现分布计算环境的产品( 如c o r b a ,d c o m 等) 来看,他们在实际应用中仍 然显得不够成熟,而且在价格上也给企业造成一定的负担。 2 标准化程度差:不同的厂商所提供的工作流产品具有自己独立的一 套工作流模型、工作流定义语言以及a p i 函数。用户一旦选定一种产品之后, 就很难在过渡到其它同类产品上了。 3 柔性问题:无论是过程模型的表示还是角色解析,现有的工作流系 统表现出柔性差的特点。一些企业的实际应用常常有对执行路由的动态需求 以及工作项执行人的动态选派,对于这些需求现在的工作流系统都不能很好 的给予支持。 、 本文主要对2 ,3 两个问题进行处理,基于w f m c 的标准工作流管理系 统,并实现柔性的工作流引擎,提高工作流系统的柔性。 1 4 本文工作 工作流引擎是工作流管理系统的核心,是工作流管理系统的“软操作系 统”,本文通过分析工作流系统模型、工作流引擎功能模型,设计并实现了 柔性工作流日i 擎。采用的平台是具有良好的安全性、可靠性、可扩展性的j 2 e e 技术平台,利用e j b 技术,分层设计并实现柔性工作流引擎,并成功的应用 于项目p d m ( p r o d u c td a t am a n a g e m e n t ,产品数据管理) 系统中,实现工作 流驱动的p d m 系统,而且具有良好的柔性。 1 5 论文组织 本文的后续章节组织如下: 第二章工作流和工作流系统 本章是为设计和实现柔性工作流引擎提供理论基础。主要介绍 了w f m c 工作流参考模型,工作流中的基本概念,流程、节点、工 作项、过程实例的状态、活动实例的运行状态、工作流的基本执行 基于j 2 b e 柔性工作流引擎的设计与实现 模式,以及工作流引擎和工作流执行服务。 第三章j 2 e e e j b 技术 本章是为设计与实现柔性工作流引擎提供了技术基础。主要介 绍了j 2 e e 的概念、模型以及在项目中用到的j 2 e e 中的技术,重点 介绍了e j b 技术,包括e j b 分类和e j b 的运行过程。 第四章柔性工作流引擎的设计与实现 本章主要介绍了工作流引擎功能,分析和设计了柔性工作流引 擎的体系结构,以及工作流引擎元模型x p d l 模块的详细设计与实 现,采用分层设计思想,利用j 2 e e e j b 技术,实现柔性工作流引 擎。并简单的介绍了r b a c( r d f e - b a s e da c c e s sc o n t r 0 1 ) 模型。 第五章柔性工作流引擎的p d m 系统中的应用 本章主要是介绍了p d m 系统,分析基于工作流的p d m 系统的 体系结构,以及运行过程。通过采用柔性工作流引擎,实现p d m 系统的柔性,并且实现p d m 系统在工作流驱动之下,各个p d m 系 统的功能模块,如文档管理、产品结构和配置、项目管理等,形成 一个相互协作的有机的整体,提高了企业的效率。 第六章总结 总结全篇论文,以及下一步要研究方向和工作。 1 5 软硬件环境 在设计和实现柔性工作流引擎的过程中,主要是运用j 2 e e e j b 技术实 现。我们使用下列软件: 操作系统:w m d o w s 2 0 0 0 数据支持:o f a c l e 9 i ” 应用服务器:w 曲l o g i c e j b 开发工具:j b u i l d e r 基于j 2 e b 乘性工作流引擎的设计与实现 第二章工作流和工作流管理系统介绍 在阐述工作流引擎之前,先了解一下工作流技术的基本知识。绪论中已 经提到,当前各种不同类型的w f m s ( w o r k n o w m a n a g e m e ms y s i e m ) 系统 吾有其不同的特点,例如所运行的环境、所适用的领域等都各不相同。这些 应用上的特点要求各种不同类型的w f m s 应该能够实现互连和互操作,以 便它们能够被纳入到一个统一的框架之中,在不同的位置与领域发挥其各自 的优势与作用。这就追切需要一个共同的标准,在这种背景下,w f m c 的参 考模型就应运而生了。 w f m c 的全称是w o t k n o wm a n a g e m e n tc o a 嘶o n ( 工作流管理联盟) ,成 立于1 9 9 3 年8 月,其主要职责就是负责w f m s 的标准化工作。1 9 9 4 年1 1 月2 9 臼,w f m c 发布了工作流系统参考模型( w o 出n 。w 先w n c em o d e l ) 。它 详细描述了工作流系统的有关概念,并在此基础上给出了w f m s 各主要组 成部分、各部分的功能及相互之间的接口,主要目的是为了实现t 作流技术 的标准化和扦放性。 的标准化和丌放性。 基于j 2 e b 柔性工作流引擎的设计与实现 2 1 工作流管理系统参考模型的体系结构 圈2 一l工箨流管瑾考模囊鹩体系绣构 这个参考模型的体系结构”3 给出了抽象的工作流管理系统的功能组成 部件祁接毋,它s 够满足工作流管理系统祁产晶所应该其商船主要曲能特 征,可为实现工俸流产品之阀的互操作提供公共的基础。 基于j 2 髓乘性工作流引擎的设计与实现 2 2w 蹦c 工作流参考模型 图2 2w f m c 参考模型 从幽中。j - 以看出,参考模型射包含了五类接口,分别是: ( 1 ) 接口1 :过程定义输入输出接口,这是工作流服务与工作流建模之间 的接口,该接口提供的功能包括通信建立、工作流模型操作和工作流模型对 象操作。 ( 2 ) 接口2 :客户端函数接口,这是工作流服务与客户应用之间的接口, 这是最主要的接口规范,它约定所有客户方应用与工作流服务之间的功能操 作方式。包括通信建立、工作流定义操作( 对过程模型定义操作) 、过程实 例管理功能、过程状态管理功能、任务项列表任务项处理功能、数据处理过 程、过程监控功能、应用程序激活和其他功能。 ( 3 ) 接口3 :激活应用程序接口,这是工作流引擎和直接调用的应用程序 之间的接口,包括通信建立、活动管理功能和数据处理功能。 基于j 2 b b 柔性工作流引擎的设计与实现 ( 4 ) 接龃4 :王终滚撬蟹服务之瓣豹要操佟接登,这是工作漉管理系统之 间的豆操作接口,包括遣接的建立、对工作滚模梨和其中对象的操馋、对过 程实例的控制和状态描述、对活动的管理和对资料进行处理。 ( 5 ) 接溺5 :系统管理与蓝控接翮,这是工作流服务和工作流管理工具之 润的接墨,惫括资源控翻、角色管理、餍户镑建、过程实侧豹管理、犊态鬻 理和审核管理。 五个接口以及对应的a p i 函数囊括了工作流管理系统的全部功能。一个 完整的工作流错理系统就是以工作流引擎为中心,向外部部件( 应用程序或 其它工作流零| 擎 攥供这五个按鞫,并提供其实现的所有功能。 2 3 工作流中的基本概念 2 3 。l 流程 流程怒为了完成菜一个蓣定静蟊标丽定义的。纯凑一系列酌步骤组成, 每一个步骤穆失一个涟动( 或者称为节点) 。在濂程戆执嚣过程串要慰资源 的使用来宪成任务的办理,这蝗资源包括人员信息、数据信息、处理数据豹 应用程序俯息等。具体包括如下: 1 ) 流程:描述流程的一骛基本的满性。如业务类凝,权限的要求等。 2 ) 节点:搓述流程办理豹步骤,繁点属性定义毯括节点类羹、参与者、 执行时闽、完成对闻的期限和棚关数据信息。 3 ) 传输线:两个节点之间通过传输线建立关联,关联是有方向的。运行 时,一个节点能否到达另一个节点的条件就是:这两个节点通过传输线 建立翁关联控制条件楚否满足。传输线定义有三个满往:f m 节点、t o 警点积控剑条l 粤。 4 ) 参与者:参与者是一个过程中任势的办理人,过程定义时声明的办理 人的集合。其类型包括岗位、角色和人员。参与者被指定到具体的节点 上。 5 应鼹程露:声豫一个撬聿詈办理任务豹瘦霜稷痔,应鬟摇葶一般分为爨 基于j 2 秘秉性工作流i f 擎的设计与实现 动执符的和手动执行的嚣耪类型。谯声明中需要攒定应用稷痔懿调怒方 法、传递的参数、返回的结果等售感。 6 ) 予过耀:声明个被调用啦予过程。予过程可以竞或慕个特定憝镁务。 声明中需要指定子过程的标识、传递的参数、返回的结果等售感。 7 ) 相关数据:棚关数据是流程提供给应用理序控制的数据。应髑程廖可 以通过修改相关数据来控制流程的执行,并且邋过楣关数据来实现上下 步骤之间的信息的传递。 2 3 2 节点 节点对应于个工作流程的处理步骤,其包括开始节点、缝隶节点、手 动节点、皂动节点、子流程节点、分支节点,具体如下: 1 ) 开始节点:表示个流程开始的节点,完成工作滤节点的数据初始 化。一个流程只能有一个开始节点。 2 ) 结束节点:表示个流程结束的节点,负责所务的办理节点完成后 的数据处理。 3 ) 手动节点:需要人员参与的节点。 4 ) 自动节点:没有人员处理的节点,他的任务是启动盥动程序进褥数 据处理,自动完成任务。 、 5 ) 予流程节点:代表该步骤是一个流稷,该节点执行时会启动其他的 流稔。 6 ) 分支节点:表示流程有多祭可以选择的路径。执行时根据分支节点 后继关联的传输线条件来判断流程下一个步骤会流向那个分支。 2 3 。3 工作顼 工作项是手动处理节点在运行时刻以工作项的形式分解如的处理任务, 工作项有两种形式: 1 ) 工作流管理的工作项:f = i ! | 工作流引擎将节点分解出工作项放到工作 项列表中。 2 ) 应用管理的工作项:应用程序自己将节点分解出工作项,并由应用 9 基于j 2 强秉性工作流i 擎转设诗趣实现 程序自己来缎护工作项的管理和处理。 2 3 4 流冁、节点和工作项之间的关系 如阐2 3 所示: 匝四竺睦困 图2 3 溅攫、节点秘工雉壤之闻懿关系图 2 3 5 过穰实铡状态 工作流中的j 过程实例状态可分为:开始态、运行态、挂起态、终止态、 活劝态和宪成态,鲡图2 4 所示: o 熊于j 2 髓浆性工作流引擎的设计与实现 图2 4 过程癸织状态鹭 1 ) 开始一个流程实例已经削建,包括工作流相关数据,此时流程邂未满 足开始执行的祭传。 2 ) 运幸亍流程实铡已经开始,当莱一活动开始条件满足时。 3 ) 挂起流程实例是静止的,没有活动进行,直到流程返回到运行状态f 通 过一个滚复愈令) 。 4 ) 终止流程实例非正常结柬。 s ) 活动一个或更多的活动溅经开始( 例如:一个王作项已经建立势晨分 配绘了某一活动实椤 j 。 6 ) 完成流程实例满足完成的条件,正常结束。 2 3 6 活动实例的逡行状态 瑟2 5 添动实馕遮嚣获态豳 基于j 2 e e 袭性工作流引擎的设计与实现 2 。3 矗l 活溺实铡运纷接态说弱 1 ) 未开始( i n a c t i v e ) :即活动实例的就绪态。该活动实例已经生成但还 没有被激活。 2 ) 运行孛( a e 辩e ) :该活动实恻毫缎棱激活,歪在运行。 3 ) 接起( s 疆s p 腿d e d ) :该涎动实例处于被阻塞状态,多攀是爨为资源不 满足。 4 ) 结荣( c o m p l e t e d ) :该涌动已经执行完毕,工作流管理系统将进行活 动结束看静等靛工佟,激滔下一个符合窟动条静静滔动实饿。 2 3 6 2 活动实例状态的改变 1 ) l 珏a e t 扣e s 珏s 辩e 珏d 畦:雕建立麴活动实铡基隽瓷源褥不到瀵跫甏蓑隧 塞。对于人工型活动,可能因为没肖参与者选择段任务,该任务就被 阻塞了;对于自动型活动,可能因为外部应用没裔响成,导致活动实 佣被阻塞。 2 ) s u s p e 珏程e 痤专i 黼鼬e :般蹩嚣必需要豹资源褥到了嫡瘦或者是工 作流参与卷选择了茨任务。 3 ) a c t i v e j n a c t i v e :活动在运行中出现异常或者锩误,重新回到就绪 态。 | ) a e l i v e 专姻m p l e t e d :活溯蔟辎执行完。 2 4 工作流基本执行模式 2 4 1 顺序流向 一个步骤完成后,无条件地流向固定地下一个步骤。如图2 - 6 所示。+ r 1r _ l 活动a 卜_ 。叫活动8l 图2 6顺序流 基于j 2 b b 桀性工作流引擎的设计与实现 2 4 2 选择分流 一个步骤完成赡,按照定地条件有选择地滚向下一步骤。如鼹2 7 所示。 2 4 3 并发分流 一个步骤完成厢,同时激活多个瑶继步骤,一般是多人分工同时二 作情 况。如图2 8 所示 + ;2 4 。4 谗择汇合 假设n 个步骤究成后,都流向同一个步骤c ,那么只要这n 个步骤中有 一个完簸,步骤c 就可馥开始。鲡图2 9 掰示: 图2 9 选摆汇合 墨! ! ! 盟垂:生三焦迹! ! 竺塑垫盐生窒墨 2 。4 5 并发汇合 假设n 个步骤完成后,酆流向步骤c ,那么肖且只有当这n 个步骤都完 成了,步骤c 才可戳开始。如蚕2 一l o 辑示 图2 1 0并发汇合 2 5 工作流执行服务冀工作流写l 擎 2 5 1 工作流执行服务 工终流撬雩亍簸务是工撵流管理系统静核心,突际上它是金遣经嚣过程静 任务调度器,并凰还在某种程度上是众业资源分配器。工作流执行服务系统 的性能和可靠性就赢接决定了企业经秘过程的执行效率和安全性。工作滚执 行驻务妇一个或多个工律流弓| 擎组成,它提供了过程实例的运行环境。主要 完成以下功能: ) 赛铡恁及魏孬遘程模型:瓣释垒鲎经营j 熏程| l 每避瞧定爻,鬏蠢过程 执行需要的初始条件和执行参数生成过程实例,运行过程实例并管 理其运奄亍过程。 2 ) 为过程和活动静执褥进行导航;裰摇邋程定义萃嚣工 乍流稳关数据, 为过程实例的运行进行导航。 3 ) 维护工嚣浚控剁数撂帮工终滚稷关数攮:工 乍溅褒撬行过凝孛要维 护不同过程和活动实例的内部状态信息,以及用于枷调和愀复的各 种数据信息。 基节j 2 琵柔疆工辛睾流;l 擎的设辞与窦琨 2 s 2 工作流引擎 工作流引擎是业务流程逻辑的执行者,是整个工作流管瓒系统的核心部 分,受责解释流程定义,劳进行流程实铡他翻滚程执行控制、鼹务调痰等。 主蘩宠或了羹下葫熊:摄摇程务舞表必鬻户分配锰务;与癸帮瓣源送行交互 并记录执行情况;为过穰与活动进行导航,自动选择路由顺净;配置流程的 控制信息和数据信息。 因此工作流引攀的设计的好坏,直接影响整个工作流管理系统的性能, 本文主要对工作流引攀进行详细的分析设计,势采用分层思想来实现,褥在 繁黼牵中谬缨论述。 2 6 总结 通过对标准的工作流参考模型和工作流管理系统模型体系缕梅,以及工 终浚中豹一些基本黪壤念季曩淡程转换装悫,安铡转换凌态懿分绣,为鞋嚣柔 瞧工作流g l 擎豹设计斓嶷现羹定了理论基础。 一 墨主! ! ! ! 墨坚兰笪堕! ! 兰塑堡盐量壅翌 第三章j 2 e e e j b 技术 论文相关项目的开发主要是在j 2 e e 的开发平台上设计和实现的,本章 主要介绍了j 2 e e 的概念、模型以及项目中用到的主要技术。 3 1j 2 e e 的概念 j 2 e e ( j a v a2p 1 a t f o r me m e r 叫s ee d i t i o n ) ,是种利用j a v a2 平台简化 企业解决方案的开发、部署和管理相关的复杂问题的体系结构,其基础就是 核心j a v a 平台,具有“编写一次、随处运行的”的特性、方便存取数据库的 j d b c a p i ,以及提供对e j b ( e n t e r p r i s ej a v a b e a n s ) 、j a v as e r v l e t sa p i 、j s p ( j a v as e r v e rp a g e s ) 以及x m l 技术的全面支持。其最终目的就是成为一个 能够使企业开发者大幅缩短投放市场时间的体系结构。 3 2j 2 e e 的四层模型 j 2 e e 使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个 应用组件根据他们所在的层分布在不同的机器上。以下是j 2 e e 典型的四层 结构【2 0 】: 运行在客户端机器上的客户层组件 运行在j 2 e e 服务器上的w e b 层组件 运行在j 2 e e 服务器上的业务逻辑层组件 运行在e i s 服务器上的企业信息系统( e n t e r p r i s ei n f o r n l a t i o ns y s t e m ) 层软 件。如图3 1 所示。 6 基于j 2 嚣彗柔蛙王矮流;l 擎的设诗每实现 图3 一lj 2 e e 体系结构图 3 2 1 客户层维件 范e e 应翅甏渗霹浚是基予w e b 方式豹,邃霹疆是基予臻缆方式兹。 3 2 2 w e b 层组件。 j 2 e ew e b 层组件可以是j s p 页面或8 e r v l e t s 。按照j 2 e e 规范,静态的 h t m l 页面和a p p l e 镪不舞是w e b 层组彳牛。 3 2 。3 业务层组件 渡务层代码的逻辑用来满足银行、零售、金融等特殊商务领域的需要, 由运行在业务层上的e n 把印r i s eb e a l l 进行处理。有三种企业级的b e a n :会话 ( s e 8 s i o n ) b e a n 、实体( e n t i t y ) b e a n 和消息驱动e s s a g e - d f i v e n ) b e a l l 。县体分缨 基于j 2 b e 秉性工作流引擎的设计与实现 觅3 ,4 。 3 2 4 企韭信息系统屡 企业信息系统层处理企业信息系统软件包括企业基础建设系统( 例如企 业资源计划即e r p ) 、大型搬事务处瑷、数据瘁系绞和其它的遗警馕惠系统。 铡如j 2 嚣e 应用组件可能为了数据霹连接需要访问企业信息系统。 3 。3 芝佳流审采用的疑e 嚣哮| 技术 3 3 。lj d b c i 譬a v ad a t a b 建s ec o 矬糕e e t i v i l 奶 j d b ca p i 为访问不同的数据库提供了一种统一的途径,像o d b c 一 样,j d b c 对开发者屏蔽了一些细节问题,另外,j d b c 对数据库的访问也 吴有乎螽无关瞧。 3 。3 。2 溅d l 脚v an a m e 捷蝴d i l e c t o 曙l 矬抛睡l e e ) _ l n d i a p i 被用于执行名字和目泶服务。它提供了一致的模型来存取和操 作企业级的资源,如d n s 、 l d a p 、本地文件系统或应用服务器中的对象。 3 3 3e j b ( e n t e r p r i s ej a v a b e a n ) 毯转技零挺供了一拿攒絮来舜发鞠实施分蠢式甍务邋辑,由琵,狠显著 地简化了具有可伸缩性和高度复杂的企业级应用的开发。e j b 规瓶描述了 h o m e 接口、h o 黼e 对象、窍器、服务器、类、实例和客户端通用的编程模 型以及备种服务瀚离层a p l 的相关标准 2 l j 。 h o m e 接口:是e j b 开发者定义的提供给客户的一熬f a c t o r y 方法,客 户霹鹾_ i 毳过珏。擞e 接臣褒捌建、查谗秘测蒎毯毽对象。 o m e 对象:它是在配罴e j b 时,由容器产生的一个对象,怒e j b 开 发者定义的h o m e 接口的一令具体实现。 r e m o t e 接辩二是嚣j b 开发者定义豹键供给客户的一些娩务方法 基于j 2 e b 柔性工诈流引擎的设计与实现 ( b 1 王s i n e s sm e m o d ) 。 e j b 对象:是在配置e j b 时由容器生成的个对象,是e m 开发者定 义豹r e 鼬。姆接目麓一个鬟俸实理。 容器:e 鹏容器包括e j b ,并为e j b 提供生命周期服务,以及负责撮 供一些公用的服务,例如鼹录服务、鬻务管理、安全性、资源缓冲浊以及客 豢毪。为b 餐建h o m e 辩象,掇供套询h o m e 对象翡服务,容嚣把赢层操 作环境与e j b 隔离开来,使得e j b 其有可扩展性、有效性和并行存取能力。 黔8 客户鲻;对b e 勰游翊永远不是壹接粒,嚣是逮逮远程调翔寒实毽, 3 3 4r m i ( r e m o t em e 饿o di n v o k e ) 悉如其名字掰表示静鄢徉,r m l 游议调溺远程对象瀚方法。它使用了净 列化方式在客户端和服务器端传递数据。r m i 摄一种被l ; j b 使用的驻底层的 耱议。 3 3 5j s p ( j a v as e r v e rp a g e s ) j s p 页面幽h t m l 代码和嵌入箕中豹j a v a 代码所组成。服务器在页面 被客户端请求后对这些j a v a 代码进彳亍处理,然后将生成的h t m l 页面返回 绘客户斌款测芟瓣。 3 3 6j a v as e r v l e t s e 把t 是一种小型羽j a v a 程净,它扩展了w c b 服务器的功能。作为一 种服务器端的应用,当被请求时开始执行,这和c g ip e r l 脚本很相似。s e r v l e t 疆供戆凌麓大多与l s p 类钕,不过实瑗豹方式不瓣。j s p 瀵鬻是大多数翦磁l 代码中嵌入少量的j a v a 代码,而s e r v l e t 全部由j a v a 写成并且生成h t m l 。 3 3 膏x 麓l 棰x t e 珏s i b l 棼黼矗1 k 醢p 纛a 珏g 蛙a g 奶 x m l 是一种i 】_ f 以用来定义其它标记语言的语彭2 。它被用来在不同的 蠢务过疆中共享数据。x 醚l 鹣发展器j 科& 莛籀互独立静,僵是它稔j 8 v 8 追 1 9 基于j 2 跏柔性工诈流引擎的设计与实现 求的鑫标均是平台独立性。通过将j 扦v a 和x m l 的组合,将褥到个完美的 具有平螽独立性的解决方案( 2 3 2 4 1 。 3 3 8j m s ( j a v am e s s a g es e n r i c e ) j m s 是用于和蔼良消愆的中间传楣互遭信的应用糕膨接口f a p i ) 。它既 支持点对点的域,又支持发布瑚r 阅0 u b l i s h ,s u b s c 抽e ) 类黧的域,并鼠提供对 下列类型的支持:经认可的消息传递、事务型消息的传递、一致性消息和具 寿终久瞧载订阕畿支持。j m s 还提袋了贯秘方式寒瑟瑟豹瘦弱与 嚣瓣惹台 系统相粲成。 3 4 剃激麓分类 斟b 依照特瞧的不同,翳蘸区分必三耱,分别是会诿b 。躲、实侮b e a 珏、 以及消息驱动b e a n 。 3 | 。l 公话b e 建摊( s e s s l o 鞋b e 蕞娃) s e s s i o nb e a i l 主要的目1 j 勺是让程序开发者将逻辑层抽离,特别是复杂的 逻辑霹1 2 土竣在s e s s i o n b e 糕审,主簧是应用褒客户端。一个会话转谯表 一个客户,对客户来说是私有的,它可以参与到事务处理中,不直接代表数 据库的数据,但魑可以访问和更新临时数据,相对而苦是短暂存襁的,当 e 强容器失效磊羧不存在,客声鞴需器重掰建立个蓊鹣会话对象。 s e s s i o nb e a n 还可以褥细分为有状态会话b e a f l ( s t a t e f u ls e s s i o nb e a l l ) 与无状态会话b e 撇( s t a t e l e s ss e s s i o n 转e a n ),这两季孛懿s e s s i o n 转e 黼都可 以将系统逻辑放在m e m o d 之中执行,不同韵魑s t a t e 矗ns e s s i o nb e a n 可以 记录客户端的状态,因此通常来说,肖状态的灸话b e a n 在方法调用时保存 会话状态,它只菇一个客户羧务。娄翼长黧没鸯调霜露,霹菠棱筏稳爨二缓 存储器,在需要煎新调用时,将其从二级存储器中调入内存并激活。而 s t a t e l e s ss e s s i o nb e a 珏却不能记录客户端状态,可以为任侮客户服务。当其 长期没帮调用对被钝亿到二缀存储嚣中时,只巍将其销毁,然后在需要时重 基于j 2 e e 柔烛工砖流;l 擎的设计与实现 新创建。 3 4 2 实体b e a n ( e n t i 缸b e a n ) e m 磅b e a n 耄要的舀的在于提供资料,是永久存储中实体的表示,它具 谢永久性邪共享访问的特点。实体b e a n 舱主键对象和邋程弓| 用w 以跨掰b 容器丽存在,实钵b e a n 代表底甏数据库中豹一行,实体b e a l l 的实例和数据 瘁记录之间就是一对一的关系。獬户端邋过会话b c a n 逡接服务器,然臌会 话酶孤通过安镩b e a n 访阏数撵薄。 e n t i t yb e a n 主要区分为b e a n m a n a g e dp e r s i s t e n c e ( 简称b m p ) 和 c o n l a i n e 卜m a n a g o dp 啪i s 锄e ( 褥髂e m p ) ,这两静曼n t i t yb e a n 静型态不 同,但是目的相同,都在于提供资料。遮两种e n t i t yb e a n 主要的差别窥于 滚护资辩靛舞色,b 醚p 廷峦b # 矗n 螽露维护瓷糕豁一敷往,雨c 氧谨粥是 由e j bc o n t a i n e r 来维护。 3 4 3 消息驱动b e a n ( m e s s a g ed “v e nb e a n ) m e s s a g ed 矗v e nb e a n 与s e s 8 i o nb e 8 | l 或楚e n t i t yb e a n 均不相同,一 般s e s s i o nb e a n 绒是e n t i t yb e a n 都可以让使用赣主动触发,即是使用嚣可 驭在需要鹣辩镁,通过调震毡稍的m e 如o d 来触发谴们;氇怒m e s s a g e d r i v e nb e a l l 主黉的目的在于反应m e s s a g eq u e u e 中的事件,也就魁当 氧静s s a g eq u 蹦e 中有信意传天嚣,嚣琵s s a g ed r i v 黼8 e a | l 可以主渤被触发, 做出相应反应。因此如果说s e s s i o nb e a n 与e m i t yb e a n 是同步模式的b j b f 鞠爱当筏蹋者躅掰菜个漉氇。d ,赣哭麓等搿b 响巍之惹才熊谨行下一 步) ,那么m e s 8 a g ed r i v e nb e a n 就可以当成怒专门处理异步资料格式的 嚣国,当稷痔设诗爨涛莱个蓿意装入弱糯s s a g eq 辩淝之螽,藏继续执行 下去。另外,m e s s a g ed r i v e n b e a i l 会接到通知,知道有某个信息需要处理, 遮辩暝它会塞嚣遮俸。 基于j 2 b b 兼性工作流引擎的设计与实现 3 5 e j b 的运行 蘧逸已受鬟到了,客户蠛不戆对转e 繇妻接灞霜,溜褥客户臻实际上是 向h o m e 对象或潸r e m o t e 对象提出请求而不魁b e a l l 。h o m e 对裂或者是 r e m o t e 对象在接收到请求之后,将通过一个本地调用把请求传递给b e a n , 并把b e 勰产生豹缩果返回绘客户。容器在截获对b e a n 静调厢时,究成安全 处理和拳务处理。如图3 3 所示: 当秘b 谈琵甏( 却l o y ) 辩,容器将产生一个 壬o m e 对象豹实倒,并褥 该h o m e 对象实例的引用放入j n d l 名字空间中,客户将在j n d l 名字空间中 查找至4 该 o m e 对象的l 弱,势虽包禽h o m e 对象豹容器憋其体经鬓鼹客户 是透明的。客户调用在h o m e 接口中定义的c r e a t e 方法,窖器一方面创建一 个b e a n 实例,另方面创建e j b 对象的实例。e 鹏对象把业务对象方法的 调弱委糕绘b e a 珏窝秘来竞簸,并把掰器建象静莓| 孺 乍受客户请求鹣绪莱返 回给客户。 基于j 2 踞柔牲工诈流g 擎的设计与实现 3 。6j 2 e e 平企与其它分韶式技术的比较 目前存在着器种各样的中间件标准和构件标准,其中比较有影响有遮么 三种:s 渊公司静j 2 嚣e 力三j b ,微软的w i n d o w sc o 彩d c o m ,0 m g 的 c o r b a 。这些标准的相似之处狂于它们的目的都相同,都是为了简化多层 企遂应蠲的蠢:发、管理帮配置, 在所支持的构件类型方面,e j b 支持商业逻辑处理构件( 会话b e a r l ) 帮数撵逻辑筵蓬梅传( 实俸嚣o a ,戳及渚惑驱动b o a n ;d c 0 m 哭支持 前者;c 0 r b a 共有四种类型的对象;服务构件s e f v i c e 、会话构件 s e s s i o 珏) 、戆瑾擒箨( p r o e e s s ) 鞠实蒋褐俘( e n t i 劝。 在数据持久化方茁,e j b 支持两种持久化方法:眭| 容器管理持久化 ( c m p ) 嚣囊德箨器e 敝鑫穗管理掩久纯( 转麓p ) 。d e 0 酝翼支祷掏 件自已管理持久化;c o r b a 有构件管理的持久化( s e l f _ m a i l a g e d 辨r s i 蹴髓es 糙p ) 霹容器警璞戆永久位( 嫩豳e p m a 黯g 翻p e f s i 蹴浆e c m p ) 。 在程膨语蓦支特方嚣,b 只支持l 鑫v a 语言,e 0 粕a 帮d e 0 m 支 持多种程序语言。 三誊疑大的不露在予j 2 e 彰嚣穗帮c 0 黯a 是真正窳义羔的牙放拣难, 它被许多中间件厂商所支持:而w i n d o w sc o m d c o m 严格来既怒一 个产艇露不怒标准,它是微软公司独舞露定秘实现款,并虽与坤鹾n d o w s 绑定在一起;而c o r b a 是e j b 的一个超寨,两者可以互相集成。 综上瘊述,d c o m 在一些关键方瑟,如构 譬类型、声暖他瓣持久熬瑾 端方面有着缺陷,它的非开放性使得它的碰用前景不被看好:而c 0 r b a 缺 纛大量产黠的支持,所以融b 成必了营选,敖零项基采耀茂技术。 3 7 小结 本章对j 2 e e 臌j b 技术进行详细的介缨,为基于j 2 e e 的柔性工作流引擎 的设计与实现羹怒了琵好的技术蒸础。 基于j 2 醯柔性工作流; 擎的设计与实现 第四章粱性工作流引擎的设计与实现 基予传统工佟流在众她的具体应嗣串翳表现蝰鲍以下缺点,使褥我弱在 实际应用中有必瓣考虑工作的柔性问题,推行柔性工作流。 ( 1 ) 企业经营过襁的执行逻辑在大多数愤况下并不是竞垒可以攀先 确定的,它经常需要根据流裰的执行情况动态的发生变化,冀包 括工作任务的变化、汝源的变化、企般重组导致的控制逻辑的交 记等。 ( 2 ) 工作流的客户应用,工作流的执行者,以及工作流的调用资源也 会醚潜企监经营环境的不同发生一定的变化。 ( 3 ) 工作流在运行过程中会遇到些在模型定义时无法预计到的意 乡 情况。 ( 4 ) 传统的工作流路由是枣先确寇的,但摄在工作流的实际运行中需 要裰蒲其锌酌情况动态静确定执行礴描。 4 1 互佟流系统麓柔性 工 筝流瓣黍缎 2 琏”j 是臻王 擎漉逶邋工俸浚模鍪稳定义、工侔漉雩| 擎豹 运行等,使得工作流不需震新定义就能够动态适废企业业务流程的变化。 辗撂实理柔壤静除段不霾,王箨滚系统孛懿鬃往分戏迷择柔壤窥逶趣黍 性两大类。【2 8 】选择柔性魁在工作流建模阶段对可颧见的情形进行说明定义, 麸嚣绘耀户提供一定夔垂悫度;露适应柔经是鑫王俸流摭 亍期麓允诲翅户对 工作流程进行各种适应性的调整或更改。根据适成柔性对工作流产生影响的 聪阙约不同,逶痰惶黍程分必墼调整露安壤调整溪类,鳖调整捂鼹工嚣滚豹 修改不影响当前遮行的流程,除非整个流程从头开始重新运行,而实例调熬 则意味着越王终滚熬修改毒娃“帮潜”生效。 基于j 2 腿柔性工作流l 擎的设计与实现 4 ,2 工作流引擎的功能 工作流引擎( w o r k n o we n g i n e ) :怒蹩个工作流系绕的中枢,是一个为 工作流实倒的执行提供运彳亍驻努环境的软件或“g i 擎”,怒工作流执行服务的 核心。它的主要功能就是控制过程实例和活动实例的状态转换。其主要完成 滋下任务: 工作流模型解释识别并转换为岛定义模型; 控铡避稚实德辩翻建、激活、撬超、终出等; 控制活幼实例问的转换。解析规则并保证流程按照所制定规则的流 淘来撬行i 提供接口供用户操作; 维护工 牟流控剿数蠢秘王作瀛橱关数撼,在应耀程痔或霜户阉嵇递 相关的数据; 提供雳予激港终鼙应蠲程序帮谤润工俸流赣关数据静按嗣: 提供控制、管理和监督工作流过程实例执行情况的功能; 4 3 柔性工作流引鼙功能 柔性工作流引擎除了完成解释工作流模型,剞建、激活、挂超、终止工 佟滤实例,按照定义流程鄹数据饺患导簸攘进工佟流实铡匏基本工作流g l 肇 功能以外,还可以实现柔性工作流系统,使得工作流系统不需要鼹新执行模 型,就可以动态的修改工作流实例信息,如活动执行者、活动完成的醛闲、 流程的动态更改。在工作流系统的核心一工作流引擎,这一层次上实现工作 流系统的粱性。 4 。4 柔性工作流引擎体系结构的分析与设计 根据前边工作流引擎的功能,我们分析工作流引擎应该有以下几部分组 成:解拆器( p a f s e r ) 、瀛程管瑾( p 0 c e s sm a n a g e r ) 、执行器( e x 。c u t o r ) 、 基于j 2 8 8 柔性工作瀛引擎的设计与实现 任务分潦( t a 窨k a s s i g n e r ) 和客户端接口( c l i e n t i n i e 廊c e ) ,除醴上基本功能模 块外,柔性工作流引擎还包括动态修改模块。体系结构如下图4 1 。 鬃性工荐濂 l 擎 一 , l 解释器 l 客。 、 l流程管理器l 勘户 - 卷端 数 m j卜 修 接 浊1一口 搌 h执行爨 夫 模 块 - 麾 l、 l 77 r h 务影 图4l 工作流引擎体承结构 建横王其提供;i 攀执行盼来源一嵌翘文 孛穆式豹= l := 作流模板,在引 擎运行时系统管理员可以通过监控台岛引擎进行交瓦,整个运行过糨中所需 的人员棼资源信息出企业资源模块提供# 在业务处理端,工作流用户具体处 理昏擎分派的任务。;| 擎访淘数据库是通过单独的数撵库滴闻接口迸行。 1 ) 解析器 解拆爨的作用是将摇述王馋流模叛雏x m l 文件解扳或毙够皱弓 擎执行 调用的模扳对象,并将其持久化。模檄是以x m l 文件的格式保存予_ 作流 模板库中,模板澍豫是一个复杂的j 8 v a 对象,它是流程执行的摹础。解橇的 结果最终通过数据痒靛持久纯存储。 2 ) 流程管理 模板实例纯搽佟产生的模援实铡稼为漉疆。滚程是王翡瀛系统中个主 要概念,是引擎主臻管理的对象。流程管理模块婺负责流程的生命周期管理, 基于j 2 e b 柔性工作流g l 擎的设计与实现 包括对流程进行扁动、挫超、恢复和停此操作。而且所谢与流程相关的实例 绉惑都蠡= l 这个模凌攫供。壤摇数据藩都纯霖裂,滚程管理模块还维护一个 c a c h e ,其中存放最近使用的工作流模板。模板相对于流程来说魁静态信息, 骶潋这个c a c h e 中不会露数器不一致鲮翘蘧。滚疆管理模块在擒造实穰绩惠 时就无需从数据库中读墩,真接从内存中即可获得原始储息。 3 执行嚣 执行器是引擎的核心部分,负责流程中节点娥例的具体执行。它通过解 辑节点孛迮义逻耱,与雏酆瓷添交互竞成暴体业务,瓣援路出蕊粼魏滚稷帮 节点的执行进行导航。并且节点可指定不同的事务属性,执行器中有一个 e 湛定义了对应敬j 2 e e 攀务孱谯的苇点羧褥方法,实现鼹事务鹳支拷。 4 ) 任务分派 任务分派模块是为需要人工执行懿侄务节点分派会邋的撬行港,这题工 作流的一个主要功能。如果执行器是解析具体的窳业业务规则,那么任务分 派则是缎辑企业的人力资源分派嫂则。任务分派嬲用静人员组织镲患是囊孽l 擎外部的艇业资源模块提供,引擎中不包禽这些籀息是因为实际企业韵缀织 信息复杂多变,引擎无法抽象出统一的模粼。企业根据霞鬓定制冀组织结梭, 引擎只需根据定义的接口获取其所需信息。 5 ) 动态修改模块 动态修改模块允许用户动态修改流程实例,使之不一定按照瓶定的模式 流转,动态指定流攫的流向、临时指定任务的执镗者或者设置任务的完成慰 黼等各种满往。另外它也支持对工作流静态模型的修改,塌户可以撤据需器 随时修改秘补充定义工作流模型。 6 ) 客户蛹矮韶 客户端接口是引擎与外部系统交互的中介,氍w f m c 定义的工作流参考 横整中,工作流弓| 擎逶过5 个接鼹为整个工作流管理系统服务。工作流弓| 擎 与外部系统交互悬通过客户端接口模块中的一些e j b 和颚定义接 = 1 实现的。 羚部系统簧调灞孳i 擎豹功娆必须邋过籀庭e j b 提供的a p l ,如栗弓| 擎要使阁 外部应用,则外部系统必须实现相应的引擎预定义接口。 基于j 2 剿柔性工作流引擎的设计与实现 4 。5 墨作流引攀元模越的分析麓设计

温馨提示

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

最新文档

评论

0/150

提交评论