目录
介绍:
Activiti是什么🐾
Activiti是一个针对企业用户、开发人员、系统管理员的轻量级工作流业务管理平台,其核心是使用Java开发的快速、稳定的BPMN2.0流程引擎。Activiti是在ApacheV2许可下发布的,可以运行在任何类型的Java程序中,如:服务器、集群、云服务等。Activiti可以完美的与Spring集成,是基于简约的设计思想而创建。
Activiti的特点
- 数据持久化:Activiti设计思想是简洁与快速。一般情况下系统的瓶颈主要就体现在应用和数据库的交互上,针对这种情况Activiti选择了使用Mybatis,而通过最优SQL语句执行Command。
- 引擎Service接口:Activiti引擎提供了七大Service接口,都是通过ProcessEngine获取,同时支持链式API编程风格。
Service接口 | 作用 |
---|---|
RuntimeService | 流程仓库Service,用于管理流程仓库,如:部署、删除、读取流程资源 |
IdentifyService | 身份Service,可管理和查询用户、组之间的关系 |
TaskService | 运行时Service,处理所有正在运行的任务和流程实例等 |
RepositoryService | 任务Service,用于管理查询任务,如签收、办理、指派等 |
FormService | 表单Service,用于读取和任务、流程相关的表单数据 |
HistoryService | 历史Service,可查询所有历史数据 |
ManagementService | 引擎管理Service,和具体业务无关,可用查询引擎配置、数据库、作业等 |
- 流程设计器:Activiti团队设计了基于BPMN2.0规范的设计器-Eclipse Designer,除此还有Signavio公司为Activiti定制的基于Web的Activiti Modeler流程设计器。
- 原生支持Spring:当前企业开发,基本上都会基于Spring去开发自己的系统,由于Activiti原生支持Spring,所以很轻松地进行Spring集成。
- 分离运行时与历史数据:运行与历史数据的分离,可以加快运行时数据的性能,当需要历史数据时,我们在去查询。
Activiti的应用
- 在系统集成方面:与ESB整合 / 与规则引擎整合 / 嵌入已有系统平台(也是本项目的需求)
- 在其他产品中应用:Alfresco公司的ECM产品在企业中应用,主要涉及文档管理 / 协作 / 记录管理 / 知识库管理 / Web内容管理等。
Activiti框架与组件
Activiti最重要的就是引擎,除此之外就是外部的工具和组件。
Modeling | Runtion | Management |
---|---|---|
Activiti Modeler | Activiti Exproler | |
Activiti Designer | Activiti Engine | Activiti REST |
Activiti Kickstart |
下面对以上组件进行简单的说明:
- Activiti Engine:最核心的模块,提供针对BPMN2.0规范的解析 / 执行 / 创建 / 管理(任务-流程实例) / 查询历史记录并生成相应报表等。
- Activiti Modeler:模型设计器,非Activiti公司开发。用于将需求转换为规范流程定义。
- Activiti Designer:设计器,与Activiti Modeler功能类似。
- Activiti Exproler:用来管理仓库 / 用户 / 组,启动流程 / 任务办理等。
- Activiti REST:提供REST风格的服务,允许客户端以JSON的方式与引擎的REST API交互,协议具有跨平台 / 跨语。