首页 > 编程知识 正文

activiti工作流原理,开源流程引擎 工作流

时间:2023-05-05 09:52:34 阅读:115052 作者:4747

摘要Activiti是一个以Java编写的开源工作流引擎,它可以运行BPMN 2.0中所述的业务流程。 Activiti是Alfresco的Alfrescoprocessservices(APS )的基础,Alfresco是Activiti项目的主要赞助商。

本文旨在帮助读者了解Activiti的工作原理并快速访问框架。 本文简要介绍了Activiti工作流引擎。

1、为什么要使用工作流引擎

2、BPMN2.0规范介绍

3、开源BPMN项目比较

1 .为什么使用工作流引擎假设存在需要维护的付款单状态? 其状态图如下。

其状态转变从左向右,名字很清楚。 另外,没有处理角色的概念。 在这种情况下,您只需要使用代码来控制状态的流程,而无需使用框架。

让我们看看另一个情景。 假设有企业内的订单。 其状态图如下。

此采购订单的状态复杂多样,状态转换不稳定性强,可以随时增加新状态,而且处理人员因状态而异,存在权限管理功能,因此此时使用状态字段维持状态更改一定很困难。

工作流引擎就是为了解决这些问题而产生的,您可以通过观察当前实体(如付款和采购订单)是否具有以下特性来确定是否需要部署工作流引擎:

状态的个数及其稳定性、个数多且不稳定,适合工作流引擎的使用。

各状态的处理者,处理者的作用多且不稳定,适合工作流引擎的使用。

工作流引擎实际上是扩大了状态管理的功能,根据基于BPMN2规格的现有流程图的指示,指定每个状态转移的处理作用,在状态变更时使注释、表单、附件等数据永久化,保存完整的处理轨迹

工作流引擎 vs 规则引擎

1 )工作流管理状态转换,规则引擎不在乎状态转换,而是关注处理中复杂的条件组合。

2 )工作流引擎中包含“人”的任务,包括天生处理人的角色控制的规则引擎不关心“人”任务,不做特殊区分。

3 )工作流引擎为宏观控制,规则引擎为微观控制。

经常有人比较这两个内容,笔者了解他们的重点完全不同,没有什么可比性。

2. BPMN2.0规范概述业务流程的模型和表示法(BPMN,businessprocessmodelandnotation )是以图形方式详细说明各种业务流程的图形表示。

最初由名为BPMI、businessprocessmanagementinitiative和businessprocessmodelingnotation的业务流程管理计划开发。 BPMI于2005年与对象管理组织(OMG,Object Management Group )合并。 2011年1月,OMG发布了2.0版(目前没有人使用1.0版),同时更改为当前名称。

BPMN2.0规范的实现基本上是按照特定规范编写的XML文件,可以使用特定的BPMN设计器以图形方式查看和编辑该文件。 Activiti将该图形表示实现为代码,使任务流程依赖于图形而不是具体的实现代码。

UML vs BPMN

UML和BPMN之间唯一的正式关系是OMG保持两个开放标准。

统一建模语言(UML )是一种视觉建模语言,活动图也适用于过程建模,但支持深度不够。

BPMN的诞生晚于UML,从某种意义上说,UML Activity Diagrams是BPMN的子集,也是BPMN历史的前身。

如上图所示,BPMN2.0规范包括三个部分:网关、事件和活动。

用简单的流程定义文件了解BPMN2.0的规格吧。 读者还可以访问这个在线设计网站以增进了解。

上图是由BPMN设计器设计的一个简单流程,使用文本编辑器打开后缀为BPMN的文件可以获得以下内容(单击链接查看整个文件) : 可见,BPMN2.0规范包括三个部分。

网关(网关) exclusiveGateway-专用网关用于确定,除了专用网关之外还有几种类型的网关。 事件(事件) :开始事件-开始事件、结束事件-结束事件。 规范要求在完整的流程图中包括这两个部分。 活动任务-任务、序列流-连接线。 活动是流程的主体部分,内部包含的类型比较多。 3 .与BPMN2.0规范相比,开源BPMN项目已成为流程处理的事实标准,实现该规范的常见开源项目有jBPM、Activiti、Camunda三个。

他们实现的功能比较相似,从根本上说是jbpmactiviticam unda这一递归关系。 jBPM是最先诞生的。 Activiti的发起人脱离了jBPM项目,Camunda BPM的发起人脱离了Activiti项目。 之所以存在三个同源项目,是因为开发者们对工作流引擎的期待出现了分歧。

从技术配置来看,Activiti的最大优势是采用流程虚拟机(PVM ),支持非BPMN2.0规范的流程形式,与外部服务具有良好的集成能力,继续对jBPM3、jBPM4提供良好的社区支持,支持服务器缺点是持久化层不符合JPA标准。

jBPM的最大优点是采用Apache Mina异步通信技术,采用JPA/JTA持久化标准,以功能齐全的Guvnor为流程仓库,有RedHat的专业化支持。 但其劣势也很明显,对自身技术依赖太强,目前仅支持BPMN2。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。