JBPM是目前市场上主流开源工作引擎之一,在创建者Tom Baeyens离开JBoss后,jBPM的下一个版本jBPM5完全放弃了jBPM4的基础代码,基于Drools Flow重头来过,目前官网已经推出了jBPM6的beta版本;Tom Baeyens加入Alfresco后很快推出了新的基于jBPM4的开源工作流系统Activiti。由此可以推测JBoss内部对jBPM未来版本的架构实现产生了严重的意见分歧。本文试着对二者做一些比较。
<wbr></wbr>
主要相似之处:
<wbr></wbr>
都是BPMN2过程建模和执行环境。 都是BPM系统(符合BPM规范)。 都是开源项目-遵循ASL协议( Apache的 软件许可)。 都源自JBoss(Activiti5是jBPM4的衍生,jBPM5则基于Drools Flow)。 都很成熟,从无到有,双方开始约始于2年半前。 都有对人工任务的生命周期管理。 Activiti5和jBPM5唯一的区别是jBPM5基于WebService - HumanTask标准来描述人工任务和管理生命周期。 如有兴趣了解这方面的标准及其优点,可参阅WS - HT规范介绍 。 都使用了不同风格的 Oryx 流程编辑器对BPMN2建模。 jBPM5采用的是 Intalio 维护的开源项目分支。 Activiti5则使用了Signavio维护的分支。
<wbr></wbr>
Activiti5与jBPM5技术组成对比:
<wbr></wbr>
序号
|
技术组成 |
Activiti |
jBPM5 |
1
|
数据库持久层ORM |
MyBatis3 |
Hibernate3 |
2
|
持久化标准
|
无
|
JPA规范
|
3
|
事务管理
|
MyBatis机制/Spring事务控制
|
Bitronix,基于JTA事务管理
|
4
|
数据库连接方式
|
Jdbc/DataSource
|
Jdbc/DataSource
|
5
|
支持数据库
|
Oracle、SQL Server、MySQL等多数数据库
|
Oracle、SQL Server、MySQL等多数数据库
|
6
|
设计模式
|
Command模式、观察者模式等
|
7
|
内部服务通讯
|
Service间通过API调用
|
基于Apache Mina异步通讯
|
8
|
集成接口
|
SOAP、Mule、RESTful
|
消息通讯
|
9
|
支持的流程格式
|
BPMN2、xPDL、jPDL等
|
目前仅只支持BPMN2 xml
|
10
|
引擎核心
|
PVM(流程虚拟机)
|
Drools
|
11
|
技术前身
|
jBPM3、jBPM4
|
Drools Flow
|
12
|
所属公司
|
Alfresco
|
jBoss.org
|
<wbr></wbr>
Activiti5使用Spring进行引擎配置以及各个Bean的管理,综合使用IoC和AOP技术,使用CXF作为Web Services实现的基础,使用MyBatis进行底层数据库ORM的管理,预先提供Bundle化包能较容易的与OSGi进行集成,通过与Mule ESB的集成和对外部服务(Web Service、RESTful等)的接口可以构建全面的SOA应用;jBPM5使用jBoss.org社区的大多数组件,以Drools
Flow为核心组件作为流程引擎的核心构成,以Hibernate作为数据持久化ORM实现,采用基于JPA/JTA的可插拔的持久化和事务控制规范,使用Guvnor作为流程管理仓库,能够与Seam、Spring、OSGi等集成。
<wbr></wbr>
需要指出的是Activiti5是在jBPM3、jBPM4的基础上发展而来的,是原jBPM的延续,而jBPM5则与之前的jBPM3、jBPM4没有太大关联,且舍弃了备受推崇的PVM(流程虚拟机)思想,转而选择jBoss自身产品Drools Flow作为流程引擎的核心实现,工作流最为重要的“人机交互”任务(类似于审批活动)则由单独的一块“Human Task Service”附加到Drools Flow上实现,任务的查询、处理等行为通过Apache
Mina异步通信机制完成。
<wbr></wbr>
优劣对比:
<wbr></wbr>
从技术组成来看,Activiti最大的优势是采用了PVM(流程虚拟机),支持除了BPMN2.0规范之外的流程格式,与外部服务有良好的集成能力,延续了jBPM3、jBPM4良好的社区支持,服务接口清晰,链式API更为优雅;劣势是持久化层没有遵循JPA规范。
<wbr></wbr>
jBPM最大的优势是采用了Apache Mina异步通信技术,采用JPA/JTA持久化方面的标准,以功能齐全的Guvnor作为流程仓库,有RedHat(jBoss.org被红帽收购)的专业化支持;但其劣势也很明显,对自身技术依赖过紧且目前仅支持BPMN2。
<wbr></wbr>
总结:
<wbr></wbr>
虽然是比较,但不一定要有胜负,只有适合自己的才是最好的,要针对具体的项目区别对待。对我们自己的项目,其实我更关注的是流程引擎的执行效率以及性能,每小时几十万甚至上百万的流程需要执行,需要多少个服务,集群、负载的策略是什么,会不会有冲突?目前这方面的资料还是比较少的,很多问题只有实际遇用到的时候才会去想办法解决。不过就我个人的感觉而言,Activiti上手比较快,界面也比较简洁、直观,值得一试,不过jBPM6的beta版也已经出来了,不知道会有什么变化,有兴趣的也可以试下。
Jbpm课程下载地址:http://www.kuaipan.cn/file/id_192202874577496451.htm?source=1
Activiti下载地址:http://www.kuaipan.cn/file/id_192202874577496527.htm?source=1
分享到:
相关推荐
文件名为"纵观jBPM:从jBPM3到jBPM5以及Activiti5.doc",与标题一致,预示着文档内容会深入探讨jBPM的历史发展,以及在不同版本中的演变,同时可能有对比Activiti5的部分。 **详细知识点可能包括:** 1. **jBPM3**...
【jBPM5与Activiti5的对比】 jBPM5在设计上更注重面向业务人员,增强了BPMS特性,如支持BPMN2.0标准,提供业务规则集成,以及更强大的流程模拟和监控能力。与此同时,Activiti5作为jBPM的一个分支,保留了jBPM4的...
TomBaeyens离开的具体原因尚不清楚,但他的离开产生了两个结果:一是jBPM的下一个版本jBPM5完全放弃了jBPM4的基础代码,基于Drools Flow重头来过;二是TomBaeyens加入Alfresco后很快推出了新的基于jBPM4的开源工作流...
然后,可以通过阅读jBPM和Activiti的官方文档,了解这两个引擎的特点和用法,以及如何在实际项目中部署和使用它们。实践是学习的最佳途径,可以尝试设计简单的流程模型,逐步过渡到更复杂的场景,同时结合代码示例...
以下是基于给定文件的信息,深入解析jbpm4和jbpm5的知识点: 1. **jbpm4表结构和表字段说明**: jbpm4.3表结构和表字段说明文档通常会详细介绍jbpm4中涉及的数据库表,包括实体如任务实例(TaskInstance)、流程...
本文将对JBPM和Activiti进行深入的分析,并与国内的工作流引擎FixFlow进行对比。 #### 二、JBPM与Activiti对比分析 ##### 2.1 架构特点 **JBPM架构** JBPM采用了模块化的设计思路,其架构主要包括以下几个部分:...
JBPM采购申请系统——21_JBPM4.0与JBPM3.0差异(一).7z JBPM采购申请系统——21_JBPM4.0与JBPM3.0差异(一).7z JBPM采购申请系统——21_JBPM4.0与JBPM3.0差异(一).7z JBPM采购申请系统——21_JBPM4.0与JBPM3.0差异(一)...
JBPM采购申请系统——22_JBPM4.0与JBPM3.0差异(二).7z JBPM采购申请系统——22_JBPM4.0与JBPM3.0差异(二).7z JBPM采购申请系统——22_JBPM4.0与JBPM3.0差异(二).7z JBPM采购申请系统——22_JBPM4.0与JBPM3.0差异(二)...
### 基于jbpm与activiti的工作流平台技术架构介绍 #### 一、宏天BPM X3软件平台概述 宏天BPM X3软件平台是一款基于J2EE技术的开源、轻量级的企业业务开发平台。该平台旨在帮助用户以最快的速度梳理、设计、执行、...
《深入浅出jBPM 5,6章》是一本专为理解jBPM这一流程管理系统而精心编写的书籍。jBPM是一个开源的工作流管理系统,它提供了业务流程建模、执行、监控和优化的全面解决方案。这本书的第5章和第6章尤其关键,它们涵盖...
jbpm和shark工作流引擎对比 本文对jbpm和shark工作流引擎进行了深入的比较,涵盖了稳定性、易用性、灵活性、可监管性、扩展性和可维护性等多方面。工作流引擎是企业信息化建设中非常重要的一环,选择合适的工作流...
本书作为学习jBPM5的入门教材,帮助开发者理解并运用BPM的基础概念,同时深入学习jBPM5框架的高级功能。 本书的开篇提到,学习BPM或是保持对最新技术变化的了解从来都不轻松,有时甚至可能遇到困难。因此,作者通过...
- 集成jbPM/Activiti与Spring、Hibernate等Java框架的方法。 - MEAN全栈开发:了解MongoDB的数据模型,Express的路由和中间件,AngularJS的双向数据绑定,以及Node.js的异步编程。 - 流程引擎的部署和生命周期管理。...
### 工作流系统技术选型可行性分析:JBPM4与JBPM5 #### 一、引言 在数字化转型的背景下,工作流系统成为提高组织效率的关键技术之一。医院作为一个复杂的组织机构,其内部流程的优化对于提升服务质量至关重要。...
Activiti和jBPM是两个流行的工作流管理系统,它们用于自动化业务流程。这些系统与数据库紧密集成,通过一系列特定的表来存储流程定义、执行、历史数据等信息。以下是关于这些数据库表结构的详细说明: 1. **ACT_GE_...
工作流插件 activiti-5.15.1 jbpm-4.3 jbpm-4.4 jbpm-jpdl-suite-3.2.3
**jbpm5环境配置** jbpm5是一款开源的工作流管理系统,它提供...总之,jbpm5是一个功能强大的工作流管理系统,通过合理的环境配置和深入理解其用户手册,开发者能够有效地利用jbpm5来设计、实施和管理复杂的业务流程。
这个经典案例对于学习和理解JBPM5与Spring3的整合非常重要。通过阅读文档和实践案例,开发者可以了解如何在实际项目中实现两者的结合,提高流程管理的效率。同时,详细的使用说明可以帮助解决过程中遇到的问题,加速...