Java三大主流开源工作流引擎技术分析

Java三大主流开源工作流引擎技术分析

首先,这个评论是我从网上,书中,搜索和整理出来的,也许有技术点上的错误点,也许理解没那么深入。但是我是秉着学习的态度加以评论,学习,希望对大家有用,进入正题!

三大主流工作流引擎:Shark,osworkflow,jbpm!

Shark的靠山是Enhydra。Enhydra做过什么呢?多了!从j2ee应用服务器,到o/r mapping工具,到这个工作流引擎等等。为什么Shark的持久层采用DODS来实现?就是因为他们是一家人。

Jbpm的靠山是jboss。Jbpm3的持久层采用hibernate3来实现,也是因为这个原因吧。Jbpm3的图形化流程定义已经决定嵌入到jboss eclipse IDE中,大家看看jboss eclipse IDE preview 1.5版,我们已经可以用插件方式编辑一个jbpm3流程定义文件了。

Osworkflow的靠山是opensymphony。我是非常喜欢这个组织的,它做出了很多的好东西。在开发工作流管理系统时,我就推荐用它的另外一个东西:webwork2。笔者主持的开源工作流引擎AgileFlow就是基于ww2+spring+hibernate架构实现的。写到这里我想是不是它可以和struts2进行完美整合?!

完成本段时说句题外话:现在基本上所有的J2EE应用程序服务器都有自己的工作流引擎,如上面提到的Enhydra,jboss和没有提到的websphere和weblogic等,可见,学习工作流引擎技术的确是非常重要的。

Shark的流程定义语言是XPDL,我们知道,XPDL的两个最重要的概念是Process和Activity。XPDL中的Activity是基于UML1.x中的活动图的概念。活动图天生的适于工作流程建模,它相对于状态图的一个最大的优点是容易做并发线程的分叉控制,这些并发线程可以同时执行也可以顺序执行;它还有一个优点是有泳道的概念,可以控制工作流引擎中的任务的产生。Shark的如来神掌是活动图。

Osworkflow的如来神掌又是什么呢?我们知道,它有个重要概念是State……呵呵,我们知道了,它的如来神掌是FSM。不知道FSM是什么东西??那你读大学时肯定不是好学生;当然了,不知道也不打紧,你把他类似理解为状态图就可以了。Osworkflow中的State是由step和status联合表达的,一个State就是一个step中的某个status;而state的转换由action来驱动,类似状态图中的event,因为一个event对应一个action嘛。

Jbpm的如来神掌就没有上面的简单了,它结合应用了状态图+活动图+PetriNet的知识,而且,这里的活动图还是UML2.0版的。UML2.0的活动图中,节点不叫活动(Activity)而叫动作(action),活动成了一个高层次的概念,它包含一个动作序列。一个活动图展现一系列的动作,这些动作组成了活动。Jbpm把action也改名了,称为state。Jbpm使用的状态图的概念有transition/event等,这个自己去看吧。Jbpm来内部实现中还采用了PetriNet的概念,如token,signal等。什么?又不知道PetriNet什么东东?那你大学是学计算机的吗?不是?那你可能是学文科的,学机械/电气/土木工程/交通运输等专业都有接触PetriNet的课程,如果没有学过,还是看看jbpm吧,反正我们也不搞理论,知道大致概念就行。

本人观点:

做观点是件吃力不讨好的事情,好多国外的大师做的观点也是被人骂得……我的观点是:Shark……将登上头号宝座。应该说,在那篇文章发表前,国内的工作流引擎使用率最高的是osworkflow;到去年年底,Shark就占有了明显的优势地位,我分析有如下原因:

1. 国内的企业都看中XPDL,因为这意味着在产品说明书中又可以吹牛说“我们遵循WFMC……”

2. 因为我自诩“Shark工作流引擎在国内的主要推广者”,大部分给我反馈工作流管理系统开发选用技术的朋友都是用的Shark

3. Shark的确是一套不错的工作流引擎,就算你只是想学习XPDL,你也可以从学习Shark开始。

4.不过我还是看好osworkflow。

时间: 2024-12-25 10:07:05

Java三大主流开源工作流引擎技术分析的相关文章

java开源工作流引擎osworkflow

目前实际用到的三个方法 初始化:initialize(String workflowName, int initialAction, Map inputs) 查询:query(WorkflowExpressionQuery query) 操作:doAction(long id, int actionId, Map inputs) ---- 最重要的两步是初始化和操作,查询可以自己定义查询,因为在初始化和操作的时候会操作表中数据,查询不会修改数据. 目前就本工作流理解的是根据配置文件记录流程的操作

几种开源工作流引擎的简单比较(转)

