jBPM是目前市场上主流开源工作引擎之一,在创建者Tom Baeyens离开JBoss后,jBPM的下一个版本jBPM5完全放弃了jBPM4的基础代码,基于Drools Flow重头来过,目前官网已经推出了jBPM6的beta版本;Tom Baeyens加入Alfresco后很快推出了新的基于jBPM4的开源工作流系统Activiti。由此可以推测JBoss内部对jBPM未来版本的架构实现产生了严重的意见分歧。本文试着对二者做一些比较。
在比较之前先看下两者的安装部署过程:
jBPM5安装及开发环境配置
1、安装JBPM之前,要求本机已安装了JDk1.5+
版本和ANT1.7+
版本。
2、JDK和ANT都安装完毕之后,到http://sourceforge.net/projects/jbpm/files/
下载JBPM-installer,下载完之后,解压到安装目录,jbpm-installer文件夹里有个install.html,里面有英文版的安装教程,可以作为参考。
3、在CMD下进入刚才的\jbpm-installer目录,运行ant install.demo
,该命令会执行下面一系列的操作:
下载JBoss AS
下载Eclipse
安装Drools Guvnor 到JBoss AS
安装Oryx Designer 到JBoss AS
安装jBPM Console 到JBoss AS
安装jBPM Eclipse 插件
安装Drools Eclipse 插件
注意:这边下载的东西比较多,有好几百兆,如果本地网络不怎么好或者有些东西机上已经有了的话就可以单独下载需要的
例:
ant install.jBPM.runtime
ant install.guvnor.into.jboss
ant install.designer.into.jboss
ant install.jBPM-gwt-console.into.jboss
ant install.droolsjbpm-eclipse.into.eclipse
4、下面可以准备启动JBPM了。CMD到\jbpm-installer目录下,依次运行以下命令:
ant start.h2 (启动h2数据库)
ant start.jboss (启动JBoss AS)
ant start.human.task (启动 task service)
5、Jboss启动之后,可以在http://localhost:8080/访问,jbpm自带的web控制台 http://localhost:8080/jbpm-console,登录的用户名、密码均为krisv,在web控制台中可启动一个新流程、查看正在执行流程的当前状态、查看当前登录人待办任务以及并可以以报表形式查看、跟踪流程状态。 Drools Guvnor的访问地址为:http://localhost:8080/drools-guvnor。
6、把eclipse目录下的features和plugins中的内容copy到eclipse的相应目录中。启动Eclipse之后,现在可以使用eclipse导入jbpm自带的一个流程。方法为依次点击File -> Import ,在General category下选择“Existing Projects into Workspace”,找到位于jbpm安装根目录/sample/evaluation文件夹,将该项目导入。
Activiti安装及开发环境配置
1、 到http://www.activiti.org/download.html
下载activiti-5.13.zip,解压到安装目录,页面上有个The User Guide
,这个教程比较详细,如需要可深入学习下。
2、 打开解压目录,\wars下面有两个war包,把activiti-explorer.war
部署到应用服务器中,里面默认的数据源是h2的内存数据库,如需要改成自己的数据库;
3、 安装完成后可以在http://localhost:8080/activiti-explorer
处访问 Activiti Explorer web 应用程序,id/pwd: kermit/Kermit(这个账号是administrator),这个程序是流程引擎的用户接口,用户可以使用这个工具来执行启动新流程,分配用户任务,浏览或领取任务等操作。还可以用来执行 Activiti 引擎的管理工作;
4、 Activiti 提供了基于 Eclipse 插件的开发工具和流程设计工具 ( 需要 Eclipse 的版本为 Helios 或 Indigo,如果尚未安装 Eclipse,请从 http://www.eclipse.org/downloads/下载安装最新版本的 Eclipse 集成开发环境。)。这些工具可以使用 Eclipse 的”Install new software”功能在线安装,安装方法如下:
在 Eclipse 的 Help 菜单中选择 Install New Software 选项,在弹出菜单中,点击 Add Repository 按钮添加新的远程 Software Repository,如图 3 所示,在 Location 中添加 http://activiti.org/designer/update/ 作为 Repository 的远程地址。当新的 Repository 添加完成后,Eclipse 会自动获取 Repository 中的软件列表。
5、 现在我们开始创建工作流。右键点击项目根目录,选择new -> others,选择Activiti -> Activiti Diagram。
流程开发跟部署就不在这边说了,都是界面化的开发工具,两个都可以保存成同样的格式,也可以用同一个插件来开发。
jBPM5与Activiti5比较
主要相似之处:
都是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维护的分支。
Activiti5与jBPM5技术组成对比
序号 | 技术组成 | 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 |
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等集成。
需要指出的是Activiti5是在jBPM3、jBPM4的基础上发展而来的,是原jBPM的延续,而jBPM5则与之前的jBPM3、jBPM4没有太大关联,且舍弃了备受推崇的PVM(流程虚拟机)思想,转而选择jBoss自身产品Drools Flow作为流程引擎的核心实现,工作流最为重要的“人机交互”任务(类似于审批活动)则由单独的一块“Human Task Service”附加到Drools Flow上实现,任务的查询、处理等行为通过Apache Mina异步通信机制完成。
优劣对比:
从技术组成来看,Activiti最大的优势是采用了PVM(流程虚拟机),支持除了BPMN2.0规范之外的流程格式,与外部服务有良好的集成能力,延续了jBPM3、jBPM4良好的社区支持,服务接口清晰,链式API更为优雅;劣势是持久化层没有遵循JPA规范。
jBPM最大的优势是采用了Apache Mina异步通信技术,采用JPA/JTA持久化方面的标准,以功能齐全的Guvnor作为流程仓库,有RedHat(jBoss.org被红帽收购)的专业化支持;但其劣势也很明显,对自身技术依赖过紧且目前仅支持BPMN2。
总结
虽然是比较,但不一定要有胜负,只有适合自己的才是最好的,要针对具体的项目区别对待。对我们自己的项目,其实我更关注的是流程引擎的执行效率以及性能,每小时几十万甚至上百万的流程需要执行,需要多少个服务,集群、负载的策略是什么,会不会有冲突?目前这方面的资料还是比较少的,很多问题只有实际遇用到的时候才会去想办法解决。不过就我个人的感觉而言,Activiti上手比较快,界面也比较简洁、直观,值得一试,不过jBPM6的beta版也已经出来了,不知道会有什么变化,有兴趣的也可以试下。
参考|推荐文章:
http://blog.csdn.net/howareyoutodaysoft/article/details/8070068
<<BPMN2,activiti,jbpm5学习资料>>
http://www.infoq.com/cn/articles/rh-jbpm5-activiti5
<<纵观jBPM:从jBPM3到jBPM5以及Activiti5>>
文章出处:http://www.blogways.net/blog/2013/07/16/activiti-jbpm-compare.html
相关推荐
jbpm4jbpm5是关于jbpm流程管理框架的专题,涵盖了jbpm4和jbpm5两个主要版本。jbpm是一个开源的工作流管理系统,用于帮助开发者实现业务流程自动化。以下是基于给定文件的信息,深入解析jbpm4和jbpm5的知识点: 1. *...
### jBPM5安装与配置详解 #### 一、引言 jBPM5是一款开源的工作流和业务流程管理(BPM)框架,基于Java语言,由JBoss提供支持。它提供了一套全面的工具和服务,用于设计、执行和监控业务流程。本文将详细介绍jBPM5...
### JBPM5 使用手册知识点概览 #### 一、概述 **JBPM5**(**j**Boss **B**usiness **P**rocess **M**anager)是一款开源的业务流程管理系统,它提供了完整的业务流程管理解决方案,包括流程设计、执行、监控等功能...
**jbpm5环境配置** jbpm5是一款开源的工作流管理系统,它提供了强大的业务流程管理和工作流功能。在开始使用jbpm5之前,首先需要进行环境配置。以下是对jbpm5环境配置的详细步骤: 1. **Java环境安装**:jbpm5基于...
JBPM5工作流引擎 S2SH+JBPM4.4开发工作流的一个完整的请假流程例子。带有文档教程和所有源码+JAR包。在网上找了半天jbpm6\jbpm7的资料,都很少。所以 环境:Myeclipse2015 JDK1.7 mysql 5.0 Struts2+Spring3.1 1...
本书《jBPM5 Developer Guide》是一本专注于JBoss jBPM5框架的Java开发者指南,由Mauricio Salatino和Esteban Aliverti撰写,2012年由Packt Publishing出版。jBPM5是JBoss企业业务流程管理(Business Process ...
JBPM5是一款强大的工作流管理系统,它基于BPMN2.0标准,用于设计和实现复杂的业务流程。BPMN2.0是一种业务流程建模符号语言,它为业务分析师和开发人员提供了一种标准化的方式来描述和交流业务流程。在JBPM5中,设计...
【JBPM5基于Tomcat Web应用详解】 JBPM5是一个开源的工作流管理系统,它提供了全面的业务流程管理和工作流解决方案。这个项目是一个基于Web的JBPM5.2实例,特别设计用于在Apache Tomcat服务器上运行。理解这个应用...
jBPM5 用户手册 jBPM5 是一个开源的工作流和业务流程管理(BPM)框架,专注于灵活、可扩展且与Java平台紧密结合的解决方案。这个用户手册旨在为用户提供全面的指南,涵盖从安装、建模、部署到执行和监控整个业务...
### JBPM5入门学习知识点详解 #### 一、JBPM5简介 **1.1 什么是JBPM** JBPM(Java Business Process Management)是一个开源的业务流程管理框架,旨在为开发者提供一个简单、灵活且可扩展的平台来设计、执行和...
jbpm4.1和jbPM5是两个不同版本的Java Business Process Management(业务流程管理)框架,主要用于构建和管理业务流程。jbPM是Talend公司的一个开源项目,它提供了全面的工作流和业务流程管理解决方案,深受Java...
**JBPM5 整合Spring3经典案例** JBPM5是一个功能强大的工作流管理系统,而Spring3则是一个广泛使用的Java企业级应用框架。将这两者整合可以实现灵活的工作流程管理和强大的业务逻辑处理。本案例主要关注如何在JBPM5...
jbpm5入门学习资料
jbpm5是一款非常著名的工作流管理系统,其源代码的开放为开发者提供了深入理解工作流引擎运作机制的机会。jbpm5的核心在于提供一个可扩展且灵活的业务流程管理平台,允许开发者设计、执行、管理和监控业务流程。以下...
JBPM5是一个开源的工作流管理系统,它允许开发者设计、执行和管理业务流程。在这个"JBPM5请假实例,完整版"中,我们将深入探讨如何利用JBPM5来实现一个具体的请假流程,以及在这个过程中可能遇到的关键配置问题。 ...
#### 一、JBPM5 概述 - **JBPM定义**:JBPM是一个灵活且强大的业务流程管理系统(BPMS),它采用Java语言编写,旨在帮助企业及开发者实现对业务流程的全面管理和自动化处理。 - **特点**: - 轻量级:易于集成和...
"【转载 见附件】纵观jBPM:从jBPM3到jBPM5以及Activiti5" 这个标题表明这是一个关于jBPM发展历程的综合分析,涵盖了从jBPM3到jBPM5的变迁,并且提到了Activiti5,这是一款与jBPM相关的流程管理框架。标题暗示了文章...
【JBPM5 插件安装】 JBPM5(JBoss Business Process Management)是Red Hat公司推出的一款开源工作流管理系统,它允许开发者设计、部署和执行业务流程。在JBPM5中,插件的安装是扩展系统功能的重要手段,能够帮助...
jbpm5是一款基于Java的企业级工作流管理系统,它在企业应用中主要用于管理和自动化业务流程。持久化和流转流程是jbpm5的核心功能,对于理解其工作原理和实际应用至关重要。 一、jbpm5简介 jbpm5是Business Process ...