Camunda 7.x 系列【2】开源工作流引擎框架

有道无术,术尚可求,有术无道,止于术。

本系列Spring Boot 版本 2.7.9

本系列Camunda 版本 7.19.0

源码地址:https://gitee.com/pearl-organization/camunda-study-demo

文章目录

    • 1. 前言
    • 2. 开源工作流引擎框架
      • 2.1 jBPM
      • 2.2 Activiti
      • 2.3 Flowable
      • 2.4 Camunda
      • 2.5 compileflow

1. 前言

在软件系统中往往包含多种业务流程,在开发时,如果不借助工作流引擎,实现一个工作流是非常不靠谱的。每个流程都需要对应一套实现代码,十分冗余,而且一旦需要改动流程,就得改造代码。

而工作流引擎的出现,解决了上述问题,它和具体的业务无关,定义好流程规则后,可以通过引擎进行自动化的流程流转。

接下来我们介绍下比较常用的一个开源工作流引擎框架。

2. 开源工作流引擎框架

2.1 jBPM

GitHub地址

jBPM是一个用于实现业务流程决策自动化的工具包,目前由KIE社区进行开发维护,Red Hat提供支持。

jBPM的发展历程如下:

  • 2003年,jBPM的的创始人Tom Baeyens发布了1.0 版本
  • 2004年,jBPM发布了2.0版本,并加入JBoss组织,Tom Baeyens任该项目的Leader
  • 2005年,jBPM发布3.0版本
  • 2006年,JBossRed Hat红帽公司收购,jBPM获得了大量的社区和商业支持
  • 2009年,jBPM发布4.0版本
  • 2010年,创始人Tom Baeyens离开了JBossjBPM交由Kris Verlaenen负责
  • 2011年,jBPM基于Drools Flow发布5.0的全新版本,完全抛弃了jBPM4的代码。支持BPMN、业务活动监控、流程可视化
  • 2013年,jBPM发布6.0版本
  • 2017年,jBPM发布7.0版本
  • 当前,jBPM的最新版本为7.74.0

jBPM各方面已经落后于其他同类型框架,目前已经不是主流,不推荐使用,但是当前主流的开源工作流框架都是基于jBPM4
在这里插入图片描述

2.2 Activiti

官网地址
GitHub地址

Activiti是一个面向业务人员、开发人员和系统管理员的轻量级工作流BPM业务流程管理平台。

核心特性:

  • 基于Java的高性能BPMN2流程引擎
  • Apache开源许可
  • Spring完美集成
  • 支持在任何Java应用程序、服务器、集群或云中运行

Activiti的发展历程如下:

  • 2010年,jBPM的的创始人Tom Baeyens离开了JBoos后,加入了Alfresco,并基于jBPM4开发了Activiti5
  • 2012年,Tom Baeyens离职,由Tijs Rademakers接手负责
  • 2015年,Activiti发布6.0版本
  • 2016年,Tijs Rademakers离开团队,Activiti交由Salaboy团队负责
  • 2019年,Activiti发布7.0版本,即Activiti Cloud ,定位云产品,完全面向云原生架构设计开发
  • 当前,Activiti的最新版本为7.11.0

Activiti5Activiti6已经是历史版本,不再更新维护,而Activiti7是在Activiti Core基础上新增了云原生相关支持,即Activiti CloudActiviti目前各方面也已经慢慢迟暮,不太推荐使用。

2.3 Flowable

官网地址
GitHub地址

2017年,Tijs Rademakers离开Activiti后,基于Activiti6开发了Flowable6,在其基础上修复了大量BUG,并添加了很多新功能,目前最新版本为6.8.0

Flowable分为开源和商业版,开源版提供了BPMN流程引擎、CMMN引擎、DMN引擎功能。

Flowable 6.4.1版本后,重点放在了商业版产品,很多新特性已经不在开源版中发布,开源版目前更新维护并不及时,截止当前,最新的版本还是去年12月份发布的,所以也不太推荐使用。

2.4 Camunda

官方网站
中文文档

Camunda是基于Activiti5开发的一个用于工作流框架,由德国一家工作流程自动化软件开发商提供,也提供了开源版和商业版。

Camunda主要分以下两个版本:

  • Camunda 7:基于组件,支持BPMNCMMNDMN
  • Camunda 8:基于云原生SaaS模式,但是开源的功能较少

近两年来,Camunda 7凭借其⾼性能、⾼扩展性、⾼稳定性、优良的API设计、技术生态丰富等优点,已经在国内渐渐流行起来,非常推荐使用。

2.5 compileflow

GitHub地址

compileflow Process引擎是淘宝工作流TBBPM引擎之一,是专注于纯内存执行,无状态的流程引擎,通过将流程文件转换生成java代码编译执行,简洁高效。当前是阿里业务中台交易等多个核心系统的流程引擎。

compileflow能让开发人员通过流程编辑器设计自己的业务流程,将复杂的业务逻辑可视化,为业务设计人员与开发工程师架起了一座桥梁。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/25587.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

setmap使用

目录 set使用 set的模板参数 构造函数 成员函数 insert iterator ​编辑 find count pair pair 的模板参数 make_pair multiset使用 multiset 的模板参数 set 与 multiset 的区别 count map使用 map 的模板参数 构造函数 insert iterator find ​编辑 cou…

【SpringCloud】深入探究Eureka:构建微服务架构中的高效服务发现系统

👨‍💻博主主页:小尘要自信 在现代的软件开发中,微服务架构已经成为了一个热门的话题。微服务架构的一个关键组成部分就是服务发现。而在服务发现领域,Eureka无疑是一个备受推崇的解决方案。本篇博客将为您介绍什么是E…

git面试题

文章目录 git经常用哪些指令git出现代码冲突怎么解决你们团队是怎么管理git分支的如何实现Git的免密操作 git经常用哪些指令 产生代码库 新建一个git代码库 git init下载远程项目和它的整个代码历史 git clone 远程仓库地址配置 显示配置 git config --list [--global]编辑配置…

Python IDE

Python IDE 本文为大家推荐几款款不错的 Python IDE(集成开发环境),比较推荐 PyCharm,当然你可以根据自己的喜好来选择适合自己的 Python IDE。 PyCharm PyCharm 是由 JetBrains 打造的一款 Python IDE。 PyCharm 具备一般 Pyt…

机器学习——SMO算法推导与实践

一、 硬间隔-SMO算法推导 明天再说,啊。。。。感觉天空明朗了很多,即使现在已经很晚了 还是要打开柯南,看看电视,等待天气预报所说的台风天吧! 一时之间,忽然失去了用markdown语法写下推导过程的勇气。。。…

ip网络广播系统网络音频解码终端公共广播SV-7101

SV-7101V网络音频终端产品简介 网络广播终端SV-7101V,接收网络音频流,实时解码播放。本设备只有网络广播功能,是一款简单的网络广播终端。提供一路线路输出接功放或有源音箱。 产品特点 ■ 提供固件网络远程升级■ 标准RJ45网络接口&…

推荐几款主流的Css Reset

CSS Reset CSS Reset(CSS重置)是一种技术,用于消除不同浏览器之间默认样式的差异,以确保网页在各个浏览器中的显示一致性。由于不同浏览器对元素的默认样式有所不同,使用CSS Reset可以将这些默认样式归零或统一&#x…

基于粒子群改进BP神经网络的血压评估系统,血压预警系统,pso-bp神经网络

目录 摘要 BP神经网络的原理 BP神经网络的定义 BP神经网络的基本结构 BP神经网络的神经元 BP神经网络的激活函数, BP神经网络的传递函数 粒子群算法的原理及步骤 基于粒子群算法改进优化BP神经网络的血压评估系统 matlab代码 代写下载链接:https://download.csdn.net/downlo…

echarts 柱状图 实例

