jbpm4 数据库结构关系图 JBPM数据库分析

持久化基础知识

     持久化( Persistence ),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的对象存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML 数据文件中等等。


我们可以这样理解:
  在一定周期内保持不变就是持久化,持久化是针对时间来说的。
  数据库中的数据就是持久化了的数据 ,只要你不去删除或修改。
  Session 会话中 Session 对象变量也是不变的,是 Session 容器中持久化
        对象持久化的方式有很多种,根据周期不同有,page,Session,Application,对象序列化机制对于需要将对象的状态保存到文件中,而后能够通过读入对象状态来重新构造对象,恢复程序状态,对象序列化的过程是对象持久化的方法之一,把对象保存到文件中。
        广义上说我们需要持久化是由于内存的易失性和过于昂贵造成的。 

JBPM 流程引擎的持久化有什么特点

      JBPM 流程引擎的持久化层使用的当前流行的 ORM 框架 hibernate ,得益于 hibernate 的一些强大特性,导致 JBPM 也具有了这样的一些特性,比如通过hibernate 的 HSQL ,我们可以专注我们的业务逻辑,而不用考虑不同的数据库之间 T-SQL 的差异,这样是 jbpm 具备一套代码,可以平滑的从不同数据库间进行更换。

      JBPM 需要持久化 基于以下特点

1、工作流作为典型的交互性应用,其必须精细控制执行过程,并记录执行的状态,在用户唤醒流程时,能够在流程持久化的那个点继续运行。同时在流程挂起时,我们将相关数据持久化,也有性能和故障恢复的考虑。

2、流程引擎的运行本身也会产生相关的对象( 流程实例、 Execution 等 ) ,需要持久化到数据库

3、流程引擎需要记录相关的业务数据

4、流程引擎需要记录相关的执行历史数据

JBPM 流程引擎的数据库结构图


各个数据表的功能简单介绍

流程部署

jbpm4_deployment:发布的记录表,通过dbid 跟后两个表进行关联。

  jbpm4_deployprop :义流程定义(ProcessDefinitionImpl) 的相关属性(keyId)

  jbpm4_lob: 保存根据流程定义 xml 形成的二进制数据(同时也保存变量 variable

值得注意的是一条 jbpm4_deployment 记录需要对应4jbpm4_deployprop 记录,他们的key 字段分别为langidpdidpdkeypdversion

  Langid 标识解析流程定义使用的 jpdl 的版本

  Pdid  流程定义的 id唯一标识一个流程

  Pdkey 流程的 key ,标识同一类流程

  Pdversion 标识流程的版本

主键生成机制表

  jbpm4_property为运行时需要持久化的对象生成dbid ,其记录当前所有对象实例的最大值,每次需要生成dbid 时,需要先获取该值,然后递增返回。

用户认证表

       JBPM 实现的用户库比较简单,我们可以实现并扩展其相关接口,并进行认证库独立

  jbpm4_id_group用户组相关信息

  jbpm4_id_membership用户组和用户的关系表

  jbpm4_id_user用户相关信息表

流程实例运行相关表

  jbpm4_execution驱动流程运行,记录流程实例运行必须的信息

  jbpm4_job作业相关

  jbpm4_participation办理人相关信息

  jbpm4_swimlane泳道相关信息

  jbpm4_task: 记录任务的相关信息

  jbpm4_variable记录传给流程的变量的相关信息 

流程历史相关

  jbpm4_hist_actinst 流程运行中执行过的节点的记录,包括TaskState 节点

  jbpm4_hist_detail历史信息的详细表,跟其他的历史表进行关联

  jbpm4_hist_procinst历史流程实例相关信息

  jbpm4_hist_task历史任务相关信息,与 jbpm4_hist_actinst 关联,单独的表减少了state 节点相应字段的空闲和空间浪费

  jbpm4_hist_var历史变量相关信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值