开源工作流框架及平台集成分析报告
目 录
Java主要开源工作流列表 ....................................................................................................... 1
1.1. jBpm .............................................................................................................................. 1
1.2. OSWorkflow ................................................................................................................. 1
1.3. Enhydra Shark ............................................................................................................... 1
1.4. Activiti5 ........................................................................................................................ 1
1.5. OpenWFE ..................................................................................................................... 1
1.6. Werkflow ....................................................................................................................... 1
1.7. OFBiz ............................................................................................................................ 2
1.8. Flow4J ........................................................................................................................... 2
1.9. ObjectWeb Bonita ......................................................................................................... 2
1.10. OBPM ........................................................................................................................... 2
四大开源工作流框架分析 ....................................................................................................... 2
2.1. JBpm ............................................................................................................................. 2
优点 ................................................................................................................................... 2
缺点 ................................................................................................................................... 3
2.2. OSWorkflow ................................................................................................................. 3
优点 ................................................................................................................................... 3
缺点 ................................................................................................................................... 3
2.3. Enhydra Shark ............................................................................................................... 3
优点 ................................................................................................................................... 3
缺点 ................................................................................................................................... 3
2.4. Activiti5 ........................................................................................................................ 4
优点 ................................................................................................................................... 4
缺点 ................................................................................................................................... 4
与统一开发平台集成 ............................................................................................................... 4
3.1. 流程定义插件集成 ....................................................................................................... 4
3.2. 核心包及jar包集成 ................................................................................................... 4
3.3. 部署方式....................................................................................................................... 4
3.4. 版本选择与维护问题 ................................................................................................... 5 1. 2. 3.
1. Java主要开源工作流列表
1.1. jBpm
jBpm是一个灵活可扩展的工作流管理系统。作为 jBpm运行时server输入的业务流程使用简单强大的语言表达并打包在流程档案中。jBpm将工作流应用开发的便利性和杰出的企业应用集成(EAI)能力结合了起来。
1.2. OSWorkflow
OSWorkflow是一个灵活的工作流引擎,设计成可嵌入到企业应用程序中。它提供了许多的持久化API支持包括:EJB,Hibernate,JDBC和其它。
1.3. Enhydra Shark
Shark完全基于WfMC和OMG标准,使用 XPDL作为工作流定义语言。流程和活动的存储使用Enhydra DODS(一个开源OR映射工具)。
1.4. Activiti5
Activit5继承了jBpm4的所有优点,支持最新BPMN2.0规范,实现了流程的可视化以及创新的Activiti Cycle协作组件,此外,通过与Mule的集成加强了其集成能力。
1.5. OpenWFE
OpenWFE是一个开放源码的Java工作流引擎。它是一个完整的业务处理管理套件:一个引擎,一个工作列表,一个Web界面和一个反应器(存放自动代理)。可以与应用程序很好的给合。
1.6. Werkflow
Werkflow是一个灵活可扩展的基于流程和状态的工作流引擎。它的目标是满足可以想象的所有工作流程,从企业级的业务流程到小范围的用户交互流程。通过使用可插拔和分层结构,可以方便地容纳各种工作流语义.
第1页
1.7. OFBiz
OFBiz是一个非常著名的开源项目,提供了创建基于最新J2EE/XML规范和技术标准,构建大中型企业级、跨平台、跨数据库、跨应用服务器的多层、分布式电子商务类WEB应用系统的框架。 OFBiz最主要的特点是OFBiz提供了一整套的开发基于Java的web应用程序的组件和工具。包括实体引擎, 服务引擎, 消息引擎, 工作流引擎, 规则引擎等。
1.8. Flow4J
Flow4J是一个可在Eclipse平台下以拖放的方式进行工作流建模的插件.。
1.9. ObjectWeb Bonita
Bonita 是一个符合WfMC规范、灵活的协同工作流系统。 对于各种动作如流程概念建模、定义、实例化、流程控制和用户交互等提供了全面的集成图形工具。 100% 基于浏览器、使用SOAP和XML数据绑定技术的Web Services封装了已有的工作流业务方法并将它们以基于J2EE的Web Service形式发布。
1.10. OBPM
OBPM是一个开源,轻量级的BPM系统。它的目标是让非IT人员也可以轻松构建IT业务处理流程。OBPM内建工作流引擎(Workflow Engine), Form构建器,Report设计器。OBPM支持浏览器(IE/Firefox)做为客户端,同时还提供了强大的图形客户端。
2. 四大开源工作流框架分析
2.1. JBpm
优点
1、 JBpm是最适合扩展的代表,是在所有开源引擎中最适宜被商业化应用的一款;
2、 JBpm使用了开源框架Hibernate3, 支持当前大多数流行的数据库, 针对不同数据库有一个对应的初始化脚本文件.
3、 JBpm将数据的管理职能分离出去,自己专注于商务逻辑的处理
4、 使用Jpdl流程定义语言,直观易懂,可以手工修改,并且有一个Eclipse流程定义插件。
5、 文档丰富,用户群最大,开源组织十分活跃,被jboss收购后发展趋势良好; 第2页
缺点
1、 Eclipse流程定义插件不开源;
2、 Hibernate3做持久化层,会产生冗余表和数据;
3、 JBpm3、JBpm4、JBpm5版本互不兼容,发展趋势不明确;
2.2. OSWorkflow
优点
1、 OSWorkflow是最轻量型的代表,也是一款非常灵活和低级别定位的工作流引擎的实现框架,可视化图标的流程在osworkflow 里都可以用代码实现;
2、 OSWorkflow 有着非常优秀的灵活性,它能为应用程序开发者提供集成,也能与现有的代码和数据库进行集成;
3、 OSWorkflow基于Action驱动,符合框架开发人员的操作方式及编程习惯; 缺点
1、 实现一个工作流系统非常繁琐,每一个流程步骤实现均需要代码改变状态字段;入门难度较高;
2、 组件功能匮乏,复杂流程项目需要基于其引擎做大量的二次开发,不适用;
3、 配置项和开发代码量相对较多,后期维护成本较高;
2.3. Enhydra Shark
优点
1、 工作流体系最为完备和复杂,秉承“模块化”的思想,比较容易扩展;
2、 代码量较少,易于阅读、易于改写、易于维护;
3、 有一个Jawe来图形化定义流程,图形化功能相对较强,可以编辑活动变量,流程逻辑控制属性.
缺点
1、 相比其他完全开源的框架,Shark2.0后,很多组件、文档商业化,需要付费;
2、 版本更新慢,代码也不再按照开源方式来完成,商业化的定位限制了其发展。 第3页
2.4. Activiti5
优点
1、 Activiti最大的优势是采用了PVM(流程虚拟机),支持BPMN2.0规范及其之外的流程格式;
2、 与外部服务有良好的集成能力扩展,通过与Mule的集成加强了其集成能力;
3、 继承了jBpm4的所有优点,实现了流程的可视化以及创新的Activiti Cycle协作组件;
4、 对流程引擎运行期实例提供管理及监控的Web控制台。
缺点
1、 数据持久层采用MyBatis3,没有遵循JPA规范;网络上反应“回退功能”实现起来比较困难;
2、 核心是 BPMN 2.0 的流程引擎,BPMN2规范发展的比较慢,语言本身也过于复杂可读性差。
3. 与统一开发平台集成
3.1. 流程定义插件集成
1. JBpm与Activiti都有基于eclipse图形化插件和基于Web的流程设计器,
2. OSWorkflow推荐手工编写 xml 格式的工作流程描述符,有基于Eclipse GEF技术开发
的osworkflow建模工具;
3. Shark有JAWE作为定义工具,是否可与平台IDE集成还需要预研。
3.2. 核心包及jar包集成
1. 都属于轻量级工作流框架:jBpm.jar 1.06M;activiti-engine-5.9 1.1MB;
osworkflow-2.8.0.jar 393KB;
2. Shark核心包大小在6M左右,但是依赖jar包过于庞大,其他三个框架依赖jar包都
不多,但是否与平台jar包冲突还需验证;
3.3. 部署方式
1. JBpm与Activiti都可以与应用项目集成也可以单独部署;
2. OSWorkflow不可单独部署,一般推荐与spring集成,方便事务管理及功能扩展; 第4页
3. Shark可集成也可单独部署:可以直接作为java库来使用;也可以单独部署,作为CORBA
ORB 或 Web 服务来使用;
3.4. 版本选择与维护问题
1. JBpm4 积累文档丰富.网上具有大量的共享技术资源,也是最稳定的版本,但是目前已
停止开发和更新;jBpm5基本上完全抛弃了jBpm4的代码,所有代码全部来自原先的Drools Flow,资料和文档相对较少;
2. OSWorkflow是opensymphony下的一个开源项,2.8版本稳定,文档不是很详细,有较
多网络资源,曾是ERP软件开发中广泛应用的工作流框架,JBpm的出现带走了很多用户,使其发展乏力;
3. Enhydra Shark2.0后,很多组件、文档商业化,需要付费,而且版本更新慢,商业化
的定位限制了其发展;
4. Activiti5是JBoss jBpm架构师加入Alfresco后的作品,继承了jBpm4的所有优点,
保持开发更新中,用户不断增加,较多用户推荐,开源社区活跃,发展前景看好。
4. 总结
总体来看,四款工作流引擎框架与平台集成难度都不大,但所依赖第三方jar是否与平台冲突还需具体验证;从应用项目开发角度来看,JBpm4、Activiti5友好度较高,难易程度适中容易上手,而OSWorkflow、Shark则显得较为复杂;从文档资料及后期项目维护角度来看,Activiti5无论从版本升级,网络资料及社区活跃度来看都更胜一筹,其他三款框架都多少存在一些难度和问题。
第5页