Java工作流详解(附6大工作流框架对比)

文章介绍了工作流的概念,它是一种对业务流程的抽象和自动化控制方法。提到了多种工作流框架,如Activiti、Flowable(由Activiti团队成员创建)、Camunda和jBPM,分别阐述了它们的起源、特性和应用场景。此外,文章还提及了国产工作流引擎JFlow和轻量化引擎osworkflow,以及工作流实现的两种方式:状态字段控制和工作流引擎控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

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 是很好的选择

 

前 言 1 1 概 述 2 1.1 选题背景 2 1.2 组织结构 2 2 所用相关技术和方法 3 2.1 工作流 3 2.1.1 什么叫工作流 3 2.1.2 工作流发展 3 2.1.3 工作流的优点 3 2.2 MVC工作模式 4 2.2.1 MVC设计思想 4 2.2.2 MVC的具体实现 5 2.2.3 MVC的不足 6 2.3 JSP技术介绍 6 2.3.1 JSP的运行原理 7 2.3.2 JSP的生命周期 8 2.3.3 Servlet和JavaBean技术介绍 8 2.3.4 Java 虚拟机 9 2.3.5 JSP访问SQL Server 2000数据库 9 2.4 数据库后台环境配置 10 2.5 系统开发工具简介 10 2.5.1 Dreamweaver 10 2.5.2 MyEclipse 10 2.5.3 Tomcat 11 2.5.4 SQL Server2000 11 2.5.5 chs_sql2ksp3 12 3 系统需求分析 13 3.1 系统功能分析 13 3.2 系统性能分析 13 3.3 系统方案的确定和评价 13 4 系统总体设计 15 4.1 系统层次模块图 15 4.1.1 营业厅模块 15 4.1.2 收费管理模块 16 4.2 系统数据流程图 16 4.3 数据表设计 18 5 详细设计及编码 21 5.1 编写JAVABEAN 21 5.2 营业厅实现函数 21 5.3 收费厅主要的实现函数 22 5.4 JAVABEAN主要实现模块 22 5.4.1 中文字符格式的转换模块(Stringto.java) 22 5.4.2 自动生成验证码(Ran.java) 22 5.4.3 数据库的连接(ConnectionFactory.java) 23 5.4.4 数据库连接的关闭(DatabaseUtils.java)--只提供接口 23 5.4.5 密码修改模块(Common_fuction.java) 24 5.4.6 时间格式转换(timeBean.java) 24 5.4.7 数据统计(counthander.java) 25 5.4.8 营业厅的接口(luruaction.java) 27 5.4.9 营业厅的主要函数实现(luruhander.java) 28 5.4.10 收费厅的主要函数接口 32 5.5 管理员登陆模块 33 5.5.1 管理员登录 33 5.6 营业厅管理模块 36 5.6.1 Left.jsp页面 36 5.6.2 Work.jsp 40 5.6.3 customerlistinfo.jsp 41 5.6.4 allinfo.jsp 41 5.7 收费厅管理模块 42 5.7.1 Left.jsp 42 5.7.2 Work.jsp 43 5.7.3 Customerlistinfo.jsp 43 5.7.4 gongdan.jsp 43 6 系统测试与维护 45 6.1 测试目的 45 6.2 测试环境 45 6.3 系统测试 45 6.4 系统维护 45 7 开发难点与技术 46 7.1 主要程序实现的代码描述 46 7.1.1 验证码的自动生成 46 7.1.2 生成WORD工单 46 7.1.3 以一定的时间刷新页面 47 7.1.4 JSP中文问题的解决 47 7.2 在程序编码过程遇到的主要问题: 48 7.3 代码编写风格 49 7.4 我的不足: 49 结束语 50 致 谢 50
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

驰骋低代码、工作流、表单引擎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值