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…

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…

【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…

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

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

汽车维修保养记录查询API:实现车辆健康状况一手掌握

在当今的数字化世界中&#xff0c;汽车维修保养记录的查询和管理变得前所未有地简单和便捷。通过API&#xff0c;我们可以轻松地获取车辆的维修和保养记录&#xff0c;从而实现对手中车辆健康状况的实时掌握。 API&#xff08;应用程序接口&#xff09;是进行数据交换和通信的标…

【LeetCode 75】第二十一题(1207)独一无二的出现次数

目录 题目: 示例: 分析: 代码运行结果: 题目: 示例: 分析: 用两个unordered_map来分别存放每个数字的出现次数和出现的次数这个数,有点绕,比如说有给的数组有两个1,那么第一个map存放的是(1,2),表示1这个数子出现了两次,而第二个map存放的是(2,true),表示有出现次数为2的数…

mysql 笔记(一)-mysql的架构原理

mysql体系结构 mysql Server 架构自顶向下大致可以分为网络连接层,服务层,存储引擎和系统文件层.体系架构图如下: 网络连接层提供与mysql服务器建立的支持.常见的java.c.python/.net ,它们通过各自API技术与mysql建立连接. 服务层是Mysql Server 的核心,主要包含系统管理和控…

Redis 基础

1.定义 Redis 是一个高性能的key-value数据库&#xff0c;key是字符串类型。 2.核心特点&#xff1a; 单进程&#xff1a; Redis的服务器程序采用的是单进程模型来处理客户端的请求。对读写时间的响 应是通过对epoll函数的包装来做到的。 3.数据类型&#xff1a; 键的类型…

hcip——期中小试

要求&#xff1a; 1、该拓扑为公司网络&#xff0c;其中包括公司总部、公司分部以及公司骨干网&#xff0c;不包含运营商公网部分。 2 、设备名称均使用拓扑上名称改名&#xff0c;并且区分大小写。 3 、整张拓扑均使用私网地址进行配置。 4 、整张网络中&#xff0c;运行 O…

CNN成长路:从AlexNet到EfficientNet(02)

一、说明 在~10年的深度学习中&#xff0c;进步是多么迅速&#xff01;早在 2012 年&#xff0c;Alexnet 在 ImageNet 上的准确率就达到了 63.3% 的 Top-1。现在&#xff0c;我们超过90%的EfficientNet架构和师生训练&#xff08;teacher-student&#xff09;。 二、第一阶段 …