当前位置:文档之家› jbpm数据库说明

jbpm数据库说明

jBPM,全称是Java Business Process Management,是一种基于J2EE 的轻量级工作流管理系统。

一、介绍下大背景工作流的应用市场部分内容就不提了。

首先提一下目前工作流域的两种主流方向1、workflow 。

代表osworkflow 等。

workflow 的特点为:其主要侧重于对流程的处理模型方面,也就是说它关注的重心是流程的处理2、BPM商业逻辑流程模型BPM的重心为商业逻辑流程模型的处理其中以JBPM为代表这是两者最大的区别,也就是切入点不同。

不过对我们实际应用来说,选哪个区别都不是很大说到工作流就要提到WFM组织,这个组织是国际上一些厂商组成的一个工作流的组织,该组织给出了一个他们自己定义的工作流的定义,及XPDL语义。

该定义将工作流的定义包括为至少以下五部分内容:1、工作流过程活动2、转移信息3、参与者声明4、外部应用程序声明5、相关数据并给出了标准的语法来描述上述元数据1:workflow process2:activity3:transition4:application5: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 LogB: ByteArrayUpdateLogC: CompositeLogD: VariableDeleteLog E: DateUpdateLogF:Hiber nateStr in gUpdateLogG: Lon gUpdateLogI:ProcessI nsta nceCreateLogL: DoubleUpdateLogM: MessageLogN: NodeLogO: Toke nCreateLogP: ProcessLogR: VariableCreateLog S:Sign alLogT: Transition LogU: Strin gUpdateLogV: VariableLog |W: VariableUpdateLog X:Process In sta nceE ndLogY: Toke nEn dLog ~|0: TaskLog1: TaskCreateLog2: TaskAssig nLog3: TaskE ndLog4: Swimla neLog |5: Swimla neCreateLog6: Swimla neAssig nLog?日志产生时间日志所属TOKEN日志的父日志,对应JBPM_LOG创建的子TOKEN,对应Toke nCreateLog |结束的子TOKEN,对应TokenEndLog消息信息,当日志类型为M (MessageLog )时使用日志异常信息,对应Action Log2.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_ACTIONPROCESSINSTANCEINDEX实时ACTION 所在的图形 节点的ID实时ACTION 所在的流程' 实例,对应JBPM PROCESSINSTANCE1 实时ACTION 对应的 ACTION ,对应JBPM ACTION?NAMETYPE_ CONVERTER. TOKEN TOKENVARIABLEM AP PROCESSINSTANC EINDEX PROCESSINSTANC org.jbpm.c on text.exe.variablei nsta nce.Hibe rnateL ongln sta neeI :org.jbpm.c on text.exe.variablei nsta nce.Hibe rnateStri ngln sta neeL :org.jbpm.c on text.exe.variable in sta nce.L ongIn sta neeS:org.jbpm.c on text.exe.variablei nsta nce.Stringln sta neeN :org.jbpm.c on text.exe.variablei nsta nce.NullIn 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 TASKINSTANCE2.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业务系统乡级审較(廩〕。

相关主题