Activiti工作流学习经验总结(一)
什么是工作流?
工作流指通过计算机对业务流程进行自动化管理,实现多个参与者按照预定义的流程去自动执行业务流程。
什么是Activiti?
Activiti 是一个开源架构的工作流引擎,基于bpmn2.0 标准进行流程定义。其前身是JBPM,Activiti 通过嵌入到业务系统开发中进行使用。
1、工作流生命周期一个完整的工作流生命周期会经过以下 5 个阶段,并迭代循环:
2、如下图具体各阶段解释说明:
3、什么是BPMNBPMN 是 Business Process Modeling Notation 的简称,即业务流程建模与标注。BPMN 定义了一个业务流程图,这个流程图被设计用于创建业务流程操作的图形化模型 。 而一个业务流程模型( Business Process Model ),指一个由图形对象( graphical objects )组成的网状图,图形对象包括活动(activities) 和用于定义这些活动执行顺序的流程控制器( flow controls ) 。
4、Activiti 具备的主要特性
集成MyBatis框架
Activiti 的设计思想是简洁 、 快速 。 所以它选择了MyBatis 作为数据持久层框架,从而可以通过最优的 SQL 语句执行 Command ,仅凭如此就能让引擎在速度上保持最高的性能 。
Activiti的服务接口
Activiti 提供了 7 个服务接口,都通过 ProcessEngine 来获取,并且支持链式编程风格:
流程设计器
与 jBPM 类似,Activiti 也提供了基于 Eclipse 的流程设计器 —— Eclipse Designer。 此外还有 Signavio 公司为 Activiti 定制的基于 Web 的 流程设计器 —— Activiti Modeler。
原生支持 Spring
Activiti 可以很容易与 Spring 集成,这对于管理事务和解析表达式来说,非常方便。
分离运行时数据与历史数据
这一特性与 jBPM4 的设计理念一脉相承。这样的设计架构使得引擎可以快速地读取运行时数据,只有在需要时才会从历史表中查询历史数据。 这样可以极大地提高数据的存取效率。
5、Activiti的架构大致如下图: