我的以为直接理解工做流引擎概念有点难度,咱们能够先经过了解工做流引擎的职责再反过来理解工做流引擎,工做流引擎通常都作两件事情:java
1.定义流程,也就是给咱们提供某种规范来定义规则,以及如何定义一个流程的这种规范,同事咱们能够根据工做流引擎提供的相关概念来定义更为复杂的流程,这就是工做流引擎作的第一件事叫作定义流程。mysql
2.执行流程,也就是工做流引擎须要解释这个规则,还要负责流程,它至关于流程的调度者,监控每一个流程的执行状况,并将流程操做发往下一步,或者根据条件休眠或终止流程的这么一个过程就叫作执行流程。sql
了解完工做流引擎的这两个职责,我相信对于什么是工做流引擎必定已经有了必定的认识了,咱们在用一句稍微有点官方的话来总结一下工做流引擎,工做流引擎为咱们提供相关规则概念的定义,给咱们提供了相关的API来调用这个引擎去执行流程。流程的操做实际上就是工做流引擎提供相关的api咱们去调用它。api
上面咱们说起了常见了几个工做流框架,其中如今的Activiti和JBPM5.0以前的版本都是基于ProcessEngine 工做流引擎的工做流框架;JBPM5.0开始是基于DroolsFlow为工做流引擎的工做流框架;其中OSWorkflow是以工做流引擎命名的工做流框架,因此OSWorkflow是基于OSWorkflow工做流引擎的工做流框架;ActiveBPEL是基于工做流BPEL引擎的工做流框架…….架构
到这里关于工做流的相关概念就介绍完了,接下来咱们先了解一下咱们的主角activiti的前世此生。框架
Activiti 的创始人是 Tom Baeyens 说到Tom Baeyens 就不能不提他与jbpm的渊源。TomBaeyens 是 jBPM 的创始人,在 2002年,Tom Baeyens建立了基于状态机原理的jBPM流程引擎。jBPM通过了JBoss和Redhat公司以后,发展到了 jBPM 4。因为jBPM使用的是 GPL开源协议,而且与JBoss和Redhat公司的其余产品线结合的愈来愈紧密,对jBPM在更普遍的范围使用造成了阻碍。JBoss内部对jBPM将来版本的架构实现产生了严重的意见分歧,在2005年 Tom Baeyens离开了JBoss公司加入了Alfresco 公司,建立了使用Apache based-license V2的、独立于Alfresco产品的开源流程产品Activiti 。Activiti在2010年3月份开始启动,到了2010年12月份正式发布第一个版本,新的基于jBPM4的开源工做流系统Activiti 5.0 !因此说Activiti5是在jBPM 三、jBPM 4的基础上发展而来的,是原jBPM 的延续。ide
整个Activiti的生命周期通过了以下的几个步骤:1.流程部署 , 2.启动流程实例 , 3.执行流程对象(一个流程实例包含多执行对象) , 4.完成整个流程网站
以下就是具体代码:this
1:部署流程---bpmn方式
2:部署流程---zip方式
3:启动流程实例
4:查看流程
5:查看当前人的我的任务
6:查询流程定义
7:删除流程定义
8:完成个人任务
9:查询流程状态 (判断流程是正在执行仍是结束了)
10:查询历史任务
11:设置流程变量
12:获取流程变量