六、自動(dòng)開始模式
在前面的資源模式里,我們討論了創(chuàng)建模式、推模式和拉模式,它們實(shí)際對(duì)應(yīng)著工作項(xiàng)的一個(gè)正常生命周期:創(chuàng)建、提供/指派、資源選取開始執(zhí)行。在前面的討論里,工作項(xiàng)的執(zhí)行都是由資源驅(qū)動(dòng)的(從工作項(xiàng)待辦列表里選取執(zhí)行),而自動(dòng)開始模式則提供了一種系統(tǒng)驅(qū)動(dòng)工作項(xiàng)執(zhí)行的方式,系統(tǒng)直接驅(qū)動(dòng)工作項(xiàng)執(zhí)行往往表明了該工作項(xiàng)的最高優(yōu)先級(jí),需要馬上開始執(zhí)行。
圖 5-42
如圖5-42所示,自動(dòng)開始模式對(duì)應(yīng)著紅線標(biāo)識(shí)著的工作項(xiàng)的狀態(tài)變遷,共有4種模式:創(chuàng)建即執(zhí)行、指派即執(zhí)行、成堆執(zhí)行和鏈?zhǔn)綀?zhí)行。
1、創(chuàng)建即開始執(zhí)行(WRP_36: Commencement on Creation)
描述
資源能夠在工作項(xiàng)一創(chuàng)建完畢就開始執(zhí)行。
圖 5-43
如圖5-43所示,任務(wù)A工作項(xiàng)一創(chuàng)建就插入員工甲的辦理列表,需要員工甲馬上開始執(zhí)行。
應(yīng)用
該模式應(yīng)用在關(guān)鍵的優(yōu)先級(jí)高的任務(wù)里,通過系統(tǒng)推送,強(qiáng)制資源優(yōu)先執(zhí)行該任務(wù),省去任務(wù)的等待時(shí)間。
實(shí)現(xiàn)
該模式的實(shí)現(xiàn)實(shí)際是系統(tǒng)同時(shí)完成了工作項(xiàng)的創(chuàng)建和推送,系統(tǒng)需要確定具體的執(zhí)行人,工作項(xiàng)不會(huì)分配給角色、崗位等資源組以提供給相應(yīng)資源進(jìn)行選擇。
2、指派即開始執(zhí)行(WRP_37: Commencement on Allocation)
描述
資源能夠在工作項(xiàng)一指派完畢就開始執(zhí)行。
圖 5-44
如圖5-44所示,任務(wù)A工作項(xiàng)一旦被員工甲從可拾取列表拾取就馬上插入員工甲的辦理列表,需要員工甲馬上開始執(zhí)行。
應(yīng)用
該模式跳過了工作項(xiàng)的指派狀態(tài),實(shí)際是對(duì)創(chuàng) 建即開始執(zhí)行模式的擴(kuò)展,在創(chuàng)建即開始執(zhí)行模式里,工作項(xiàng)必須預(yù)先確定明確的執(zhí)行人,不能分配給角色、崗位等資源組,而在該模式里除了支持創(chuàng)建即開始執(zhí)行 模式里的情況,同時(shí)也提供了對(duì)這種情況的支持,工作項(xiàng)可以提供給多個(gè)資源拾取,一旦一個(gè)資源拾取則必須馬上開始執(zhí)行(從這個(gè)角度看,該模式與資源驅(qū)動(dòng)執(zhí)行-提供工作項(xiàng)模式是相同的)。
3、成堆執(zhí)行(WRP_38: Piled Execution)
描述
資源能夠成堆執(zhí)行相同任務(wù)的不同工作項(xiàng)。
圖 5-45
如圖5-45所示,員工甲有多個(gè)任務(wù)A的工作項(xiàng)需要執(zhí)行,這些注意的是,這些工作項(xiàng)并不是由一個(gè)任務(wù)實(shí)例所產(chǎn)生的,它們屬于不同的流程實(shí)例,是由多個(gè)流程實(shí)例里的任務(wù)A生成的。一旦員工甲開始任務(wù)A工作項(xiàng)的執(zhí)行,那么他將執(zhí)行所有任務(wù)A的工作項(xiàng),即將任務(wù)A相關(guān)的工作項(xiàng)全部打包執(zhí)行。這一功能由系統(tǒng)驅(qū)動(dòng),系統(tǒng)將與任務(wù)A相關(guān)的工作項(xiàng)依次推送至資源的辦理列表。
應(yīng)用
開發(fā)人員甲熟悉持續(xù)集成工具,此時(shí)同時(shí)有多個(gè)軟件開發(fā)項(xiàng)目需要搭建持續(xù)集成環(huán)境。一旦他為某個(gè)項(xiàng)目組搭建了持續(xù)集成環(huán)境,那么處于執(zhí)行效率的考慮,最好的方式無疑是他一鼓作氣將所有的持續(xù)集成環(huán)境都搭建完畢。
相同/相似的工作交由同一資源一并執(zhí)行,這些工作具有完全或大部分相似的執(zhí)行上下文(相同的知識(shí)、能力要求),從這個(gè)角度能夠達(dá)到最高的工作效率。
實(shí)現(xiàn)
系統(tǒng)需要在進(jìn)行工作項(xiàng)狀態(tài)變遷操作時(shí)提供相應(yīng)的鉤子,以進(jìn)行相應(yīng)的回調(diào)操作。
4、鏈?zhǔn)綀?zhí)行(WRP_39: Chained Execution)
描述
在一個(gè)流程實(shí)例里,當(dāng)前一個(gè)任務(wù)的工作項(xiàng)執(zhí)行完畢后,能夠自動(dòng)開始執(zhí)行下一個(gè)任務(wù)的工作項(xiàng)。
圖 5-46
如圖5-46所示,任務(wù)A和任務(wù)B是兩個(gè)連貫的任務(wù),它們都分配給員工甲執(zhí)行,當(dāng)員工甲執(zhí)行完畢任務(wù)A的工作項(xiàng)后,任務(wù)B生成的工作項(xiàng)將馬上被系統(tǒng)發(fā)送至員工甲的辦理列表,員工甲需要馬上辦理。
應(yīng)用
該模式實(shí)際是將資源膠黏在一個(gè)流程實(shí)例上,同樣是出于執(zhí)行效率的考慮(兩個(gè)任務(wù)位于同一流程實(shí)例里,具有相同的執(zhí)行上下文)。該模式的應(yīng)用具有前提條件:流程定義時(shí),連續(xù)的任務(wù)由相同的資源進(jìn)行處理。
七、可見性模式
可見性模式討論各種不同資源對(duì)工作項(xiàng)的可見 性,不同的資源由于角色、權(quán)限的不同,對(duì)工作項(xiàng)擁有不同的可見范圍。由于涉及到權(quán)限,那么根據(jù)不同的組織機(jī)構(gòu)設(shè)置,必然會(huì)出現(xiàn)不同的工作項(xiàng)權(quán)限分配,這里 不討論具體的工作項(xiàng)權(quán)限分配,僅從工作項(xiàng)的狀態(tài)來討論這些工作項(xiàng)區(qū)分可見性的必要性。
可見性模式包括2種:未指派狀態(tài)工作項(xiàng)的可見性和指派狀態(tài)工作項(xiàng)的可見性。實(shí)際上,工作項(xiàng)處于執(zhí)行狀態(tài)或完成狀態(tài)也存在不同的可見性。
1、可配置的未指派工作項(xiàng)的可見性(WRP_40: Configurable Unallocated Work Item Visibility)
描述
能夠配置未指派工作項(xiàng)的可見性。
圖 5-47
如圖5-47所示,可拾取列表里存在3個(gè)工作項(xiàng):任務(wù)A工作項(xiàng)、任務(wù)B工作項(xiàng)和任務(wù)C工作項(xiàng)。員工甲可拾取的工作項(xiàng)包括:任務(wù)A和任務(wù)B工作項(xiàng);員工乙可拾取的工作項(xiàng)包括:任務(wù)B和任務(wù)C工作項(xiàng),那么由此產(chǎn)生的可見性是:員工甲只能看到任務(wù)A和任務(wù)B工作項(xiàng),而員工乙則只能看到任務(wù)B和任務(wù)C工作項(xiàng)。而作為員工甲和員工乙的部門經(jīng)理,他需要了解每個(gè)屬下的工作情況,所以他可以看見所有甲乙可見的工作項(xiàng)。
應(yīng)用
隨著企業(yè)規(guī)模的發(fā)展,幾乎所有企業(yè)的組織模 型都會(huì)形成金字塔型的結(jié)構(gòu),一方面是出于分工的需要,另一方面則是出于管理的需要,每一層級(jí)的人員都需要對(duì)上一級(jí)負(fù)責(zé),同時(shí)管理下一層級(jí)的人員。處于管理 的需要,管理者必然需要了解下屬的工作情況,這樣權(quán)限就自然產(chǎn)生了,具體到工作流的任務(wù)里,管理者需要對(duì)其所管理下屬的工作具有可見性。
其實(shí)不僅僅是對(duì)于工作項(xiàng),對(duì)于流程實(shí)例本身 也具有可見性的分配。對(duì)流程負(fù)責(zé)的人必然具備最大的可見性和權(quán)限,流程根據(jù)任務(wù)分解,如果僅僅只對(duì)某一任務(wù)負(fù)責(zé),那么則只對(duì)該任務(wù)具有可見性,而如果需要 對(duì)多個(gè)任務(wù)負(fù)責(zé),那么就需要對(duì)多個(gè)任務(wù)具有可見性,最直接的負(fù)責(zé)人就是具體執(zhí)行該任務(wù)的人員,但是引入管理的層級(jí)后,職責(zé)的承擔(dān)也會(huì)形成層級(jí)的關(guān)系,從上 至下層層承擔(dān),此時(shí)擔(dān)負(fù)最大職責(zé)的人員往往不再是具體的工作執(zhí)行人員,而是相應(yīng)的管理人員。
實(shí)現(xiàn)
在前面所描述的情況里,支持員工甲乙的可見性是比較簡單的,因?yàn)槊織l工作項(xiàng)記錄都攜帶有參與者信息,但是部門經(jīng)理顯然不在這些參與者信息里,所以需要引入與組織權(quán)限模型相匹配的工作項(xiàng)查詢機(jī)制,即不同于工作項(xiàng)列表的查詢列表。
2、可配置的指派工作項(xiàng)的可見性(WRP_41: Configurable Allocated Work Item Visibility)
描述
能夠配置已指派工作項(xiàng)的可見性。
圖 5-48
如圖5-48所示,待辦列表里存在3個(gè)工作項(xiàng):任務(wù)A工作項(xiàng)、任務(wù)B工作項(xiàng)和任務(wù)C工作項(xiàng)。指派給員工甲的工作項(xiàng)包括:任務(wù)A和任務(wù)B工作項(xiàng);指派給員工乙的工作項(xiàng)包括:任務(wù)C工作項(xiàng),那么由此產(chǎn)生的可見性是:員工甲只能看到任務(wù)A和任務(wù)B工作項(xiàng),而員工乙則只能看到任務(wù)C工作項(xiàng)。而作為員工甲和員工乙的部門經(jīng)理,他需要了解每個(gè)屬下的工作情況,所以他可以看見所有甲乙可見的工作項(xiàng)。
八、多資源模式
到目前為止,我們討論的工作項(xiàng)都是與某一特定資源一一對(duì)應(yīng)的,即一個(gè)工作項(xiàng)只能由一個(gè)單一資源執(zhí)行,或者嚴(yán)格來說,一個(gè)工作項(xiàng)在任何時(shí)間段都只能由一個(gè)單一資源執(zhí)行(考慮到工作移交的情況);同時(shí),一個(gè)資源在任何一個(gè)時(shí)間段都只能處理一個(gè)工作項(xiàng)。
多資源模式將會(huì)討論兩種不同的情況:一個(gè)資源同時(shí)執(zhí)行多個(gè)工作項(xiàng)、多個(gè)資源執(zhí)行同一個(gè)工作項(xiàng)。
1、同時(shí)執(zhí)行(WRP_42: Simultaneous Execution)
描述
資源能夠同時(shí)執(zhí)行多個(gè)工作項(xiàng)。
圖 5-49
如圖5-49所示,員工甲的辦理列表里有三個(gè)工作項(xiàng),他能夠同時(shí)執(zhí)行這三個(gè)工作項(xiàng)。
應(yīng)用
和計(jì)算機(jī)一樣,雖然在任何時(shí)刻都只能處理一項(xiàng)工作,但是通過將多項(xiàng)工作切分成多個(gè)線程交替執(zhí)行,從某個(gè)時(shí)間段看,人能夠同時(shí)處理多項(xiàng)工作。
人能夠選取相關(guān)聯(lián)的多個(gè)工作,同時(shí)開始執(zhí)行,在執(zhí)行的過程中,合理安排這些工作的執(zhí)行時(shí)機(jī)和順序。
實(shí)現(xiàn)
幾乎所有的工作流系統(tǒng)都不會(huì)約束人員往自己的辦理列表里增加多個(gè)工作項(xiàng)。
2、增加資源執(zhí)行(WRP_43: Additional Resources)
描述
資源能夠要求增加資源來處理他正在執(zhí)行的工作項(xiàng)。
圖 5-50
如圖5-50所示,員工甲和員工乙同時(shí)處理一個(gè)工作項(xiàng)。
應(yīng)用
在一些復(fù)雜的場景里,一項(xiàng)工作往往需要多個(gè)資源共同協(xié)作完成。
典型的在一個(gè)會(huì)簽任務(wù)里,一個(gè)發(fā)文需要多人簽字通過,同時(shí)在會(huì)簽過程中,經(jīng)常出現(xiàn)動(dòng)態(tài)加簽的情況:需要新的人員加入進(jìn)行簽字。
在敏捷開發(fā)里,所有的開發(fā)工作都是由兩個(gè)開發(fā)人員共同結(jié)對(duì)完成。
實(shí)現(xiàn)
工作項(xiàng)作為工作流系統(tǒng)里最小的工作單元,如果將其分配給多個(gè)資源,無疑會(huì)增加編程模型的復(fù)雜度。最常見的實(shí)現(xiàn)方式是增加工作項(xiàng),一個(gè)任務(wù)節(jié)點(diǎn)對(duì)應(yīng)多個(gè)工作項(xiàng),對(duì)于需要增加資源的情況,增加工作項(xiàng)。
九、小結(jié)
在本章里,我們討論了工作流的43種資源模式,這些模式分為7類,分別是創(chuàng)建模式、推模式、拉模式、折回模式、自動(dòng)開始模式、可見性模式和多資源模式。
創(chuàng)建模式在系統(tǒng)創(chuàng)建工作項(xiàng)時(shí)生效,其位于工作項(xiàng)生命周期的創(chuàng)建階段,創(chuàng)建模式作為流程模型的構(gòu)成部分在流程設(shè)計(jì)期指定,通常在任務(wù)節(jié)點(diǎn)的定義里進(jìn)行定義,與一個(gè)任務(wù)關(guān)聯(lián),其用來限定可執(zhí)行該任務(wù)的資源范圍。系統(tǒng)根據(jù)創(chuàng)建模式限定的資源范圍生成工作項(xiàng)。
接下來,系統(tǒng)需要將工作項(xiàng)推送給相關(guān)的資源進(jìn)行執(zhí)行,這個(gè)推送的過程即是推模式所包含的內(nèi)容。工作流系統(tǒng)通過工作項(xiàng)管理器即不同類型的工作項(xiàng)列表與用戶進(jìn)行交互,這里的推送可以理解為系統(tǒng)將生成的工作項(xiàng)推送至相應(yīng)資源的工作項(xiàng)列表里。
推模式的主語是系統(tǒng),由系統(tǒng)將工作項(xiàng)推送至資源的工作項(xiàng)列表,那么,接下來的主動(dòng)權(quán)交由單個(gè)資源本身,由其拉動(dòng)工作項(xiàng)的執(zhí)行,這是拉模式所包含的內(nèi)容。
實(shí)際工作中,工作的執(zhí)行狀態(tài)不可能總是與預(yù)想相符的,總會(huì)出現(xiàn)各種各樣的情況,例如重新分配、重做、掛起等等。折回模式對(duì)應(yīng)著這些情況,折回代表著工作項(xiàng)狀態(tài)的反復(fù)、回退。
自動(dòng)開始模式提供了一種系統(tǒng)驅(qū)動(dòng)工作項(xiàng)執(zhí)行的方式,系統(tǒng)直接驅(qū)動(dòng)工作項(xiàng)執(zhí)行往往表明了該工作項(xiàng)的高優(yōu)先級(jí),需要馬上開始執(zhí)行。
可見性模式討論各種不同資源對(duì)工作項(xiàng)的可見性,工作項(xiàng)自身作為資源與權(quán)限相關(guān)。
多資源模式討論一個(gè)資源執(zhí)行多個(gè)工作項(xiàng)和多個(gè)資源執(zhí)行同一個(gè)工作項(xiàng)的情況。
從這些模式的討論可以看出,這些模式更多關(guān) 注的是對(duì)實(shí)際業(yè)務(wù)執(zhí)行的場景描述,關(guān)注通過合理分配任務(wù)和調(diào)配工作的執(zhí)行為組織帶來最大的執(zhí)行效率。從另一個(gè)角度看,由于這些模式都以業(yè)務(wù)作為出發(fā)點(diǎn),這 給工作流系統(tǒng)的實(shí)現(xiàn)帶來了復(fù)雜性,很多模式當(dāng)前的工作流系統(tǒng)都無法完全支持或直接支持。在很多情況下,模式的支持需要很多的約束,而這種約束往往需要在工 作流實(shí)施階段結(jié)合客戶具體情況進(jìn)行限定,這實(shí)際強(qiáng)調(diào)了工作流實(shí)施的重要性,工作流系統(tǒng)的應(yīng)用是由工作流產(chǎn)品加實(shí)施兩部分組成,很多時(shí)候,實(shí)施占據(jù)了更大的 比重,這就對(duì)工作流產(chǎn)品的可擴(kuò)展性提出了要求。應(yīng)用工作流不僅僅是選擇工作流產(chǎn)品,更重要的還包括選擇合適的實(shí)施團(tuán)隊(duì)。
在下一章里,我們將討論另外一種工作流模式-數(shù)據(jù)模式。
http://www.aygfsteel.com/ronghao 榮浩原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處:)