duansky'weblog

          統(tǒng)計(jì)

          留言簿(3)

          友情鏈接

          閱讀排行榜

          評論排行榜

          三大主流工作流引擎技術(shù)分析與市場預(yù)測

          1. 從《功夫》說起

          時下的新新人類看到我,一定會認(rèn)為在下是個十足的老古董,這不,《功夫》這樣的片子我到今年 2 月底才看。不過看過《功夫》,我想的一定比一般的人多:周星星浪跡江湖,和他胖子大哥出去敲竹桿時,為什么要他大哥胸前畫兩把斧頭?找個假靠山唄!裝是斧頭幫的人才不會被人欺負(fù)啊。

          這讓我想到年前的一則新聞: jbpm joins jboss and becomes jboss-jbpm 。也就是說了, jbpm 找了個靠山 jboss ,以后不用自己在外流浪了。

          好,我們轉(zhuǎn)入正題,談這里說的三大主流開源工作流引擎: Shark,osworkflow,jbpm

          Shark 的靠山是 Enhydra Enhydra 做過什么呢?多了!從 j2ee 應(yīng)用服務(wù)器,到 o/r mapping 工具,到這個工作流引擎等等。為什么 Shark 的持久層采用 DODS 來實(shí)現(xiàn)?就是因?yàn)樗麄兪且患胰恕?/span>

          Jbpm 的靠山是 jboss Jbpm3 的持久層采用 hibernate3 來實(shí)現(xiàn),也是因?yàn)檫@個原因吧。 Jbpm3 的圖形化流程定義已經(jīng)決定嵌入到 jboss eclipse IDE 中,大家看看 jboss eclipse IDE preview 1.5 版,我們已經(jīng)可以用插件方式編輯一個 jbpm3 流程定義文件了。

          Osworkflow 的靠山是 opensymphony 。我是非常喜歡這個組織的,它做出了很多的好東西。在開發(fā)工作流管理系統(tǒng)時,我就推薦用它的另外一個東西: webwork2 。筆者主持的開源工作流引擎 AgileFlow 就是基于 ww2+spring+hibernate 架構(gòu)實(shí)現(xiàn)的。

          完成本段時說句題外話:現(xiàn)在基本上所有的 J2EE 應(yīng)用程序服務(wù)器都有自己的工作流引擎,如上面提到的 Enhydra,jboss 和沒有提到的 websphere weblogic 等,可見,學(xué)習(xí)工作流引擎技術(shù)的確是非常重要的。

          2. 如來神掌

          光有靠山是不行的,周星星加入了斧頭幫還不是被邪神打扁了頭?要救自己,還是要靠如來神掌。

          Shark 的流程定義語言是 XPDL ,我們知道, XPDL 的兩個最重要的概念是 Process Activity XPDL 中的 Activity 是基于 UML1.x 中的活動圖的概念。活動圖天生的適于工作流程建模,它相對于狀態(tài)圖的一個最大的優(yōu)點(diǎn)是容易做并發(fā)線程的分叉控制,這些并發(fā)線程可以同時執(zhí)行也可以順序執(zhí)行;它還有一個優(yōu)點(diǎn)是有泳道的概念,可以控制工作流引擎中的任務(wù)的產(chǎn)生。 Shark 的如來神掌是活動圖。

          Osworkflow 的如來神掌又是什么呢?我們知道,它有個重要概念是 State…… 呵呵,我們知道了,它的如來神掌是 FSM 。不知道 FSM 是什么東西??那你讀大學(xué)時肯定不是好學(xué)生;當(dāng)然了,不知道也不打緊,你把他類似理解為狀態(tài)圖就可以了。 Osworkflow 中的 State 是由 step status 聯(lián)合表達(dá)的,一個 State 就是一個 step 中的某個 status ;而 state 的轉(zhuǎn)換由 action 來驅(qū)動,類似狀態(tài)圖中的 event, 因?yàn)橐粋€ event 對應(yīng)一個 action 嘛。

          Jbpm 的如來神掌就沒有上面的簡單了,它結(jié)合應(yīng)用了狀態(tài)圖 + 活動圖 +PetriNet 的知識,而且,這里的活動圖還是 UML2.0 版的。 UML2.0 的活動圖中,節(jié)點(diǎn)不叫活動( Activity )而叫動作 (action) ,活動成了一個高層次的概念,它包含一個動作序列。一個活動圖展現(xiàn)一系列的動作,這些動作組成了活動。 Jbpm action 也改名了,稱為 state Jbpm 使用的狀態(tài)圖的概念有 transition/event 等,這個自己去看吧。 Jbpm 來內(nèi)部實(shí)現(xiàn)中還采用了 PetriNet 的概念,如 token,signal 等。什么?又不知道 PetriNet 什么東東?那你大學(xué)是學(xué)計(jì)算機(jī)的嗎?不是?那你可能是學(xué)文科的,學(xué)機(jī)械 / 電氣 / 土木工程 / 交通運(yùn)輸?shù)葘I(yè)都有接觸 PetriNet 的課程,如果沒有學(xué)過,還是看看 jbpm 吧,反正我們也不搞理論,知道大致概念就行。

          3. 市場預(yù)測

          做預(yù)測是件吃力不討好的事情,好多國外的大師做的預(yù)測也是被人罵得 …… 幸虧我去年年中在《工作流之大局勢》中做的預(yù)測還是基本正確。那時我的預(yù)測是: Shark…… 將登上頭號寶座。應(yīng)該說,在那篇文章發(fā)表前,國內(nèi)的工作流引擎使用率最高的是 osworkflow; 到去年年底, Shark 就占有了明顯的優(yōu)勢地位,我分析有如下原因:

          1)???????????? 國內(nèi)的企業(yè)都看中 XPDL ,因?yàn)檫@意味著在產(chǎn)品說明書中又可以吹牛說“我們遵循 WFMC……

          2)???????????? 因?yàn)槲易栽偂?/span> Shark 工作流引擎在國內(nèi)的主要推廣者”,大部分給我反饋工作流管理系統(tǒng)開發(fā)選用技術(shù)的朋友都是用的 Shark

          3)???????????? Shark 的確是一套不錯的工作流引擎,就算你只是想學(xué)習(xí) XPDL ,你也可以從學(xué)習(xí) Shark 開始

          現(xiàn)在已經(jīng)到了《工作流之大局勢》中說的從封建社會向資本主義轉(zhuǎn)型的時代,而驅(qū)動這一轉(zhuǎn)型的,不是別人,正是上面說的 jbpm Jbpm3 將在 3 月發(fā)布阿爾發(fā)版, jbpm3 的最終版將支持 bpel4ws 的核心部分。所以,我估計(jì), Shark 將在引領(lǐng)風(fēng)騷數(shù)百天后,被 jbpm3 趕下第一寶座。筆者的開源敏捷工作流開發(fā)框架 AgileFlow 將整合 jbpm3 ,同時對 agile 引擎和 jbpm3 引擎提供支持。

          bpel4ws 真的就和我們這么快的親密接觸了嗎?沒有。我估計(jì)在今年它是不會真正走進(jìn)我們的生活的,那會是什么時候呢?這將是我下篇文章要預(yù)測的內(nèi)容,我現(xiàn)在可不敢亂說,我現(xiàn)在考慮的是,是不是要自詡“ jbpm3 工作流引擎在國內(nèi)的主要推廣者”,呵呵。


          轉(zhuǎn)自:http://blog.csdn.net/hongbo781202/archive/2005/02/28/304751.aspx

          posted on 2008-08-06 11:11 duansky 閱讀(263) 評論(0)  編輯  收藏 所屬分類: Workflow


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 江永县| 扬中市| 云和县| 武冈市| 巴林右旗| 佳木斯市| 枞阳县| 措美县| 定西市| 阿巴嘎旗| 池州市| 厦门市| 若尔盖县| 阿勒泰市| 天津市| 洛宁县| 万宁市| 岳阳市| 泰顺县| 邹平县| 佛山市| 泰安市| 无为县| 托里县| 陆良县| 项城市| 闽清县| 搜索| 永平县| 江山市| 武宣县| 镇赉县| 青神县| 二连浩特市| 民和| 乌兰察布市| 中卫市| 应城市| 田东县| 沙雅县| 合阳县|