Java工作流详解(附6大工作流框架对比)-程序员宅基地

技术标签: java  驰骋工作流引擎  驰骋表单引擎  

目录

1.什么是工作流

2.工作流应用场景

3.工作流实现方式

4.有哪些工作流框架?

5.1.Activiti6. 2.Flowable7. 3.Camunda8.4.jBPM9. 5.osworkflow,6.jflow.

10.工作流框架对比

什么是工作流工作流(Worklow)

工作流是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。工作流建模,即将工作流程中的工作如前后组织在一起的逻辑和规则,在计算机中以恰当的模型表逢并对其实施计算。工作流要解决的主要问题是: 为实现某个业务目标,利用计算机在多个参与者之间按某种预定规则自动传递文档、信息或者任务。

那么再简单点说,我认为工作流就是对业务的流程化抽象,WFMC给出了工作流参考模型如下:

工作流应用场景

具体场景,凡是涉及到业务流程的所有场景

。关键业务流程:订单、报价处理、合同审核、客户电话处理、供应链管理等。行政管理类:出差申请、加班申请、请假申请、用车申请、各种办公用品申请、购买申请、日报周报等凡是原来手工流转处理的行政表单。。人事管理类:员工培训安排、绩效考评、职位变动处理、员工档案信息管理等。财务相关类:付款请求、应收款处理、日常报销处理、出差报销、预算和计划申请等.。客户服务类:客户信息管理、客户投诉、请求处理、售后服务管理等。

工作流实现方式目前常见的工作流程有两种方式:

。通过状态字段实现流程控制。原始,适合简单流程控制。

。工作流引擎实现流程控制。适用场景更广泛,扩展性更好

有哪些工作流框架?

目前市面上主流的开源流程引擎主要有 Activiti、Flowable,CamundajBPM,jflow, oworkflow等。现在我们对这些开源流程框架进行调研和分析。

    1. Activiti

Activiti 由 Alfresco 公司开发,目前最高版本为 Activiti cloud 71.0

其中 activiti5 和 activiti6 的核心 leader 是 Tijs Rademakers,由于团队内部分歧,2017 年 Tijs Rademakers 离开团队,创建

了后来的 Flowable。

activiti6 以及 activiti5 代码则交接给 Salabov 团队维护,activiti6 以及 activiti5 的代码官方已经暂停维护。往后 Salaboy 团开发了 activiti7 框架,ativiti7 内核使用的还是 activiti6,并没有为引擎注入更多的新特性,只是在 Activiti 之外的上层封装了

些应用。

直到 Activiti cloud710版本,Activiti coud 将系统分为 Runtime Bundle、 Audit Service  Query Service、 CloudConnectors、Application Service、 Notification Service。这些工作的主要目的其实就是为了上云,减少对 Activiti 依赖的糖合,需要使用Activiti的系统只需要通过调用 http 接口的方式来实现工作流能力的整合,将工作流业务托管上云2.Flowable

    1. Flowable

是基于activiti6 衍生出来的版本,目前最新版本是v6.7.0

开发团队是从Activiti 中分裂出来的,修复了一众activiti6 的 bug,并在其基础上实现了 DMN 支持,BPEL 支持等。

相对开源版,其商业版的功能会更强大。Flowable 是一个使用Java 编写的轻量级业务流程引擎,使用 Apache V2 license 协议开源。2016年10月,Activiti工作流擎的主要开发者离开 Alfresco 公司并在 Activiti分支基础上开启了 Flowable 开源项目。Flowable 项目中包括 BPMN (Business Process Model and Notation)引擎CMMN (Case Management Modeland Notation)引擎、DMN (Decision Model and Notation) 引擎和表单引擎 (Form Engine) 等模块。

    1. Camunda

Camunda 基于activiti5,所以其保留了 PVM,最新版本Camunda7.17,开发团队也是从activiti 中分裂出来的,发展轨与Flowable 相似。

通过压力测试验证 Camunda BPMN 引擎性能和稳定性更好。功能比较完善,除了BPMN,Camunda 还支持 CMMN(案例管理)和 DMN (决策自动化)。Camunda 不仅带有引擎,还带有非常强大的工具[6],用于建模、任务管理、操作监控和用户管理

    1. jBPM

