




已阅读5页,还剩64页未读, 继续免费阅读
(计算机应用技术专业论文)嵌入jbpm的轻量级工作流系统的构建和应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 工作流管理系统作为实现工作流技术的核心内容,已经成为研究的热点。而轻 量级工作流管理系统却有自身的优势,它的开发周期较短,可移植性强,扩展性 好,在针对特定的一些中小型应用时,是一种良好的解决方案。 。 j b p m ,全称是j a v ab u s i n e s sp r o c e s sm a n a g e m e n t ,是一种基于j 2 e e 的轻量 级工作流管理系统。但如何使j b p m 更好的嵌入到轻量级的j 2 e ew e b 系统中,在 中小应用中得到更好的执行效率是一个值得研究问题。 本文从j b p m 的工作原理和流程引擎内核设计讲起。分析了j b p m 流程模型, 和调度机制。提出了基于轻量级j 2 e e 工作流系统的概念。并在此基础上做了以下 工作: 1 j b p m 流程引擎内核设计的分析研究。通过系统的分析j b p m 的工作原理, 为以后的应用搭建提供了理论依据。 2 引入了j 2 e e 轻量级企业架构。分别对w e b 层框架s t n l t s ,数据持久层框架 h i b e m a t e ,业务逻辑层框架s p r i n g 进行了分析和介绍。通过对框架研究为 以后搭建j 2 e e 工作流系统提供了开源素材。 3 嵌入j b p m 轻量级工作流系统的j 2 e e 框架的搭建。提出j 2 e ew 曲工作流 系统的轻量级架构,并在每一特定层次中运用j 2 e e 轻量级框架,使工作流 系统的运行效率大大的提高。 4 j b p m 在o a 系统应用。本文将以某0 a 系统为背景,主要阐述嵌入j b p m 的轻量级工作流系统在公司报销审批流程中的应用。 关键词:工作流;j 2 e e ;轻量级;j b p m a b s t r a c t w 6 r k f l o wm a n a g e m e n ts y s t e mw o r k n o wt e c h n o l o g ya st h ec o r ec o n t e n th a s b e c o m ear e s e a r c hh o t s p o t t h el i g h t w e i g h tw o r k n o w m a n a g e m e n ts y s t e mh a si t so w n a d v a n t a g e s ,i t sd e v e l o p m e n tc y c l es h o r t e r p o r t a b i i i t y ;a n ds c a l a b i l i t y ;a n da ts o m e s m a l la n dm e d i u mf o rs p e c i f i ca p p l i c a t i o n s ,i sa _ g o o ds o l u t i o n j b p m ,如l ln a m ei st h ej a v ab u s i n e s sp r o c e s sm a n a g e m e n t ,i sal i g h t w e i g h t j 2 ee _ b a s e dw o r k n o wm a n a g e m e n ts y s t e m b u th o wt om a k eb e t t e rj b p me m b e d d e d i n l i g h t w e i g h tj 2 e ew e bs y s t e m sa ts m a l la n dm e d i u m s i z e da p p l i c a t i o n sf o rb e t t e r e 佑c i e n c yi nt h ei m p l e m e n t a t i o ni sap r o b l e mw o r t h yo fs t u d y t h i sa r t i c l ef r o mt h ej b p mf i o wo ft h ew o r k i n gp r i n c i p i ea n dc o r ee n g i n ed e s i g n t a l k a n a l y s i so ft h ej b p mn o wm o d e ia n ds c h e d u l i n gm e c h a n i s m l i g h t w e i g h tj 2 e e b a s e dw o r k f l o ws y s t e mc o n c e p t a n do nt h i sb a s i st od ot h ef o l l o w i n gw o r k : 1 j b p me n g i n ec o r ed e s i g nf l o wa n a l y s i s s t u d y j b p mt h r o u g hs y s t e m a t i c a n a l y s i so ft h ew o r k i n gp r i n c i p l e ,f o rt h es u b s e q u e n ta p p l i c a t i o no fs t r u c t u r e sp r o v i d e s at h e o r e t i c a lb a s i s 2 t h ei n t r o d u c t i o no fl i g h t w e i g h tj 2 e ee n t e r p r i s ea r c h i t e c t u r e s e p a r a t e l yo nt h e w e bt i e r 行a m e w o r k ss t r u t s ,d a t ap e r s i s t e n c el a y e rf r 锄e w o r kf o rh i b e r n a t e ,b u s i n e s s l o g i ct i e rs p r i n gf r a m e w o r ka n a l y s i sa n dp r e s e n t a t i o n t h r o u g ht h e 矗a m e w o r kf o r 如t u r er e s e a r c ht ob u i l dj 2 e ew o r k f l o ws y s t e mp r o v i d e st h eo p e n - s o u r c em a t e r i a l 3 e m b e d d e dj b p mw o r k n o ws y s t e ml i g h t w e i g h tj 2 e ef r a m e w o r ks t r u c t u r e s j 2 e ew e bm a d eo fl i g h t w e i g h tw o r k f l o ws y s t e ma r c h i t e c t u r e ,a n da te a c hs p e c i f i c l e v e li nt h eu s eo fl i g h t w e i g h tj 2 e ef r a m e w o r k ,s ot h a tt h ew o r kn o ws y s t e mg r e a t l y i m p r o v eo p e r a t i o n a le f f i c i e n c y 4 j b p ma to as y s t e m t h i sa r t i c l ew 订lb ea n0 as y s t e ma st h eb a c k g r o u n d , m a i n l yo nt h ee m b e d d e dl i g h t w e i g h tj b p mw o r k n o ws y s t e mf o ra p p r o v a la tt h e c o m p a n yr e i m b u r s e m e n tt h ea p p l i c a t i o nn o w k e yw o r d s :w o r k n o w ;j 2 e e ;l i g h t w e i g h t ;j b p m i i 长沙理工大学 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所 取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含 任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重 要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本 声明的法律后果由本人承担。 作者签名:日期:2 0 0 9 年 月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意 学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论 文被查阅和借阅。本人授权长沙理工大学可以将本学位论文的全部或部 分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手 段保存和汇编本学位论文。 本学位论文属于 l 、保密口,在年解密后适用本授权书。 2 、不保密团。 ( 请在以上相应方框内打“ ) 作者签名:专牧书日期:2 。9 年彩月西日 导师签名:日期:2 0 0 9 年以月西日 第一章绪论弟一早珀下匕 1 1 研究背景目的和意义 1 1 1 研究背景 实现办公自动化( o m c e a u t o m a t i o n ) ,o a 系统已经成为国内外众多企业、政府、 服务性行业提高工作效率的首选目标。通过办公自动化软件来实现各部门以及企 业之间的协调、更加方便地进行信息的收集与处理、流动与共享,最终达到办公 现代化、信息资源化、传输网络化和决策科学化。办公自动化的意义也从原来以 提高个人工作效率为目的,发展成为通过提高企业内部的协同工作能力,提高整 体工作效率为目的,工作流系统中最典型的功能模块包括公文审批流转处理、会 议管理和报销管理审批。其间,工作流技术越来越成为新一代办公自动化系统的 研究热点。 在众多不同工作流系统的实现中以l o t u s 等为代表的基于邮件的工作流应 用,就是通过邮件的传输将数据表单提交的数据从一个人邮箱传送到另一个人邮 箱。其特点是实现模式简单。但是最大的弊端是无法实行实时监控,管理员无法 随时掌握工作流的状态。其它问题包括:难以实现自动化处理如通过代理催办、集 中归档、统计。数据容易出现多份拷贝,难以控制安全性和准确性,大量的邮件 传输引发大量的网络流量。 应用共享数据库的工作流系统,可以克服上述基于邮件的工作流缺点。信息 单一存储,自动处理,安全性更好,容易实现监控。典型的如o s w o r k f l o w 明1 和 s h a r k 阳1 等等,已经在协同办公系统当中得到了一定的应用。但是在应用过程中, 这些系统也暴露了一些缺陷,例如,s h a r k 体系过于复杂不利于构建小型企业的工 作流系统,o s w 6 r k f l o w 所依赖的f s m ( f i n i t es t a t em a c h i n e ) 模型n 5 1 对于工作流程 的分支、聚合、子流程的支持度很低,在满足办公自动化当中的柔性工作流和特 殊工作流方面显得无能为力可扩展性较差,业务需求分析人员的分析模型和应用 开发人员的实施模型之间的存在着比较大的差距,不利于系统的描述和开发。 1 1 2 研究意义 j b p m 3 1 ( j a v ab u s i n e s sp r o c e s sm a n a g e m e n t ) 是一组标准的j 2 s e ( j a v a2p i a t f o m , s t a n d a r de d i t i o n ) 程序,整个核心模块仅仅是一个2 2 9 k 的j a r 包,是一个轻量级的 工作流管理系统。j b p m 提供标准的j a v aa p i ( a p p l i c a t i o np r o g r a m m i n gi n t e r f a c e ) 的调用方式,且应用方式灵活,可以由j a v a 程序直接调用,也可以通过j 2 e e 2 6 1 ( j a v a 2p l a t f o me n t e 叩r i s ee d i t i o n ) 进行部署,而基于w e b 的工作流系统正是往后的一个 发展方向。 j b p m 使用j p d l 口3 ( j b p mp r o c e s sd e f i n i t i o nl a n g u a g e ) 作为流程定义规范,它 把一个业务流程看作是一个u m l ( u n i f i e dm o d e l i n gl a n g u a g e ) 训活动图,详细定义 了这个活动图的每个部分,如起始、结束状态,以及状态之间的转换等,有利于 业务人员和开发人员之间的沟通。灵活的流程扩充机制,使得j b p m 在处理o a 流程模型,包括回退任务、催办任务、动态任务、会签任务和抄送任务时,提供 有力的支持。这些相对优势,使得j b p m 成为办公自动化实施过程中,应用工作 流系统的一个新选择。 1 1 4 研究目的 本文拟对j b p m 的引擎内核进行较为深入的研究。对j b p m 的流程,流程中的 任务分配,j b p m 的过程调度机制,以及j b p m 的过程执行机制都进行了深入的分 析。本文结合j b p m 工作流管理系统的b s 结构的w c b 应用。分析了传统w c b 应 用结构,提出了传统j 2 e ew e b 应用的弊端,比如重量级的e j b ( e n t e r p r i s ej a v ab e a n ) 阻们依赖于特定的w e b 容器不能在容器外进行配置;e j b 只能管理粗粒度的对象, 例如d a o ( d a t a a c c e s so b e c t ) 叫组件,而不能管理细粒度的对象;侵入性较高, 使用e j b 的服务业务对象必须实现e j b 的特定接口。在此背景下,i o c ( i n v e r s i o no f c o n t r 0 1 ) 心叫和a o p ( a s p e c t o r i e n t e dp r o g r a m m i n g ) h 们技术近年来开始兴起,在克服 了e j b 一系列缺点的同时也为w 曲业务逻辑层的设计提供了极佳的方案。本文通 过s p r i n g 乜2 1 轻量级i o c 框架整合s t r u t s 陋w e b 层和h i b e m a t e 持久层框架,得到 j 2 e e 轻量级企业框架。通过s p r i n g 对j b p m 流程配置,节点动作,任务分配的管 理,将j b p m 嵌入到整个w c b 应用中。 通过上述工作得到一个基于轻量级架构的工作流管理系统。从而提高了整个系 统的开发,运行效率。且结构层次清楚,可维护度高的工作流系统。 1 2 国内外研究现状 现在对于工作流系统j b p m 的使用大多数还停留在对j b p m 本身的使用,并没 对j b p m 内核引擎进行深入的研究,很少有文章对j b p m 的工作流引擎进行分析 和研究,对于工作流引擎的分析可以对当前工作流系统有更加深入和具体的认识, 甚至我们可以修改j b p m 的源代码使它适应不同的企业业务需求,如果只是对 j b p m 的a p i 进行认识,那么是无法将j b p m 和其他框架进行融合的,对于当前的 j b p m 的研究分析大多数的研究应用只停留在使用j b p m 的a p i 来构建简单的 w 曲心 应用。当然w e b 应用是软件开发的主要趋势,工作流系统也不例外,现有 工作流管理系统一般采用b s ( b r o w s e r s e r v e r ) 3 模式,客户端统一为浏览器 ( b r o w s e r ) ,便于用户访问,配置工作都集中在服务器端( s e r v e r ) ,具有提高系统的安 全性等优点。但大多数应用还停留在简单的传统j 2 e ew e b 应用平台上。 2 由于j b p m 的可以移植性非常好它本身就是一个轻量级的工作流管理系统不 依赖于任何运行环境,所以j b p m 既可以应用于j 2 s e 桌面应用中,当然不用修改 任何j b p m 架构也可以非常轻松的应用于j 2 e e 中,j b p m 结合传统的j 2 e e 应用, 已成为了现在研究j b p m 的主要方向。 对于传统j 2 e e 、e b 的j b p m 工作流系统来说。系统依托的核心就是j 2 e e 传 统系统架构。j 2 e e 架构本身就是一个研究方向,如何使用j 2 e e 架构搭建性能稳 定的企业软件,在当今软件业本身也是一个重要研究热点,所以对j b p m 的研究 大多数还停留再如何将j b p m 嵌入传统的j 2 e e 系统平台之中,运用j b p m 本身的 灵活性和强大的a p i 可以提供较为稳定的工作流系统,可以使嵌入了j b p m 的j 2 e e 架构运用到各种企业应用之中。对于j 2 e e 传统架构是为了更好的促进企业级开 发,j c p ( j a v ac o m m u n i t yp r o c e s s ) 制定了j 2 e e 的一系列标准。j 2 e e 是建立在j a v a 2 平台上的企业级应用的解决方案,提供了对e j b ,s e r v l e t m 】,j s p ,x m l 等技术的 全面支持,其最终目标是成为一个支持企业级应用开发的体系结构,简化企业级 应用的开发,部署和管理等复杂问题。事实上,j 2 e e 已成为企业级开发的工业标 准和首选平台。现如今,j 2 e e 不仅仅是指一种标准平台,它更多的表达着一种软 件架构和设计思想。所谓的j 2 e e 架构,一般是指基于j 2 e e 的企业级应用软件架 构。 传统的j 2 e e 架构一般分为三层:表现层,业务层和数据层。表现层由j s p 和 s e n r l e t 实现,主要完成与用户的交互;在s e r v l e t 中可以调用相应的业务逻辑当然 也就涉及到调用j b p m 的a p i 来完成相关的流程的流转。当然其他相关业务层一 般是交给e j b ( 包括远程e j b 和本地e j b 两种) 其中也涉及到对j b p m 相关a p i 的调用。完成系统核心业务逻辑的处理:数据层则是负责与各种数据源的交互, 可以由j d b c ( j a v ad a t a b a s ec o n n e c t i v i t y ) 加d a o 对象或是由e j b 中的e n t i t yb e a n 实现。其中e j b 是j 2 e e 的标准业务组件,需要运行在e j b 容器中。e j b 与e j b 容器的紧耦合使得其可移植性、可测试性都很差。而j b p m 是一种轻量级的工作 流管理系统可以部署到任何w 曲容器之中,这和e j b 的重量级形成强烈的反差。 由于e j b 容器提供几乎所有的企业级服务,所以其本身启动慢,应用部署比较复 杂,且性能比较差。作为整个架构中的核心组件业务层,往往由于过度使用重量 级组件e j b 和对e j b 容器的过度依赖使得整个架构的可移植性、可测试性、可维 护性和运行性能较差。而且j b p m 本身流程的持久化并没使用e j b ,而是使用 h i b e r n a t e 这使得应用结构相当复杂和混乱。此外,由于j s p 本身固有的缺点和企 业级应用需求的复杂性,在表现层单纯的应用j s p 和s e r v l e t 技术很难提高j 2 e e 的开发效率。j 2 e e 体系架构在提供了一系列企业级服务的标准的同时,却没能提 供一个令人满意的应用编程模型。 所以,这种将j b p m 嵌入传统的j 2 e e 架构方案得到的系统性能常常无法令人 满意:过于复杂的应用程序、令人失望的性能、难以测试和维护成本高昂。所以, 随着轻量级j 2 e e 架构的蓬勃发展已成为软件业界的新的研究方向。而将j b p m 嵌 入到轻量级j 2 e e 框架的工作流系统,成为当今的一个全新的应用研究题材。 j b p m 自身是一个轻量级的工作流管理系统。如何将j b p m 嵌入轻量级j 2 e e 企业框架中,从而得到一个架构优良,系统可维护度好,入侵性低的j 2 e e 轻量级 3 工作流系统。使j b p m 能脱离传统的j 2 e e 应用固有模式比如脱离e j b 的束缚。现 阶段还没有一个具体的实施方案,将j b p m 整合到轻量级的j 2 e e 平台中,使整个 工作流管理系统达到真正的轻量级系统,使j b p m 较为合理的嵌入到轻量级框架 的不同层次之中。正是本文要提出的一个全新的研究方向。 1 3 主要工作 文章的主要工作如下: ( 1 ) j b p m 流程引擎内核设计思想及构架的分析研究。 对j b p m 现在的研究状况大多停留在j b p m 本省的应用和a p i 的研究上,很少 有人深入对j b p m 工作流引擎进行研究,那么就无法对j b p m 内部运行机制有深 入的研究,更谈不上搭建一个结构良好,入侵性小的j 2 e e 工作流平台。本文在前 部分的主要工作第一研究j b p m 的内部a p i 和流程的基本定义,随后对j b p m 的 核心工作流引擎内部结构,对j b p m 的过程调度机制特点,内部实现的源代码都 进行了研究。分析了j b p m 过程调度机制的。以及过程执行机制。分析了j b p m 的流程定义的各种x m l ( e x t e n s i b l em a r k u pl a n g u a g e ) 元素 ,和作用。对节点的 任务分配的a p i 的进行了分析。为以后构建j b p mw 曲应用奠定了良好的基础。 深入j b p m 流程引擎内核设计及深入a p i 的研究为以后整合j 2 e e 轻量级框架奠定 了较好的理论基础。同时理清了工作流的j b p m 实施过程的相关定义,包括流程 的定义、流程部署、流程执行、流程监控。 流程的定义包括从基本的过程定义、任务定义、流程的业务逻辑扩充,包括事 件监听扩充、任务分派扩充、节点动作扩充。 ( 2 ) 引入了轻量级架构 通过对传统、c b 结构的分析,提出了现阶段流行的企业级轻量n 踟框架对、e b 应用的支持,分别对w e b 层框架s t r u t s ,数据持久层框架h i b e m a t e ,业务逻辑层 框架s p r i n g 进行了分析和介绍。分别对不同层次框架的作用,和相关应用点作出 了分析,本文是对工作流系统的分析对如何将j b p m 嵌入到这种轻量级j 2 e e 应用 做出了相应的研究。那么对这些框架的应用研究是相当关键的,通过对框架研究为 以后搭建j 2 e e 工作流系统提供了开源素材。 ( 3 ) 轻量级工作流系统的j 2 e e 框架的搭建 本文提出一套整合策略。通过以上章节对j b p m 的内核及应用的分析,对其他 轻量级企业框架的介绍。本文提出了基于j 2 e ew 曲工作流系统的轻量级架构,并 在每一特定层次中运用j 2 e e 轻量级框架,使每一系统层次得到一个较低耦合度, 且轻量级的系统结构,使工作流系统的运行效率大大的提高。并将j b p m 工作流 引擎整合到轻量框架之中。得到一个轻量级j 2 e e 工作流系统的平台。整个应用的 搭建最主要就是要利用到s p r i n g 的i o c 和a o p 策略。通过s p r i n g 的i o c 能将 h i b e r n a t e 中的数据源,和s e s s i o i l f a c t o r y 交给s p r i n g 来管理,能将s t m t s 中的a c t i o n 4 交由s p r i n g 来生成,对于嵌入j b p m 通过s p r i n g 来管理j b p m 中的j b p m c o n f i g u r a t i o n 来管理j b p m 中的配置文件j b p m c 龟x m l 1 中的配置信息,在s p r i n g 中配置o r g s p “n g m o d u l e s w o r k n o w j b p m 31 j b p m t e m p l a t e 来为业务逻辑注入来调 用j b p ma p i 的模板类。这些都是利用了s p r i n gi o c ( 控制反转) 的功能将不同轻量 级框架交给s p r i n g 管理了起来。这种管理不是机械的管理而是动态的,在s p r i n g 中这种动态的管理机制也叫d i ( d e p e n d e n c ei n j e c t i o n ) 心副依赖注入。在管理了这些 不同层次的轻量框架之后,任何系统层和层次之间是有耦合性的。比如在w e b 层 要调用业务逻辑层业务逻辑层要调用数据持久层,并且有的业务逻辑也要调用 j b p m 获取流程定义的数据那么s p i m g 的d i 正是解决这些层次调用耦合度的最佳 选择。通过s e t 设置注入s p r i n g 能将不同层次依赖的组件动态的注入给调用层, 从而解决的系统的耦合复杂度。这种轻量级款架和j b p m 的整合策略正是本文应 用研究的重点。 ( 4 ) j b p m 在o a 系统应用。 本文将以某o a 系统为背景,主要阐述j b p m 在公司报销审批流程中的应用。 采用s t r u t s + h i b e r n a t e + s p r i n g 三层架构,业务逻辑层嵌入j b p m 实现了一个基于 b s 结构的轻量级的、e b 应用。本系统除了使用s p “n gi o c 功能为了整合j b p m 还加入第三方的s p r i n gm o d u l e s 插件,它包含一组用于扩展s p r i n g 框架的工具, 附件和模块,对j b p m 的整合有较好的支持,这个三方插件可以方便的将j b p m 和集成到s p r i n g 的i o c 容器内,使j b p m 可以重用s p r i n g 中管理的 s e s s i o n f a c t o r v 乜钔,将流程持久化到相应的数据库中如图1 1 所示。最后本文将展 示整个应用的运行效果。 图1 1 轻量级工作流系统整合结构图 5 1 4 论文安排 第一章绪论:简要的指出j b p m 工作流系统的应用背景、研究目的、意义和主 要工作内容。 第二章基于工作流的o a 系统。对工作流系统和工作流初步认识。介绍了o a 系统中工作流系统的主要实现方式和j b p m 应用于o a 系统带来的新特性。 第三章j b p m 流程引擎内核设计思想及构架,j b p m 流程的实施过程,包括定 义、部署、执行、监控。重点分析了j b p m 的流程定义过程,包括从简单的流程 定义令任务定义今到流程的扩充。以及流程定义的x m l 的主要元素。 第四章j 2 e e 轻量级框架的介绍和应用探讨,主要包括w 曲层的s t r u t s ,持久 层的h i b e m a t e ,业务逻辑层的s p r i n g ,初步探讨了以及与j b p m 的整合方案。 第五章以o a 系统为背景,主要阐述j b p m 在协同工作中的应用,主要论 述了报销子系统流程的分析、流程的设计、任务分配类、节点动作类、事件响应 类的设计,以及j b p m 与轻量级框架的具体整合实施方案。并进行应用的运行效 果进行展示。 第六章总结与展望,总结轻量级框架的j b p m 系统在o a 系统当中的应用, 提出不足之处和下一步的改进方向。 6 第二章基于工作流的0 a 系统 21 工作流的概述 在传统丌发应用系统的方式中,所有的业务流转或数据的流转和业务流程的交 互都是一种硬编码的方式,也就是将业务逻辑通通由一些类和接口实现。当然硬编 码使用与一些简单的企业应用比如m i s ( 信息管理系统) ”系统还有一些 b 2 b ( b u s i n e s st ob u s i n e s s ) 。”电子商务系统对于流程的连续性和灵活性要求并不是 太高,所以采用传统硬编码方式并整合一些轻量级企业绒框架技术,比如s t r u t s m v c 模式。”的w e b 框架,s p r i n g 业务逻辑层框架,h i b e m a t e 数据持久层框架。 但是一些o a 系统常常涉及到具体业务的和具体业务过程的处理上,如果在采用 实际的硬编码的方式,那么系统运行的效率就会比较低,开发成本也比较高,也不 便于系统的需求维护。那么对于业务过程的处理就设计到基本的工作流技术如 何将工作流技术“1 楚合到常用的轻量级w e b 框架之中也是本文后续的研究重点。 举个简单的例子,比如开发一个订单处理系统如图2l 所示: r 亡当 冷 女 一矗 一磉向、 一一芦: 萨 图2 1 订单处理系统图示 通过分析四有如下几个主要的“业务活动”: ( 1 ) 前台业务员接收订单,也就是客户填写了订单 ( 2 ) 通过一些审批确认信息:比如客户的信誉度、订单金额的计算 ( 3 ) 通知库存管理员检查库存( 如果库存缺货,那么需要返回给客户信息) ( 4 ) 如果有库存,那么就需要通知其他部门进行一些装配工作 ( 5 ) 最后通知发货 肇 在传统的w c b 应用中针对每一个活动点,你都需要开发w e b 界面程序、后 台的业务处理数据、后台的业务数据的存储、不得不进行硬性的下一步指定、不 得不硬性的指定下一步的执行者、需要存储于业务过程流转相关的数据。如果业 务是不变的时候和需求调研的时候,业务需求和业务过程基本不更改,那么这种 硬编码的方式是可以应付的。但是这完全是一种理想的情况,在现实企业开发中, 业务和客户的需求总是在变的,一方面是需求的不确定性,一方面是客户的业务 经营过程的调整。 所以在实际的企业应用中硬编码的方式导致的缺陷是致命的: 每个活动都要单独开发大量的j s p ( j a v as c r v e rp a g e 1 页面和数据访问接 口、业务处理类 每次活动处理都需要判断下次活动以及活动的处理人 每次操作都需要维护业务数据和流程的一些数据 一旦流程改动,相应就需要大量的更改代码,甚至数据库的表结构。 不能跟踪流程的处理情况 那么采用工作流管理技术进行应用系统的开发将是一种完全不同的丌发方式。 把计算机技术在1 作流程管理中的麻用称为工作流技术。当然,应用工作流技术 所体现的形式足一个工作流甲台或工作流管理系统,如图22 所示。 业务流转 嚣( 西 工作流技术 逻辑 :二二。 规则 t 髂k - 一生望鲞 婢 程幽紫墨譬 卜 “:、释 图22 工作流管理系统 、v o r k f l o w ( 工作流) ”1 最初思想来自于工业自动化的流水线。“流水线”技术让整 个工业自动化迅速普及,同时也推动了工业自动化的极大进步。三十多年来,人 们不断的在业务信息化和办公自动化上探索,而工作流技术正是在这不断的探索 中逐渐完善发展起来的。当然,w o r kf l o w 本身的f 1 0 w 的虽初含义,是来源自与企 业经营管理息息相关的“物流 、“资金流 、“信息流”、“控制流”等。于是工作 流就是用一个个有序的任务点( 活动点) 来抽象表示这些业务流的处理过程。工 作流( w b r k f l o w ) 就是工作流程的计算模型,其表示的是:对流程中的任务,以 什么样的逻辑或者规则串接起来,并以什么样的模型进行表示和计算。工作流解 决的主要问题:为实现某个业务目标,在多个参与者之问,利用计算机,按某种 预定规则自动传递文档、信息或者任务。 2 1 1 工作流管理系统 工作流管理系统( w b 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 的主要功能是通过 计算机技术的支持去定义、执行和管理工作流,协调工作流执行过程中工作( 任 务) 以及群体成员之间的信息交互。工作流管理系统将业务流程中工作如何组织 协调在一起的规则抽象出来。从而分离了具体的业务处理逻辑、业务交互逻辑、 执行者。在工作流管理系统的协助下:开发人员遵从一定的编程接口及约定,就 可以开发出更具灵活性的业务过程处理系统。最终用户无需重新开发业务过程去 处理系统,就可以自己更改工作流程,以适应业务逻辑变化的需要,有利于系统 的维护和二次开发。 工作流管理系统主要需要满足如下几大功能:( 1 ) 工作流流程建模。( 2 ) 工作流 运行。( 3 ) 流程的管理和监控。( 4 ) 业务过程的分析。 通用的工作流管理系统,主要包含如下几个模块: ( 1 ) 工作流建模工具,或者我们通常所说的工作流设计器:主要是用于图形化的流 程抽象表示,用不同的元素符号代表活动或参与者以及其他相关因素,用 有向线来表示控制流。 ( 2 ) 工作流引擎晦1 :用于维护和解析流程的运行。 ( 3 ) 工作流执行服务器:为工作流引擎的正确运行提供辅助性服务。 ( 4 ) 工作列表( w o r k l i s t ) 处理器:对外提供接口,外部应用通过工作列表处理 器来获取和管理工作项( w 6 r k i t e m ) 。 如图2 3 所示,显示了一个工作流管理系统的通用结构: 9 图23 工作流管理系统通用结构 21 2 工作流参考模型 目前工作流应用的得到了飞速的发展工作流管理系统,让众多的开发商和应用 客户之间的沟通变得复杂,甚至因为对某些概念理解不一致,导致无法沟通的情 况。于是,工作流管理联盟( w f m c ) 于1 9 9 5 年提出的工作流管理系统的体系结 构模型一一工作流参考模型( w o r k n o w r e f e 化n c e m o d e l ) 。工作流管理联盟 工作流管理联盟w f m c ( w o r k n o wm a n a g e m e n t c o a l i t i o n ) 是工作流技术的标准 化组织。工作流参考模型标识了构成工作流管理系统的基本模块和这些基本部件 交互使用的接口。这些基本部件包括:工作流执行服务器、工作流引擎、流程定 义工具、客户端应用、应用程序、管理监控工具。在此有必要说明一下,w f m c 所定义的接口和规范,并不能代表绝对,或者说,w f m c 所提出并不是强制性规 范和接口,仪仅只是参考规范和接口。并且,在商业应用中,其接口和规范被应 用厂商支持的并= _ f = = 多。而且在现实中,基于活动图,甚至p e t n 网“”的工作流产品 依然非常普遍。丁作流参考模型主要提出了五大接口,如图24 所示: 工作流接口一( 工作流定义交换) ,用于在业务建模和定义工具与执行服务之间 交换工作流定义。主要是数据交换格式和a p i 。数据交换通过x p d l r x m lp r o c e s s d e a n i i l o nl a n g u a g e ) “。 工作流接口二( 工作流客户端应用接口) ,用于工作流客户端应用访问工作流引 擎和工作列表。 工作流接口三( 被调用的应用接口) 用于调用不同的应用系统或其它应用平台。 r 作流接口四( 工作流系统互操作接口) ,用于不同工作流系统之f 刚的互操作。 r 作流接口五( 系统管理和监控) 用于系统管理应用访问工作流执行服务。 图24 工作流参考模型5 大接几 220 a 系统中工作流的主要实现方式 办公自动化应用系统的核心应用包括公文审批流转批、报销管理审批、会议 管理审批等。每一项工作以流程的形式,由流程发起者( 如文件发布者) 发起流程, 经过本部门以及其他部门的处理( 如签署、会签) ,最终文件、归档立件入库。工作 流程问可以是互相连接、交叉或循流的终点也可能就是另一个工作流的起点,如 上级部fj 的发了下级部fj 的收文处理过程。j = 作流程也可以是打破单位及与组织 的相关单位之间。工作流自动化的目标就要素,即人员、资源、事件、状态,推 动工作流的发生、监控。信息技术不仅应该管理工作流哞= 过程的所有信息动推进 丁作流程的实现,如及时地收回和赋予不同人员的权限。比如起草文件完毕后即 不可修改文什内窖,而其上级领导获得文件修改权、主动提示和催促工作人员实 现某一阶段的处理,从而在整体上提高处理的效率, m 公文管理 公文是在实施企业管理过程中所彤成的具有法定效力和规范体式的公务文 书。公文管理子系统包括“发文”、“收文”、“签报”、“传阅件”,能够实现公文的 电予起草、 u 予签章、传| 弼批示任务、会签、签发和接收t 作,处理反馈、催办、 统 卜、查询、审核、归档等。 f 2 1 会议管理 会议管理用f 审批会议计划、制订会议安排、发送会议通知和记录会议纪要。 会议召集人在选择与会人员时,能够方便地查看这些人员在会议召开的时间查看 与会人是否处于工作节点中,可制订出合理的会议安排,从而确保会议的出席率。 另一方面资源预定功能可以对单位内所有公共资源,可以查看各种资源使用率对 资源进行申请,如会议室、投影设备、车辆等进行登记、查看是否空闲、使用预 约等多项流程管理。 ( 3 ) 报销审批管理 报销审批管理流程。由报销人发起报销,经过部门审批,根据金额的大小程度, 再交由不同部门的审批,最后通过邮件或站内短消息告知报销发起人是否审批通 过等多项流程管理。 2 3j b p m 工作流系统应用于0 a 的特点 j b p m 之所以目前受到广泛的关注,是因为在系统中应用j b p m 做为工作流的 引擎,j b p m 存在着以下的特点: ( 1 ) j b p m 对数据库没有特殊的要求,应为j b p m 使用了持久层框架h i b e m a t e 能适应不同的数据库,所以j b p m 能够利用起现有的主流数据库如:o r a c l e 、s q l s e r v e r 、m y s q l 等等,这样更加适合不同类型的企业构建不同规模的工作流系统。 ( 2 ) j b p m 可以和其他服务很好的集成起来比如w e bs e r v i c e 组件,能和其他 j 2 e e 企业框架进行无缝整合,比如持久层框架j b p m 本身就集成了h i b e m a t e 持久 层框架。 ( 3 ) 类似于u m l 活动图的建模方式,可以更加形象的描述工作流系统流程的 流转。这样就减小了业务分析人员的分析模型和开发人员的实施模型之间的差异, 跟有利于系统的开发,减少系统开发的成本。 ( 4 ) 灵活度高容易于扩展流程,在解决柔性工作流模型和特殊工作流模型上有 一定的优势,有利于系统进行二次开发。 ( 5 ) 支持j 2 e e 的w e b 开发,虽然j b p m 不依赖于任何j 2 e e 的w e b 容器,但 j b p m 可以很好的和主流的w 曲框架进行集成,比如和s t r u t s 的集成。这对于b s 结构的o a 系统而言更是方便之处。 1 2 3 1 概述 第三章j b p m 流程引擎内核设计 流程引擎内核仅是“满足p r o c e s s 基本运行”的最微小结构,而整个引擎则要复 杂很多,包括“状态存储? 事件处理r 组织适配訾时间调度? 消息服务”等等外围的 服务性功能。引擎内核,仅包含最基本的对象和服务,以及用于解决流程运行问 题的调度机制和执行机制。 研究掌握一个流程引擎,才有能力理解它的全部。否则一个引擎对于开发人员 可能只是一个复杂的结构,一些复杂的“功能”和“服务”而已。本身工作流这个领 域就是一个很“狭窄”的领域。目前学术界基本上没有深入探讨j b p m 引擎内核的 参考文献。开源的j b p m 是个一个研究工作流引擎不错的突破口。 本章节就是以 j b p m 为实例,来诠释工作流引擎的内核设计思路和结构。但是这仅仅是从j b p m 的实现角度去理解,因为工作流引擎内核的设计、实现是有很多方式:这会因所 选的模型、调度算法、推进机制、状态变迁机制、执行机制等多方面的不一样, 而会差别很大。 相比较而言,j b p m 的模型比较复杂,而引擎内核实现的比较“精简7 非常容 易“由浅入深的理解: 3 2 基本概念的描述 工作流引擎( w 6 r k f l o we n 西n e ) ,是指w o r k f l o w 作为应用系统的一部分,并 为之提供对各应用系统有决定作用的根据角色、分工和条件的不同决定信息传递 路由、内容等级等核心解决方案。 例如开发一个系统最关键的部分不是系统的界面,也不是和数据库之间的信 息交换,而是如何根据业务逻辑开发出符合实际需要的程序逻辑并确保其稳定性、 易维护性( 模块化和结构化) 和弹性( 容易根据实际业务逻辑的变化作出程序上 的变动,例如决策权的改变、组织结构的变动和由于业务方向的变化产生的全新 业务逻辑等等) 。 工作流引擎解决的就是这个问题:如果应用程序缺乏强大的逻辑层,势必变 得容易出错( 信息的路由错误、死循环等等) 。当今社会分工越来越细,在一个单 位内部也越来越强调专业化,大部分工作都需要多个部门和员工合作完成。一个 制度良好的单位往往对各种工作的工作流程以文件的形式固定下来,即使是管理 不太正规的单位也有约定俗成的工作步骤。这种工作流程保证了一件任务能按预 定的顺序从起点流向终点,并且在需要的时候可以跟踪、查询和统计。 要认识工作流引擎需要了解以下几个要素比1 ,如图3 1 所示: 实体( e n t i t y ) :是工作流的主体,是需要随着工作流一起流动的对象( o b j e c t ) 。 1 3 例如,在一个采购申请批准流程中,实体就是采购申请单;在公文审批流程中, 实体就是公文。 参与者( p a r t i c i p a n t ) :是各个处理步骤
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电荷的秘密:摩擦起电现象及其两种基本电荷课件
- 化学兴趣测试题及答案
- 探讨设计理念与实践试题及答案
- 狼人杀测试题及答案
- 《印象派大师:莫奈》课件
- 广告设计师考试知识点及答案分享
- 助理广告师职业角色与价值分析试题及答案
- 福祉经济学试题及答案
- 下定义的试题及答案
- 手绘与电脑设计在纺织品中的对比试题及答案
- 2025年四川绵阳交通发展集团有限责任公司招聘笔试参考题库附带答案详解
- 成本控制在质量管理中的策略试题及答案
- 起重吊装作业安全管理培训
- 2025届河北省石家庄第一中学高三下学期二模地理试题及答案
- 2025年山东省应急管理普法知识竞赛参考试题库大全-下(多选、判断题)
- PSP问题解决流程分析
- 6.5 国家司法机关 课件-2024-2025学年统编版道德与法治八年级下册
- 语文-华大新高考联盟2025届高三3月教学质量测评试题+答案
- 低空经济行业分析报告
- 2025年安徽省C20教育联盟中考三模语文试题(含答案)
- 2025年中考语文备考之课内文言文主题阅读训练主题二:治国劝谏篇(解析版)
评论
0/150
提交评论