JBPM4.4简介

    1. 1.  JBPM简介

JBPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的基于java实现的流程业务处理框架(Business Process Management)。jBPM是公开源代码项目,它使用要遵循 Apache License。
    支撑企业的流程性业务应用:解释业务规则,使得协作自动化

2.JBPM最大特色

   就是它的商务逻辑定义没有采用目前的一些规范,如WfMC´s XPDL, BPML, ebXML, BPEL4WS等,而是采用了它自己定义的JBoss jBPM Process definition language (jPdl)。jPdl认为一个商务流程可以被看作是一个UML状态图。jPdl就是详细定义了这个状态图的每个部分,如起始、结束状态,状态之间的转换,过图型化的流程定义,直观地描述业务流程。

jBPM的另一个特色是它使用Hibernate来管理它的数据库。Hibernate是目前Java领域最好的一种数据存储层解决方案,只要是 Hibernate 支持的数据库, jBPM 也就支持。通过Hibernate,jBPM将数据的管理职能分离出去,自己专注于商务逻辑的处理。

3.JBPM带来的益处

实现了无纸化的工作模式;
过程可监控:便于对执行过程的跟踪和监控
数据可管理:便于对数据进行检索、分析
可靠性:减少人-人交互的主观错误的机率
4.JBPM常见应用领域
行政管理:行政、事业单位、大中型(国有)企业
产品研发和制造:用于对整个研发、生产制造过程的管理和调度
电子商务:订单处理
其他 如大型内容管理系统的多步审核
5.JBPM常见场景
公文流转、行政审批、订单处理、产品研发、制造过程
其他需要多个角色协作、多步完成的活动

6.JBPM模型说明

加载流程定义:
定义工具可以系统提供,也可以只是读取定义结果
启动流程:
启动选定的流程,创建流程实例
办理任务(流程的每一步):
执行流程的每个步骤(不一定都需要人参与:自动任务节点)
记录流程的状态:
对状态的管理是工作流引擎的主要职责

7.JBPM主要概念

流程定义:预先定义的业务流转逻辑
流程实例:业务的一次实际流转过程
参与者:任务的执行者
活动(任务):组成流程定义的节点
活动实例:组成流程实例的元素
流转:从一个节点到另一个节点这一行为
工作列表:当前需要办理的任务集合
工作流引擎:工作流的核心组件,对流程实例、任务实例以及其状态进行管理

8.JBPM套件的组成

jPDL Designer:流程定义设计器,流程建模工具
jPDL Library:流程执行引擎
WebConsole:参与者和流程执行环境的交互界面,流程运行期间的监控工具

9. 使用jBPM开发工作流的一般流程

1) jBPM的运行需要数据库的支持,因此系统设计时要选定所用数据库。只要是Hibernate支持的数据库,jBPM就支持。数据库的初始化可以由jBPM自动完成,也可以通过ant generate.ddl任务生成SQL语句,在jBPM外部自己创建所需的表。

  2) 使用jPdl定义工作流,生成processdinination.xml文件。可以采用GUI工具gpdl,但目前只支持jBPM1.0,而且bug很多。XML的DTD定义文件在jBPM下载包中。

  3) Ant create.pde生成pde包的工作目录。将processdinination.xml文件和其它需要的文件放在指定的目录下,使用ant build.precess.archives生成pde包。pde包的格式采用jar。

  4) 更改pde工作目录/src/config/jbpm.properties的相关属性,主要是设定相关的数据库连接信息。注意要将数据库的JDBC驱动放在pde工作目录的lib目录下。

  5) Ant deploy.process.archives将刚才生成的pde部署到数据库。实际上就是向数据库插入一些相关数据。

6) 利用jBPM API函数开发相应的工作流程。

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、Replaced Assignee和Viewer。而具体的参与者既可以是单一用户,也可以是用户组

JBPM4_SWIMLANE泳道表。SwimLane是一种Runtime Process Role。通过SwimLane,多个Task可以一次分配到同一Actor身上

JBPM4_JOB  存放的是Timer 的定义

JBPM4_VARIABLE 存的是进行时的临时变量。

10.2历史数据库表结构

JBPM4_HIST_PROCINST 与JBPM4_HIST_ACTINST 分别存放Process Instance和Activity Instance的历史记录

JBPM4_HIST_DETAIL 保存 Variable的变更记录

JBPM4_HIST_VAR 保存历史的变量 JBPM4_HIST_TASK Task的历史信息

身份认证表结构

JBPM4_ID_GROUP ,JBPM_ID_MEMBERSHIP ,JBPM4_ID_USER 这三张表很常见,基本的权限控制,关于用户认证方面建议还是自己开发一套,组件自带的功能太简单,使用中有很多需求难以满足

除了前面述及的17张表外,还有一张引擎参数表,这是一张独立的表,在此没有单独列出

你可能感兴趣的:(6526)