什么是Activiti?
Activiti是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。Activiti基于Apache许可的开源BPM平台,创始人Tom Baeyens是JBoss jBPM的项目架构师,它特色是提供了eclipse插件,开发人员可以通过插件直接绘画出业务
流程图。
各工作流框架对比
支持DB对比
功能对比
总结:
在微服务、云计算、服务编排、LCDP等大环境下,camunda的前景优势会慢慢体现出来,作为下一代的工作流引擎,也会逐渐引起更多人的关注。
Activiti和Flowable作为传统的工作流引擎,其设计思想和理念还是很值得CRUD boy们去学习研究下的。
为什么用业务流程管理框架
比如说在学校我们会遇到请假写请假条的情况,需要经过多层的同意才能确定能不能请假。
请假的流程是:班主任->任课老师->教学总监->校长
我们作为一个学生,不可能直接跳过老师,去找校长申请请假的,请假的流程是一步一步的,并不能做跳跃,也就是当班主任没有批准请假的时候,即使你去找任课老师了,任课老师会让你回去找班主任的,作为任课老师了,只关注班主任有没有批准你请假,同理,作为校长,只关注教学总监有没有批准你请假,当教学总监还没有批准你请假时,你请假的请求是不会出现在校长的范围里的。
如果没有使用流程框架那我们需要维护一个变量,来不断传递过去给下一个处理者...如果一切正常,需求不会变,并没有条件的处理。这是我们非常希望看到的...但是,如果有条件判断,比如:请假三天以下、请假三天以上的处理方式不一样,需求会变,比如:不需要校长批准了,教学总监批准完,你就能够请假了
,那么我们的代码就会变得乱
数据库
Activiti自生成的25张数据表,都是是ACT_开头的,第二部分是表示表的用途的两个字母缩写标识,用途也和服务的API对应。
- act_hi_*:'hi’表示 history,此前缀的表包含历史数据,如历史(结束)流程实例,变量,任务等等。
- act_ge_*:'ge’表示 general,此前缀的表为通用数据,用于不同场景中。
- act_evt_*:'evt’表示 event,此前缀的表为事件日志。
- act_procdef_*:'procdef’表示 processdefine,此前缀的表为记录流程定义信息。
- act_re_*:'re’表示 repository,此前缀的表包含了流程定义和流程静态资源(图片,规则等等)。
- act_ru_*:'ru’表示 runtime,此前缀的表是记录运行时的数据,包含流程实例,任务,变量,异步任务等运行中的数据。Activiti只在流程实例执行过程中保存这些数据,在流程结束时就会删除这些记录。
通用数据(act_ge_)
流程定义表(act_re_)
运行实例表(act_ru_)
历史流程表(act_hi_)
其他表
标签:请假,前缀,Activiti,任课老师,流程,activiti,引擎,act From: https://www.cnblogs.com/1399z3blog/p/17469206.html