BPM 由JBoss 公司开发,目前最高版本 7.61.0.Final,不过从BPM5开始已经限之前不是同一个产品了,BPM5 的代码基础不是jBPM4,而是从 Drools Flow 重新开始,基于 Drools Flow 技术在国内市场上用的很少,jBPM4 诞生的比较早,后来jBPM4创建者 Tom Baeyens 离开JBoss 后,加入 Alfresco 后很快推出了新的基于jBPM4 的开源工作流系统 Activiti,另外jBPM 以Hibernate 作为数据持久化 ORM,而 Hibernate 也已不是主流技术mikechen的互联网架松首页架构视频技术文章面试题库问答社区。

    1. JFlow

Jflow是一个国产的开源工作流引擎,与业务场景结合紧密,再带表单引擎,数据表较多,中文概念较多,可配置型性强,支持作为中间件模式的集成。配置点集中在,节点属性,流程属性,方向条件。概念名词比较清晰,文档全面。有qq群技术支持。

流程设计器界面干净,从节点类型分类,分流,合流,分合流,子线程等等。表单与流程完美结合,与其它几款流程引擎设计理念不同。Jflow更适用,贴近用户操作。

表单引擎中的精华是审核组件,满足国内审批要求的需求,退回,分合流审核,会签,并行处理,队列处理,概念清晰,容易理解。

    1. osworkflow

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

(step) 、条件(conditions) 、循环(loops) 、分支(spilts) 、合并 joins)等,但不支持会签、跳转、退回、加签等这些

操作,需要自己扩展开发,有一定难度。如果流程比较简单,osworkflow 是很好的选择

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ccflow/article/details/128615365

智能推荐

nginx配置开机启动/usr/local/nginx/sbin/nginx-程序员宅基地

文章浏览阅读1w次,点赞5次,收藏17次。Nginx 是一个很强大的高性能Web和反向代理服务器。虽然使用命令行可以对nginx进行各种操作,比如启动等,但是还是根据不太方便。设置开机自启动。首先,在linux系统的/etc/init.d/目录下创建nginx文件,使用如下命令:vim /etc/init.d/nginx在脚本中添加如下命令:#!/bin/sh## nginx - this script starts and stops the nginx daemon## chkconfig: - 85 15# descri_/usr/local/nginx/sbin/nginx

闲聊C语言结构体_#include <stdio.h> struct data { int a; unsigned s-程序员宅基地

文章浏览阅读369次。结构体是 C 语言主要的自定义类型方案,这篇就来认识一下结构体。一、结构体的形态C源程序(struct.c):#include <stdio.h>typedef struct{ unsigned short int a; unsigned short int b;}Data;int main(){ Data c, d; c.a = 1; c.b = 2; d = c; printf("d.a:%d\nd.b:%d\n", d.a, d.b); ret._#include struct data { int a; unsigned short b; }; int main(void)

解决butterknife 依赖库使用的Attribute value must be constant问题_第三方库butterknife attribute value must be constant-程序员宅基地

文章浏览阅读9.5k次,点赞3次,收藏6次。在我们使用android studio 通常会把常用的代码,新建成module在library中引入butterknife的依赖: compile ‘com.jakewharton:butterknife:8.4.0’ 但是在module 使用的时候会出现以下问题: 造成这个的原因就是在library里R.id.xxx不再是final类型了,也就不是常量了变成可变的,而注入是需要传入常_第三方库butterknife attribute value must be constant

学习资料要去哪里打印,网上打印靠谱吗?_去哪里打印学习资料-程序员宅基地

文章浏览阅读218次。很多人喜欢将对自己有用的学习资料整理下来,资料整理好以后打印出来可以更好的查看,倘若仅有一两张资料需要打印的话,大家可以随便找一家打印店即可,价格方面即便是稍微贵一点也不会差别特别大。但倘若学习资料如果份数比较多,比如有上百张、上千张资料需要打印,这时候大家就需要找一些打印价格相对比较便宜,比较正规的打印平台进行打印,小编推荐大家打印学习资料可到专业的网上在线打印平台易桌面打印室提交文件资料进行打印。易桌面打印室是一个比较专业的网上在线打印平台,该平台可快速为大家打印各种类型的资料、试卷、书本等,在打印资_去哪里打印学习资料

微信小程序 淘宝_淘宝微信小程序-程序员宅基地

