jbpm数据库说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
jBPM,全称是Java Business Process Management,是一种基于J2EE 的轻量级
工作流管理系统。
一、介绍下大背景工作流的应用市场部分内容就不提了。
首先提一下目前工作流域
的两种主流方向
1、workflow 。
代表osworkflow 等。
workflow 的特点为:其主要侧重于对流程的处理模型方面,也就是说它关注的重心是流程的处理
2、BPM商业逻辑流程模型
BPM的重心为商业逻辑流程模型的处理
其中以JBPM为代表
这是两者最大的区别,也就是切入点不同。
不过对我们实际应用来说,选哪个区别都不是很大说到工作流就要提到WFM组织,这个组织是国际上一些厂商组成的一个工作流的组织,该组织给出了一个他们自己定义的工作流的定义,及XPDL语义。
该定义将工作流的定义包括为至少以下五部分内容:
1、工作流过程活动
2、转移信息
3、参与者声明
4、外部应用程序声明
5、相关数据
并给出了标准的语法来描述上述元数据
1:workflow process
2:activity
3:transition
4:application
5:date field
由于JBPM不符合上述语法定义,因此JBPM是不符合该WFM规范的不过上述每部分内容在JBPM都有自己的定义来描述
二、JBPM流程的一个基本的处理步骤
1、加载(发布)流程定义
2、启动流程
3、处理任务
4、记录流程的相关状态
1、加载(发布)流程定义
这个意思是,我们通过jbpm 的designer 插件,或者是用其他工具,制定出processDefinition (可以是String ,可以是包文件,也可以是流数据等),然后将其加载到应用中的过程。
这个加载可以是写入内存中,或者是直接
写入数据库等
2、启动流程
即processDefinition.createProcessInstance() ,创建流程实例的过程。
具体创建实例的方法有多种,可根据自己的需要自行选择。
3、处理任务
在流程流转的过程中,JBPM引擎会为我们生成任务的实例,我们就需要针对这些
任务实例来进行处理,然后结束这些任务实例,并推动流程的流转
4、记录流程的相关状态
记录流程状态这点包括且不限于以下内容:
1)流程实例的开启
2)任务实例的创建
3)任务实例的开始执行
4)任务实例的结束
5)流程实例的结束
三、JBPM工作流的主要概念
1、流程定义(process definition): 预先定义的业务逻辑
2、流程实例(process instance): 业务的实际流转过程
3、参与者(actor): 任务的参与者(可能是人也可能是角色或是组织等)
4、任务(task): 业务逻辑上,会呈现给参与者处理的元素
5、任务实例(task instance): 业务实际流转过程中,生成的需要参与者进行参与的实际内容
6、流转(transition): 连接业务逻辑不同节点的桥梁,也是业务实例进行流转的依据
7、工作流引擎(engine): 核心组件,负责生成流程运行时的各种实例及
数据,以及监视和管理流程的运行
8、工作列表: 根据实际应用的需求,需要展示给参与者的任务实例列
表// 待办任务列表为其最具代表性的例子
jBPM是公开源代码项目,它使用要遵循Apache License。
jBPM在2004年10 月18日,发布了2.0版本,并在同一天加入了JBoss,成为了JBoss企业中间件平台的一个组成部分,它的名称也改成JBoss jBPM。
随着jBPM加入JBoss 组织,jBPM也将进入一个全新的发展时代,它的前景是十分光明的。
jBPM 最大的特色就是它的商务逻辑定义没有采用
目前的一些规范,如WfMC s XPDL, BPML, ebXML, BPEL4WS,而是采用了它自己定义的JBoss jBPM Process definition language (jPdl) 。
jPdl 认为一个商务流程可以被看作是一个UML犬态图。
jPdl就是详细定义了这个状态图的每个部分,如起始、结束状态,状态之间的转换等。
jBPM的另一个特色是它使用Hibernate来管理它的数据库。
Hibernate是目前
Java领域最好的一种数据持久层解决方案。
通过Hibernate , jBPM将数据的管理职能分离出去,自己专注于商务逻辑的处理。
1流程配置类数据库表:
1.1JBPM_PROCESSDE FINITION :流程模版表
1.2 JBPM_NODE :流程节点表
1.3JBPM_TRANSITION :流程迁移表
1.4JBPM ACTION :流程动作表
1.5JBPM_EVENT :流程事件表
流程事件所在的图形节点类 型
"K" : TaskNode"
1.6 JBPM_DELEGATION :流程代理类表(用于实 例化jbpm 中的action 类)
TYPE_
GRAPHELEMENT_ PROCESSDEFINITION NODE_ TRANSITION TASK_
流程事件所在的图形节点的
ID
流程事件所属流程定义,对应
JBPM_PROCESSDEFINITION
流程事件所属节点,对应
JBPM_NODE
流程事件所属迁移,对应
JBPM_ TRANSITION
流程事件所属任务,对应
1.7 JBPM TASK :流程任务表
1.8JBPM_TASKCONTROLLER :流程任务控制器
1.9JBPM VARIABLEACCESS :流程变量表
1.10J BPM_MODULEDEFINITION :流程模块定义表
1.11JBPM_EXCEPTI0NHANDLER :流程异常处理
器表
:DECISION 1.12 JBPM_DECISIONCONDITION
节点判断条件表
1.13 JBPM_ SWINLANE
: DECISION 节点判断条
件表
2流程运行类数据库表:
2.1 J BPM_PROCESSINSTANCE :流程实例表
2.2J BPM_TOKEN :流程TOKEN 表
2.3 JBPM_LOG :流程日志表
INDEX_ DATE TOKEN PARENT_
CHILD_
MESSAGE. EXCEPTION A: Action Log
B: ByteArrayUpdateLog
C: CompositeLog
D: VariableDeleteLog E: DateUpdateLog
F:
Hiber nateStr in gUpdateLog
G: Lon gUpdateLog
I:
ProcessI nsta nceCreateLog
L: DoubleUpdateLog
M: MessageLog
N: NodeLog
O: Toke nCreateLog
P: ProcessLog
R: VariableCreateLog S:
Sign alLog
T: Transition Log
U: Strin gUpdateLog
V: VariableLog |
W: VariableUpdateLog X:
Process In sta nceE ndLog
Y: Toke nEn dLog ~|
0: TaskLog
1: TaskCreateLog
2: TaskAssig nLog
3: TaskE ndLog
4: Swimla neLog |
5: Swimla neCreateLog
6: Swimla neAssig nLog
?
日志产生时间
日志所属TOKEN
日志的父日志,对应
JBPM_LOG
创建的子TOKEN,对应
Toke nCreateLog |
结束的子TOKEN,对应TokenEndLog
消息信息,当日志类型为M (MessageLog )时使用日志异常信息,对应
Action Log
2.4 JBPM_RUNTIMEACTION :流程实时ACTION 表
"A" : Task
"C"
:Processstate "D" :Decision"
"E"
:EndState" "F" :Fork" "J" :Join" "K" :TaskNode" "N" :Node"]
"P"
:ProcessDefi niti on" "R" :StartState" "S" :State"
"T"
:Tran siti on" "U" :SuperState"
2.5 J BPM_VARIABLEINSTANCE :流程变量实例
表
GRAPHELEMENT_ PROCESSINSTANCE_
ACTION
PROCESSINSTANCEINDEX
实时ACTION 所在的图形 节点的ID
实时ACTION 所在的流程' 实例,对应
JBPM PROCESSINSTANCE1 实时ACTION 对应的 ACTION ,对应
JBPM ACTION
?
NAME
TYPE_ CONVERTER. TOKEN TOKENVARIABLEM AP PROCESSINSTANC EINDEX PROCESSINSTANC org.jbpm.c on text.exe.variablei nsta nce.Hibe rn
ateL ongln sta nee
I :
org.jbpm.c on text.exe.variablei nsta nce.Hibe rn
ateStri ngln sta nee
L :
org.jbpm.c on text.exe.variable in sta nce.L ong
In sta nee
S
:
org.jbpm.c on text.exe.variablei nsta nce.Stri
ngln sta nee
N :
org.jbpm.c on text.exe.variablei nsta nce.Null
In sta nee
变量名称
?
数值转换器
变量所在的TOKEN,对应JBPM_T O KEN该变量所属的TOKEN的变量映射,对应JBPM TOKENVARIABLEMAP
?
变量所在的流程实例,对应
E JBPM PROCESSINSTANCE BYTEARRAYVALUE当流程变量是ByteArray类型时,变量的值,对
DATEVALUE DOUBLEVALUE LONGIDCLASS_ 应JBPM_BYTEARRAY
当流程变量是DATE类型时,变量的值当流程变量是DOUBLE类型时,变量的值
当流程变量是了HibernateLonglnstanee类型时, 变量的类型
LONGVALUE_ STRINGIDCLASS_ STRINGVALUE_ TASKINSTANCE_ 当流程变量是了HibernateLonglnstance/Long 类型时,变量的值
当流程变量是了HibernateStringlnstanee 类型时,变量的类型
当流程变量是了
HibernateStringlnstance/String 类型时,变量的值
变量所在的任务实例,对应
JBPM TASKINSTANCE
2.6 JBPM COMMENT :流程备注信息表
2.7 JBPM_MESSAGE :流程异步消息表
TRANSITIONNAME—?
2.8 JBPM_TIMER :流程定时器表
2.9 JBPM_TOKENVARIABLEMAP :流程TOKEN 变量MAP 表
2.10J BPM_MODULEINSTANCE :流程模块实例表
2.11 JBPM_BYTEARRAY :文件模块形式的流程变
量实例表
2.12 JBPM BYTEBLOCK
业务系统乡级审較(廩〕。