Activiti工作流基本理解以及生命周期

基础知识
工作流: 
可以认为是一系列的规范流程,让业务按照拟定的规则处理和运转,本质上是一系列逻辑相关的活动的集合。例如某校学生申请奖学金这一业务,必须按照“学生申请→辅导员审批→学生处审批→教务处审批”这一流程运转,也就是“学生申请”、“辅导员审批”、“学生处审批”以及“教务处审批”这些活动的集合。最原始的时候,在系统中完成这样的功能,需要通过一系列的独立活动页面以及修改数据库中的一些标记状态来实现任务的流转的,这样的做法在开发和维护上都是十分困难的,新增任务结点,网关判断,添加处理人员都十分繁琐,之后就有了工作流引擎。

Activiti 6.0 架包

查看Activiti引擎的架包如图所示,可以发现其主要包含两个部分:db以及engine。

Activiti 工作流生命周期
在Activiti中,工作流的生命周期主要包含以下几个方面:

设计流程模型,生成流程资源
根据流程模型生成流程定义
配置工作流人员
根据流程定义启动流程生成流程实例
流程实例由一系列任务实例构成,任务自动流转
修改流程模型,发布新的流程版本优化流程
 

相对的,engine中主要是相关的接口及其实现。Activiti引擎有七大Service接口:

RepositoryService:流程仓库Service,用于管理流程仓库,例如部署,删除,读取流程资源; 
IdentifyService:身份Service,可以管理和查询用户、组之间的关系; 
RuntimeService:运行时Service,可以处理所有正在运行状态的流程实例、任务等; 
TaskService:任务Service,用于管理、查询任务,例如签收,办理,指派等; 
FormService:表单Service,用于读取和流程、任务相关的数据表单; 
HistoryService:历史Service,可以查询所有历史数据,例如流程实例、任务、活动、变量、附件等; 
ManagementService:引擎管理Service,和具体业务无关,主要是可以查询引擎配置、数据、作业等。 
以上的Service接口都是Activiti封装好的,底层实现都是通过Mybatis转化为对28张表的操作,应用程序中经常会用到以上的Service,功能十分强大。


总结

Activiti工作流引擎能够很好的管理工作流,实现流程的自动驱动。它提供了7大Service接口已满足开发需求,底层是通过Mybatis对28张表操作而实现。 

猜你喜欢

转载自blog.csdn.net/qq_39326137/article/details/88763163
今日推荐