`

轻松对比Activiti5与jBPM5技术组成

阅读更多

jBPM是目前市场上主流开源工作引擎之一,在创建者Tom Baeyens离开JBoss后,jBPM的下一个版本jBPM5完全放弃了jBPM4的基础代码,基于Drools Flow重头来过,目前官网已经推出了jBPM6的beta版本;Tom Baeyens加入Alfresco后很快推出了新的基于jBPM4的开源工作流系统Activiti。由此可以推测JBoss内部对jBPM未来版本的架构实现产生了严重的意见分歧。本文试着对二者做一些比较。


主要相似之处:


都是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版也已经出来了,不知道会有什么变化,有兴趣的也可以试下。

 

分享到:
评论

相关推荐

    【转载 见附件】纵观jBPM:从jBPM3到jBPM5以及Activiti5

    文件名为"纵观jBPM:从jBPM3到jBPM5以及Activiti5.doc",与标题一致,预示着文档内容会深入探讨jBPM的历史发展,以及在不同版本中的演变,同时可能有对比Activiti5的部分。 **详细知识点可能包括:** 1. **jBPM3**...

    纵观jBPM:从jBPM3到jBPM5以及Activiti5.doc

    总结来说,jBPM与Activiti都是为了提高企业流程管理效率而设计的框架,它们的发展历程反映了BPM领域不断演进的技术趋势和市场需求。无论是嵌入式还是独立部署,选择合适的BPMS应根据企业的具体需求和现有IT基础设施...

    专题资料(2021-2022年)Activiti5基于jBPM4的开源工作流系统10分钟入门指南.doc

    Activiti 是一个开源的工作流系统,它基于 jBPM4 技术,为企业的业务流程自动化提供了强大的支持。本10分钟入门指南旨在帮助初学者快速理解 Activiti 的基本概念和API接口,通过一个简单的业务流程示例进行讲解。 ...

    activiti-5.21.0 jbpm的升级版本

    activiti-5.21.0的完整包第一部分,受限于60M限制,一共分成两部分下载,包含activiti-5.21 的所有资源,jbpm4的升级版本

    Activiti5 jbpm 工作流 数据库 表结构.docx

    Activiti和jBPM是两个流行的工作流管理系统,它们用于自动化业务流程。这些系统与数据库紧密集成,通过一系列特定的表来存储流程定义、执行、历史数据等信息。以下是关于这些数据库表结构的详细说明: 1. **ACT_GE_...

    工作流插件 jbpm activiti

    工作流插件 activiti-5.15.1 jbpm-4.3 jbpm-4.4 jbpm-jpdl-suite-3.2.3

    JBPM4与JBPM5工作流系统技术可行性分析

    在国内活跃的开源工作流中,JBPM4、JBPM5及Activiti5是值得关注的选择。以下是这三种工作流的简要介绍与分析: 1. **JBPM4** - **架构简介**:JBPM4是一款基于Java EE的轻量级工作流管理系统,支持自定义的jPDL...

    jbpm-demo-master.zip_DEMO_activiti-master_jbpm-demo_mean3x7

    通过jbpm-demo,你可以学习如何定义、执行和监控业务流程,以及如何集成jbPM与其他Java应用程序。 另一方面,activiti-master是Activiti的工作流引擎的核心代码仓库,包含了项目的源码、测试用例和构建脚本。这使得...

    Activiti5学习笔记

    ### Activiti5学习笔记核心知识点解析 #### 一、Activiti5概述与环境搭建 ...从环境搭建到实际应用,每一个环节都至关重要,尤其是对于持久化机制、关键对象和服务接口的理解,是掌握Activiti5核心技术的关键。

    Springboot2整合Activiti5设计器

    在提供的"Springboot2整合Activiti5设计器.docx"文档中,可能会包含详细的步骤、代码示例以及可能遇到的问题和解决方案。同时,"材料"文件可能包含了实际的流程定义文件和示例代码,供读者实践和参考。 总之,...

    基于Activiti5的办公系统

    **基于Activiti5的办公系统** Activiti5是一款开源的工作流引擎,被广泛应用于构建企业级的业务流程管理系统。在“基于Activiti5的办公系统”中,它扮演着核心角色,负责处理财务审批等复杂业务流程。这个系统设计...

    Activiti 5 用户手册 中文

    这个"Activiti 5 用户手册 中文"提供了全面的指南,帮助用户理解和操作Activiti 5版本的各项功能。以下是对手册中关键知识点的详细阐述: 1. **安装与配置**:在开始使用Activiti之前,你需要在你的开发环境中安装...

    工作流Activiti5学习总结

    这个学习总结将围绕着Activiti5的核心概念、快速入门、以及与SSH(Struts2、Spring、Hibernate)框架的整合进行详细介绍。 一、Activiti5核心概念 1. **BPMN 2.0支持**:Activiti5遵循Business Process Modeling ...

    Activiti实战(咖啡兔)-含目录

    从设计思想、源码开放、技术支持以及社区的活跃度几点对比很明显Activiti优于jBPM5,另外本书中强调过很多次的一句话:“Activiti不仅仅是一个引擎,它还是一个流程平台”;Activiti可以轻松驱动你的业务流程、搭建...

    Activiti 5 用户手册

    activiti 5 用户手册 技术文档 教程

    工作流例子-activiti5

    在“工作流例子-activiti5”中,我们将探讨如何使用 Activiti 5 来实现这些功能。Activiti 5 是 Activiti 的一个旧版本,但依然包含许多关键特性,如流程定义、流程实例管理、任务处理和历史查询。 首先,让我们...

    activiti5工作流官方文档汉化版

    activiti5工作流官方文档汉化版activiti5工作流官方文档汉化版

    Activiti5视频教程

    Activiti5视频教程 百度网盘地址 还有资料

    ssh 整合 activiti5 demo

    SSH整合Activiti5 Demo是一个基于Maven构建的Java Web项目,旨在展示如何将Spring(SSH中的S)、Struts2(SSH中的H)和Hibernate(SSH中的S)这三大流行Java框架与 Activiti5 工作流引擎进行集成。这个Demo为初学者...

Global site tag (gtag.js) - Google Analytics