一、什么是Activiti

Activiti是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理,工作流,服务协作等领域的一个开源,灵活的,易扩展的可执行流程语言框架。

二、其它工作流框架介绍

JBPM

JBPM由JBoss公司开发,目前最高版本JPBM7,不过从JBPM5开始已经跟之前不是同一个产品了,JBPM5的代码基础不是JBPM4,而是从Drools Flow重新开始。下面要涉及的很多产品都是以JBPM4的代码为起点进行开发的。

Flowable

Flowable基于activiti6,最新的开源版本是flowable6,开发团队是从activiti中分裂出来的,修复了一众activiti6的bug,并在其基础上研发了DMN支持,BPEL支持等等。相对开源版,其商业版的功能会更强大。

Camunda

Camunda基于activiti5,所以其保留了PVM,最新版本Camunda7,开发团队也是从activiti中分裂出来的,发展轨迹与flowable相似,同时也提供了商业版。

osworkflow

osworkflow完全用java语言编写的开放源代码的工作流引擎,具有显著的灵活性及完全面向有技术背景的用户的特点。由opensymphony组织维护,其不遵守XPDL等业务规范,完全使用XML编排业务。面向开发人员。

三 、7大核心接口

接口 描述
RepositoryService 提供一系列管理流程部署和流程定义的API
RuntimeService 在流程运行时对流程实例进行管理与控制
TaskService 对流程任务进行管理,例如任务提醒、任务完成和创建任务等
IdentityService 提供对流程角色数据进行管理的API,这些角色数据包括用户组、用户及它们之间的关系
ManagementService 提供对流程引擎进行管理和维护的服务
HistoryService 对流程的历史数据进行操作,包括查询、删除这些历史数据
FormService 表单服务

1

四、28张表

数据表分类 描述 对应服务
ACT_GE_* 通用数据表
ACT_RE_* 流程定义存储表 RepositoryService
ACT_ID_* 身份信息表 IdentityService
ACT_RU_* 运行时数据表 RuntimeService、TaskService
ACT_HI_* 历史数据表 HistoryService
  • 流程部署相关表 act_re_deployement 部署对象表
    act_rep_procdef 流程定义表
    act_ge_bytearray 资源文件表
    act_ge_prperty 主键生成策略表(对于部署对象表的主键ID)

  • 流程实例相关表 act_ru_execution 正在执行的执行对象表(包含执行对象ID和流程实例ID,如果有多个线程可能流程实例ID不一样)
    act_hi_procinst 流程实例历史表
    act_hi_actinst 存放历史所有完成的任务

  • Task 任务相关表 act_ru_task 代办任务表 (只对应节点是UserTask的)
    act_hi_taskinst 代办任务历史表 (只对应节点是UserTask的)
    act_hi_actinst 所有节点活动历史表 (对应流程的所有节点的活动历史,从开始节点一直到结束节点中间的所有节点的活动都会被记录)

  • 流程变量表 act_ru_variable 正在执行的流程变量表
    act_hi_variable 流程变量历史表