zoukankan      html  css  js  c++  java
  • JBPM数据库分析

    JBPM数据库分析

     

    持久化基础知识

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

          我们可以这样理解:

      在一定周期内保持不变就是持久化,持久化是针对时间来说的.

      数据库中的数据就是持久化了的数据,只要你不去删除或修改.

      Session会话中Session对象变量也是不变的,Session容器中持久化

      对象持久化的方式有很多种,根据周期不同有,page,Session,Application,

    对象序列化机制对于需要将对象的状态保存到文件中,而后能够通过读入对象状态来重新构造对象,恢复程序状态,

    对象序列化的过程是对象持久化的方法之一,把对象保存到文件中.

    广义上说我们需要持久化是由于内存的易失性和过于昂贵造成的。

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

           JBPM流程引擎的持久化层使用的当前流行的ORM框架hibernate,得益于hibernate的一些强大特性,导致JBPM也具有了这样的一些特性,比如通过hibernateHSQL,我们可以专注我们的业务逻辑,而不用考虑不同的数据库之间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:历史变量相关信息

     

          

          

          

     

     

     

          

                 

     

     

  • 相关阅读:
    别人好的资源路径
    是否为微信浏览器,苹果安卓判断
    iframe滚动条置顶
    hadoop之MapReduce WordCount分析
    CentOS FTP服务器权限控制
    linux之sed用法
    hdfs-over-ftp安装与配置
    mysql grant all privileges on
    Notepad++快捷键大全
    coconHashMap实现原理分析
  • 原文地址:https://www.cnblogs.com/wufengtinghai/p/2046733.html
Copyright © 2011-2022 走看看