1、数据库设计:JBPM4.4的持久层是采用的Hibernate,大大提高了程序了移植性,和数据库进行了解耦。它通过18张表进行数据处理,我们可以通过PowerDesigner进行反向工程,导出数据物理设计图,进行查看这些表之间的结构。
表名称 | 说明 |
jbpm4_deployment | 保存部署id |
jbpm4_deployprop | 部署文件相关属性 |
jbpm4_execution | 存放当前执行信息 |
jbpm4_hist_actinst | 存放历史活动(Task、State、Fork、Join等等)信息 |
jbpm4_hist_detail | 保存流程变量的变更 |
jbpm4_hist_procinst | 保存历史流程实例 |
jbpm4_hist_task | 历史任务 |
jbpm4_hist_var | 历史变量 |
jbpm4_id_group | 组 |
jbpm4_id_membership | 用户和组的关系 |
jbpm4_id_user | 用户 |
jbpm4_job | 存放timer |
jbpm4_hist_var | 历史变量 |
jbpm4_lob | 存放流程定义的JPDL内容和流程定义图片 |
jbpm4_participation | 和用户相关 |
jbpm4_property | Id维护表 |
jbpm4_swimlane | 存放泳道 |
jbpm4_task | 存放当前任务 |
jbpm4_variable | 存放当前流程变量 |
2、核心类ProcessEngine,这是使用JBPM的外观接口,通过ProcessEngine来获取各种类,例如最重要的6个Service。其实就像Hibernate中的核心工厂SessionFactory,Ibatis的核心类sqlMapClient一样。通过此核心类来进行JBPM的各种处理。
3、核心的6个Service,当然了这6个Service都是通过核心类ProcessEngine创建的。
接口名称 | 作用 |
RepositoryService | 主要和流程定义相关,如:部署流程、删除流程、查看流程 |
ExecutionService | 和流程实例相关,启动流程 |
HistoryService | JBPM4的数据库设计发生了改变,区分了历史表和当前表,主要适合于大量流程下的使用,HistoryService主要是查询历史的 |
TaskService | 和任务相关,取得个人任务,组任务,结束任务、一参与者的完整任务=个人任务(findPersonalTasks) + 组任务(findGroupTasks) |
IdentityService | 身份相关,创建用户、创建组、主要和我们组织机构整合时用的 |
ManagementService | 管理定时任务的(job) |