




已阅读5页,还剩53页未读, 继续免费阅读
(信号与信息处理专业论文)基于jbpm4的工作流管理系统研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 如今,o a ( 办公自动化) 系统被广泛应用,是当今行政企事业单位提高办公 效率的基础和保障。然而,随着信息化在社会各领域的普及,越来越多的企 业流程需求已经无法用普通的o a 系统来满足。同时,当系统的一个业务发 生改变时,原来的系统就无法处理这种变化的流程,需要对系统进行重新规 划,大大缩短了系统的生命周期,成为普通o a 系统的一大瓶颈。 工作流技术能很好的解决了上述问题,它可以在业务流程发生改变后方便 的对部分或整个流程进行修改,从而极大的减少了系统代码的修改量,减少开 发人员工作量,进而降低企业的开发成本。工作流兴起时问不长,因此此技术 的探索与应用研究还有很大空间,并且意义重大。 本文选取目前应用最为广泛的j b p m 4 ( 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 业务流程管理) 作为研究对象,应用m y e c l i p s e 开发软件和s s h 2 框架,以实 验室在研课题某信息管理系统为基础,实现了新增站务信息发布功能模块和 养护办公模块的j b p m 改进。 本文的主要研究内容如下: ( 1 ) j b p m 工作流系统实现过程分析。工作流的实现过程包括流程的分析、 流程定义、流程部署、流程运行。流程的定义包括从基本的流程过程定义、任 务定义、流程的任务节点业务逻辑扩充等。文中分析了j b p m 4 的六个重要的资 源服务接口和流程定义语言j p d l 。 ( 2 ) 重点研究了应用j b p m 4 解决o a 系统中的特殊流程模型,包括任务回 退、任务取回、任务会签、任务委派、自由流等,分析了这几种特殊模型的应 用场景并分别给出了基于j b p m 4 的解决办法。 ( 3 ) 以实验室在研课题某高速公路信息管理系统为背景,实现j b p m 在站务 信息发布和养护办公两个模块中的应用,主要论述了两个模块中对应流程的分 析、流程的设计、表现层设计、业务逻辑层设计和数据访问层的设计。最后, 通过整合j b p m 、s t r u t s 2 、h i b e r n a t e 、s p r i n g 等框架进行了具体的设计和实现并 给出了主要的实现效果图。 ( 4 ) 研究在站务信息发钿需求变更的情况下,给出了简要的j b p m 的处理方 式和传统开发的处理方式,通过分析两种处理方式的差别,验证了工作流的在 处理需求变更上的主要优势。 关键字:j b p m 4 ,工作流,s s h ,o a ,分层架构 a b s t r a c t n o w a d a y s ,t h eo a ( o f f i c ea u t o m a t i c ) s y s t e mi sw i d e l yu s e d i ti sab a s ea n d g u a r a n t e et ot h ea d m i n i s t r a t i o no fe n t e r p r i s e sa n di n s t i t u t i o n s t oi m p r o v eo f f i c e e f f i c i e n c y h o w e v e r , w i t ht h ep o p u l a r i t yo fi n f o r m a t i o nt e c h n o l o g yi nv a r i o u sf i e l d s o ft h es o c i e t y s ,t h ec o m m o no as y s t e mc a n n o ts a t i s f yt h e i n c r e a s i n gb u s i n e s s p r o c e s sr e q u i r e m e n t s a tt h es a m et i m e ,w h e nt h ep r o c e s si nt h es y s t e mh a sc h a n g e d , t h eo r i g i n a ls y s t e mc a n n o th a n d l et h i sc h a n g e dp r o c e s s t h e r e f o r e ,t h es y s t e mn e e d s t ob ec o n s t r u c t e da g a i n ,w h i c hg r e a t l ys h o r t e nt h el i f ec y c l eo fa s y s t e m ,b e c o m eab i g b o r l e n e c kt ot h eo r d i n a r yo a s y s t e m t h eg e n e r a t i o no fw o r k f l o wt e c h n o l o g yi sa 9 0 0 ds o l u t i o nt ot h ep r o b l e m ,i tc a n m o d i f yt h es y s t e me a s i l ya f t e rt h ew h o l ep r o c e s sw a sc h a n g e d ,w h i c hg r e a t l yr e d u c e s t h ea m o u n to fs y s t e mc o d em o d i f i c a t i o n sa n dt h ew o r k l o a do ft h ed e v e l o p e r t h e h i s t o r yo fw o r k f l o wi sn o tl o n g ,s ot h er e s e a r c ho nt h ee x p l o r a t i o na n da p p l i c a t i o no f t h i st e c h n o l o g ys t i l lh a sv e r yl a r g es p a c e ,a n do fg r e a ts i g n i f i c a n c e t h i s p a p e rs e l e c t s t h em o s t w i d e l yu s e dj b p m 4 ( j a v ab u s i n e s s p r o c e s s m a n a g e m e n t ) a st h er e s e a r c ho b j e c t , u s e sm y e c l i p s es o f t w a r ea n ds s i - 1 2f r a m e w o r k , r e a l i z e st h em o d u l eo fs t a t i o ni n f o r m a t i o na n di m p r o v e st h em a i n t e n a n c eo fo f f i c e m o d u l e 、i mj b p m 、析t i la ni n f o r m a t i o ns y s t e mw h i c hi sb e i n gd e v e l o p e d t h er e s e a r c ho ft h i sp a p e rc o n t a i n st h ef o l l o w i n ga s p e c t s : ( 1 ) t h ea r t i c l ea n a l y z e dt h ei m p l e m e n t a t i o no fj b p mw o r k f l o ws y s t e m t h e i m p l e m e n t a t i o no fw o r k f l o wp r o c e s si n c l u d i n gp r o c e s sa n a l y s i s ,p r o c e s sd e f i n i t i o n , p r o c e s sd e p l o y m e n t , p r o c e s so p e r a t i o n p r o c e s sd e f i n i t i o nr a n g ef r o mb a s i cp r o c e s s d e f i n i t i o n ,t a s kd e f i n i t i o na n dt h eb u s i n e s sl o g i ce x p a n s i o no fp r o c e s st a s kn o d e t h e n a n a l y z e dt h es i xi m p o r t a n tr e s o u r c es e r v i c ei n t e r f a c e so fj b p m 4a n dt h ep r o c e s s d e f i n i t i o nl a n g u a g ej p d l ( 2 ) d i s c u s s e dt h es p e c i f i cp r o c e s sm o d e li nt h eo as y s t e m ,t h et a s kr o l l b a c k , t a s kr e v o c a t i o n ,j o i n t l ys i g n ,t a s kd e l e g a t i o n ,f r e ef l o w , a n dg i v e st h es o l u t i o nb a s e d o nj b p m 4 ( 3 ) t a k eah i g h w a y i n f o r m a t i o n m a n a g e m e n ts y s t e mi n r e s e a r c ha st h e b a c k g r o u n d ,r e a l i z e d i n f o r m a t i o nr e l e a s ea n d m a i n t e n a n c ei nt h eo f f i c ew i t h j b p m 4 t h ep a p e rd i s c u s s e sm a i n l yt h ep r o c e s s e si nt h et w om o d u l e sc o n t a i nr o c e s s a n a l y s i s ,p r o c e s sd e s i g n ,d i s p l a yd e s i g na n dl o g i c a ld e s i g na n dt h ed e s i g no ft h ed a t a a c c e s s f i n a l l y , t h r o u g ht h ei n t e g r a t i o no fj b p m ,s t r u t s 2 ,h i b e r n a t e ,s p r i n gf r a m e , d e s i g na n dr e a l i z a t i o nt h et w om o d u l sa n dg i v et h em a i nr e n d e r i n g ( 4 ) i nt h el a s tp a r to ft h i sp a p e r , b yc h a n g i n gt h ei n f o r m a t i o nr e l e a s ep r o c e s s e s a n dr e a l i z i n g ,a n a l y s et h ed i f f e r e n c e sw a yt oh a n d l et h ec h a n g eo ft h es y s t e m ,s l i m s u pt h ea d v a n t a g e so fi n f o r m a t i o nm a n a g e m e n ts y s t e mb ya d d i n gj b p mw o r k f l o w k e yw o r d s :j b p m 4 ,w o r kf l o w , s s h 2 ,o a ,l a y e r e da r c h i t e c t u r e 武汉理i :人学硕十学位论文 1 1 研究背景 第1 章引言 如今实现办公自动化( o f f i c ea u t o m a t i o n ,o a ) 逐渐成为众多企业、政府、服 务性行业提高效率的首选目标。即通过办公的自动化来实现企业各部门之间的 协作,高效地进行信息采集与、流动与处理,最终实现办公现代化、传输网络 化、信息资源化和决策科学化【l 捌。办公自动化也从原来以提高个人工作效率为 目标,发展为通过提高组织内部的协同工作能力,来提高整体工作效率。典型 的应用包括公文审批流转处理、报价处理、采购处理和合同审核等p j 。但实际上 使用中,办公自动化系统中存在着许多问题。例如,在一个信息管理系统中, 当系统的一个业务工作发生了改变后,以l j 根据当时的业务工作定制开发的信 息系统无法处理变化后的新的业务流程,这就会使系统的生命周期大大的缩短。 对于开发项目的软件企业而言,客户对于需求的改变是有绝对权的,面对这些 频繁改变的需求企业只能对系统进行不断改造,使很多企业苦不堪言,长时间 不能完成验收f 4 ,熨。因此为了应对这种情况,很多大型软件研发公司都将开发出 一种可实现根据流程变化自主定义业务流程的软件技术作为研发的重点1 6 j 。 工作流技术的产生很好的解决了上述问题,它可以在业务流程发生改变后 迅速的对整个流程进行修改,极大的减少了系统代码的修改量1 7 j 。近几年,工作 流技术得到了快速发展,并逐渐流行起来。在e p r ( e n t e r p r i s er e s o u r c ep l a n n i n g , 企业资源计划) 、c r m ( 客户关系管理) 等经典企业应用领域,工作流技术的应用 已经深深扎根、不可缺少。甚至在互联网领域,也可以见到工作流技术的“入 侵 ,如内容审核流程、注册引导流程等等【8 9 j 。工作流兴起时问不长,因此此技 术的探索与应用研究还有很大空自j ,并且意义重大l i 。 对于承接项目的软件公司而言,在不影响系统要求的i ;j 提下,使用开源的 工作流框架开发系统成为降低开发成本的一个重要途径。目前市场上主流的三 大开源工作流引擎分别为j b o s s j b p m 、s h a r k 和o s w o r k f l o l l j 。其中j b p m 凭借其优秀的引擎架构和基于j a v a 技术项目的良好的可扩展性,受到了越来越 多软件开发者和软件企业的关注【i 引。 武汉理jl :人学硕十学位论文 1 2 国内外研究现状 工作流的概念起源于组织和办公自动化领域,其中的s c o o p 和o 币c e t a l k 系统,不但标志着工作流技术的开始,也是最早的o a 系统【l 引。 最初的工作流系统主要以企业内部处理文档为主,这一阶段的典型特征是 工作流系统不是被作为一个独立的平台进行应用,而是将其思想运用到具体的 应用管理系统中,尤其是文档的递交和处理。 第二阶段的发展标志是i b m 公司d o m i n on o t e s 产品的出现,它的出现极大 地推动了工作流的成熟和应用进程,这一阶段的主要特征是工作流系统是作为 一个平台以群件的形式运用于文档处理中,系统本身有自己独特的体系结构和 基础的通信技术i l4 。 直到现在,由于i n t e m e t 技术和计算机网络技术的迅速发展,随着企业内部 业务过程的规范化和效益要求的不断提高的,工作流技术发展到了第三个阶段 业务过程管理( b p m ) 阶段,和第二阶段的最大不同主要表现在:应用的范围更加 广泛,业务过程管理不仅仅只能够管理文档,而且能够管理企业内部的各类业 务过程:功能更强大,业务过程管理包括业务过程的分析、设计、评测、仿真、 运行和管理,它可以管理流程、人和其它资源之间的关系,整合公司内外部的 资源,跟踪整个流程的进度,不只是文档处理界面的设计与处理i l 引。 近年来工作流在国内外发展相当迅速,许多软件公司、科研教学单位、开 源组织以及个人均在从事工作流的研究和开发工作【l 们。国外的一些工作流产品 有b e a 的w l i ( w e bl o g i ci n t e g r a t i o ns t u d i o ) ,f u j i t s u 的i - f l o w ,i b m 的h o l o s o f x , s a p 的n e tw e a v e r ,s o n i c 的o r c h e s t r a t i o ns e r v e r ,特别是基于w e b 的工作流系 统,即通过万维网来实现任务的协作,已成为一种市场流行的新趋势,最主要 、的代表产品为u l t i m u s 的业务流程管理产品【l7 1 。国内具有一定影响力的商业化工 作流产品开发公司包括及产品有,信雅达的s u n f l o w ,西安协同的协同工作流, 上海东兰的d l f i o 等1 1 8 , 1 9 j 。 国内专注于工作流产品方面公司起步较国外晚,其产品大多只专注于某个 行业的具体需求,并且其可靠性、稳定性、开放性及标准化方面都还有待加强1 2 0 l 。 1 3 工作流技术在信息管理系统中的应用 工作流技术是一项飞速发展的信息化技术,很多企业都在逐渐采用工作流 2 武汉理。i :人学硕十学位论文 管理系统,目前工作流技术被广泛应用于办公室环境中,例如公文审批流转处 理、会议管理、报表审批、财务审批等等【2 1 ,2 2 】。其价值主要体现在: ( 1 ) 协助涉及多部门或多人的相关工作执行。 大部分工作流管理系统都有一个方便的j o t s 0 ,用来生成和处理执行任务的 电子表单,使各个部门人员能够很方便的通过这种机制实现交互,参与到业务 流程中去【2 3 1 。由于不用将业务过程用文字的形式记录在纸上,工作流系统能使 用户方便的通过流程建模实现业务过程的定义以及自动化执行。对于那些专注 于ic m m 认证的企业或组织,国内这种使用工作流管理系统的方式能过显著提 升规范化流程的运作速度,从而提高企业生产效纠川。 ( 2 ) 作为企业应用集成的平台。 工作流管理系统并不是专门的业务处理系统,但是工作流管理系统和专门 的业务处理系统是互补的【2 5 1 。大部分的工作流管理系统具有结合专门业务处理 应用构建企业应用集成平台的能力。 ( 3 ) 嵌入式工作流引擎。 专门的业务处理系统将指定的业务领域的相关业务流程固化到了信息系统 中。开发者可以考虑将工作流引擎嵌入到他们的专门业务信息系统中去陋】。这 种情况下,工作流引擎作为一个应用插件,对于引用的最终用户是不可见的。 将其嵌入到系统的主要目的是加强应用的可扩展性和可维护性1 2 7 】。 对于开发者而言,引入工作流技术,同样会带来很大的好处,体现在: ( 1 ) 加速开发,开发者不必再去关注流程的参与者、活动节点的衔接、流转 控制等,因为这些工作很多都被工作流框架接管了【2 引。因而,开发者开发起来 更快、代码出错量更少、系统更加容易维护。 ( 2 ) 提升对迭代开发的支持,如果系统业务流程部分被硬编码,就很难更改, 需求分析师就要花很大的精力在开发前的需求分析中,并且希望以此成功。但 现实情况是,在任何软件项目开发中,这是很少能实现的1 2 9 1 。工作流管理系统 能够使业务流程横容易部署和重新编排,业务流程的开发可以以一种迭代的方 式进行,也就是说工作流技术在某种程度上是企业的需求分析不必以此就完全 成功。 1 4 本文研究内容及组织结构 高速公路信息管理系统是笔者在读研究生期间参与的一个科研项目,从总 3 武汉理i :人学硕十学位论文 体上分为首页面、数据管理、养护办公、计量支付、信息查询、电子地图、站 务信息发布、我的邮箱、系统管理几个模块,供高速公路管理处的内部管理人 员实现自动化办公使用。本文将以此管理系统为基础,论述j b p m 工作流系统 在o a 系统中的应用。 本文的主要研究内容如下: ( 1 ) j b p m 工作流系统实现过程分析。 工作流的实现过程包括流程的分析、流程定义、流程部署、流程运行。流 程的定义包括从基本的流程过程定义、任务定义、流程的任务节点业务逻辑扩 充等。 ( 2 ) 研究应用j b p m 来解决信息管理系统中的特殊工作流模式。 包括任务回退、任务取回、任务委派、会签任务以及工作流中的自由流等。 ( 3 ) j b p m 在信息管理系统站务信息发布和养护办公中两个模块中的应用。 以高速公路管理系统为背景,实现j b p m 在站务信息发布和养护办公两个 模块中的应用,主要论述了两个模块中对应流程的分析、流程的设计、表现层 设计、业务逻辑层设计和数据访问层的设计。最后,通过整合j b p m 、s t r u t s 2 、 h i b e m a t e 、s p r i n g 等框架进行了具体的实现。 ( 4 ) 通过分析工作流在处理需求变更和传统处理方式的差别,给出了工作流 的主要优势。 本文的内容安排如下: 第1 章分析了工作流管理系统的研究背景、国内外研究现状及本文的主要 研究内容。 第2 章首先比较了几种开源工作流引擎,然后分析了j b p m 4 中6 个重要的 a p i ,最后重点研究了流程定义语言j p d l 。 第3 章研究应用j b p m 来解决o a 系统中的特殊工作流模式。 第4 章首先介绍了在研的某高速公路信息管理系统,研究了j b p m 4 与现有 的开发环境以及s s h 2 框架的具体集成方法,接着通过分层的方式实现了j b p m 4 工作流在站务信息发柿和养护办公俩个模块中具体应用。 第5 章对本文的研究进行总结和展望。 4 武汉理一i :人学硕十学位论文 第2 章工作流引擎j b p m 研究 2 1 开源工作流比较 o p t a r o s 是著名的开源软件研究及解决方案咨询公司,其网站现在n q 做企业 开源目录,可以通过h t t p :w w w e o s d i r e c t o r y c o m 访问。e o s 目录为公司提供了 专家和用户等级、案例研究、论坛以及基于功能性、社区支持者、项目趋势, 以及技术成熟程度的建议。表2 1 是2 0 1 2 年e o s 对于开源工作流管理系统的点 评和介绍,值得参考。 表2 12 0 1 2 年e o s 开源工作流管理系统点评 企业应用 产品版本许可证功能社区支持成熟度趋势 等级 4 0g p l v 3, e n h y d m描述:由t o g e t h e rx p d l 和b p m nw o r k f l o w 两人服务组成,拥有基于j a v a s h a r k 技术、可扩展的工作流引擎框架,实现了w f m c 规范,即使用x m l 流程定 义语言来定义流程。这个项目也为业务流程的定义提供了图形化的设计器。 2 1 1g p l v 3严 l x 描述:基于j a v a 体系的工作流系统,负责持久化以及处理业务流程,能很好 w b r k f l o w 的支持d o m i n o 、j b o s s 、s u ng l a s s f i s h 应h j 服务器的集成。流程设计器是基于 e c l i p s e 的插件。 5 5l g p l b o n i t a 描述:基于活动应用模型的:i :作流引擎,遵循w f m c 的定义。只适h j 于t o m c a t 和j b o s s 应j l j 服务器。 5 2l g p l , j b o s s 描述:j b p m 是灵活可扩展的+ l :作流管理系统。使川管理者和开发者都容易理 j b p m 解的流程定义语言来定义流程。其图形化流程设计器是e c l i p s e 插件。 5 武汉理i :人学硕十学何论文 ( 续表) 企业应h j 产晶版本许可证功能 社区支持 成熟度趋势 等级 a p a c h e , 6 0 3 e c l i p s e , i n t a i op u b l i c b p m s l i c e n s e 描述:是一个业务流程管理平台,提供了支持复杂流程运行的:i :具和底层技术, 包括流程设计器( 基于e c l i p s e ) 、流科引擎和一些运行时的组件。 1 2 a p a c h e o d el i c e n s e ( a p a c h e )描述:基于j a v a 组件的j :作流引擎,遵循w s b p e l - 4 规范。其原来登记名称 为p x e 。 根据这份报告,很明显的看出,在众多的开源工作流系统中,j - b p m 这个项 目在各项评比中都居于第一,其许可证为l g p l ,可以在合法范围内被作为商业 应用;它不仅有着开源社区的支持,同时可以作为r e d h a t j b o s s 的子项目,也 使其具有一定的商业服务保证1 3 们。尽管它还有许多的不足,例如设计器功能过 于简单等,但是毫无疑问,它是国内许多项目型公司低成本工作流解决方案的 不二之选【3 1 1 。 s h a r k 在这份评级报告中排在第二位,其严格遵循w f m c 规范的流程定义 体系无疑是最大亮点,这比之j b p m 采用自己的j p d l 肯定是更标准、更通用一 些1 3 2 l 。目前,国内一些公司也在使用s h a r kw o r k f l o w 。不过j b p m d 对b p e l 的 支持和p v m 的设计思想让s h a r k 的这一优势显得不是那么突出p 引。其它的几个 项目或多或少的存在着明显的劣势,有的甚至已经停滞不前了,因此,在国内 的应用并不常见。 j b p m 和s h a r k 这两种具有良好的可扩展性、足够的弹性的丌源工作流系统, 非常适合二次丌发商业应用,所以也应用最广m j 。值得注意的是,在这份报告 中,j b p m 在“企业应用等级 这一项中获得了晟高评价,但也不过3 星级,这 说明开源技术的丌发者对于工作流管理系统这种相对复杂的软件体系,从丌源 项目应用到商业体系中还是持保守态度的统p 引。 6 武汉理r 人学硕十学位论文 2 2j b p m 介绍 工作流管理联盟给出的工作流定义是:工作流是一类能够完全或者部分自 动执行的经营过程,它根据一系列过程规则,文档、信息或任务能够在不同的 执行者之间进行传递与执行【3 6 1 。 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 b o s sj b p m 只有最小的依赖, 可以象使用j a v a 类库一样非常容易的使用它p 7 。 j b p m 由t o mb a e y e n s 发起,2 0 0 4 年l o 月发布了2 0 版本,同时加入了j b o s s 组织,成为j b o s s 企业中间件平台的一个组成部分,它的名称也改成j b o s sj b p m 。 随着加入j b o s s 组织,j b p m 进入了一个全新发展的时代,他获得了大量的社区 和商业支持,因此发展i j 景十分光明1 3 引。目前,j b p m 已推出了5 2 版本,具有 更好的企业应用支持。本文以学习资料相对较多的j b p m 4 4 作为研究对象,来 介绍j b p m 及其应用。 2 3 皿p ms e r v i c ea p i j b p m 4 所有的s e r v i c ea p i 都是从流程引擎对象( o r g j b p m a p i p r o e e s s e n g i n e ) 中获得的。p r o e e s s e n g i n e 是由c o n f i g u r a t i o n 类构建的,即工作流引擎根据j b p m 配置文件产生【3 3 】。 p r o c e s s e n g i n e 是线程安全的,因此它可以保存在静态变量中。在应用中, 所有线程和请求都可以使用一个p r o c e s s e n g i n e 对象。下面代码给出了它的获取 方法。 p r o e e s s e n g i n ep r o e e s s e n g i n e = c o n f i g u r a t i o n g e t p r o c e s s e n g i n eo ; 这样我们可以根据p r o e e s s e n g i n e 获得j b p m 4 中封装好了的6 个s e r v i c ea p i , 它们都位于o r g j b p m a p i 包中,可以通过如下代码取得。 流程资源服务的接口。提供流程定义的部署、查询、删除操作。 r e p o s i t o r y s e r v i c er e p o s i t o r y s e r v i c e = p r o c e s s e n g i n e g e t r e p o s i t o r y s e r v i e eo ; 流程执行服务接口。提供启动流程、推动流程、设置变量等操作。 e x e c u t i o n s e r v i c ee x e c u t i o n s e r v i e e2p r o e e s s e n g i n e g e t e x e c u t i o n s e r v i c e ( ) ; 人工服务接口。提供任务的创建、提交、查询、删除等操作。 t a s k s e r v i c et a s k s e r v i c e 2p r o c e s s e n g i n e g e t t a s k s e r v i c eo ; 7 武汉理ji :人学硕:t :学位论文 历史服务的接口。提供对流程历史库的查询。 h i s t o r y s e r v i c eh i s t o r y s e r v i e e = p r o c e s s e n g i n e g e t h i s t o r y s e r v i c eo ; 流程管理控制服务接口。 m a n a g e m e n t s e r v i cm a n a g e s e r v i e e = p r o c e s s e n g i n e g e t m a n a g e m e n t s e r v i e e ; 身份认证服务接口。提供流程用户、用户组及组成员关系的相关服务。 i d e n t i t y s e r v i c ei d e n t i f y s e r v i c e = p r o c e s s e n g i n e g e t l d e n t i t y s e r v i c e ( ) ; 2 3 1发布与删除流程 r e p o s i t o r y s e r v i c e 它是流程资源服务的接口。提供对流程定义的部署、查询、 删除等操作。 以下代码示范了部署一个根目录下名为l e a v e j p d l x m l 流程定义资源。 s t r i n gd e p l o y m e n t l d2r e p o s i t o r y s e r v i c e c r e a t e d e p l o y m e n t 0 a d d r e s o u r c e f r o m c l a s s p a t h ( ”l e a v e j p d l x m l ”) d e p l o y 0 ; 类似于上面写的a d d r e s o u r c e f r o m c l a s s p a t h 方法,流程定义x m l 资源可以 从文件、u r l 、字符串、输入流或者z i p 流中获取。 每一个发布的资源都由一系列的名字组成,这些名字都是字符数组。j p d l 流程定义文件通过它的扩展名j p d l x m l 被识别出来,其他的资源是任务类型的或 是j a v a 类。如果要部署很多流程定义可以以流程定义归档的方式进行,流程引 擎会自动识别晕面所有的扩展名为二i p d l x m l 的流程定义文件。 在流程部署的过程中,流程定义会被分配一个i d 。i d 的形式为 k e y - v e r s i o n 。如果没有人为的指定k e y ,流程引擎会根据流程定义的名字自 动生成一个,生成k e y 的过程中会把名字中所有不是阿拉伯数字的字符替换为下 划线。如果没有指定v e r s i o n ,流程引擎也会自动分配。在分配时会考虑到所有 有相同名字的流程定义,如果还没有分配则新部署的自动分配为l ,如果已经有 部署了的则新部署的v e r s i o n 按递增的方式分配。 通过r e p o s i t o r y s e r v i c e 的a p i 可以删除已经部署了的流程定义,需要注意 的是这利- 删除是物理删除,即从数据库中将数据除去。如下代码给出了删除流 程定义的示例。 r e p o s i t o r y s e r v i c e d e l e t e d e p i o y m e n t ( d e p l o y m e n t l d ) ; 如果要被删除的流程定义还存在没有完成的流程实例的话,这个方法就会 抛出异常。 8 武汉理1 = 人学硕十学位论文 2 3 2 发起新的流程实例 这里将讨论利用e x e c u t i o n s e r v i e e 提供的a p i 发起流程实例的几种方法。 ( 1 ) 通过流程定义的k e y 发起流程实例 发起流程实例最简单也是最常用的方法如下。 p r o e e s s l n s t a n c e p r o e e s s l n s t a n c e = e x e c u t i o n s e r v i c e s t a r t p m c e s s l n s t a n c e b y k e y ( ”l e a v e ”) ; 这种情况下s t a r t p r o c e s s l n s t a n e e b y k e y 方法会首先寻找k e y 为l e a v e 的流程 定义的最新版本,然后根据最新的流程定义启动流程实例。当一个新版本的流 程定义发布时,这个方法会自动的选择最新的流程定义。 如果希望开始特定的流程实例,可以通过流程定义i d 启动流程实例,如下。 p r o e e s s l n s t a n e ep r o e e s s l n s t a n e e = e x e e u t i o n s e r v i e e s t a r t p r o e e s s l n s t a n c e b y k e y ( ”l e a v e l ) ; ( 2 ) 根据指定的业务键发起流程实例 一个新的流程实例可以被随意的分配一个用户自定义键值,他可以是关联 到执行的键,也可以是业务键。在一个流程定义的所有版本内这个业务键必须 是唯一的。在商业流程中这种业务键是很容易找到的。例如,订单号或者是保 险单号。这样就可以为以后业务上的查询和索引提供方便。 p r o e e s s l n s t a n e e p r o e e s s l n s t a n e e = e x e c u t i o n s e r v i e e s t a r t p r o e e s s l n s t a n e e b y k e y ( l e a v e , l v 0 0 01 ) ; 在上面的例子中l v 0 0 0 1 就是用户的业务键,它可以是请假单号或是其他什 么,只和特定的业务有关系。同时这个业务键会被用来创建流程实例的i d ,上 例中就会创建一个i d 为“l e a v e 1 v 0 0 0 1 的流程实例。 如果用户没有提供业务键,数据库会把流程定义的主键作为业务键。这样 的话,可以通过如下代码获得流程实例i d 。 。 p r o c e s s l n s t a n c e p r o c e s s l n s t a n c e2 e x e c u t i o n s e r v i c e s t a r t p r o c e s s l n s t a n c e b y k e y ( ”l e a v e ) ; s t r i n gp i d = p r o c e s s l n s t a n c e g e t l d 0 ; 实践证明,发起流程实例时最好是使用一个用户自定义的业务键,而且一 般情况下这种业务键是不难找到的。这么做就可以通过业务而不是通过流程变 量来进行查询,这样可以大大的提高查询效率。 9 武汉理jj :人学硕十学位论文 ( 3 ) 根据指定变量发起流程实例 如果发起新的流程实例的时候需要启动参数,可以把参数放入一个m a p 中 作为流程参数,这些参数将在流程实例创建和启动的过程中被设定。 创建并设定流程变量的m a p m a p v a r i a b l e s2n e wh a s h m a p ( ) ; v a r i a b l e s p u t ( ”n a m e ,”j o h n ”) ; v a r i a b l e s p u t ( ”l o n g ”,”o n ed a y ”) ; 将m a p 当做流程变量传入流程实例 p r o c e s s l n s t a n e e p r o c e s s l n s t a n c e = e x e c u t i o n s e r v i c e s t a r t p r o c e s s i n s t a n c e b y k e y ( ”l e a v e , v a r i a b l e s ”) ; 2 3 3 任务服务a p i t a s k s e r v i c e 是人工任务服务的接口。提供了任务的创建、提交、查询、保 存、设置任务变量等操作。主要是对任务列表的访问,这里的任务是指j p b m 4t a s k 产生的人机交互业务。 下面的代码给出了如何获得i d 为m a n a g e r 的用户的任务列表。 l i s t t a s k l i s t = t a s k s e r v i e e f i n d p e r s o n a l t a s k s ( ”m a n a g e r ”) ; t a s k s e r v i e e 还可以通过以下几种方式来完成任务。 根据指定的任务i d 来完成任务 t a s k s e r v i c e c o m p l e t e t a s k ( t a s k l d ) ; 根据任务i d 同时设入变量完成任务 t a s k s e r v i c e c o m p l e t e t a s k ( t a s k i d ,v a r i a b l e s ) ; 指定o u t c o m e ,即下一步的转移路径完成任务 t a s k s e r v i c e c o m p l e t e t a s k ( t a s k i d ,o u t c o m e ) ; 指定下一步的转移路径同时设入变量完成任务 t a s k s e r v i c e c o m p l e t e t a s k ( t a s k i d ,o u t c o m e ,v a r i a b l e s ) ; 可以看出这些方法允许设入变最,这些变量在任务完成f j i 将作为流程变量 同步到流程实例中去。这些方法还有一个参数o u t c o m e ,这个参数可以用来决定 任务结束后流程的转移方向。 l o 武汉理:i - 人学硕十学位论文 2 3 4 历史服务a p i h i s t o r y s e r v i c e 是流程历史服务的接口。在流程执行过程中,会不断触发事 件。事件完成后会作为流程实例的历史信息存入到流程历史数据表中。 h i s t o r y s e r v i c e 提供了对这些历史信息的访问。同时它还提供了诸如某个流程定 义中所有活动的平均持续时间、某个流程定义中某转移的经过次数等数据分析 服务。 查询某一特定流程定义的所有历史流程实例。 l i s t h i s t o r y p r o c e s s l n s t a n c e s2h i s t o r y s e r v i c e c r e a t e h i s t o r y p r o c e s s i n s t a n c e q u e r y 0 查询i d 为“l e a v e 1 的流程定义 p r o c e s s d e f i n i t i o n l d ( ”l e a v e - 1 ”) 返回结果按流程实例开始时间的正序排列 o r d e r a s c ( h
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 火工安全生产培训计划课件
- 急诊科考试试题试题及答案2025
- 辽宁本科考试题库及答案
- 火化机安全培训内容记录课件
- 2025年配奶室管理制度试题含答案
- 化学分析考试题型及答案
- 大豆种植考试题库及答案
- 课件中点击变色功能
- 隆昌中考试卷化学题及答案
- 课件中序号的使用顺序
- TSG 07-2019 特种设备生产和充装单位 许可规则
- 电梯维保服务评价与改进措施
- 施工质量标准化手册之桥涵工程
- 医院培训课件:《环境卫生学监测的方法》
- 中队辅导员培训材料
- 2025年巷道掘砌工(技师)职业技能鉴定理论考试题库(含答案)
- 小学五爱教育
- 开学第一课消防安全知识课件
- 香港劳务派遣合同范本年
- 2025年威海桃威铁路有限公司招聘笔试参考题库含答案解析
- 妊娠期高血压疾病的观察及护理
评论
0/150
提交评论