持久化基础知识
持久化(
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,全称Java Business Process Management,是一个开源的工作流管理系统,用于管理和执行业务流程。在JBPM6中,默认使用H2内存数据库进行存储,但实际生产环境中,我们通常会选择...
jbpm 数据库表介绍 jbpm 是一个基于 Java 的 workflow 引擎,用于管理和执行业务流程。jbpm 需要持久化流程部署、...了解 jbpm 的数据库表结构能够帮助开发者更好地理解和使用 jbpm,实现更加复杂的业务流程管理系统。
jbpm数据库中的表结构是理解其工作原理的关键。以下是对jbpm数据库表结构的详细解析: 1. **JBPM4_DEPLOYMENT**:这是流程定义表,记录了部署到jbpm中的所有流程定义。DBID字段作为主键标识每个流程模版,NAME_CLOB...
### jbpm4.3数据库表结构详解 #### 1. JBPM4_DEPLOYMENT - 流程定义表 此表存储了所有部署到系统中的流程模板的信息。每一行代表一个独立的流程模板。 - **DBID_**: `NUMBER(19)` 类型,主键,非空。该字段唯一...
### JBPM数据库表结构详解 #### 一、概述 JBPM是Java Business Process Model的缩写,是一款开源的工作流引擎,用于实现业务流程管理和自动化的工具。JBPM的设计旨在简化复杂的业务流程,使得非技术人员也能够理解...
jBPM4.4数据库表简单介绍
### 二、JBPM与数据库的关系 在JBPM中,所有的流程实例、任务、变量等信息都需要存储在数据库中。因此,在使用JBPM之前,需要先创建一个专门用于存储这些数据的数据库。这一步骤对于确保JBPM的正常运行至关重要。...
"JBPM4_has_comment.pdm" 文件很可能是以PDM(Physical Data Model)格式存在的数据库模型文件,这种格式通常用于描述数据库的物理结构,包括表、列、索引和关系。在这个文件中,用户可以找到每个表的详细信息,包括...
理解这些数据库表的字段和逻辑关系对于开发、维护和优化基于JBPM的工作流系统至关重要。通过有效的数据库设计,JBPM能够高效地处理流程实例的生命周期,包括启动、执行、分支、合并、结束等各个阶段,并且支持灵活的...
jbpm数据库关系图,jbpm数据库关系图,jbpm数据库关系图
- **主要内容**: 如流程图图片、XML定义文件等。 - **注意事项**: 在部署流程或更新流程定义时,该表会有新的记录添加。 ##### 9. **JBPM4_SWIMLANE** — 泳道表 - **作用**: 管理泳道信息。 - **主要内容**: 泳道...
jbpm数据库记录了这些状态变化,使得可以跟踪和分析流程执行的过程。 6. **持久化与事务管理** jbpm使用JPA(Java Persistence API)来实现数据库的持久化操作,确保在流程执行过程中数据的一致性和完整性。同时,...
了解JBPM数据库表的关系对于有效使用和维护JBPM系统至关重要。以下将详细阐述这些表及其相互关系。 1. **流程配置类数据库表**: - **JBPM_ACTION**: 存储流程中的动作信息,如任务分配、通知等。 - **JBPM_...
**jbpm数据库说明** jbpm(Java Business Process Management)是一个开源的工作流管理系统,它提供了流程定义、执行、监控和管理的全面解决方案。jbpm的核心功能包括业务流程建模、执行和跟踪,以及与应用程序集成...
在JBPM4中,数据库表结构对于系统的正常运行至关重要,它们存储了流程定义、流程实例、活动实例以及历史记录等关键信息。以下是部分核心表结构的详细说明: 1. **JBPM4_DEPLOYMENT**(流程定义表): - DBID:唯一...
jbpm数据库数据是jbpm系统运行过程中产生的各种数据,包括流程定义、任务实例、变量、事件等,这些数据对于系统的正常运行至关重要。 在jbpm中,流程定义(Process Definition)是描述业务流程的蓝图,它定义了流程...
### JBPM4.3数据库说明书知识点解析 #### 一、JBPM4简介 JBPM4作为一款当前最为...通过以上分析可以看出,JBPM4的数据库设计充分考虑了流程定义、执行和历史记录的需求,为开发者提供了强大且灵活的工作流管理能力。
JBPM采购申请系统——05_构建JBPM数据库.7z JBPM采购申请系统——05_构建JBPM数据库.7z JBPM采购申请系统——05_构建JBPM数据库.7z JBPM采购申请系统——05_构建JBPM数据库.7z JBPM采购申请系统——05_构建JBPM...