文章浏览阅读4.8k次,点赞2次,收藏33次。模仿淘宝写了一个小程序,主要目的还是练手并且以页面效果为主,写法肯定也会有更好的,后续继续加强。登录页面的话,就直接点登录进入到首页了,没有做过多的交互。其中做比较多的交互是购物车,应数据的形式做出的交互,实际的项目中可能会有更好的数据形式,产品数增减全选合计等,事件传参比较多;下面以购物车为例,贴上购物车的部分js 代码,里面有个“监听”是否勾选和计数的函数(watchSelec..._淘宝微信小程序

并发计算模型BSP与SEDA_bulk synchronous parallel-程序员宅基地

文章浏览阅读3.6k次。1 BSP批量同步并行计算BSP(Bulk Synchronous Parallel)批量同步并行计算用来解决并发编程难的问题。名字听起来有点矛盾,又是同步又是并行的。因为计算被分组成一个个超步(super-step),超步内并行计算并且结点间不能通信。在超步之间设置同步栅栏(barrier synchronization),计算完成后相互通信,全部完成后才能继续下一个超步。2 SEDA阶段_bulk synchronous parallel

随便推点

Git 命令大全 && 常用的 35 个 Git 命令_git基本操作命令-程序员宅基地

文章浏览阅读1.2w次,点赞7次,收藏88次。add远程仓库: git remote add origin [email protected]:zhang/vue_shop.gitgit push推送到远程仓库: git push -u origin master 并以master 分支保存git status 检查项目状态 > git add . 添加所有文件到暂存区 > git commit –m “描述” 在本地提交 > git push 上传 > git pull 拉取远程代码 > git reset 回退..._git基本操作命令

2579页阿里P8Android学习笔记在互联网上火了,完整版开放下载(1)-程序员宅基地

文章浏览阅读735次,点赞23次,收藏14次。有任何问题,欢迎广大网友一起来交流,分享高阶Android学习视频资料和面试资料包~偷偷说一句:群里高手如云,欢迎大家加群和大佬们一起交流讨论啊!《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!后有任何问题,欢迎广大网友一起来交流,分享高阶Android学习视频资料和面试资料包~偷偷说一句:群里高手如云,欢迎大家加群和大佬们一起交流讨论啊![外链图片转存中…(img-65Xx6NTa-1712987646672)]

克隆虚拟机_无法为共享或远程虚拟机创建克隆-程序员宅基地

文章浏览阅读3.8w次,点赞2次,收藏11次。下面我们来讲一下如何通过已经创建好的虚拟机spark01克隆出spark02和spark03来,从而满足搭建大数据集群环境需要多台虚拟机的需求。完整克隆的虚拟机可以脱离原始虚拟机独立使用,不与原始虚拟机共享任何资源,是完全独立的虚拟机。链接克隆的虚拟机需要和原始虚拟机共享同一虚拟磁盘文件,不能脱离原始虚拟机独立运行。我们自然是要选择完整克隆的,我们需要的是完全独立的虚拟机。克隆虚拟机我们就讲到这里了。下一篇我们将讲一下如何。欢迎start,欢迎评论,欢迎指正。上一篇我们已经讲过了。_无法为共享或远程虚拟机创建克隆

利用css画三角形_盒子上方小三角css-程序员宅基地

文章浏览阅读304次。利用css画三角形,应用场景常见于各类电商站侧边栏_盒子上方小三角css

SDL2 显示视频并在视频上显示文字_sdl2显示视频-程序员宅基地

文章浏览阅读905次。SDL2可以直接显示视频,也可以在mfc控件上显示,光显示图像比较简单,但是SDL本身不带字库,因此不能直接显示文字,需要调用第三方库完成。 SDL2可以直接从官方下载,但显示文字需要用扩展库SDL_ttf实现,ttf是True Type Font的缩写,ttf是Windows下的缺省字体,它有美观,放大缩小不变形的优点,因此广泛应用很多场合。使用ttf库的第一件事要从Windows的字库下拷贝出一个字库出来,最好是中文字体,这样可以同时支持英文和中文显示。它一般在c:\w..._sdl2显示视频

Codeforces 637B Chat Order 【模拟】_codeforce637b-程序员宅基地

文章浏览阅读493次。题目链接:Codeforces 637B Chat Order_codeforce637b

推荐文章

热门文章

相关标签