持久化基础知识
持久化( 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) 的相关属性 (key 、 Id 等 )
jbpm4_lob: 保存根据流程定义 xml 形成的二进制数据(同时也保存变量 variable )
值得注意的是一条 jbpm4_deployment 记录需要对应 4 条 jbpm4_deployprop 记录,他们的 key 字段分别为langid , pdid , pdkey , pdversion
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 :流程运行中执行过的节点的记录,包括 Task 和 State 节点
jbpm4_hist_detail :历史信息的详细表,跟其他的历史表进行关联
jbpm4_hist_procinst :历史流程实例相关信息
jbpm4_hist_task :历史任务相关信息,与 jbpm4_hist_actinst 关联,单独的表减少了
state 节点相应字段的空闲和空间浪费
jbpm4_hist_var :历史变量相关信息
分享到:
相关推荐
jbpm创建数据库jbpm创建数据库jbpm创建数据库jbpm创建数据库jbpm创建数据库jbpm创建数据库jbpm创建数据库jbpm创建数据库jbpm创建数据库
jbpm 数据库jbpm 数据库jbpm 数据库jbpm 数据库jbpm 数据库
jbpm4.3数据库表结构明细,希望能给你带来帮助
如何将原有的H2数据库修改为指向mysql或者postgresql数据库。附实例
jbpm数据库系统表结构明细,详细说明jbpm的系统的表的功能。各表之间的关系。
jbpm数据库关系图,jbpm数据库关系图,jbpm数据库关系图
深入学习jbpm的资料,可以从最基础的数据库表结构开始
jbpm数据结构及其数据库表的详细字段,以及jbpm的Id的产生原理
JBPM数据库表结构,欢迎大家使用。 JBPM数据库表结构,欢迎大家使用。 JBPM数据库表结构,欢迎大家使用。
jbpm数据库表介绍,击杀跑了jbpm4.4所使用的数据库表关系 字段 作用
JBPM创建数据库,流程定义以及发布学习笔记
jBPM4.4数据库表简单介绍
4、数据库逻辑关系: 5 4.1 资源库与运行时的表: 5 4.2 历史数据表: 6 5、表结构: 7 5.1表JBPM4_DEPLOYMENT 7 5.2 表JBPM4_DEPLOYPROP 7 5.3 表JBPM4_EXECUTION 8 5.4 表JBPM4_HIST_ACTINST 9 5.5 表JBPM4_HIST_...
有关jbpm4的表结构的说明,有表结构图和相关的描述
jbpm4表结构模型jbpm4表结构模型jbpm4表结构模型jbpm4表结构模型
JBPM采购申请系统——05_构建JBPM数据库.7z JBPM采购申请系统——05_构建JBPM数据库.7z JBPM采购申请系统——05_构建JBPM数据库.7z JBPM采购申请系统——05_构建JBPM数据库.7z JBPM采购申请系统——05_构建JBPM...
这东西很少见啊,共享给大家,是jbpm4的数据库表sql脚本,不知道怎么建库的朋友可以参考。
经过我修正的JBPM4.4数据库mysql5.5建表SQL命令,共18张表
JBPM4的表结构说明,自己整理的DOC格式的文档。 包含了JBPM4所有表的表结构注释。 BPM4是一种基于Java语言的开源工作流/业务流程管理框架(Framework),它主要包括工作流引擎(WorkflowEngine)和基于Eclipse平台...
jbpm3.2.3数据库表的详细说明 倏然4.x出来了,但是学用3.x的还有吧