Java三大主流开源工作流引擎技术分析

本文对比分析了Shark、osworkflow及jbpm三大主流工作流引擎的特点与应用场景。Shark依托于Enhydra,采用XPDL流程定义语言,强调并发控制与任务管理;osworkflow基于FSM模型,适用于状态驱动的流程;jbpm则融合了状态图、活动图及PetriNet的概念,提供强大的流程建模能力。

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

首先,这个评论是我从网上,书中,搜索和整理出来的,也许有技术点上的错误点,也许理解没那么深入。但是我是秉着学习的态度加以评论,学习,希望对大家有用,进入正题!

        三大主流工作流引擎:Shark,osworkflow,jbpm!

        Shark的靠山是Enhydra。Enhydra做过什么呢?多了!从j2ee应用服务器,到o/r mapping工具,到这个工作流引擎等等。为什么Shark的持久层采用DODS来实现?就是因为他们是一家人。 

Jbpm的靠山是jboss。Jbpm3的持久层采用hibernate3来实现,也是因为这个原因吧。Jbpm3的图形化流程定义已经决定嵌入到jboss eclipse IDE中,大家看看jboss eclipse IDE preview 1.5版,我们已经可以用插件方式编辑一个jbpm3流程定义文件了。 

Osworkflow的靠山是
opensymphony。我是非常喜欢这个组织的,它做出了很多的好东西。在开发工作流管理系统时,我就推荐用它的另外一个东西:webwork2。笔者主持的开源工作流引擎AgileFlow就是基于ww2+spring+hibernate架构实现的。写到这里我想是不是它可以和struts2进行完美整合?!

完成本段时说句题外话:现在基本上所有的J2EE应用程序服务器都有自己的工作流引擎,如上面提到的Enhydra,jboss和没有提到的websphere和weblogic等,可见,学习工作流引擎技术的确是非常重要的。

Shark的流程定义语言是XPDL,我们知道,XPDL的两个最重要的概念是Process和Activity。XPDL中的Activity是基于UML1.x中的活动图的概念。活动图天生的适于工作流程建模,它相对于状态图的一个最大的优点是容易做并发线程的分叉控制,这些并发线程可以同时执行也可以顺序执行;它还有一个优点是有泳道的概念,可以控制工作流引擎中的任务的产生。Shark的如来神掌是活动图。 

Osworkflow的如来神掌又是什么呢?我们知道,它有个重要概念是State……呵呵,我们知道了,它的如来神掌是FSM。不知道FSM是什么东西??那你读大学时肯定不是好学生;当然了,不知道也不打紧,你把他类似理解为状态图就可以了。Osworkflow中的State是由step和status联合表达的,一个State就是一个step中的某个status;而state的转换由action来驱动,类似状态图中的event,因为一个event对应一个action嘛。 

Jbpm的如来神掌就没有上面的简单了,它结合应用了状态图+活动图+PetriNet的知识,而且,这里的活动图还是UML2.0版的。UML2.0的活动图中,节点不叫活动(Activity)而叫动作(action),活动成了一个高层次的概念,它包含一个动作序列。一个活动图展现一系列的动作,这些动作组成了活动。Jbpm把action也改名了,称为state。Jbpm使用的状态图的概念有transition/event等,这个自己去看吧。Jbpm来内部实现中还采用了PetriNet的概念,如token,signal等。什么?又不知道PetriNet什么东东?那你大学是学计算机的吗?不是?那你可能是学文科的,学机械/电气/土木工程/交通运输等专业都有接触PetriNet的课程,如果没有学过,还是看看jbpm吧,反正我们也不搞理论,知道大致概念就行。

 

本人观点:

做观点是件吃力不讨好的事情,好多国外的大师做的观点也是被人骂得……我的观点是:Shark……将登上头号宝座。应该说,在那篇文章发表前,国内的工作流引擎使用率最高的是osworkflow;到去年年底,Shark就占有了明显的优势地位,我分析有如下原因: 

1. 国内的企业都看中XPDL,因为这意味着在产品说明书中又可以吹牛说“我们遵循WFMC……” 

2. 因为我自诩“Shark工作流引擎在国内的主要推广者”,大部分给我反馈工作流管理系统开发选用技术的朋友都是用的Shark 

3. Shark的确是一套不错的工作流引擎,就算你只是想学习XPDL,你也可以从学习Shark开始。

4.不过我还是看好osworkflow。

版权声明:本文为博主原创文章,未经博主允许不得转载。
### 主流工作流引擎技术选型比较与评估 #### 1. Camunda BPM Camunda 是一种开源工作流和业务流程管理平台,专注于高吞吐量和可扩展性。该平台允许开发者通过图形界面设计复杂的工作流,并将其嵌入到应用程序中。 - **特点** - 支持BPMN 2.0标准[^4]。 - 提供Java API以及RESTful接口用于集成外部服务。 - 社区活跃度较高,文档详尽易于上手。 - **适用场景** - 需要处理量并发请求的企业级应用。 - 对于已有Spring Boot项目的无缝衔接尤为适合。 #### 2. Activiti Activiti 同样遵循BPMN 2.0规范构建而成,在轻量化方面表现突出,能够快速部署并运行起来。它被广泛应用于中小型企业的内部管理系统开发当中。 - **特性概述** - 轻便灵活的设计理念使其启动速度快、资源占用少。 - 内置丰富的事件监听机制方便定制化需求实现。 - 友好的API使得与其他框架协作变得简单直接。 - **应用场景** - 中小型企业中的审批流程自动化。 - 开发周期短且预算有限的情况下作为首选方案之一考虑。 #### 3. Flowable Flowable 原本是从Activiti项目分拆出来的分支版本,后来发展成为独立的产品线。其优势在于高性能的同时保持了良好的易用性和灵活性。 - **核心功能** - 完整覆盖了从建模到最后执行整个生命周期内的各个环节。 - 支持多种持久层存储方式(如MySQL, PostgreSQL等),便于迁移维护。 - 强调用户体验优化,提供了直观的操作面板给终端用户操作使用。 - **推荐用途** - 型企业复杂的业务逻辑编排。 - 当前正在使用的Activiti系统升级替换选项。 以上是对目前市场上较为流行的工作流引擎——Camunda BPM、Activiti 和 Flowable 的基本介绍及优劣势分析。每种产品都有各自的特点和技术侧重点,具体选择哪一款取决于实际项目的需求考量因素,比如团队的技术栈偏好、系统的规模小等因素都会影响最终决策。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值