`
sunguanxing
  • 浏览: 1097485 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

阅读更多
http://opensource.blog.51cto.com/62670/8678
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工作流引擎在国内的主要推广者”,呵呵。

——摘自杨洪波BLOG本文出自 51CTO.COM技术博客
分享到:
评论

相关推荐

    Java四大主流开源工作流引擎分析Shark,osworkflow,jbpm,jflow

    本文将深入分析四个主流的开源工作流引擎:Shark、osworkflow、jbpm和jflow。 首先,Shark是Enhydra项目的一部分,Enhydra是一个涵盖广泛的技术栈,包括J2EE应用服务器、对象/关系映射工具以及工作流引擎等。Shark...

    主流工作流对比

    通过对以上四种主流开源工作流引擎的对比,我们可以发现它们各有特点: - **JBPM4**: 在多种流程定义语言的支持方面表现突出,具有较高的灵活性和扩展性。 - **Activiti5**: 支持最新的BPMN2.0规范,集成了Spring...

    开源工作流的比较和描述

    本文将对几种主流的开源工作流系统进行详细介绍与对比分析。 ### 1. Shark Shark是一款基于WfMC(Work Flow Management Coalition)标准的开源工作流管理系统,支持XPDL(XML Process Definition Language)格式的...

    java开源主流工作流框架比较.docx

    以下是对几个主要开源工作流框架的详细分析: 1. **jBpm** jBpm是一个功能丰富的、完全开源的工作流引擎,它提供了一个完整的解决方案,包括工作流引擎、规则引擎和事件处理。jBpm支持BPMN 2.0标准,使得流程设计...

    开源工作流的比较研究

    本文档提供了一项针对三种主流开源工作流管理系统——jBPM、OpenWFE和Enhydra Shark——的模式评估研究。随着开源软件在业务流程管理(BPM)领域的日益成熟与普及,对这些系统进行深入分析变得尤为重要。该研究基于...

    java开源主流工作流框架比较.pdf

    本文将深入探讨几个流行的Java开源工作流框架,分析其特点、优缺点,并提供一些集成到企业平台时的考量因素。 1. jBpm jBpm是JBoss公司开发的一款强大且灵活的工作流引擎,它基于Java EE标准,支持BPMN 2.0规范,...

    驰骋工作流引擎CCFLOW

    驰骋工作流引擎CCFLOW是一款国内领先且完全开源的工作流管理系统,主要应用于.NET和JAVA两大平台,为企业级应用提供高效、灵活的流程自动化解决方案。这款引擎的出现打破了传统工作流系统的壁垒,允许开发者和企业...

    easyui实现的Activiti工作流引擎web版流程设计器

    Activiti是一个开源的工作流引擎,它提供了一个模型驱动的API,用于定义、执行和管理业务流程。它支持业务流程建模语言(BPMN 2.0),允许业务分析师通过图形化的方式设计和部署流程。在Activiti中,流程定义被保存为...

    毕业设计论文_工作流.

    接着,介绍工作流技术的发展历程,以及市场上主流的工作流管理系统及其特性。重点在于设计和实现一个轻量级的工作流管理系统,以满足小型企业和部门对于简单、易用、低成本的流程管理需求。 2.1 工作流的相关概念 ...

    网络技术-网络基础-荆门市行政审批电子监察系统工作流设计与实现.pdf

    jBPM是一款开源工作流引擎,它以UML活动图的形式表示业务流程,有助于用户和开发者之间的沟通。jBPM的灵活性和扩展性使其在处理回退任务、会签任务等复杂工作流场景下表现出色。此外,jBPM提供了强大的事务管理和...

    工作流各项对比.pdf

    本文将对四个主流的开源工作流引擎——Jbpm4、Activiti5、osworkflow和Shark进行详细对比,以便理解各自的特点和适用场景。 Jbpm4是一款基于Hibernate3的开源工作流引擎,它支持多种流程定义语言,如BPEL、XPDL、...

    基于关系数据库的工作流系统设计与实现

    它可以是自定义开发的,也可以采用开源工作流引擎如Activiti或Camunda。工作流引擎需要与数据库紧密集成,以持久化流程实例的状态和任务信息。 为了提高效率和用户体验,系统通常会提供Web接口或API,允许用户查看...

    开源项目学术论文分析报告1

    值得注意的是,关键词列表还揭示了开源项目在工程管理和施工项目中的应用,如成本控制、工作流、施工企业等,这表明开源技术不仅局限于信息技术领域,还在其他行业找到了应用空间。同时,软件开发相关的框架如Struts...

    软件工作流原理介绍doc文件

    JBPM是一种开源的工作流管理系统,它提供了设计、执行和管理业务流程的能力。通过使用JBPM,开发者可以构建灵活且可扩展的业务流程,这些流程能够适应不断变化的业务需求。 首先,我们来看看工作流的基本构成。工作...

    微服务管理系统模板包含工作流.zip

    FLOWABLE的工作流引擎可以与微服务系统紧密结合,实现动态流程审批、任务分配和监控,从而提升企业的运营效率。 积木表格是一种创新的数据展示和操作方式,通常具有高度自定义和交互性。在这个系统中,用户可以像拼...

    JBPM与Activity分析.doc

    JBPM与Activiti作为当前市场上主流的工作流引擎,因其开源特性及强大的功能受到了广泛的关注与应用。本文将对JBPM和Activiti进行深入的分析,并与国内的工作流引擎FixFlow进行对比。 #### 二、JBPM与Activiti对比...

    云计算第三版精品课程配套PPT课件含习题(26页)第5章 Hadoop 2.0 主流开源云架构(二).rar

    在本压缩包中,我们关注的是“云计算第三版精品课程配套PPT课件含习题(26页)第5章 Hadoop 2.0 主流开源云架构(二).pptx”,这是一个关于Hadoop 2.0的深度讲解,涵盖了云计算领域的核心概念和Hadoop作为主流开源...

    开源数据库

    ### 开源数据库架构初步探讨与主流开源架构搭建 #### 一、开源数据库概述 开源数据库是指那些源代码公开,用户可以自由使用、修改和分发的数据库管理系统。这些数据库通常由社区驱动,拥有活跃的开发者社群和技术...

    宏天软件-开源BPM软件和服务提供商未来发展与规划 商业计划书.docx

    - 进一步推出了BPMX 5,对原有产品进行了多项优化,如轻量级工作流平台的构建、组织架构的简化、流程服务化的简化等。 - **新产品研发**:近年来,宏天软件还研发了SaaS+BPM、BPM+SAP组件产品以及集成BPM、ESB、...

    国内外主流的三维GIS软件

    AlaGIS与全球首个大规模网络仿真城市E都市同属于杭州阿拉丁公司,采用面向网络的分布式空间信息应用服务支撑平台,集二维、三维、遥感影像于一体,全面整合了GIS与数据库、软件工程、人工智能、网络技术及其他多种...

Global site tag (gtag.js) - Google Analytics