首页 > 其他分享 >[技术选型与调研] 流程引擎/工作流引擎:Activiti、Flowable、Camunda

[技术选型与调研] 流程引擎/工作流引擎:Activiti、Flowable、Camunda

时间:2024-02-20 23:56:32浏览次数:47  
标签:activiti Flowable Activiti 开源 引擎 https camunda

1 概述:流程与流程引擎

  • 低代码平台、办公自动化(OA)、BPM平台、工作流系统均需要流程引擎功能

  • 【工作流引擎的三大功能】
    1)验证当前过程状态:在给定当前状态的情况下,检查是否有效执行任务。
    2)确定用户权限:检查是否允许当前用户执行任务。
    3)执行条件脚本:经过前两个步骤后,工作流引擎将执行任务,如果执行成功完成,则返回成功,否则返回错误并触发并回滚更改。

  • 工作流引擎是任务分配软件(例如业务流程管理)的一项核心技术,其中,工作流引擎在参与者之间交流数据的同时将任务分配给不同的执行者。工作流引擎可以执行任何任意步骤序列,例如医疗保健数据分析。

2 流程引擎的开源框架

  • 市场上比较有名的开源流程引擎有osworkflow、jbpm、activiti、flowable、camunda。其中:Jbpm4、Activiti、Flowable、camunda四个框架同宗同源,祖先都是Jbpm4,开发者只要用过其中一个框架,基本上就会用其它三个。

2.1 Activiti

  • 简述

activiti由Alfresco软件开发,目前最高版本activiti 7。activiti的版本比较复杂,有activiti5、activiti6、activiti7几个主流版本,选型时让人晕头转向,有必要先了解一下activiti这几个版本的发展历史。
activiti5和activiti6的核心leader是Tijs Rademakers,由于团队内部分歧,在2017年时Tijs Rademakers离开团队,创建了后来的flowable,activiti6以及activiti5代码已经交接给了 Salaboy团队。
activiti6以及activiti5的代码官方已经暂停维护了,Salaboy团队目前在开发activiti7框架,activiti7内核使用的还是activiti6,并没有为引擎注入更多的新特性,只是在activiti之外的上层封装了一些应用。

https://www.activiti.org/quick-start

  • 开源社区活跃度(Github):9.8K star / 7K fork

  • 主要编程语言: Java

  • URL

2.2 Flowable

  • 简述

flowable基于activiti6衍生出来的版本,flowable目前最新版本是v6.6.0,开发团队是从activiti中分裂出来的,修复了一众activiti6的bug,并在其基础上研发了DMN支持,BPEL支持等等,相对开源版,其商业版的功能会更强大。
以flowable6.4.1版本为分水岭,大力发展其商业版产品,开源版本维护不及时,部分功能已经不再开源版发布,比如表单生成器(表单引擎)、历史数据同步至其他数据源、ES等。
Flowable 是一个使用 Java 编写的轻量级业务流程引擎,使用 Apache V2 license 协议开源。2016 年 10 月,Activiti 工作流引擎的主要开发者离开 Alfresco 公司并在 Activiti 分支基础上开启了 Flowable 开源项目。基于 Activiti v6 beta4 发布的第一个 Flowable release 版本为6.0。
Flowable 项目中包括 BPMN(Business Process Model and Notation)引擎、CMMN(Case Management Model and Notation)引擎、DMN(Decision Model and Notation)引擎、表单引擎(Form Engine)等模块。

  • 开源社区活跃度(Github):7.2K star / 2.5K fork

  • 主要编程语言: Java

  • URL

2.3 Camunda : { camunda-bpm-platform / ... } 【推荐】

  • 简述

Camunda基于activiti5,所以其保留了PVM,最新版本Camunda7.15,保持每年发布2个小版本的节奏,开发团队也是从activiti中分裂出来的,发展轨迹与flowable相似,同时也提供了商业版,不过对于一般企业应用,开源版本也足够了,强烈推荐camunda流程引擎,功能和性能表现稳定。

  • 选择camunda的理由:

