三大主流工作流引擎技术分析与市场预测

原创 2005年02月28日 09:29:00

三大主流工作流引擎技术分析与市场预测

1.从《功夫》说起

时下的新新人类看到我,一定会认为在下是个十足的老古董,这不,《功夫》这样的片子我到今年2月底才看。不过看过《功夫》,我想的一定比一般的人多:周星星浪迹江湖,和他胖子大哥出去敲竹杆时,为什么要他大哥胸前画两把斧头?找个假靠山呗!装是斧头帮的人才不会被人欺负啊。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

这让我想到年前的一则新闻:jbpm joins jboss and becomes jboss-jbpm。也就是说了,jbpm找了个靠山jboss,以后不用自己在外流浪了。

好,我们转入正题,谈这里说的三大主流开源工作流引擎:Shark,osworkflow,jbpm

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

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

Osworkflow的靠山是opensymphony。我是非常喜欢这个组织的,它做出了很多的好东西。在开发工作流管理系统时,我就推荐用它的另外一个东西:webwork2。笔者主持的开源工作流引擎AgileFlow就是基于ww2+spring+hibernate架构实现的。

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

2.如来神掌

光有靠山是不行的,周星星加入了斧头帮还不是被邪神打扁了头?要救自己,还是要靠如来神掌。

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

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

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

3.市场预测

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

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

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

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

现在已经到了《工作流之大局势》中说的从封建社会向资本主义转型的时代,而驱动这一转型的,不是别人,正是上面说的jbpmJbpm3将在3月发布阿尔发版,jbpm3的最终版将支持bpel4ws的核心部分。所以,我估计,Shark将在引领风骚数百天后,被jbpm3赶下第一宝座。笔者的开源敏捷工作流开发框架AgileFlow将整合jbpm3,同时对agile引擎和jbpm3引擎提供支持。

bpel4ws真的就和我们这么快的亲密接触了吗?没有。我估计在今年它是不会真正走进我们的生活的,那会是什么时候呢?这将是我下篇文章要预测的内容,我现在可不敢乱说,我现在考虑的是,是不是要自诩“jbpm3工作流引擎在国内的主要推广者”,呵呵。

版权声明:本文为博主原创文章,未经博主允许不得转载。

我们为什么要使用工作流——业务流程重组与企业现代化管理

先谈谈BPR的基本理念:企业业务流程重组,英文全称为Business Process Reengineering(以下简称BPR),是90年代初兴起于美国的最新管理思想。随后,在以美国为首的西方各类公...
  • kthq
  • kthq
  • 2007年06月17日 22:11
  • 5373

osworkflow:一个让我兴奋的工作流引擎

学习,使用,开发工作流引擎这么长时间了,AgileFlow也开发到了0.8版,但在这整个期间,一直没有发现一个让我感觉兴奋的引擎;怎么样合理的定位工作流引擎的边界,合理的设计它提供给外界的接口,怎么样...
  • hongbo781202
  • hongbo781202
  • 2004年11月26日 15:13
  • 9763

使用JWFD开源工作流引擎ARC实现简易的自动数据处理的一些摸索(一)

使用JWFD开源工作流引擎ARC实现简易的自动数据处理的一些摸索 注释:ARC是指我在JWFD开源工作流引擎中用JAVA语言实现的一种流程自动运行控制算法(该...
  • comsci
  • comsci
  • 2013年04月15日 09:33
  • 1379

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

三大主流工作流引擎:Shark,osworkflow,jbpm的比较和选择。
  • wacky
  • wacky
  • 2016年08月09日 14:25
  • 31997

一个工作流引擎的例子

有不少朋友问我如何在ASPNET中实现工作流,其实很多时候我并不关心客户端是什么。看一下这个例子吧,或许对准备设计工作流系统的朋友有些帮助系统结构说明WFtest项目:一个用于测试的工作流模板,功能是...
  • ulark
  • ulark
  • 2010年03月17日 10:05
  • 886

wwf工作流和自开发工作流引擎的比较

写了一点目前工作流开发的方式比较,欢迎大家拍砖,提意见。在.NET领域,目前市场上工作流的趋势大致有两个:一个是自开发方式,即自己开发流程引擎和流程平台,二是WWF方式,即使用微软的WWF。对微软的W...
  • linjian19811027
  • linjian19811027
  • 2007年10月16日 09:50
  • 1510

js流程图引擎构建OA工作流

  • 2011年04月25日 09:22
  • 121KB
  • 下载

三分钟了解Activity工作流

一、 什么是工作流 以请假为例,现在大多数公司的请假流程是这样的 员工打电话(或网聊)向上级提出请假申请——上级口头同意——上级将请假记录下来——月底将请假记录上交公司——公司将请假录入电...
  • xyw591238
  • xyw591238
  • 2016年05月31日 14:30
  • 5162

js工作流引擎代码实例

  • 2009年07月09日 09:10
  • 1KB
  • 下载

钉钉(工作协同)应用的前端源码

这几天在兴趣下翻看了钉钉(工作协同)应用的前端源码,分析其目录结构、构建工具及框架使用等,进行前端技术研究,分享我的总结成果。 PS:不知道这应用的没关系,因为总结出来是前端通用的东西。 ...
  • u010154380
  • u010154380
  • 2017年06月21日 21:22
  • 549
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:三大主流工作流引擎技术分析与市场预测
举报原因:
原因补充:

(最多只允许输入30个字)