(系统分析与集成专业论文)jbpm工作流引擎在oa中的应用研究.pdf_第1页
(系统分析与集成专业论文)jbpm工作流引擎在oa中的应用研究.pdf_第2页
(系统分析与集成专业论文)jbpm工作流引擎在oa中的应用研究.pdf_第3页
(系统分析与集成专业论文)jbpm工作流引擎在oa中的应用研究.pdf_第4页
(系统分析与集成专业论文)jbpm工作流引擎在oa中的应用研究.pdf_第5页
已阅读5页,还剩52页未读 继续免费阅读

(系统分析与集成专业论文)jbpm工作流引擎在oa中的应用研究.pdf.pdf 免费下载

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

文档简介

j b p mw o r k f l o we n g i n ea p p l i c a t i o na n dr e s e a r c h i no a s y s t e m at h e s i ss u b m i t t e df o rt h ed e g r e eo fm a s t e r c a n d i d a t e :l n oj i n t a o s u p e r v i s o r :p r o f l iy u e x i n h u b e iu n i v e r s i t y w u h a n ,c h i n a 趵 m 9m 6乃 脚1脚y 湖北大学学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所 取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任 何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡 献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的 法律后果由本人承担。 论文作者签名:嗲令汤 日期:沙伽年月罗1 日 学位论文使用授权说明 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即: 按照学校要求提交学位论文的印刷本和电子版本;学校有权保存学位 论文的印刷本和电子版,并提供目录检索与阅览服务;学校可以允许采用 影印、缩印、数字化或其它复制手段保存学位论文;在不以赢利为目的的 前提下,学校可以公开学位论文的部分或全部内容。( 保密论文在解密后 遵守此规定) 日期:声咖厂;1 日期:办肋丁歹f 3 1 对a,n浓仰 今忍 罗: b 名 : 签 名 师 签 教 者 导 作 指 摘要 随着j a v a 开源技术的不断进步,以及企业需求的日益增长,在办公自动化领域, 特别是对于业务流程的实现,其开发形态已经发生了巨大的变化,传统的硬编码开发业 务流程方式已经不再适应高效的开发过程以及企业灵活多变的业务需求。虽然传统的面 向对象设计思想和各种设计模式,以及e j b ,s t r u t s ,j s f ,h i b e r n a t e ,s p r i n g 等开发 框架被广泛应用于软件项目中,但是这些只能从整体上提高软件的开发周期,对于软件 系统中的复杂业务流程,仍然无法做到高效灵活。随着工作流技术的不断发展,基于工 作流引擎的工作流开发方式从根本上解决了传统开发过程中的各种弊端,各种工作流产 品开始广泛应用于实际项目。在开源领域,已经产生了许多优秀的开源工作流产品。在 软件项目中,通过引入开源工作流产品并对其进行修改和完善,可以提高软件开发周期 以及软件产品的灵活性,从而提高软件企业的效率和竞争力。 本文首先从工作流领域的发展入手,并对工作流技术的现状进行分析。接着引入 j b p m 工作流引擎的概念,并对j b p m 的体系结构和相关功能特性进行研究。然后对办公 自动化中的若干工作流问题进行分析,并且采用j b p m 方式去实现和解决。接下来将用 j b p m 工作流引擎全新设计一个办公自动化中的工作流模块,通过对此实例的设计和实 现,来深化对j b p m 技术的应用,并且从根本上来证明在办公自动化系统中采用该技术 的优势。最后对j b p m 工作流系统中的性能和安全问题进行初步研究。 关键词:工作流;工作流引擎;旭p m ;o a ;j 2 e e a b s t r a c t 、矾t l lt h ep r o g r e s so ft e c h n i ci nt h eo p e ns o u r c ed o m a i no fj a v a , a n dp e r s i s t e n ti n c r e a s e f o rb u s i n e s sr e q m r e m e m i nt h ed o m a i no fo f f i c ea u t o m a t i o n ,e s p e c i a l l yf o rt h ei m p l e m e n to f b u s i n e s sp r o c e s s ,t h ed e v e l o p m e n tm o d eh a v ec h a n g e dg r e a t l y t h et r a d i t i o n a lh a r d - c o d i n g m e t h o dt o d e v e l o pb u s i n e s sp r o c e s s e sh a v en ol o n g e ra d a p tf o rt h ee f f i c i e n td e v e l o p m e n t p r o c e s sa n dt h ef e x i b l eb u s i n e s sr e q u i r e m e n t t h o u g ht r a d i t i o n a lo b j e c to r i e n t e da n a l y s i sa n d a l lk i n d so fd e s i g nm o d ea n dm a n yd e v e l o p m e n tf r a m e w o r ks u c ha s e j b ,s t r u t s ,j s f , h i b e r n a t e ,s p r i n gh a v eb e e nu s e di nm a n ys o f t w a r ep r o j e c t s ,t h e s ec a ns p e e du pt h ec y c l eo f s o f t w a r ed e v e l o p m e n ta saw h o l e ,a n df o rt h ec o m p l i c a t e dw o r k f l o wi nt h es o f t w a r es y s t e m , t h e s ec a nn o tt od ow e l le f f i c i e n t l ya n df l e x i b l y w i t ht h e d e v e l o p m e n to fw o r k f l o w t e c h n o l o g y , t h ed e v e l o p m e n ta p p r o a c hb a s e do nw o k f l o we n g i n eh a v eo v e r c a n l ea l lf l a w s r a d i c a l l yt h a ti nt h et r a d i t i o n a ld e v e l o p m e n tp r o c e s s ,a n dm a n yk i n d so f w o r k f l o wp r o d u c t s b e g i nt ob eu s e df o rt h ep r a c t i c a lp r o j e c t s i no p e ns o u r c ed o m a i n , h a v ec a m eo u tm a n y e x c e l l e n to p e ns o u r c ew o r k f l o wp r o d u c t s t h r o u g hi n t r o d u c et h e s ew o r k f l o wp r o d u c t si n t o p r a c t i c ms o f t w a r ep r o j e c t ,m o d i f ya n dp e r f e c ti t ,c a na c c e l e r a t ed e v e l o p m e n tc y c l eo f s o a r ea n da d v a n c et h ef l e x i b i l i t yo fs o r w a r ep r o d u c t s ,i ta l s oc o u l da d v a n c et h ee f f i c i e n c y a n dc o m p e t i t i o no fs o f b , v a r ee n t e r p r i s e t h i sp a p e rw i l lb e g i nw i t ht h ed e v e l o p m e n to fw o r k f l o w , a n da n a l y s et h es t a t u so f w o r k f l o w ;t h e ni n t r o d u c et h ec o n c e p to fj b p mw o r k f l o we n g i n e ,a n dt oa n a l y s ei t ss t r u c t u r e a n df u n c t i o n a lc h a r a c t e r i s t i c s ;t h e na n a l y s es o m ep r o b l e m sa b o u tb u s i n e s sp r o c e s si no f f i c e a u t o m a t i o ns y s t e m ,a n dt or e s o l v ea n di m p l e m e n tt h r o u g hj b p m n e x t , w i l ld e s i g na w o r k f l o wm o d u l ei no f f i c ea u t o m a t i o ns y s t e mw i t hj b p me n g i n e t h r o u g ht h ed e s i g na n d i m p l e m e n t a t i o no ft h i sm o d u l e ,t od e e p e nt h eu s a g eo fj b p me n g i n e ,a n dt op r o v et h e a d v a n t a g ew h i l ea d o p t t h i st e c h n i ci no f f i c ea u t o m a t i o ns y s t e m i nt h ee n do ft h ep a p e r , w i l l d os o m er e s e a r c ha b o u tp e r f o r m a n c ea n ds e c u r i t yi nj b p ms y s t e m k e y w o r d s :w o r k f l o w ;w o r k f l o we n g i n e , j b p m ;o a ;j 2 e e i i 目录 第一章引言1 1 1 本文选题背景及意义l 1 2 国内外研究现状1 1 3 本文研究内容及组织结构3 第二章工作流概述5 2 1w f m c 工作流参考模型5 2 1b p e li 作流标准6 2 - 3 工作流管理系统7 第三章j b p m 工作流引擎1 0 3 1j b p m 介绍1 0 五 3 2j b p m 功能特点1 2 3 2 1j b p m 流程引擎1 2 3 2 2j b p m 流程语言1 2 3 2 3j b p m 图形化流程设计插件1 3 3 2 4j b p m 流程监控1 3 3 2 5j b p mw e b 控制台1 3 3 3j b p m 体系架构1 4 3 3 1j 2 e e 的三层体系架构1 4 3 3 2j b p m 的体系架构1 5 3 4j b p m 持久层技术1 6 3 4 1h i b e r n a t e 技术优点。1 6 3 4 2j b p m 持久层技术特点1 7 3 5j b p m 流程构成要素1 7 3 5 1 流程定义1 7 3 5 2 流程节点1 8 3 5 3 流程事件和动作。2 0 第四章基于j b p m 的o a 系统工作流模型分析2 1 i i i 4 1o a 系统特点2 1 4 2o a 系统中工作流分析2 2 4 3o a 系统中任务的周期性提醒解决方案2 2 4 3 1 任务的周期性提醒原理2 2 4 3 2 任务的周期性提醒实现2 3 4 4o a 系统中动态任务解决方案。2 4 4 4 1o a 系统中动态任务2 4 4 4 2 动态任务分配解决方案2 4 4 5o a 系统中会签任务解决方案2 6 4 5 1 会签任务的应用场景2 6 4 5 2j b p m 对会签任务的解决方案2 7 第五章j b p m 工作流系统的实现2 9 5 1 开发环境2 9 5 2 系统功能分析3 0 5 3j b p m 系统数据库的生成。3 0 5 4 业务流程设计31 5 5 流程发布3 4 5 6 系统核心功能的实现3 5 第六章j b p m 的性能优化与安全4 1 6 1j b p m 的性能优化4 1 6 2j b p m 的安全4 2 第七章总结与展望4 3 7 1 论文总结4 3 7 2 前景展望4 3 参考文献4 4 攻读研究生期间所发表论文及参加项目4 7 致谢4 8 i v 第一章引言 1 1 本文选题背景及意义 第一章引言 工作流( w o r k f l o w ) 就是工作流程的计算模型,即将工作流程中的工作如何前后组 织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算,其表现为参 与者对文件、信息或者任务按照预定的规定来采用行动,并令其在参与者之间进行传递。 工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机, 按某种预定规则自动传递文档、信息或者任务。简单地说,工作流就是一系列相互衔接、 自动进行的业务活动或任务,它需要人的参与【l 】。 工作流技术起源于生产计划和办公自动化,它是对工作中的一些常规活动进行分 解,并按照一定的规则来进行定义和执行,从最大限度上简化操作步骤,有关业务活动 依时序或逻辑关系相互连接构成业务流程。工作流可以让一系列复杂的流程变得简单, 可以让多个相关节点连接在一起流畅的进行调度。为了实现组织目标,在业务开展过程 中,文档、信息或任务,依据组织规范在参与者之间传递、处理或执行。在总体业务流 程中,实现了基于计算机辅助处理而达到自动化的全部或部分称为工作流。也就是说, 工作流是在计算机辅助下全部或部分自动执行的工作过程,该过程可运行于异质、分布 的运行环境中,供多人协同工作。 工作流管理的最大优点是将应用逻辑和过程逻辑分离,可以不修改具体功能实现而 只修改过程模型来改变系统功能,实现对生产经营部分或全部过程的集成管理,有效地 把人、信息和应用工具合理地组织在一起,提高软件的重用率,发挥系统的最大效能。 1 2 国内外研究现状 对工作流的研究起源于二十世纪七十年代,受网络的局限性,最初的工作流系统主 要以企业内部的文档处理为主。到了二十世纪九十年代,随着i n t e r n e t 技术的发展及 应用,促进了电子商务应用的极大发展,使得公司与公司之间、公司内部部门之间以及 子公司之间的业务相互处理成为可能,这为工作流的发展带来了很大的机遇和挑战。当 今工作流技术已经成功运用到办公自动化,银行,制造业等相关领域中。 在1 9 9 3 年8 月,第一个工作流技术标准化的工业组织工作流管理联盟 ( 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 ) 成立。1 9 9 4 年,w f m c 发布了用于工 湖北大学硕士学位论文 作流管理系统之间互操作的工作流参考模型,并相继制定了一系列工业标准【2 1 。与此同 时,关于工作流技术的学术研究也十分活跃,许多原型系统在实验室里开发出来。进入 二十一世纪以来,工作流技术已被越来越多的人认可,相关的工作流产品也越来越丰富。 在国外很多公司都开发了一些独特的工作流产品,如i b m 公司的m q s e r i e sw o r k f l o w 、 o r a c l e 公司的w o r k f l o wf o rj a v a 等商用工作流系统,另外还有许多开源的工作流产 品: ( 1 ) e n h y d r a 开源机构的s h a r k s h a r k 是一个与众不同的开源的j a v a 工作流项目,它是一个可扩展的并且可嵌入的 j a v a 开源工作流引擎。它遵循w f m c 标准,它使用x p d l ( 没有任何自己新的扩展) 作为 自身的工作流流程定义格式,使用w f m c 的“t o o l a g e n t s a p i 作为系统活动的服务 器端的执行形式。e n h y d r aj a w e 图形x p d l 编辑器可用于为e n h y d r as h a r k 生成x p d l 流程定义。持久层实现采用的标准是轻量级的e n h y d r ad o d so rm a p p i n g 工具【3 1 。 ( 2 ) o p e n s y m p h o n y 组织的o s w o r k f l o w o s w o r k f l o w 也是完全用j a v a 语言编写的开放源代码的工作流引擎,但是它却完全 不同于其它工作流系统,它既不同于商用的工作流,也不同于一般的开源的工作流,它 的这个特点使得它具有极大的灵活性,但也是因为这个原因,它也不容易被掌握,例如, 它没有一个图形化的开发工具,它倡导用户通过手写) 眦文件的方式去定义工作流【4 1 , o s w o r k f l o w 的最大特点就是灵活性,用户可以根据自己的需要设计出非常复杂的工作 流,它的一系列特点决定了它是完全面向有技术背景的用户的,对于普通用户,要花较 长时间去学习和适应。 ( 3 ) j b o s s 公司的j b p m j b p m 也是一个基于j a v a 的开源的工作流引擎,其最大特点是不支持w f m c 标准,它 拥有自己的流程定义语言,但是它可以通过对引擎平台的升级以支持多种流程定义语 言,通过j b o s s 接口应用程序框架,可以对e j b 和j s f 等组件模块的操作实现统一f 5 1 。 在国内,随着计算机软件和网络技术的迅速发展,由刚开始企事业单位的无纸办公 需求,到后来的各种其它行业的复杂信息处理,工作流技术已经开始被广泛使用在制造 业、金融、银行、教育和办公自动化等行业。对于工作流技术的需求也同样导致了国内 许多公司对工作流技术进行了深入研究,并开发了许多成功工作流产品: ( 1 ) 西安协同数码股份有限公司的s y n c h r o f l o w 2 第一章引言 它是西安协同软件融汇众多高校科研成果研发而成的中间件产品,拥有工作流引擎、可 视化流程建模、流程监控、表单定制、流程迁移、群集、分布式等完善的体系架构【6 1 。 s y n c h r o f l o w 在对基于p e t r i 网的工作流模型扩展的基础上提出了立体工作流的概念, 由一个“平面”。的工作流系统,变身为“立体工作流 。立体工作流就是通过a o p 技 术【7 】,来捕获工作流事件,通过为工作流事件编写各种动作脚本,大大提高了模型表达 能力。 ( 2 ) 上海携创软件技术有限公司的j o i n w o r k j o i n w o r k 的工作流模型符合w t m c 标准,易于理解接受。基于成熟工作流建模理论 p e t r i 网的流程控制模型,j o i n w o r k 充分使用了j 2 e e 架构的优势,通过图形化建模工 具,使用很少的图元就能够方便灵活的构建复杂、强大的工作流程【引。 ( 3 ) 杭州信雅达的s u n f l o w 信雅达工作流管理系统s u n f l o w 是基于先进的j 2 e e 技术规范,以w f m c 为标准开发; 采用基于域的三级分层联邦系统架构【9 】,是一个分布式的工作流管理系统,可支持海量 数据处理;具备良好的稳定性、扩展性、安全性与灵活的业务流程变动功能,从而为企 业的业务流程自动化以及企业流程再造提供坚实的基础平台,成为业界领先的企业业务 流程自动化以及企业流程再造的核心产品。 1 3 本文研究内容及组织结构 本文采用开源社区比较流行的工作流引擎j b p m 为研究对象,首先对j b p m 相关知识 的进行阐述,并对办公自动化( o f f i c ea u t o m a t i o n ,o a ) 系统的核心特点进行分析。在 传统工作流理论的基础上,通过对j b p m 工作流引擎的研究,并解决一些o a 项目中可能 遇到的特殊工作流任务,并在此基础上,构建出一个o a 系统中的典型工作流系统。通 过对该系统的开发,从而能够对j b p m 开发工作流系统有一个整体的把握。由于在以工 作流为核心的软件系统中,工作流占有重要的地位,并且工作流本身灵活多变,所以在 开发过程中强调以工作流为核心来进行开发。最后对该系统的安全性方面进行分析改 进。 根据以上分析,本文的组织结构设计如下: 第一部分介绍了论文的选题背景以及选题意义进行了介绍,并对国内外的研究现状 进行研究分析,最后对于本文要解决的问题及内容安排进行说明。 第二部分从标准的工作流的参考模型w f m c 入手,并对其特点进行分析,然后对j b p m 3 湖北大学硕士学位论文 的体系结构进行分析。 第三部分对j b p m 工作流系统的相关概念进行介绍,并对其功能特性进行分析,以 及对j b p m 的流程构成要素进行讲解。 第四部分对0 a 系统的特点进行分析,并给出o a 系统中使用j b p m 工作流引擎进行 开发时可能遇到的一些复杂流程的解决方案。 第五部分基于j b p m 设计开发出一个o a 中的典型工作流系统,并给出系统的核心代 码。 第六部分对j 1 3 p m 工作流系统中的性能和安全性方面进行探讨。 最后对本论文进行了总结,并同时对j b p m 技术的优缺点进行分析,并对j b p m 的未 来发展前景进行展望。 4 第二章工作流概述 第二章工作流概述 2 1w f m c 工作流参考模型 w f m c ,其全称是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 埘c 在工作流管理系统的相关 术语、体系结构及应用编程接口等方面制定了一系列标准。其规定的基于x m l 的标准流 程定义语言为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 ) 。x p d l 是至今工作流领域最 为重要的一个标准,目前大多数工作流引擎是依据该标准设计开发的。w f m c 给出的工 作流定义是:工作流是指整个或部分经营过程在计算机支持下的全自动或半自动化。在 实际情况中可以更广泛地把凡是由计算机软件系统( 工作流管理系统) 控制其执行的过 程都称为工作流。下图2 - 1 是w f m c 公布的工作流参考模型标准1 1 0 】: 图2 1 工作流参考模型 从图中可以看出,工作流管理系统主要由四部分组成。一是工作流引擎,二是流程 定义工具,三是流程管理和监控工具,四是各种应用服务。从图中可以看出,工作流引 擎是工作流管理系统的核心枢纽【1 1 1 ,而流程定义工具是进行后续操作的根本前提,首先 要由流程定义工具把企业的业务流程按照工作流引擎能够理解的形式来进行定义描述, 工作流引擎对各种流程进行解析处理,使得其它应用服务都能通过工作流引擎与其进行 交互,从而完成各种业务流程的处理。 5 湖北大学硕士学位论文 2 1b p e l 工作流标准 业务流程执行语言( b u s i n e s sp r o c e s se x e c u t i o nl a n g u a g e ,b p e l ) ,是一种使用x m l 编写的编程语言,其主要目的是在w e b 服务中来定义企业业务流程,不同的公司都有 自己独特的业务流程定义方式,而b p e l 的目的就是使得企业流程定义标准化,从而各 个公司之间可以通过w e b 服务来进行无缝连接【1 2 】。b p e l 的前身是i b m 的w s f l 和 m i c r o s o f t 的x l a n g 。w s f l 即w e bs e r v i c ef l o wl a n g u a g e ,是一种基于图的流程模型, 具有直观性和灵活性的特点。x l a n g 是以过程代数为基础的工作流程描述语言,在结 构化构造方面具有优势。随着w e b 服务标准的广泛流行,应用程序将以粗粒度的功能 为单位,用w e b 服务规范封装,对外提供一致的服务。这时,迫切需要一种开放的标 准,能够对现存的以及新创建的服务以某种规则进行调度与协调,最终形成具有某种商 业价值的业务流程。b p e l 标准就是在这种需求下应运而生。本质上来说它是m m 的 w s f l 和m i c r o s o f t 的x l a n g 的结合物。2 0 0 3 年4 月b p e l 规范提交给了o a s i s ( o r g a n i z a t i o nf o rt h ea d v a n c e m e n to fs t r u c t u r e di n f o r m a t i o ns t a n d a r d s ,结构化信息标准 促进组织) 更名为w s b p e l ( w e bs e r v i c e sb u s i n e s sp r o c e s se x e c u t i o nl a n g u a g e ) 规范, s u n 公司和甲骨文公司也相继加入了o a s i s 组织。w s b p e l 2 0 已于2 0 0 7 年4 月被 o a s i s 正式批准为b p e l 的最新标准【1 3 】,其核心组成如图2 2 所示: 图2 2b p e l 结构体系 b p e l 主要包括三个核心组件,一是b p e l 设计器,二是业务流程模型,三是b p e l 工作流引擎。首先由公司流程设计者通过使用b p e l 流程设计器来定义业务流程,当流 6 第二章工作流概述 程定义完成以后,流程设计器会自动在后台生成一个包含业务流程的流程逻辑模型,最 后流程引擎通过执行业务流程模型,从而最终和外部用户或者应用程序进行交互。 b p e l 主要定位在整合w e b 服务的标准。w s f l 支持图形化的流程,而x l a n g 在结构化构造方面有独到的方法,而b p e l 4 w s 正是吸取了两者的优点,同时摒弃了一 些复杂繁琐的部分,形成了一种较为自然的描述商业活动的抽象高级语言。而其整合 w e b 服务的特点整合迎合了s o a 的趋势,在加上各大厂商的大力推广,已成为事实上 的标准,b p e l 引擎可以基于任何平台开发和运行,如j 2 e e ,n e t 平台等。b p e l 标 准发布后,由于其以w e b 服务为基础,与具体的实现无关,具有平台无关性和松耦合 性的特点使得其在s o a 即面向服务的体系结构架构中具有固有的优势【1 4 】,被众多的厂 商所采用,将b p e l 实现作为s o a 产品中的一部分提供业务流程服务。 2 3 工作流管理系统 工作流管理系统不是企业的业务系统,而是为企业的业务系统的运行提供了一个软 件的支撑环境。按照工作流管理联盟( w o r k f l o wm 哪e r n e n tc o a l i t i o n ,w 蹦c ) 给出的关 于工作流管理系统的定义是:工作流管理系统( w o r k f l o wm a n a g e m e n ts y s t e m ,w t m s ) 是一个软件系统,它完成工作流的定义和管理,并按照在计算机中预先定义好的工作流 逻辑推进工作流实例的执行。其产品结构如下图2 3 所示【1 5 】: 图2 - 3 工作流管理系统结构 7 湖北大学硕士学位论文 工作流程管理系统的主要功能是通过计算机技术的支持去定义、执行和管理工作流 程,协调工作流执行过程中工作之间以及群体成员之间的信息交互。工作流管理系统将 业务流程中工作如何组织协调在一起的规则抽象出来,从而分离了具体工作的逻辑和流 程组织的逻辑。在工作流管理系统的协助下,开发人员只需要遵从一定的编程接口及约 定,就可以开发出更具灵活性的事务处理系统;最终用户无需重新开发事务处理系统, 就可以自己更改工作流程,以适应业务变化的需要。工作流管理系统的核心就是工作流 引擎,所以的一切活动都是要以工作流为核心进行展开,首先要通过相应的流程定义工 具按照业务流程的要求定义出工作流引擎能够解释的流程定义,不管是采用图形化工具 还是用程序方式来定义,通常最终生成的定义语言都是x m l 格式的文件。 ( 1 ) 流程定义工具 流程定义工具被用来创建计算机可处理的业务过程描述。它可以是形式化的过程定 义语言或对象关系模型,也可以是简单地规定用户间信息传输的一组路由命令。 ( 2 ) 流程定义 流程定义包含了所有使业务流程能被工作流执行子系统执行的必要信息。这些信息 包括起始和终止条件、各个组成活动、活动调度规则、各业务的参与者需要做的工作、 相关应用程序和数据的调用信息等。 ( 3 ) 工作流执行服务和工作流引擎 工作流执行服务也称为业务流程执行环境,包括一个或多个工作流引擎。工作流引 擎是工作流管理系统的核心组件。它的功能包括:解释过程定义;创建过程实例并控制 其执行;调度各项活动;为用户工作表添加工作项;通过应用程序接口( a p i ) 调用应 用程序:提供监督和管理功能等。工作流执行服务可以包括多个工作流引擎,不同工作 流引擎通过协作共同执行工作流。 ( 4 ) 工作流控制数据 指被工作流引擎管理的系统数据,而且这些数据只能被工作流引擎所读取。例如工 作流实例的状态信息、每一活动的状态信息等。 ( 5 ) 工作流相关数据 指与业务过程流相关的数据。工作流管理系统使用这些数据确定工作流实例的状态 转移,例如过程调度决策数据、活动间的传输数据等。工作流相关数据既可以被工作流 引擎使用,也可以被应用程序调用。 ( 6 ) 工作列表和工作列表处理器 第二章工作流概述 工作列表列出了与业务流程的参与者相关的一系列工作项,工作列表处理器则对用 户和工作列表之间的交互进行管理。工作列表处理器完成的功能有:支持用户在工作列 表中选取一个工作项,重新分配工作项,通报工作项的完成,在工作项被处理的过程中 调用相应的应用程序等。 ( 7 ) 应用程序和应用数据 应用程序可以直接被工作流管理系统调用或通过应用程序代理被间接调用。通过应 用程序调用,工作流管理系统部分或完全自动地完成一个活动,或者对业务参与者的工 作提供支持。与工作流控制数据和相关数据不同,应用数据对应用程序来讲是局部数据, 对工作流管理系统的其他部件来说是不可见的。 9 湖北大学硕士学位论文 第三章j b p m 工作流引擎 在早期,对于工作流的需求,主要采用纯程序的方式来实现,对于流程的控制,主 要是通过反复使用各种选择分支语句来实现,对于状态的控制,同样也要不断的通过程 序语句得到位于不同结点下的状态,对于用户权限的控制,同样是通过反复从数据库中 进行查询比较来进行验证。对于简单的工作流,通过这样的方式去实现并不会感觉有多 么的复杂,但是如果项目中有很多不同的业务流程,而且有的业务流程很复杂,而且这 些流程不是一成不变,可能经常需要改变,那么仍然采用这种方法就会变得力不从心, 难以轻松灵活的满足业务的需求。j b p m 是一个开源的、灵活的、可扩展的流程语言框 架。它同时也是一个j a v a 库,能够运行在任何的一个j a v a 环境中,能够被任何自定义 的j a v a 软件所访问,如w e b 应用,e j b ,s w i n g 等【1 6 l 。而j b p m 有自己独特的流程语言, 它就是j p d l ( j a v ap r o c e s sd e f i n i t i o nl a n g u a g e ) ,通过j p d l ,我们可以用来定义各 种流程。j b p m 是一个建立采用j a v a 语言开发的框架,它的核心工作流和业务流程管理 功能都被封住在j a v a 库中,可以通过调用里面的接口和类来对j p d l 定义的流程进行管 理和各种操作。 3 1j b p m 介绍 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 a v a 业务流程管理) ,它是一个基于j a v a 的工作流管理系统【1 7 】。j b p m 最大的特色就是它的逻辑定义没有采用目前的一些规范, 如x p d l 、b p e l 等,而是采用了它自己定义的j b o s sj 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 ( j p d l ) 。j p d l 认为一个商务流程可以被看作是一个u m l 状态刚1 8 】。j p d l 就是详细定 义了这个状态图的每个部分,如起始、结束状态,状态之间的转换等。 j b p m 底层所采用的持久层技术是h i b e r n a t e 1 9 1 ,h i b e r n a t e 是开源社区非常优秀的 持久层技术,使用非常广泛,它能够方便的将数据对象和底层数据库进行映射,它能够 支持包括o r a c l e ,m y s q l ,m ss q l s e r v e r 在内的各种主流数据库系统,并且提供缓存管 理等多项其它优化技术,使用它可以更加方便的操作数据库。而j b p m 采用h i b e r n a t e 作为持久层访问技术,无疑是更加增强了j b p m 的易用性和可扩展性。 j b p m 在2 0 0 4 年1 0 月1 8 日,发布了2 0 版本,并在同一天加入了j b o s s ,成为了 j b o s s 企业中间件平台的一个组成部分,它的名称也改成j b o s sj b p m 。随着j b p m 加入 j b o s s 组织,j b p m 也将进入一个全新的发展时代,它的前景是十分光明的。 1 0 第三章j b p m 工作流引擎 j b p m 是j b o s s 公司的开源业务流程产品,是一个纯j a v a 实现的引擎,其核心基于 一种有向图,叫做活动图( a c t i v i t yd i a g r a m ) ,并在引擎构建上融入了有限状态机和 对等网( p e t r i n e t ) 的思想。当前j b p m 原生支持的过程语言是j p d l ( j b p mp r o c e s s d e f i n i t i o nl a n g u a g e ) ,这是一个强有力的引擎扩展。在这个核心引擎的基础之上可以 构建对其他过程语言标准的支持,j b p m 目前支持的过程语言只有j p d l 和b p e l 。j b p m 是一个灵活的、可扩展的工作流引擎。它拥有直观的流程语言,用任务、异步的等待状 态、定时器、自动化动作等来表示业务流程图,把这些操作绑定在一起,j b p m 就拥有 了非常强大和可扩展的控制流机制。j b p m 它能够将不同的应用服务进行整合和协调, 并且由于j b p m 是一个标准的j a v a 应用程序,它的运行不需要额外的应用服务器,企业 可以在不需要增加额外复杂性的情况下来进行使用,j b p m 同样也可以部署在一个w e b 应用或者是普通的j a v a 应用程序中。 j b p m 的发展也是从w f m c 参考模型中发展而来,但是并没有完全遵循w f m c 语法标 准,其结构模型如3 1 所示【2 0 】: p r o c e s sd e v e l o p e r s 同 | ,l l :。_ 一 a d m i n i s t r a t o r 奠 r 图3 1j b p m 结构模型 逛 处于最核心位置的是j b p m 工作流引擎,首先是流程定义者通过j p d l 流程定义语言 来进行业务流程的定义,而管理人员则可以通过j b p m 提供的管理服务在对流程进行管 理,j b p m 工作流引擎可以在各种软件系统中提供服务,如o a 、e r p 、s c m 、c r m 等,而 普通的使用者可以通过相关服务入口来和系统进行交互。 湖北大学硕士学位论文 3 2j b p m 功能特点 3 2 1j b p m 流程引擎 j b p m 是一款开源的工作流产品,但是它并没有按照w f m c 标准去实现流程引擎,它 采用的是一套自定义标准,j b p m 流程引擎的主要作用是保持追踪活动的流程的状态和 变化【2 l 】,例如: ( i ) 请求处理:它可以作为一个基础的通信设施,将一个任务加载到某一个流程、 用户、或者应用中。 ( 2 ) 协作服务:在端到端的流程中,它可以提供一些标准的定制服务,它可以将 一些应用功能和数据进行协调分配。 ( 3 ) 状态管理:它能够对包含众多数据记录的流程进行处理,并且能够提前为各 种动作所产生的结果进行准备。 3 2 2j b p m 流程语言 j p d l ( j a v ap r o c e s sd e f i n i t i o nl a n g u a g e ,j a v a 流程定义语言) 【2 2 1 ,它是一个建 立在j b p m 框架上面的一种流程语言,它可以按照任务,异步通信等待状,定时器,自 动操作等方式以图形的方式来直观的表示业务流程。j p d l 拥有很强大的可扩展性,可 以部署在任何的服务器上面,并且它的依赖性很小,可以单独的作为个j a v a 库来使 用,而且可以在j 2 e e 集群服务器环境下使用。 j p d l 的核心程序组件库( j b p m - j p d l j a r ) ,它是一个典型的j a r 文件,它涵盖对流 程定义和运行时流程实例上下文环境的操作a p i 。在最简化的业务流程样例中,j p d l 将 流程定义存储与x m l 格式的定义文件中,在运行时载入内存,在内存里记录完整的业务 实例和执行过程的环境变量,并完成全部操作。显然,在实际应用中,流程信息必须被 持久化的存储于数据库中。j p d l 使用了h i b e r n a t e 作为

温馨提示

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

评论

0/150

提交评论