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

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

1. 从《功夫》说起

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

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

好,我们转入正题,谈这里说的三大主流开源工作流引擎: 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 架构实现的。

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

2. 如来神掌

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

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 吧,反正我们也不搞理论,知道大致概念就行。

3. 市场预测

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

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

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

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

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

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


转自:http://blog.csdn.net/hongbo781202/archive/2005/02/28/304751.aspx

你可能感兴趣的:(三大主流工作流引擎技术分析与市场预测)