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

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

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

1.从《功夫》说起

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

这让我想到年前的一则新闻: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工作流引擎在国内的主要推广者”,呵呵。

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

相关文章推荐

Activiti工作流引擎——组件说明

工作流引擎简介 Activiti的特点 Activiti引擎的七大Service接口 Activiti架构 Activiti与BPMN 20规范启动事件与结束事件Event 启动事件 空启动事件 定时...

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

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

Java工作流引擎学习----JBPM(二)

四、Demo练习 创建一个java项目,名称:叫jbpm,在src目录下,创建一个demo.jpdl.xml 添加jar包+添加配置文件      将lib中的sub...以上的j...

Java规则引擎工作原理及其应用

引言   目前,Java社区推动并发展了一种引人注目的新技术——Java规则引擎(Rule Engine)。利用它就可以在应用系统中分离商业决策者的商业决策逻辑和应用开发者的技术决策,并把这些...
  • rise51
  • rise51
  • 2016-06-05 08:44
  • 2525

工作流-jbpm入门例子

原文地址:http://blog.csdn.net/hxirui/article/details/1221911 1.      jBPM的简单介绍 jBPM是JBOSS下的一个开源java工作流项...

Java后端WebSocket的Tomcat实现

随着互联网的发展,传统的HTTP协议已经很难满足Web应用日益复杂的需求了。近年来,随着HTML5的诞生,WebSocket协议被提出,它实现了浏览器与服务器的全双工通信,扩展了浏览器与服务端的通信功...
  • wacky
  • wacky
  • 2016-08-12 09:41
  • 437

Activiti工作流引擎的官方实例配置详细步骤

概述 创建Java web项目 复制文件到web项目中 创建数据库 启动运行 示例配置完成概述学习Activiti工作流引擎,第一步自然是是下载官方提供的Demo源码来参考。 Activiti官网:...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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