jBPM详解工作流管理系统
- 格式:doc
- 大小:372.00 KB
- 文档页数:33
jBPM详解工作流管理系统
一、jBPM入门简介
概述
工作流业务流程治理技术是基于SOA技术实现的一个核心部分。使用工作流能够在软件开发和业务两个层次受益:
1、方便开发
工作流治理系统能够简化企业级软件开发甚至爱护。
◆降低开发风险 - 通过使用状态和动作如此的术语,业务分析师和开发人员使用同一种语言交谈。如此开发人员就不必将用户需求转化成软件设计了。
◆实现的集中统一 -业务流程经常变化,使用工作流系统的最大好处是:业务流程的实现代码,不再是散落在各种各样的系统中 。
◆加快应用开发 - 你的软件不用再关注流程的参与者,开发起来更快,代码更容易爱护。
2、业务流程治理 (BPM)
在自动化业务流程之前,分析并将它们规格化是一件困难但会有专门好回报的工作:
◆提高效率 - 许多流程在自动化过程中会去除一些不必要的步骤较好的流程操纵 - 通过标准的工作方法和跟踪审计,提高了业务流程的治理
◆改进客户服务 - 因为流程的一致性,提高了对客户响应的可预见性
◆灵活 - 跨过流程的软件操纵,使流程能够按照业务的需要重新设计。
◆业务流程改进 - 对流程的关注,使它们趋向于流畅和简单
但从长远的角度,工作流流程治理技术的研究可为两个时期进行:1.目前解决华研今后新项目中复杂业务流程如何使用工作流引擎技术进行实现的问题。
2.上升到面向服务体系架构,实现各个服务之间的业务流程。
jBPM,全称是Java Business Process Management,是一种基于J2EE的轻量级工作流治理系统。jBPM是公布源代码项目,它使用要遵循 Apache License.
jBPM在2004年10月18日,公布了2.0版本,并在同一天加入了JBoss,成为了JBoss企业中间件平台的一个组成部分,它的名称也改成JBoss jBPM.随着jBPM加入JBoss组织,jBPM也将进入一个全新的进展时代,它的前景是十分光明的。 JBoss jBPM 只有最小的倚赖性,它能够专门容易的作为java库来使用。因此它也能够用在访问量专门大的J2EE 群应用服务器环境中。 JBoss jBPM 能够同任何数据库配置能够部署在任何应用服务器上。
jBPM 最大的特色确实是它的商务逻辑定义没有采纳目前的一些规范,如WfMC
XPDL, BPML, ebXML, BPEL4WS等,而是采纳了它自己定义的JBoss jBPM Process
definition language (jPdl)。jPdl认为一个商务流程能够被看作是一个UML状态图。jPdl确实是详细定义了那个状态图的每个部分,如起始、终止状态,状态之间的转换等。
jBPM的另一个特色是它使用Hibernate来治理它的数据库。Hibernate是目前Java领域最好的一种数据持久层解决方案。通过Hibernate,jBPM将数据的治理职能分离出去,自己用心于商务逻辑的处理。(具体选型报告可参考工作流技术选型评估报告)。
本文档要紧是工作流研究小组关于开源工作流引擎jbpm的研究成果总结。内容包括工作流研究场景的介绍、jbpm的环境配置,并包括以下六个研究主题:
◆JBPM同开发如何结合,又如何保持独立性;对应用系统的设计实现有什么样的制约
◆用户/角色如何同应用系统结合,变化又如何处理
◆流程中每个活动,如何动态指定执行者
◆类似传阅功能如何实现
◆子流程如何实现
◆流程执行步骤耗时阀值和自动提醒设置
◆jBPM当前版本的稳固性评估
术语、定义和缩略语
应用场景
本场景是从房地产营销系统的需求中提取出来的,在房地产项目中,客户选户购房的过程是一个专门典型的工作流场景。我们将这一过程提取出来,作为jbpm技术研究的场景。
在购房过程中,会有以下人员参与。
客户:购房的主体
销售人员:在购房过程中指导看房,购房。
销售经理:确定认购信息。
财务人员:收取定金。
客服人员:打印收据,打印客户认购书。 客户购房的过程能够描述如下。
◆客户来到售楼中心,销售人员进行接待。
◆客户向销售人员提供预先申请的服务号。
◆销售人员确认服务号是否有效,假如无效现场给出一个新的服务号。
◆销售人员引导客户选房。
◆客户确定户型,房号。
◆销售人员录入客户认购资料。
◆销售人员确认认购资料填写完整。
◆销售人员将认购资料提交给销售经理审批。
◆确定是否能够获得优待,假如客户是一次交清房款,获得0.1%优待。
◆交上级经理审批。
◆销售人员引导客户到财务处交纳定金。
◆交纳定金后,客服人员打印收据。
◆客服人员打印认购书。
为了使用研究的场景更有代表性,揉合其他典型的工作流应用场景,将上面的流程作一些删改。
客户认购的流程改为:
◆客户确定购房,销售人员录入认购资料。
◆提交认购资料,必须保证录入资料的完整性。
◆提交审核,按总金额进行分类审核。假如金额小于50万销售经理审核即可,大于50万还要上级经理两人同时审核通过。
◆审批完成,客户到财务处交纳定金。
◆客服人员为客户打印收据,打印认购书,认购完成。
上面的流程中一些专门情形(流程中的一些分支),在那个地点先不作考虑,如,客户在交纳定金之前能够随时舍弃认购。
客户的认购要录入的资料内容包括:客户姓名,房号,定金,总金额,流程号等,那个地点仅选取几个重要的数据作为储存对象。储存录入资料时自动取得一个流程号,任何时候,能够依照此流程号跟踪流程状态,因此在储存认购资料时要记录流程号。
通用的标准规范
jBPM 是个功能全面的Workflow Engine,融合了4大功能:Workflow,BPM,BPEL,PageFlow。它自己有个BPEL扩展,采纳jboss Hibernate实现,它使用自定义的自定义标准jpdl,不支持目前公布的工作流(业务流程)标准,如:
◆JCP
◆JSR208 Java Business Integration
◆JSR207 Process Definition for Java
◆OASIS
◆WS-BPEL
◆Workflow Management Coalition(WFMC)
◆WFMC XPDL
◆Business Process Management Initiative (BPMI) ◆BPMN
◆Object Management Group (OMG)
◆State Chart XML (SCXML)
处理测试时期的JBoss jBPM BPEL扩展预备支持BPEL 1.1标准(非标准组织通过的标准)。
技术方案
由于公司采取的架构是ejb3+tapestry4架构,因此我们的场景实现架构也是基于以上架构进行实现的(tapestry4+ejb3+jbpm3.2),我们所采取的jbpm版本是3.2,这也是目前jbpm最新的版本。那个地点我们使用jboss作为我们的web服务器
开发环境
那个地点我们是采纳eclipse3.2开发工具进行开发,Tapestry4+ejb3的开发环境配置和以往的项目配置差不多保持一致,那个地点就不再进行详细介绍,关键确实是jbpm3.2的配置方法。
我们从jBoss官方网站( :// )上下载jbpm-jpdl-suite-3.2.GA.zip,最新的版本是3.2.GA,那个包括:
◆jbpm-server , 预先配置的jboss 应用服务器.
◆jbpm-designer , jBPM流程图形化设计器的eclipse 插件 .
◆jbpm-db , jBPM 数据库兼容包 (参看下面).
◆jbpm , 核心jbpm组件包括库和用户手册.
◆jbpm-bpel , JBoss jBPM BPEL 扩展参考.
预配置的JBoss 应用服务器有下列安装组件:
核心jBPM 组件 , 打包作为JBoss服务档案
一个包括所有jBPM 表格的完整数据库 : 默认的 hypersonic 数据库包含所有的jBPM 表格和差不多定义的流程.
jBPM 操纵台web应用程序 那个能够用来为jBPM治理员.
jBPM调度程序 所有定时器的执行. 调度程序在新手工具箱里配置成了一个servlet.那个Servlet会为产生一个线程来监视每个定时器的执行.
一个流程例子 差不多公布进了jBPM 数据库,关于jbpm-jpdl-suite-3.2套件包的具体介绍,能够参考JBoss jBPM Cookbook手册。
JBoss jBPM 是一个Java库. 因此,它能够用在任何java环境比如web 应用程序,Swing应用程序,EJB,Web Service等等,JBoss jBPM 核心组件被打包成一个简单的Java库文件.它依靠你所使用的功能性, 库 jbpm-jpdl.jar及一些相关的第三方的库比如 . hibernate3.2, dom4j 等等
在我们实现场景中。要使用jbpm,我们第一需要将jbpm3.2的包导入我们的项目当中, jbpm3.2的要紧包括两个包jbpm-jpdl.jar和jbpm-identity.jar。而jbpm-jpdl.jar是jbpm的核心包,jbpm-identity.jar则是jbpm自带的用户角色权限治理包。我们将这两个包导入我们的项目中。(具体可参考jbpm的用户手册)
在jbpm中,流程的定义要紧是编写在xml文件中的,我们需要将具体的业务流程在xml中定义。因此我们需要在项目的根名目上新建一个源名目,那个地点我们命名为“processes”,在该名目我们能够储存流程定义xml文件。
JBoss jBPM 包括一个图形化的流程设计工具. 那个设计器是用来创作商业流程的,该图形设计器是一个Eclipse插件,图形化设计工具最重要的特性是它同时支持业务分析员和技术开发人员. 如此就能够在业务流程建模和实际执行之间平滑转换。使用该插件你能够通过界面来拖拉描画你的业务流程,而不需要靠手写编码来设计。该插件位于jbpm-jpdl-suite-3.2.GA.zip中,插件的安装方法能够参考elipse插件的安装方法。安装完毕后,我们下面能够通过该插件新建流程设计文件。
步骤如下:1、在processes名目中右建选择“New”—》“other”