几大工作流引擎对比图_工作流引擎框架

几大工作流引擎对比图_工作流引擎框架纵观jBPM:从jBPM3到jBPM5以及Activiti5:http://www.infoq.com/cn/articles/rhjbpm5activiti5工作流引擎选择(为何使用activ

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

纵观jBPM:从jBPM3到jBPM5以及Activiti5:http://www.infoq.com/cn/articles/rh-jbpm5-activiti5#

工作流引擎选择(为何使用activiti而不是jbpm):http://blog.csdn.net/classfoo/article/details/20645779

Java工作流引擎:jBPM、Activiti以及SWF:http://blog.csdn.net/liangyixin19800304/article/details/12761573

用OSWorkFlow和JBPM开发工作流异同:http://blog.csdn.net/victor16345/article/details/5614676

JBPM(Java Business Process Management):JAVA业务流程管理,是一个可扩展、灵活、开源的流程引擎, 它可以运行在独立的服务器上或者嵌入任何Java应用中。

几种工作流引擎对比:

1、jBPM3是一个完整的工作流系统实现,面向开发人员,目的在于简化对组织核心流程进行支撑的软件创建,不支持标准。

2、jBPM4引入PVM,使其拥有更强大的扩展性,同时增加BPMS特性,这些特性包括了对BPMN的支持、面向业务人员的Web建模器和简单统计分析功能的加入。

3、jBPM5基于原先的Drools Flow,支持BPMN,通过与Drools的合并支持BAM,通过内容仓库增加对流程可视化的支持。由于放弃了jBPM4的PVM,引擎的可扩展性受到损害,并且不再支持jPDL。

4、Activiti5基于jBPM4的开源工作流系统,与Alfresco的集成增加了其流程可视化与管理能力,同时通过创新的Activiti Cycle协作组件支持流程相关人员之间的协调,最后,它加强了集成能力。

5、SWF与其说是工作流引擎,不如说是分布式计算调度框架,SWF中只包括Task和History两部分,甚至是每个Task之间如果要传递一些数据的话,都只能通过第三方存储(比如Message Queue或者Redis),不过这也给了编程更大的灵活性,问题是这种灵活性是不是非常需要。

一个SWF由Worker和Decider组成,Worker执行实际的任务,而Decider进行流程控制,两者严格上来讲没有区别,只是所执行的任务不同罢了。每个Worker和Decider会定期的去SWF的一个Task List取下一个任务。可以看出来这更像是一个“多线程”的结构,而SWF官方网站的Use Case是NASA的火星探索计划中需要处理图片的系统,这其实也是一个更多侧重于计算的系统,流程反而非常简单。

另外,SWF(Simple Workflow)的一个Workflow不能太复杂,因为所有的流程控制都集中于Decider,如果太复杂的话Decider将无比庞大,给维护和扩展带来一定的困扰。

Activiti的优势:

1、与jBPM4相比,Activiti5最令人瞩目的特性就在于它的协作工具组件

  • Activiti Modeler—建模器

    基于开源Signavio Web流程编辑器的一个定制版本,提供了对BPMN2.0图形化规范的支持,建模后的流程以文件格式进行存储。

    • Activiti probe—管理及监控组件

      对流程引擎运行期实例提供管理及监控的Web控制台。包含部署的管理、流程定义的管理、数据库表的检视、日志查看、事务的平均执行时间、失败多次的工作等功能。

2、Activiti拥有更简洁健壮的接口

Activiti中提供TaskQuery接口,可以设置各种查询过滤,排序方式,最终通过list方法执行查询,相比jbpm,它还提供了分页查询功能,双方高下立判。

3、Activiti拥有更友好的用户体验

JBPM核心引擎完全没有关于表单的任何抽象,它的工作机制是通过全局常量,流程变量,任务变量,这些概念十分技术化。

相比之下Activiti则更贴近实际的应用场景,它将为开始节点,以及人工任务提供了表单设置,用户可以设置字段名称,字段类型。通过Activiti的平台可以根据这些设置去生成表单,但如果不使用其平台只使用引擎的话,也支持通过它来表达与第三方表单的关系。这些表单设置的元数据信息也可以通过接口去获取。

