工作流对比

muhen369

贡献于2014-08-29

字数:2620 关键词: 工作流引擎

Jbpm jbpm4 在jBPM4中,jBPM提出了流程虚拟机(PVM)的概念,即流程引擎与流程语言解耦,通过一套通用的流程模型并配以可定制的节点运行期行为实现了对多流程语言的支持。 流程虚拟机带来的好处是多方面的: 第一也是最重要的是jBPM4支持了BPMN; 第二是实现了基于流程组件的流程引擎,流程图(语言)与实现解耦,我们使用通用编程语言实现节点运行期行为,称之为流程组件,通过将流程图与流程组件挂接,避免了图的损耗。在这一点上,Tom Baeyens对BPMN到BPEL的转换提出了一针见血的批评:BPMN和jPDL以及XPDL都是基于图的,而BPEL是基于块的,这造成了当将业务人员使用BPMN所建立的流程模型向BPEL执行模型进行转换时,出现许多的不匹配,最初的流程模型会扭曲变形。而扭曲的后果就是业务人员与开发人员之间的协作困难,这影响了流程从业务到技术的实现。 第三个好处是可以定义领域特定语言(DSL),在特定的应用里,采用DSL约定并隐藏了大部分的技术细节可能做到业务人员对执行流程的直接修改,例如企业文档管理里的审批流程。 优点: 1. Jbpm4的模型是采用UML Activity Diagram的语义,便于开发人员理解流程; 2. Jbpm4强调流程服务的可嵌入性和可扩展性; 3. jbpm4提供了可扩展的Event-Action机制,来辅助活动的扩展处理。 4. jbpm4提供了灵活的条件表达式机制,来辅助条件解析、脚本计算的处理。 5. jbpm4提供了可扩展的Task及分配机制,来满足复杂人工活动的处理。 6. 借助hibernate的ORM的优势,JBPM能够很容易支持多种数据库。 7. JBPM的Node机制非常灵活,开发人员可以很容易定制“业务化语义的节点”,并满足运行时候处理的需要。 缺点: 1. 由于原负责人的出走,Jbpm4已不再维护; 2. 流程定义器 3. 邮件模板不够灵活 Jbpm5 jBPM的创建者Tom Baeyens离开JBoss后,jBPM的下一个版本jBPM5完全放弃了jBPM4的基础代码,基于Drools Flow重头来过;jBPM5依旧定位为轻量级的可嵌入的工作流系统。 与jBPM4相比 : 1. 引入了Guvnor作为流程仓库,这解决了流程的可视化问题,流程定义作为资源被管理,我们可以对流程定义进行可视化管理以及全文检索(Guvnor使用了Jackrabbit作为了其存储实现,但经验表明Jackrabbit在大数据量情况下性能存在严重问题); 2. 规则引擎(Drools Expert)、事件处理引擎(Drools Fusion)与流程引擎的合三为一。 3. 不再支持PVM和jPDL,只支持BPMN(业务流程建模与标注Business Process Model and Notation); 4. 流程执行的可扩展性回到了jBPM3的年代,仅仅支持自定义动作(相当于jBPM3里的Action); 5. Web建模器由Signavio替换为了Oryx Designer。 Jbpm6 Jbpm5的下一个版本,增加了一些新特性 http://blog.csdn.net/kylinsoong/article/details/17508947 Activiti 与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 1. 从技术组成来看,Activiti最大的优势是采用了PVM(流程虚拟机),支持除了BPMN2.0规范之外的流程格式,与外部服务有良好的集成能力,延续了jBPM3、jBPM4良好的社区支持,服务接口清晰,链式API更为优雅;劣势是持久化层没有遵循JPA规范。 2. jBPM最大的优势是采用了Apache Mina异步通信技术,采用JPA/JTA持久化方面的标准,以功能齐全的Guvnor作为流程仓库,有RedHat(jBoss.org被红帽收购)的专业化支持;但其劣势也很明显,对自身技术依赖过紧且目前仅支持BPMN2。 3. Activiti5使用Spring进行引擎配置以及各个Bean的管理,综合使用IoC和AOP技术,使用CXF作为Web Services实现的基础,使用MyBatis进行底层数据库ORM的管理,预先提供Bundle化包能较容易的与OSGi进行集成,通过与Mule ESB的集成和对外部服务(Web Service、RESTful等)的接口可以构建全面的SOA应用; 4. jBPM5使用jBoss.org社区的大多数组件,以Drools Flow为核心组件作为流程引擎的核心构成,以Hibernate作为数据持久化ORM实现,采用基于JPA/JTA的可插拔的持久化和事务控制规范,使用Guvnor作为流程管理仓库,能够与Seam、Spring、OSGi等集成。 总结 jBPM4引入PVM,使其拥有更强大的扩展性,同时增加BPMS特性,这些特性包括了对BPMN的支持、面向业务人员的Web建模器和简单统计分析功能的加入。 jBPM5基于原先的Drools Flow,支持BPMN,通过与Drools的合并支持BAM(Business Activity Monitoring的缩写,即业务活动监控),通过内容仓库增加对流程可视化的支持。由于放弃了jBPM4的PVM,引擎的可扩展性受到损害,并且不再支持jPDL。 Activiti5基于jBPM4,与Alfresco的集成增加了其流程可视化与管理能力,同时通过创新的Activiti Cycle协作组件支持流程相关人员之间的协调,最后,它加强了集成能力。

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 3 金币 [ 分享文档获得金币 ]
0 人已下载

下载文档

相关文档