1. Activiti开源框架部分

1.1 Activiti简介

Activiti是一个开源的工作流引擎,它实现了BPMN 2.0规范,可以发布设计好的流程定义,并通过api进行流程调度。
Activiti 作为一个遵从 Apache 许可的工作流和业务流程管理开源平台,其核心是基于 Java 的超快速、超稳定的 BPMN2.0 流程引擎,强调流程服务的可嵌入性和可扩展性,同时更加强调面向业务人员。
Activiti 流程引擎重点关注在系统开发的易用性和轻量性上。每一项 BPM 业务功能 Activiti 流程引擎都以服务的形式提供给开发人员。通过使用这些服务,开发人员能够构建出功能丰富、轻便且高效的 BPM 应用程序。

1.2 Activiti关键对象

1.2.1 Deployment
流程部署对象,部署一个流程时创建,主要对应数据表ACT_RE_DEPLOYMENT。
1.2.2 ProcessDefinitions
流程定义,部署成功后自动创建,流程模型部署一次生成一条流程定义,主要对应数据表ACT_RE_PROCDEF。
1.2.3 ProcessInstances
流程实例,启动流程时创建,是根据一次(一条)业务创建的,流程驱动的入口,两者之间是一对一的关系。流程引擎会创建一条数据到ACT_RU_EXECUTION表,同时也会根据history的级别决定是否查询相同的历史数据到ACT_HI_PROCINST表。
1.2.4 Task
任务,Task和Execution是一对一关系。Task可以是任何类型的Task实现,可以是用户任务(UserTask)、Java服务(JavaServiceTask)等。在实际流程运行中面向对象不同,用户任务(UserTask)需要有人为参与完成(complete),Java服务需要由系统自动执行(execution)。Task主要对应数据表ACT_RU_TASK和ACT_HI_TASKINST。
1.2.5 Execution
执行计划,即一个流程实例(ProcessInstance)具体要执行的过程对象。流程实例和流程执行中的所有节点都是一条Execution,如UserTask、ServiceTask等。

1.3 Activiti服务任务

1.3.1 RepositoryService
Activiti 中每一个不同版本的业务流程的定义都需要使用一些定义文件,部署文件和支持数据 ( 例如 BPMN2.0 XML 文件,表单定义文件,流程定义图像文件等 ),这些文件都存储在 Activiti 内建的 Repository 中。Repository Service 提供了对 repository 的存取服务,流程仓库service,用于管理流程仓库,例如部署,删除,读取流程资源。
1.3.2 RunTimeService
在Activiti中,每个流程定义被启动一次之后,都会生成相应的流程对象实例。RunTimeService提供启动流程,查询流程实例,设置获取流程实例变量等功能。此外还提供对流程部署,流程定义和流程实例存取的服务。
1.3.3 TaskService
在activiti业务流程定义的每一个执行节点被称为一个task,对流程中的数据存取,状态变更等操作都需要在task中完成。TaskService提供了对用户task和form的相关操作。提供了运行时任务的查询、领取、完成、删除以及变量设置等功能。
1.3.4 IdentityService
Activiti内置了用户以及用户组的概念以及功能,必须使用用户或者用户组才能获取到相应的task。IdentityService提供了对用户和用户组的管理功能。
1.3.5 HistoryService
主要用于获取正在运行或者已经运行结束的流程实例信息,与RunTimeService获取的流程信息不同,历史信息包含已经持久储存化的信息,并已经针对查询做出优化。
1.3.6 FormService
Activiti中的流程和状态Task均可关联相关的业务数据,通过FormService可以存取启动和完成任务所需的表单数据并根据需要来渲染表单。
1.3.7 ManagementService
ManagementService提供对流程引擎的管理和维护的功能,这些功能不在工作流驱动的应用程序中使用,主要运用activiti的日常维护。

1.4 初始数据库

表分类

表名

含义

通用配置

ACT_GE_BYTEARRAY

通用的流程定义和流程资源

ACT_GE_PROPERTY

系统相关属性

流程历史记录

ACT_HI_ACTINST

历史的流程实例

ACT_HI_ATTACHMENT

历史的流程附件

ACT_HI_COMMENT

历史的说明性信息

ACT_HI_DETAIL

历史的流程运行中的细节信息

ACT_HI_IDENTITYLINK

历史的流程运行过程中用户关系

ACT_HI_PROCINST

历史的流程实例

ACT_HI_TASKINST

历史的任务实例

ACT_HI_VARINST

历史的流程运行中的变量信息

用户用户组表

ACT_ID_GROUP

身份信息-组信息

ACT_ID_INFO

用户扩展信息

ACT_ID_MEMBERSHIP

身份信息-用户和组关系的中间表

ACT_ID_USER

身份信息-用户信息

流程定义表

ACT_RE_DEPLOYMENT

部署单元信息

ACT_RE_MODEL

模型信息

ACT_RE_PROCDEF

已部署的流程定义

运行实例表

ACT_RU_EVENT_SUBSCR

运行时事件

ACT_RU_EXECUTION

运行时流程执行实例

ACT_RU_IDENTITYLINK

运行时用户关系信息

ACT_RU_JOB

运行时作业

ACT_RU_TASK

运行时任务

ACT_RU_VARIABLE

运行时变量表

其他

ACT_EVT_LOG

事件日志表

ACT_PROCDEF_INFO

流程定义扩展表