jbpm开发实例.doc
- 文档编号:231029
- 上传时间:2022-10-07
- 格式:DOC
- 页数:8
- 大小:262.50KB
jbpm开发实例.doc
《jbpm开发实例.doc》由会员分享,可在线阅读,更多相关《jbpm开发实例.doc(8页珍藏版)》请在冰豆网上搜索。
Jbpm开发指导
1.JBPM简介
JBPM,全称是JavaBusinessProcessManagement(业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的基于java实现的流程业务处理框架(BusinessProcessManagement)。
jBPM是公开源代码项目,它使用要遵循ApacheLicense。
支撑企业的流程性业务应用:
解释业务规则,使得协作自动化
2.JBPM最大特色
就是它的商务逻辑定义没有采用目前的一些规范,如WfMC´sXPDL,BPML,ebXML,BPEL4WS等,而是采用了它自己定义的JBossjBPMProcessdefinitionlanguage(jPdl)。
jPdl认为一个商务流程可以被看作是一个UML状态图。
jPdl就是详细定义了这个状态图的每个部分,如起始、结束状态,状态之间的转换,过图型化的流程定义,直观地描述业务流程。
jBPM的另一个特色是它使用Hibernate来管理它的数据库。
Hibernate是目前Java领域最好的一种数据存储层解决方案,只要是Hibernate支持的数据库,jBPM也就支持。
通过Hibernate,jBPM将数据的管理职能分离出去,自己专注于商务逻辑的处理。
3.JBPM带来的益处
实现了无纸化的工作模式;
过程可监控:
便于对执行过程的跟踪和监控
数据可管理:
便于对数据进行检索、分析
可靠性:
减少人-人交互的主观错误的机率
4.JBPM常见应用领域
行政管理:
行政、事业单位、大中型(国有)企业
产品研发和制造:
用于对整个研发、生产制造过程的管理和调度
电子商务:
订单处理
其他如大型内容管理系统的多步审核
5.JBPM常见场景
公文流转、行政审批、订单处理、产品研发、制造过程
其他需要多个角色协作、多步完成的活动
6.JBPM模型说明
加载流程定义:
定义工具可以系统提供,也可以只是读取定义结果
启动流程:
启动选定的流程,创建流程实例
办理任务(流程的每一步):
执行流程的每个步骤(不一定都需要人参与:
自动任务节点)
记录流程的状态:
对状态的管理是工作流引擎的主要职责
7.JBPM主要概念
流程定义:
预先定义的业务流转逻辑
流程实例:
业务的一次实际流转过程
参与者:
任务的执行者
活动(任务):
组成流程定义的节点
活动实例:
组成流程实例的元素
流转:
从一个节点到另一个节点这一行为
工作列表:
当前需要办理的任务集合
工作流引擎:
工作流的核心组件,对流程实例、任务实例以及其状态进行管理
8.JBPM套件的组成
jPDLDesigner:
流程定义设计器,流程建模工具
jPDLLibrary:
流程执行引擎
WebConsole:
参与者和流程执行环境的交互界面,流程运行期间的监控工具
9.使用jBPM开发工作流的一般流程
1)jBPM的运行需要数据库的支持,因此系统设计时要选定所用数据库。
只要是Hibernate支持的数据库,jBPM就支持。
数据库的初始化可以由jBPM自动完成,也可以通过antgenerate.ddl任务生成SQL语句,在jBPM外部自己创建所需的表。
2)使用jPdl定义工作流,生成processdinination.xml文件。
可以采用GUI工具gpdl,但目前只支持jBPM1.0,而且bug很多。
XML的DTD定义文件在jBPM下载包中。
3)Antcreate.pde生成pde包的工作目录。
将processdinination.xml文件和其它需要的文件放在指定的目录下,使用antbuild.precess.archives生成pde包。
pde包的格式采用jar。
4)更改pde工作目录/src/config/jbpm.properties的相关属性,主要是设定相关的数据库连接信息。
注意要将数据库的JDBC驱动放在pde工作目录的lib目录下。
5)Antdeploy.process.archives将刚才生成的pde部署到数据库。
实际上就是向数据库插入一些相关数据。
6)利用jBPMAPI函数开发相应的工作流程。
10.jbpm表结构介绍
10.1资源库和运行时表结构
JBPM4_DEPLOYMENT,JBPM4_DEPLOYPROP,JBPM4_LOB存储流程定义相关的部署信息
JBPM4_EXECUTION主要是存放JBPM4的执行信息,Execution机制代替了JBPM3的Token机制
JBPM4_TASK存放需要人来完成的Activities(活动),需要人来参与完成的Activity被称为Task
JBPM4_PARTICIPATION参与者表,存放参与者信息,参与者的种类有Candidate、Client、Owner、ReplacedAssignee和Viewer。
而具体的参与者既可以是单一用户,也可以是用户组
JBPM4_SWIMLANE泳道表。
SwimLane是一种RuntimeProcessRole。
通过SwimLane,多个Task可以一次分配到同一Actor身上
JBPM4_JOB存放的是Timer的定义
JBPM4_VARIABLE存的是进行时的临时变量。
10.2历史数据库表结构
JBPM4_HIST_PROCINST与JBPM4_HIST_ACTINST分别存放ProcessInstance和ActivityInstance的历史记录
JBPM4_HIST_DETAIL保存Variable的变更记录
JBPM4_HIST_VAR保存历史的变量JBPM4_HIST_TASKTask的历史信息
身份认证表结构
JBPM4_ID_GROUP,JBPM_ID_MEMBERSHIP,JBPM4_ID_USER这三张表很常见,基本的权限控制,关于用户认证方面建议还是自己开发一套,组件自带的功能太简单,使用中有很多需求难以满足
除了前面述及的17张表外,还有一张引擎参数表,这是一张独立的表,在此没有单独列出
11.GPD(图形化流程设计器)forEclipse插件安装
·帮助-->软件更新(Help-->SoftwareUpdates)
·选择“有效软件”标签(AvailableSoftware)
·点击添加站点(AddSite)
·在对话框里添加站点击(AddSite)对话框,点击压缩包(Archive)
·找到gpd/jbpm-gpd-site.zip
·点击“确定”(ok)自动回到“软件更新和扩展”对话框
·选择jPDL4流程设计器更新站点(jPDL4GPDUpdateSite)
·点击安装(Install)
·在安装(Install)对话框中,选择FlowCommonFeature和jPDL4Feature
·点击下一步(Next)
·选择接受(Accept),并点完成(Finish)
·重启Eclipse
12.基于Web的Signavio流程设计器
jBPM3开始,这个著名的开源项目就因为没有基于浏览器的图形化流程设计器而饱受用户诟病,没错,进入了Web时代,流程设计器没有理由总是停留在CS(ClientServer)阶段。
有很多公司认识到了这一点,因此市场上的jBPMWeb流程设计器并不少见,但它们或不开放源代码、或基于特定的业务、或存在支持升级问题。
总之,没有RedHatJBossjBPM的官方认证和支持,您用着总会不放心,不是吗?
现在您不用担心了。
从Version4.1开始,jBPM官方发布包绑定了一个完全开源的基于Web的BPM流程设计器,代号为Signavio。
12.1jBPMWeb流程设计器简介
SignavioWeb流程建模工具是和JBossjBPM团队、德国的Signavio公司和HassoPlattnerInstitute(HPI软件工程研究所)紧密协作的成果。
Signavio项目基于Web建模工具Oryx,Oryx是由HPI主持的开源项目。
HPI和Signavio公司都会持续地在Oryx项目和Signavio项目中投入人员和资金的支持。
关于这两个项目,您可以在GoogleCode上找到:
使用Signavio可以让业务流程分析人员通过浏览器建立业务流程模型。
Signavio输出的流程文件格式正是jPDL。
这意味着Signavio设计出的流程定义文件可以直接导入到EclipseGPD,反之亦然。
流程定义文件会保存在硬盘上,位于$jbpm_home/signavio-repository中,这个参数在安装脚本中有默认值。
下图是Signavio流程设计器的使用界面,它能很好地支持IE和Firefox浏览器。
注意:
Signavio是基于web的业务流程建模工具,绑定在jBPM中,是100%开源的(基于MIT开放源代码许可证)。
同时,Signavio公司也提供商业版的同名工具,毫无疑问,商业版的Signavio有更多的功能。
12.2独立安装Signavio
复制$jbpm_home/install/src/signavio/jbpmeditor.war到您的目标Web容器中。
12.3配置Signavio
Signavio配置很简单,大多数参数在web.xml中修改即可,您可以在jbpmeditor.war/WEB-INF/目录中找到。
其中最重要的是fileSystemRootDirectory参数。
这个参数的值必须为一个物理上存在的本地目录,它指定了流程定义文件(即*.jpdl.xml文件)存储的位置,以下是此参数的web.xml片段:
12.3Signavio缺点:
1:
不支持中文。
2:
只能用firefox打开页面。
13.在目录中添加jPDL4模式
·点击窗口-->属性(Windows-->Preferences)
·选择XML-->目录(XML-->CataLog)
·点击添加(Add)
·添加XML目录(AddXMLCatalogEntry)的窗口打开
·点击map-icon的图标下面的按钮并选择文件系统(FileSystem)
·在打开的对话框中,选择jBPM安装目录下src文件夹中jpdl.xsd文件
·点击打开(Open)并且关闭所有的对话框
14.ssh+jbpm整合
·加入jbpm.jar包,文件位置在jbpm发布包根目录下
·加入jbpm配置文件,文件位置在jbpm发布包根目录/examples/src下:
·Spring配置文件加入以下代码:
·Hibernate配置文件加入以下代码:
第一次执行时需放开第一行代码以便在目标数据库中创建jBPM表结构;创建之后需手动注释第一行代码;
或者在jbpm-4.4/install目录下执行cmd命令:
antcreate.jbpm.schema。
15.部署到tomcat6.0
需删除tomcat6.0lib目录下el-api.jar包,因为会和jbpm的包产生冲突。
然后导入jbpm发布包lib目录下的以下三个包:
Ok,启动服务。
16.示例项目
TestJBPM是一个简单的jbpm+ssh+oracle10g+tomcat6整合项目,实现了一个简单的请假流程。
工程由myeclipse打开。
流程图如下:
部署前需修改jbpm.hibernate.cfg.xml文件,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- jbpm 开发 实例
![提示](https://static.bdocx.com/images/bang_tan.gif)