4、Activiti支持启动引擎后随时热部署

JBPM存在一个软肋,一个RuntimeService只能在启动的时候指定bpmn资源,一旦启动后便不再能够去更新或者增加bpmn了,这会导致我们系统集成的困难,因为我们自然希望整个系统只有一个工作流引擎实例运行。Activiti则提供了Deploy机制,将bpmn资源的热部署,热更新都做了很好的支持

5、Activiti拥有更友好易用的Eclipse编辑插件和在线插件

6、Activiti依赖更少的jar包

Activiti依赖的第三方jar包较少,主要就是mybatics,而JBPM则依赖了一大堆的jar,从drools到繁杂的hibernate,再到自身拆分的零零散散的jar包,让人不由觉得它是一个庞大的怪物。

工作流有版本的概念,jBPM和Activiti上传一个新的版本后,版本号会增加1,旧版本还没执行完的流程实例还会继续执行。SWF的版本是个字符串,随意指定好了,这样也很好,字符串名称更明确。

嵌入式部署即将流程引擎嵌入部署于Web应用中

最后,总结一下:

shark:系统和功能都比较复杂

Osworkflow:比较灵活的轻量级的框架,但是在流程建模方面不太友好,需要手动编写xml文件去定义流程文件。

SWF:还有不能支持太复杂的流程

原文地址:https://blog.csdn.net/tianzongnihao/article/details/80286193

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/167463.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • ODS概念总结_ODS系统

    ODS概念总结_ODS系统概念DB(Database)数据库ODS(OperationalDataStore)运营数据存储DW(DataWarehouse)数据仓储DM(DataMarket)数据集市ODS产生背景人们对数据的处理行为可以划分为事务型数据处理(OLTP,On-LineTransactionProcessing)和分析型数据处理(OLAP,On-LineAnalyticProces…

  • Cooley-Tukey算法 (蝶形算法)

    Cooley-Tukey算法 (蝶形算法)

  • chmod命令详细用法

    chmod命令详细用法指令名称:chmod使用权限:所有使用者使用方式:chmod[-cfvR][–help][–version]modefile…说明:Linux/Unix的档案调用权限分为三级:档案拥有者、群组、其他。利用chmod可以藉以控制档案如何被他人所调用。参数:mode:权限设定字串,格式如下:[ugoa…][[±=][rwxX]…][,…],其中…

  • Buck的振铃实验与分析

    Buck的振铃实验与分析上上期我们提到了buck电路的开关的振铃波形,本质原因是LC的阻尼振荡。文章偏理论,那BUCK到底是怎么产生尖峰振荡呢?要想把这个问题搞清楚,也很是不容易,所以文章有点长,请直接点赞转发加收藏。问题本期主要分析以下这两个问题:1、死区时间是什么?这里有个小台阶是什么情况?2、上下尖峰振荡是如何产生的?跟哪些因素有关?理想的BUCK的SW波形我们由浅入深,一步一步来,先看理想的开关SW波形—没有尖峰电压的波形。为了能更好的看buck电路各个点的电压电流情况.

    2022年10月23日
  • Python 解决 :NameError: name ‘reload’ is not defined 问题

    Python 解决 :NameError: name ‘reload’ is not defined 问题

    2021年10月21日
  • k8s kubedns_docker+k8s

    k8s kubedns_docker+k8sK8s应用部署方式的演变kubernetes简介kubernetes组件kubernetes组件调用关系的应用示例kubernetes概念应用部署方式的演变应用部署方式的演变• 在部署应用程序的方式上,主要经历了三个时代:传统部署:• 互联网早期,会直接将应用部署在物理机上。• 优点:简单,不需要其他的技术参与。• 缺点:不能为应用程序定义资源的使用边界,很难合理的分配计算机资源,而且程序之间容易产生影响。虚拟化部署:• 可以在一台物理机上运行多个虚拟机,每个虚拟机都是独立的一个环境。

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号