1)通过压力测试验证Camunda BPMN引擎性能和稳定性更好。
2)功能比较完善,除了BPMN,Camunda还支持企业和社区版本中的CMMN(案例管理)和DMN(决策自动化)。Camunda不仅带有引擎,还带有非常强大的工具,用于建模,任务管理,操作监控和用户管理,所有这些都是开源的。

推荐:使用 camunda(流程引擎)+ bpmn-js(流程设计器)组合,有网友在公司项目中经过实战验证,camunda在功能方面比flowable、activiti流程引擎强大,性能和稳定性更突出。

  • 开源社区活跃度(Github):3.8k star / 1.5k fork

  • 主要编程语言: Java

  • URL

2.4 osworkflow 【建议弃用】

  • 简述

Osworkflow是一个轻量化的流程引擎,基于状态机机制,数据库表很少
Osworkflow提供的工作流构成元素有:

  • 步骤(step)
  • 条件(conditions)
  • 循环(loops)
  • 分支(spilts)
  • 合并(joins)等

但不支持会签、跳转、退回、加签等这些操作,需要自己扩展开发,有一定难度。

如果流程比较简单,osworkflow是很好的选择,但该开源组件已过时,长时间没有版本升级了。

  • URL

2.5 jBPM 【建议弃用】

  • 简述

jBPM 由 JBoss 公司开发,目前最高版本JPBM7,不过从JBPM5开始已经跟之前不是同一个产品了,JBPM5的代码基础不是JBPM4,而是从Drools Flow重新开始,基于Drools Flow技术在国内市场上用的很少,所以不建议选择jBPM5以后版本。

jBPM4 诞生的比较早,后来JBPM4创建者Tom Baeyens离开JBoss后,加入Alfresco后很快推出了新的基于jBPM4的开源工作流系统Activiti,另外JBPM以hibernate作为数据持久化ORM也已不是主流技术,现在时间节点选择流程引擎,JBPM不是最佳选择。

  • 开源社区活跃度(Github):1.6k star / 1.2k fork

  • 主要编程语言: Java

  • URL

2.Y 补充:Apache Dolphi Scheduler (大数据生态中的工作流引擎 + 任务调度平台) 【推荐】

  • 简述

Apache DolphinScheduler 是现代数据编排平台。以低代码敏捷创建高性能工作流程。它还提供了强大的用户界面,致力于解决数据管道中复杂的任务依赖关系,并提供开箱即用的各种类型的作业

DolphinScheduler 的主要功能如下:

  • 易于部署,提供Standalone、Cluster、Docker、Kubernetes四种部署方式。
  • 易于使用,可以通过四种方式创建和管理工作流,包括Web UI、Python SDK、Yaml文件和Open API
  • 高可靠高可用,多master多worker的去中心化架构,原生支持水平扩展。
  • 高性能,性能比其他编排平台快N倍,每天可支持千万级任务
  • 云原生,DolphinScheduler支持编排多云/数据中心工作流程,并支持自定义任务类型
  • 对工作流和工作流实例(包括任务)进行版本控制
  • 工作流程和任务的多种状态控制,支持随时暂停/停止/恢复
  • 多租户支持
  • 其他如回填支持(Web UI原生),包括项目、资源和数据源的权限控制

原理与架构

Homepage

Workflow Definition

Workflow Tree View

Data source

  • 开源社区活跃度(Github):11.7k star / 4.3k fork

  • 主要编程语言: Java

  • URL

2.X 小结:jBPM | Activiti | Flowable | Camunda | Osworkflow 的渊源与联系

X 参考文献

标签:activiti,Flowable,Activiti,开源,引擎,https,camunda
From: https://www.cnblogs.com/johnnyzen/p/18024283/work-flow

