DANCE WITH JAVA

          開發(fā)出高質(zhì)量的系統(tǒng)

          導(dǎo)航

          <2007年5月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          隨筆分類(277)

          隨筆檔案(238)

          閱讀排行榜

          常用鏈接

          統(tǒng)計(jì)

          積分與排名

          好友之家

          最新評(píng)論

          工作流入門

            工作流無(wú)疑是一個(gè)熱門話題,以前的開發(fā)中一直不會(huì)接觸到這個(gè)層面,所以一直沒(méi)有來(lái)得及看到。現(xiàn)在由于工作需要開始接觸工作流,這里留下一個(gè)我學(xué)習(xí)的過(guò)程,提供一些好的資源和一些自己的體會(huì),方便大家學(xué)習(xí)探討。

          一、為什么使用工作流、工作流這個(gè)技術(shù)的現(xiàn)狀
          出于習(xí)慣,每當(dāng)我學(xué)習(xí)一個(gè)技術(shù)的時(shí)候,必須要知道為什么要學(xué)習(xí)它,它能給我?guī)?lái)什么好處,了解了這個(gè)才能讓我決定是否使用,在什么時(shí)候使用。另外了解一下這個(gè)技術(shù)的現(xiàn)狀有助于從總體上把握這個(gè)技術(shù)。對(duì)于一個(gè)發(fā)展階段的技術(shù)和一個(gè)成熟的技術(shù)對(duì)待方式是不一樣的。
          關(guān)于這點(diǎn),參考這篇文章:http://www.joinwork.net/document/The%20State%20of%20Workflow2.htm
          所有我看過(guò)的文章中,這篇文章最清晰的說(shuō)明了我上邊的兩個(gè)問(wèn)題,而且以問(wèn)答的方式來(lái)寫的,適合從頭開始的人。
          這篇文章的作者Tom Baeyens (jbpm工作流框架的作者)翻譯dinghong,感謝他們提供了一個(gè)好的文章。
          二、工作流框架的選擇
          由于開源的流行我們可以有更多的選擇,這給我們帶來(lái)了很多的方便,好處多多不用說(shuō)了,但也給我們帶了了一些麻煩,用Java 的人都了解,百家爭(zhēng)鳴讓人眼花繚亂,一個(gè)重要的事情是選擇,哪一個(gè)適合自己,或者說(shuō)你更喜歡哪一個(gè)。選擇也是一個(gè)難題。選擇的好能節(jié)省很多時(shí)間,少走彎路。
          在這個(gè)問(wèn)題上我沒(méi)有選擇,因?yàn)槲也皇沁@個(gè)方面的主要負(fù)責(zé)人,框架的選擇已經(jīng)定下來(lái)了,OSWorkFlow.這對(duì)我也許是個(gè)好消息,因?yàn)槲也恍枰僭诖罅康目蚣苤腥ミx擇,只需要專一于一個(gè),省去大量的時(shí)間。
          三、OSWorkFlow主要優(yōu)勢(shì)
          OSWorkflow 給你絕對(duì)的靈活性。OSWorkflow 被認(rèn)為是一種“低級(jí)別”工作流實(shí)現(xiàn)。與其他工作流系統(tǒng)能用圖標(biāo)表現(xiàn)“Loops(回路)”和“Conditions(條件)”相比,OSWorkflow 只是手工“編碼(Coded)”來(lái)實(shí)現(xiàn)的。但這并不能說(shuō)實(shí)際的代碼是需要完全手工編碼的,腳本語(yǔ)言能勝任這種情形。OSWorkflow 不希望一個(gè)非技術(shù)用戶修改工作流程,雖然一些其他工作流系統(tǒng)提供了簡(jiǎn)單的 GUI 用于工作流編輯,但像這樣改變工作流,通常會(huì)破壞這些應(yīng)用。所以,進(jìn)行工作流調(diào)整的最佳人選是開發(fā)人員,他們知道該怎么改變。不過(guò),在最新的版本中,OSWorkflow 也提供了 GUI 設(shè)計(jì)器來(lái)協(xié)助工作流的編輯。

          OSWorkflow 基于有限狀態(tài)機(jī)概念。每個(gè) state 由 step ID 和 status 聯(lián)合表現(xiàn)(可簡(jiǎn)單理解為 step 及其 status 表示有限狀態(tài)機(jī)的 state)。一個(gè) state 到另一 state 的 transition 依賴于 action 的發(fā)生,在工作流生命期內(nèi)有至少一個(gè)或多個(gè)活動(dòng)的 state。這些簡(jiǎn)單概念展現(xiàn)了 OSWorkflow 引擎的核心思想,并允許一個(gè)簡(jiǎn)單 XML 文件解釋工作流業(yè)務(wù)流程。

          上邊這段話是從OSWorkFlow的教程中得到的,總結(jié)一下,OSWorkFlow是基于xml手工配置的,它特點(diǎn)是靈活,它認(rèn)為工作流的調(diào)整應(yīng)該是程序員的事情。
          四、OSWorkFlow核心概念
          步驟(Step)
              一個(gè) Step 描述的是工作流所處的位置。可能從一個(gè) Step Transtion(流轉(zhuǎn))到另外一個(gè) Step,或者也可以在同一個(gè) Step 內(nèi)流轉(zhuǎn)(因?yàn)?nbsp;Step 可以通 Status 來(lái)細(xì)分,形成多個(gè)State)。一個(gè)流程里面可以多個(gè)Step。

          狀態(tài)(Status)
              工作流 Status 是用來(lái)描述工作流程中具體Step(步驟)狀態(tài)的字符串。OSWorkflow 的有 Underway(進(jìn)行中)、Queued(等候處理中)、Finished(完成)三種 Status。一個(gè)實(shí)際State(狀態(tài))真正是由兩部分組成:State = (Step + Status) 。

          流轉(zhuǎn)(Transtion)
              一個(gè)State到另一個(gè)State的轉(zhuǎn)移。

          動(dòng)作(Action)
              Action 觸發(fā)了發(fā)生在 Step 內(nèi)或 Step 間的流轉(zhuǎn),或者說(shuō)是基于 State 的流轉(zhuǎn)。一個(gè) step 里面可以有多個(gè)Action。Action 和Step 之間的關(guān)系是,Step 說(shuō)明“在哪里”,Action 說(shuō)明“去哪里”。 一個(gè) Action 典型地由兩部分組成:可以執(zhí)行此Action(動(dòng)作)的
          Condition(條件),以及執(zhí)行此動(dòng)作后的 Result(結(jié)果)。    

          條件(Condition)
          類似于邏輯判斷,可包含“AND”和“OR”邏輯。比如一個(gè)請(qǐng)假流程中的“本部門審批階段”,該階段利用“AND”邏輯,判斷流程狀態(tài)是否為等候處理中,以及審批者是否為本部門主管。

          結(jié)果(Result)
          Result 代表執(zhí)行Action(動(dòng)作)后的結(jié)果,指向新的 Step 及其 Step Status,也可能進(jìn)入 Split 或者 Join。Result 分為兩種, Contidional-Result (有條件結(jié)果),只有條件為真時(shí)才使用該結(jié)果,和 Unconditional-Result(無(wú)條件結(jié)果),當(dāng)條件不滿足或沒(méi)有條件時(shí)使用該結(jié)果。

          分離/連接(Split/Join)
          流程的切分和融合。很簡(jiǎn)單的概念,Split 可以提供多個(gè) Result(結(jié)果);Join 則判斷多個(gè) Current Step 的態(tài)提供一個(gè) Result(結(jié)果)。

          好了,到這里,工作流的一個(gè)概貌是出來(lái)了。在下邊的文章中會(huì)以O(shè)SWorkFlow為例來(lái)進(jìn)入工作流的天地。

          posted on 2007-05-07 19:06 dreamstone 閱讀(3831) 評(píng)論(2)  編輯  收藏 所屬分類: 其它開源框架

          評(píng)論

          # re: 工作流入門 2007-06-07 13:09 tiantian

          你好!
          和你的處境一樣!我們也要開始使用工作流,我也沒(méi)有選擇什么框架的權(quán)力,osworkflow!
          剛剛接觸,有很多的知識(shí)需要學(xué)習(xí),相信以后的共同語(yǔ)言會(huì)很多哦!
          tiantian810605@tom.com,希望可以多多交流,共同進(jìn)步!我也會(huì)常來(lái)逛逛的!  回復(fù)  更多評(píng)論   

          # re: 工作流入門 2007-10-29 13:59 Terrence

          你好!
          比你們的處境差一點(diǎn)!我還不知道用的是什么框架,先學(xué)一個(gè)。
          寫的很好,學(xué)著!  回復(fù)  更多評(píng)論   

          主站蜘蛛池模板: 高碑店市| 宜黄县| 龙游县| 华阴市| 渭南市| 固原市| 中山市| 宜川县| 普陀区| 老河口市| 措勤县| 安溪县| 商河县| 竹山县| 无棣县| 阿城市| 柳林县| 黄浦区| 华蓥市| 始兴县| 铜山县| 毕节市| 信宜市| 孙吴县| 鹿泉市| 桂林市| 无为县| 湟中县| 安远县| 阿克陶县| 阿图什市| 金湖县| 鄂州市| 万州区| 宝清县| 镇赉县| 沅陵县| 甘德县| 林芝县| 扎囊县| 红河县|