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