相关文章

  • Unity引擎2D游戏开发,切换场景与人物可互动标识总结
    切换场景可以通过新建一个持久化地场景,将所有常驻元素放置进此场景里面,然后再将进入的场景加载(Loud)在Hierarchy窗口中。如果切换了其他某一个场景,再将离开的场景停用(Unload),进入的场景加载(Loud),即可实现。创建持久化场景,移入Hierarchy将所有永恒不变,常驻的元素移入此创建的持久......
  • 提高办公效率,可以多了解流程引擎表单
    当前,为了提升办公协作效率,很多企业倾向于低代码技术平台带来的高效率和便利性。如果利用流程引擎表单,可以帮助企业做好数据资源的利用率,为企业搭建好沟通桥梁,成功提升办公协作率,创造更高的市场价值。那么,什么服务商拥有流程引擎表单?流辰信息就是一家专业研发低代码技术平台的服务......
  • 百度搜索exgraph图执行引擎设计与实践
    导读百度搜索exgraph图执行引擎设计重点分成三个部分:图描述语言、图执行引擎、对接扩展。图描述语言是一种基于文本可读的图描述语言,用于描述任务中的算子以及算子之间的依赖关系,即让人可以理解,也可以被计算机理解并执行。图执行引擎是exgraph的核心,负责根据图描述语言生成的......
  • 初识flowable
    三个月前开始做flowable的项目,刚刚了解一些又中断了,乘着重新开始之前,赶快恶补一下。相信大家在之前已经了解很多关于flowable的知识了,但是很乱,我也是这样。1、对于一个流程来说,你肯定要开启流程。当提交人提交的那一瞬间,流程被开启。这个开启方法需要我们自己去写,并且可以携带......
  • Flowable-网关
    首先,并行网关。顾名思义,就是通过这个网关,可以把一个顺序流分成多个顺序流来执行,然后再通过这个网关,把分出来的多条顺序流合并为一个顺序流继续执行。还是上个简单例子来演示一下,便于理解。流程图如下:直接启动该流程,完成开始后的第一个用户任务,数据库中的数据显示如下:可以看......
  • Flowable-排他网关
    排他网关只会选择一条顺序流,即当流程到达排他网关这个节点时,会按顺序(XML中定义的前后顺序)选择出口顺序流(sequenceFlow)计算其定义的条件,如果被计算的条件为True,则按照该出口顺序流向下执行。如果所有出口顺序流的条件都为False,则会抛出异常。在流程设计器内,排他网关位于Gatewa......
  • Unity引擎2D游戏开发,水和荆棘的逻辑实现
    Unity引擎2D游戏开发,水和荆棘的逻辑实现新建瓦片新建Water与Spike的Tilemap对新建的两个Tilemap绑定TilemapCollider2D,这样他们就会有碰撞判定,勾选上IsTrigger为了标识伤害的来源,将Water和Spike打上标签Tag添加好荆棘的瓦片,不要忘记选中Spike的图层进行添加添加好后,......
  • springboot整合activiti工作流(源码及功能分析)
    前言activiti工作流引擎项目,企业erp、oa、hr、crm等企事业办公系统轻松落地,一套完整并且实际运用在多套项目中的案例,满足日常业务流程审批需求。一、项目形式springboot+vue+activiti集成了activiti在线编辑器,流行的前后端分离部署开发模式,快速开发平台,可插拔工作流服务。工作......
  • [win_os] chrome浏览器 -- 添加自定义搜索引擎并将其设置为默认搜索引擎(转载裁切
    [win_os]  chrome浏览器 -- 添加自定义搜索引擎并将其设置为默认搜索引擎(转载裁切)    一、必要说明  1、添加搜索引擎【bing】:https://global.bing.com/search?q=%s  2、重点说明【红色部分一点都不能错】:https://global.bing.com/sea......
  • ActivitiesCache
    ActivitiesCache是Windows10和更高版本中的一个特性,用于支持“时间轴”(Timeline)功能,这是一个系统级的功能,旨在帮助用户查看和继续之前在设备上的活动。这包括浏览网页、编辑文档、查看图片等活动。ActivitiesCache存储 在一个数据库文件中,通常位于用户的AppData目录下(例如......