原地址:http://gocom.primeton.com/modules/newbb/item40732_40732.htm?PHPSESSID=b3d40a5147b401adc250801cdef036cf&referer=csdn&utm_campaign=gocom&utm_source=csdn&utm_medium=lks 摘要:介紹幾種工作流的模式 作者:劉航 工作流的基本模式 1、順序(Sequence)模式 描述:只有當(dāng)前一個(gè)活動(dòng)結(jié)束后,后一個(gè)活動(dòng)才會(huì)被觸發(fā),即按照預(yù)定的任務(wù)列表,有序的執(zhí)行。

舉例:對(duì)于一個(gè)BUG的處理就滿足該模式。
 2、并行(Parallel Split)模式 描述:一個(gè)活動(dòng)的結(jié)束能夠觸發(fā)若干個(gè)活動(dòng)的開始,這些被觸發(fā)的活動(dòng)能以并行的方式同時(shí)或按任意順序進(jìn)行。

舉例:當(dāng)提交一個(gè)BUG時(shí)會(huì)分別向BUG信息表和BUG日志表中添加相應(yīng)記錄

3、同步(Synchronization)模式 描述:如果不考慮超時(shí)(一般流程會(huì)設(shè)定任務(wù)執(zhí)行期限)和異常等情況,流程必須在聚合點(diǎn)等待所有的分支都執(zhí)行完(到達(dá)And 匯聚點(diǎn))才能激活后繼任務(wù),才能正確的往下運(yùn)行。

舉例:支持人員分派的問題由開發(fā)人員修改,然后不僅要經(jīng)過測(cè)試人員驗(yàn)證通過還要再次經(jīng)支持人員驗(yàn)證通過才能Close該BUG。

4 獨(dú)占式選擇(Exclusive Choice)模式 該模式分為顯式獨(dú)占模型(explic Exclusive Choice )和隱式獨(dú)占選擇模式(implicit Exclusive Choice) 1)顯式獨(dú)占選模型(explic Exclusive Choice ) 描述:當(dāng)一個(gè)活動(dòng)處理完后,其后有若干個(gè)分支流程可供選擇,但根據(jù)工作流控制數(shù)據(jù)(workflow control data)只允許選擇其中某一個(gè)分支運(yùn)行。

如上圖所示,雖然在任務(wù)Task A 后可以三個(gè)不同的活動(dòng)流程可被選擇,但是僅Task D 滿足條件,造成后續(xù)的流程中,走了A——D 分支,而另外的分支被拋棄。 舉例:當(dāng)PSO人員提交一個(gè)問題時(shí),該問題的類型需要被確定。如果是產(chǎn)品的錯(cuò)誤而引起的那么問題類型即為BUG;如果是由于客戶的操作失誤而引起的那么問題類型即為ISSUE;如是對(duì)產(chǎn)品的有價(jià)值的建議,那么問題的類型即為ADVICE;由上可知,當(dāng)確定問題類型時(shí)三種只能選其一。
 2)隱式獨(dú)占選模型(implicit Exclusive Choice ) 描述:同為XOR 模型,隱式和顯式的區(qū)別不是太大。唯一的不同點(diǎn)就是,隱式獨(dú)占選模型在可供選擇的分支中存在存在若干個(gè)分支滿足條件,但最終,依然僅有一個(gè)分支運(yùn)行。

如上圖所示,存在分支A—C 和分支A—D 都滿足條件,但最終也依然只能有一個(gè)分支被激活。至于哪一個(gè)分支被激活,這可能是人為的操作,也可能是某種隨即的自動(dòng)選擇。不論哪種方式,人須保證一個(gè)分支被激活后,其他分支被拋棄。 舉例:PSO的人員在提交問題的時(shí)候,他會(huì)根據(jù)問題的來源將它提交給負(fù)責(zé)相應(yīng)區(qū)域的支持人員。但是,具體提交給負(fù)責(zé)該區(qū)域的哪一位支持者,就由PSO的人員自己決定或系統(tǒng)隨機(jī)產(chǎn)生。不管如何選擇都必須有一位支持人員要接收該問題。

不管是顯式獨(dú)占模型(explic Exclusive Choice )還是隱式獨(dú)占選擇模式(implicit Exclusive Choice)他們的執(zhí)行流程都是一樣的。 5、簡(jiǎn)單聚合(Simple Merge)模型 描述:前面的若干個(gè)分支,只要有一個(gè)活動(dòng)被執(zhí)行(假定不存在兩個(gè)分支同時(shí)被執(zhí)行),后面的活動(dòng)就會(huì)被觸發(fā)。當(dāng)然,一旦某一個(gè)分支被通過。則余下的分支則被終止,或者運(yùn)行到聚合點(diǎn)就結(jié)束。

舉例:如果產(chǎn)品中存在某個(gè)BUG那么可能會(huì)被不同地方的用戶發(fā)現(xiàn),但只要有一個(gè)地方的PSO人員提出這個(gè)問題BUG就會(huì)得到處理。當(dāng)其它地方的PSO再次提出該問題的時(shí)候就不會(huì)重復(fù)處理了
|