Activiti工作流的定义部署和执行
工作流引擎
个人觉得直接理解工作流引擎概念有点难度,我们可以先通过了解工作流引擎的职责再反过来理解工作流引擎,工作流引擎一般都做两件事情:
1.定义流程,也就是给我们提供某种规范来定义规则,以及如何定义一个流程的这种规范,同事我们可以根据工作流引擎提供的相关概念来定义更为复杂的流程,这就是工作流引擎做的第一件事叫做定义流程。
2.执行流程,也就是工作流引擎需要解释这个规则,还要负责流程,它相当于流程的调度者,监控每个流程的执行情况,并将流程操作发往下一步,或者根据条件休眠或终止流程的这么一个过程就叫做执行流程。
了解完工作流引擎的这两个职责,我相信对于什么是工作流引擎一定已经有了一定的认识了,我们在用一句稍微有点官方的话来总结一下工作流引擎,工作流引擎为我们提供相关规则概念的定义,给我们提供了相关的API来调用这个引擎去执行流程。流程的操作实际上就是工作流引擎提供相关的api我们去调用它。
工作流框架与工作流引擎
上面我们提及了常见了几个工作流框架,其中现在的Activiti和JBPM5.0之前的版本都是基于ProcessEngine 工作流引擎的工作流框架;JBPM5.0开始是基于DroolsFlow为工作流引擎的工作流框架;其中OSWorkflow是以工作流引擎命名的工作流框架,所以OSWorkflow是基于OSWorkflow工作流引擎的工作流框架;ActiveBPEL是基于工作流BPEL引擎的工作流框架…….
到这里关于工作流的相关概念就介绍完了,接下来我们先了解一下我们的主角activiti的前世今生。
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 3、jBPM 4的基础上发展而来的,是原jBPM 的延续。
整个Activiti的生命周期经过了如下的几个步骤:1.流程部署 , 2.启动流程实例 , 3.执行流程对象(一个流程实例包含多执行对象) , 4.完成整个流程
如下就是具体代码:
1:部署流程---bpmn方式
2:部署流程---zip方式
3:启动流程实例
4:查看流程
5:查看当前人的个人任务
6:查询流程定义
7:删除流程定义
8:完成我的任务
9:查询流程状态 (判断流程是正在执行还是结束了)
10:查询历史任务
11:设置流程变量
12:获取流程变量
最新文章
- Swift基础语法(三)
- matlab中的卷积——filter,conv之间的区别
- Sprint(第二天11.15)
- Azure开发者任务之四:在Azure SDK 1.3中挂载调试器的错误
- html的转码玉反转码
- 使用httputils上传图片到服务器
- poj2240 最短路判环
- java建立二叉树,递归/非递归先序遍历,递归/非递归中序遍历,层次遍历
- python学习小结1:for循环控制语句
- 从算法入手讲解如何在SQL Server中实现最优最简
- J2EE综合:如何处理大数据量的查询
- NodeJS + express访问html、css、JS等静态资源文件
- JavaSE学习总结第13天_API常用对象3
- android LinearLayout等view如何获取button效果
- php面试题中的约瑟夫环
- centos6.X安装jdk
- 二维前缀和模板题:P2004 领地选择
- ActivityThread 源码分析
- 【转】Java并发编程:Thread类的使用
- Codeforces Round #113 (Div. 2) B. Polygons Andrew求凸包
热门文章
- Spring Boot + Spring Cloud 构建微服务系统(五):熔断监控面板(Hystrix Dashboard)
- vs2015+qt5.9.7配置跨平台的工程
- 通过证书请求Https站点
- MongoDB 日志切割三种方式
- css3学习--select怎么去掉默认样式
- [译]初试C# 8.0
- BizTalk 2010/2013 EDI B2B项目实践(1)
- [转]Angular——提示框
- 使用Django创建网站项目<;二>;
- LINQ 【高级查询】