Activiti工作流学习经验总结(一)

什么是工作流?

工作流指通过计算机对业务流程进行自动化管理,实现多个参与者按照预定义的流程去自动执行业务流程。

什么是Activiti?

Activiti 是一个开源架构的工作流引擎,基于bpmn2.0 标准进行流程定义。其前身是JBPM,Activiti 通过嵌入到业务系统开发中进行使用。

1、工作流生命周期一个完整的工作流生命周期会经过以下 5 个阶段,并迭代循环:

9fe4b4f235da83d2e953f6e3377a4b53.png

2、如下图具体各阶段解释说明:

e3a4d95f0de41c622b226c5d81029d16.png

3、什么是BPMNBPMN 是 Business Process Modeling Notation 的简称,即业务流程建模与标注。BPMN 定义了一个业务流程图,这个流程图被设计用于创建业务流程操作的图形化模型 。 而一个业务流程模型( Business Process Model ),指一个由图形对象( graphical objects )组成的网状图,图形对象包括活动(activities) 和用于定义这些活动执行顺序的流程控制器( flow controls ) 。

bf505b8a41f3607c8d9184de1ce6ec6b.png

4、Activiti 具备的主要特性

集成MyBatis框架

Activiti 的设计思想是简洁 、 快速 。 所以它选择了MyBatis 作为数据持久层框架,从而可以通过最优的 SQL 语句执行 Command ,仅凭如此就能让引擎在速度上保持最高的性能 。

Activiti的服务接口

Activiti 提供了 7 个服务接口,都通过 ProcessEngine 来获取,并且支持链式编程风格:

2ffbe3262fa65849e91e4789405381ec.png

流程设计器

与 jBPM 类似,Activiti 也提供了基于 Eclipse 的流程设计器 —— Eclipse Designer。 此外还有 Signavio 公司为 Activiti 定制的基于 Web 的 流程设计器 —— Activiti Modeler。

原生支持 Spring

Activiti 可以很容易与 Spring 集成,这对于管理事务和解析表达式来说,非常方便。

分离运行时数据与历史数据

这一特性与 jBPM4 的设计理念一脉相承。这样的设计架构使得引擎可以快速地读取运行时数据,只有在需要时才会从历史表中查询历史数据。 这样可以极大地提高数据的存取效率。

5、Activiti的架构大致如下图:

0cc63075c662e0afc09fc8c363bca88a.png
b4366d00d90ea58c3b1786721403b3e6.png
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