实例效果: 代码: draw(data1, data2,data3) {var option {// backgroundColor: rgb(10,36,68),tooltip: {trigger: axis,axisPointer: {type: shadow,},formatter: function (params: any, ticket: any, callback: any) {const item params[0];var str…

VB+SQL采购管理系统设计与实现

摘 要 本系统是基于为轴承企业采购部门开发的系统。课题主要采用自上而下的结构化程序设计方法与面向对象方法相结合的方法,致力于达到标准的现代化物流管理要求。帮助轴承企业采购部门全面实现电子化、自动化、标准化的现代化先进管理模式。 该系统使用Visualbasic.net编程…

Java中的JUnit单元测试方法的使用

Java中的JUnit单元测试方法 使用步骤如下: 选中当前工程 - 右键选择:build path - add libraries - JUnit 4 - 下一步创建Java类,进行单元测试。 此时的Java类要求:① 此类是public的 ②此类提供公共的无参的构造器此类中声明单…

【excel常用文本函数大全上】

目录索引 LEFT:公式:举例: RIGHT:公式:举例: MID:公式:举例: FIND:公式:举例: LEN:公式:举例: LEN…

解决mvn clean install遇到testng单元测试失败时打包也失败的问题

解决mvn clean install遇到testng单元测试失败时打包也失败的问题 看这个之前请先看这个 Jenkins执行Testng 比如我现在就有一个单元测试失败的项目 执行mvn clean install的时候就会报错 下面是我现在的pom.xml 但我们不希望这样&#xff0c;怎么办 <plugin><gr…

vuejs源码分析之全局API(vm.$off)

vue在初始化的时候会给vue对象本身挂载一些全局的api。今天我们一个一个来看这些api。 vm.$off方法 这个方法是用来移除自定义事件监听器。 他的用法 vm.$off(event, calback)第一个参数event取值可以是string字符串&#xff0c;也可以是Array<string>也就是说既可以删…

安卓:UDP通信

目录 一、介绍 网络通信的三要素&#xff1a; &#xff08;1&#xff09;、IP地址&#xff1a; IPv4: IPv6: IP地址形式&#xff1a; IP常用命令&#xff1a; IP地址操作类: &#xff08;2&#xff09;、端口&#xff1a; &#xff08;3&#xff09;、协议: UDP协…

RabbitMQ(二)

二、高级特性、应用问题以及集群搭建 高级特性 1.消息的可靠性投递 在使用RabbitMQ的时候&#xff0c;作为消息发送方希望杜绝任何消息丢失或者投递失败场景。RabbitMQ 为我们提供了两种方式用来控制消息的投递可靠性模式。 rabbitMQ整个消息投递的路径为&#xff1a; produ…

删除链表的倒数第 N 个结点 LeetCode热题100

题目 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点。 思路 双指针找到倒数第n个节点&#xff0c;再把该节点删除。 代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* L…

基于PHP+vue的网上订餐系统的设计与开发_769b9

快速发展的社会中&#xff0c;人们的生活水平都在提高&#xff0c;生活节奏也在逐渐加快。为了节省时间和提高工作效率&#xff0c;越来越多的人选择利用互联网进行线上打理各种事务&#xff0c;通过线上管理订餐也就相继涌现。与此同时&#xff0c;人们开始接受方便的生活方式…

vue3使用钩子代替mixins

自用笔记 在vue2中&#xff0c;mixins可以用来混入一些复用的函数&#xff0c;变量等等&#xff0c;在vue3版本中&#xff0c;特别是组合式的写法之中可以用钩子的方式来代替这一功能。 写一个复用的控制盒子展示或者隐藏的钩子useOpen import {ref} from "vue" e…

springboot全局统一返回处理

文章目录 前言一、统一的返回格式二、全局异常处理三、全局返回处理(装逼用的)总结 前言 项目中一般都会有规定好的接口返回格式,无论成功与失败,一般格式都是不变的,这样是为了方便前后端统一处理,今天就来说下前后端统一处理的较为优雅的方式; 一、统一的返回格式 一般而言…