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) |