摘要:目前开源工作流引擎用的最多的是jbpm , 各种特性都不错, 文档也比较多, 下面只简单列举一下 目前开源工作流引擎用的最多的是jbpm , 各种特性都不错, 文档也比较多, 下面只简单列举一下 其他几种工作流引擎的特性.   Apache ODE Enhydra Shark Bonita Open Business Engine Eclipse JWT  支持的流程建模标准  WS-BPEL 2.0,流程定义必须使用该标准编写才能执行 WfMC和OMG标准 符合WfMC规范 遵循WfMC

Java三大主流框架概述

Java三大主流框架概述 邮箱:[email protected] Struts.Hibernate和Spring是我们Java开发中的常用关键,他们分别针对不同的应用场景给出最合适的解决方案.但你是否知道,这些知名框架最初是怎样产生的?我们知道,传统的Java Web应用程序是采用JSP+Servlet+Javabean来实现的,这种模式实现了最基本的MVC分层,使的程序结构分为几层,有负责前台展示的JSP.负责流程逻辑控制的Servlet以及负责数据封装的Javabean.但是这种结构仍然存

.net开源工作流引擎ccflow

关于济南驰骋信息技术有限公司的.net开源工作流引擎 驰骋工作流引擎,工作流程管理系统:简称ccflow,驰骋一体化解决方案简称ccport. ccflow是济南驰骋信息技术有限公司向社会提供的一款100%开源软件,我们向社会承诺,核心代码100%的开源,多年以来我们践行自己的诺言,努力提高产品质量,奉献社会,成为了国内知名的老牌工作流引擎. ccflow1.0 发展于2003年,xxx省税收业务管理信息系统. ccflow5.0 诞生于2013年北京亿阳信通股份有限公司,应用于xx省电信,xx

开源工作流引擎内核主要关心的是什么?

JBPM是开源工作流引擎中最突出的一种,这种引擎模式现在使用的范围是比较广的.目前,开源工作流引擎有很多,不同的开源工作流引擎不管是设计还是实现方式都是不同的,其选型.算法.机制等各不相同.说起开源工作流引擎内核,我相信大家最关心的莫过于其引擎内核问题了.开源工作流的引擎内核最关注的是什么呢?下面我们一起来看看: 其实,引擎内核所关注的,只是一个抽象层面的问题,它的职责是很精简的,主要是为了确保流程从一个节点运行到另一个节点上,保证能够执行当前的节点.概括地来说,开源工作流引擎内核所关注的问题有

开源工作流引擎 Workflow Core 的研究和使用教程

目录 开源工作流引擎 Workflow Core 的研究和使用教程 一,工作流对象和使用前说明 二,IStepBuilder 节点 三,工作流节点的逻辑和操作 容器操作 普通节点 事件 条件体和循环体 节点的异步或多线程 用于事务的操作 四,条件或开关 迭代 条件判断 节点并发 五,其它 开源工作流引擎 Workflow Core 的研究和使用教程 一,工作流对象和使用前说明 为了避免歧义,事先约定. 工作流有很多节点组成,一个节点成为步骤点(Step). 1,IWorkflow / IWork

java开源工作流引擎jflow的流程应用类型分类讲解

关键字: 驰骋工作流程快速开发平台 工作流程管理系统 工作流引擎 asp.net工作流引擎 java工作流引擎. 开发者表单  拖拽式表单 工作流系统CCBPM节点访问规则接收人规则 适配数据库: oralce,mysql,sqlserver,Informix, PostgreSQL  达梦 根据数据投递的权限范围不同,CCBPM区分为普通类流程与项目类流程.普通类型流程的流转的组织机构定义在整体单位中,对于项目类流程它们的流转范围在整个项目组中. 普通类型:普通类型流程是区别于项目类流程而言,

6大主流开源SQL引擎总结,遥遥领先的是谁?

根据 O'Reilly 2016年数据科学薪资调查显示,SQL 是数据科学领域使用最广泛的语言.大部分项目都需要一些SQL 操作,甚至有一些只需要SQL.本文就带你来了解这些主流的开源SQL引擎!背景介绍 本文涵盖了6个开源领导者:Hive.Impala.Spark SQL.Drill.HAWQ 以及Presto,还加上Calcite.Kylin.Phoenix.Tajo 和Trafodion.以及2个商业化选择Oracle Big Data SQL 和IBM Big SQL,IBM 尚未将后者

基于Activiti的开源工作流引擎扩展框架——OpenWebFlow

通过近1个月的努力,成功包装完成OpenWebFlow并开源至GitHub,请各位有需要的同行笑纳! OpenWebFlow是基于Activiti扩展的工作流引擎,它针对Web环境下的工作流做了一些外围的包装工作. Activiti的用户可能觉得它存在着一些待改进的地方: Activiti为Web应用提供了一个demo,但该demo绑架了很多的东西(如:表单的定义要按照它的样子来,自己的业务逻辑无处插入,等等): Activiti的API很复杂(其实一点都不复杂,相反,它的设计很清晰,就是找起来