二、創(chuàng)建模式
創(chuàng)建模式在系統(tǒng)創(chuàng)建工作項時生效,如下圖所示,其位于工作項生命周期的創(chuàng)建階段。
圖 5-2
正如上面提到的,工作流系統(tǒng)在執(zhí)行任務(wù)節(jié)點時會為其創(chuàng)建相應(yīng)的工作項,根據(jù)情況工作項可以是一個也可以是多個。
創(chuàng)建模式作為流程模型的構(gòu)成部分在流程設(shè)計期指定,通常在任務(wù)節(jié)點的定義里進(jìn)行定義,與一個任務(wù)關(guān)聯(lián),其用來限定可執(zhí)行該任務(wù)的資源范圍。系統(tǒng)根據(jù)創(chuàng)建模式限定的資源范圍生成工作項,工作項可以直接分配給人,也可以分配給角色、部門、崗位等。
1、直接分配(WRP_01:
Direct Distribution)
描述
在設(shè)計期直接為任務(wù)指定特定的資源,該任務(wù)的工作項能夠在運(yùn)行期分配給它。注意,指定的資源可以為多個,如果是多個的話就會生成多個工作項,為每個資源生成一個單獨的工作項。該模式實際限制執(zhí)行該任務(wù)的資源范圍。
圖 5-3
如圖5-3所示,任務(wù)A在定義時直接指定給員工甲,任務(wù)B在定義時直接指定給員工乙,當(dāng)實際執(zhí)行任務(wù)A和任務(wù)B時,將由員工甲和員工乙分別執(zhí)行。
應(yīng)用
該模式一般應(yīng)用于流程里的關(guān)鍵路徑。同時,
在中小企業(yè)里,該模式是應(yīng)用最多的分配模式,因為人員少,管理扁平,所以每個人的職責(zé)都非常清晰。該模式也是執(zhí)行效率較高的資源模式,因為人和任務(wù)直接綁
定,所以不會產(chǎn)生推諉等情況,便于管理也便于追究責(zé)任,因為運(yùn)行情況完全在設(shè)計期確定。而隨著企業(yè)規(guī)模的擴(kuò)大,管理層次的復(fù)雜,一個任務(wù)往往需要交由特定
的部門、崗位或角色來執(zhí)行,這樣無形中會影響任務(wù)執(zhí)行的效率。
該模式的缺點在于一旦關(guān)鍵人物因為各種原因不能及時處理任務(wù),那么將造成整個流程的掛起等待。
實現(xiàn)
最簡單的資源模式,設(shè)計期確定資源,運(yùn)行期工作流引擎不需要做額外的工作。
2、基于角色的分配(WRP_02:
Role-Based Distribution)
描述
在設(shè)計期為任務(wù)指定一個或多個角色,該任務(wù)的工作項能夠在運(yùn)行期分配給這些角色。實際執(zhí)行該任務(wù)時,資源將從屬于這些角色的資源中產(chǎn)生。該模式實際限制執(zhí)行該任務(wù)的資源范圍。
圖 5-4
如圖5-4所示,任務(wù)A在定義時指定給“開發(fā)人員”這一角色,該角色包括了兩名員工甲和乙。實際執(zhí)行任務(wù)A時,將由員工甲或乙來執(zhí)行。
應(yīng)用
企業(yè)達(dá)到一定規(guī)模,就會產(chǎn)生人員的分組,角色是典型的分組方式,將具有相似屬性的人員定義為一個特定的角色,這些屬性通常與工作的內(nèi)容相關(guān),例如開發(fā)人員、項目經(jīng)理、總經(jīng)理等,而角色通常又會與權(quán)限產(chǎn)生關(guān)聯(lián)。
將任務(wù)分配給角色意味著將會有多個員工可以執(zhí)行該任務(wù),執(zhí)行效率相比直接分配會有下降,這也是企業(yè)擴(kuò)大后管理成本增大的一種表現(xiàn)形式。
實現(xiàn)
工作流系統(tǒng)內(nèi)置的組織機(jī)構(gòu)模型需要對角色進(jìn)行支持。引擎運(yùn)行期通過角色訪問屬于該角色的人員。
3、延遲分配(WRP_03:
Deferred Distribution)
描述
在設(shè)計期為任務(wù)指定資源的標(biāo)識,典型的,在工作流系統(tǒng)里,該標(biāo)識對應(yīng)于一個數(shù)據(jù)字段變量,例如userid。即在設(shè)計期并不確定資源,資源的確定被延遲至運(yùn)行期,系統(tǒng)運(yùn)行期從該數(shù)據(jù)字段里獲取該任務(wù)分配的資源。
圖 5-5
如圖5-5所示,任務(wù)B在定義時資源的標(biāo)識指定為userid,實際執(zhí)行時,任務(wù)A由員工甲執(zhí)行,其指定了下一任務(wù)的執(zhí)行者為員工乙即設(shè)置了userid這一變量為員工乙的id,在任務(wù)B實例創(chuàng)建時,它訪問userid,發(fā)現(xiàn)該變量里是員工乙的id,于是將該任務(wù)分配給員工乙。
需要注意的是,根據(jù)具體的分配策略,運(yùn)行期該數(shù)據(jù)字段不僅可以指定人員,也可以指定角色、部門等。
應(yīng)用
該模式給資源的分配引入了靈活性。資源的確定延遲至運(yùn)行期,即任務(wù)可以根據(jù)具體的實際情況再確定執(zhí)行人。具體實施時,這個指定的數(shù)據(jù)字段可以通過一系列的規(guī)則運(yùn)算得出。
在國內(nèi)應(yīng)用中,該模式被大量應(yīng)用在人工干預(yù)流程中,例如下一任務(wù)的執(zhí)行由上一任務(wù)的辦理者指定。
實現(xiàn)
一般通過工作流變量來包含資源的id。為了區(qū)別該id是人員id還是角色id,一般內(nèi)置特殊變量,例如userid、roleid、groupid等。
4、按權(quán)限分配(WRP_04:
Authorization)
描述
能夠指定資源的范圍,只有該范圍內(nèi)的資源才具有執(zhí)行該任務(wù)的權(quán)限。
圖 5-6
如圖5-6所示,只有項目經(jīng)理才有權(quán)限對開發(fā)人員申請軟件的要求進(jìn)行批準(zhǔn)。
應(yīng)用
隨著分工的細(xì)化,每個人工作內(nèi)容的不同,必然會產(chǎn)生權(quán)限的概念。權(quán)限實際代表著對同一件事情,每個人執(zhí)行工作內(nèi)容的差別。權(quán)限越大能執(zhí)行的操作越多意味著需要負(fù)責(zé)的方面越多。
該模式強(qiáng)調(diào)通過權(quán)限對執(zhí)行任務(wù)的資源加以限定。
實現(xiàn)
在大多數(shù)的軟件系統(tǒng)中,角色不僅僅代表具有相似屬性的一組人員,同時其也是最重要的權(quán)限概念,人員往往不與權(quán)限直接關(guān)聯(lián),角色將人員與權(quán)限兩者進(jìn)行關(guān)聯(lián)。所以,對任務(wù)設(shè)定權(quán)限可以通過指定角色來完成。
5、職責(zé)分離(WRP_05:
Separation of Duties)
描述
在一個流程實例里,能夠指定兩個任務(wù)必須由不同的資源執(zhí)行。
圖 5-7
如圖5-7所示,任務(wù)A和任務(wù)B在設(shè)計期被指定不能由相同的資源執(zhí)行,同時它們都指定分配給經(jīng)理這個角色。那么在運(yùn)行期,在一個流程實例里,任務(wù)A被分配給了員工甲執(zhí)行,那么在進(jìn)行任務(wù)B的分配時,盡管員工甲也屬于經(jīng)理,但是將不能由其執(zhí)行。
應(yīng)用
職責(zé)分離,不能既當(dāng)運(yùn)動員又當(dāng)裁判員,不能又當(dāng)跳水隊領(lǐng)隊又當(dāng)全運(yùn)會裁判長。
典型的報銷流程里,一般員工的差旅報銷由財務(wù)人員核實,但如果某名財務(wù)人員需要報銷差旅費(fèi)顯然不能由自己審批,需要另外一名具有同樣權(quán)限的財務(wù)人員審核。此時就可以對申請任務(wù)和審核任務(wù)兩個任務(wù)節(jié)點應(yīng)用該模式。如下圖所示:
圖 5-8
實現(xiàn)
后續(xù)節(jié)點進(jìn)行任務(wù)分配時,需要獲取與之關(guān)聯(lián)前續(xù)節(jié)點的分配執(zhí)行信息。流程定義期,在定義任務(wù)節(jié)點屬性時建立兩者的關(guān)系。
6、流程實例整個處理(WRP_06:
Case Handing)
描述
在一個流程實例里,所有的任務(wù)都能夠分配給同一個資源執(zhí)行。
圖 5-9
如圖5-9所示,流程實例中的所有任務(wù)都由同一個人執(zhí)行:任務(wù)A、B、C都由員工甲執(zhí)行。
應(yīng)用
在應(yīng)用該模式的流程里,通常流程里的任務(wù)都
是緊密關(guān)聯(lián)的。流程里的任務(wù)往往執(zhí)行在一個緊密相關(guān)的上下文里,如果所有的工作都由一個人執(zhí)行,那么在其了解該上下文的情況下連貫執(zhí)行這些任務(wù)會具有更高
的效率;而如果執(zhí)行任務(wù)的過程中換人,那么新?lián)Q的人無疑還需要時間對該流程實例相關(guān)的上下文進(jìn)行熟悉,這樣無疑會多付出執(zhí)行成本。
同一個軟件的開發(fā)最好由同一撥開發(fā)人員完成,如果中途更換開發(fā)人員,那么新來的開發(fā)人員需要一段時間熟悉該軟件,會對開發(fā)進(jìn)度產(chǎn)生影響。同樣的道理,在軟件上線前增加開發(fā)人員不一定會提高開發(fā)效率,很多時候甚至作用相反。
實現(xiàn)
可以在實現(xiàn)延遲分配模式的情況下實現(xiàn)該模式,即在第一個任務(wù)節(jié)點初始化設(shè)置參與者變量,后續(xù)任務(wù)全部使用該變量。如下圖所示:
圖 5-10
7、經(jīng)驗獲取(WRP_07:
Retain Familiar)
描述
在同一個流程實例里,當(dāng)存在多個資源都能執(zhí)行某一工作項時,能夠?qū)⒃摴ぷ黜椃峙浣o執(zhí)行了前某一工作項的同一資源。
圖 5-11
如圖5-11所示,任務(wù)A和任務(wù)B在設(shè)計期被指定由相同的資源執(zhí)行,同時它們都指定分配給經(jīng)理這個角色。那么在運(yùn)行期,在一個流程實例里,任務(wù)A被分配給了員工甲執(zhí)行,那么在進(jìn)行任務(wù)B的分配時,任務(wù)B依舊由員工甲執(zhí)行。
應(yīng)用
該模式剛好與職責(zé)分離模式相反,正如它的名字所暗示的,這些任務(wù)之間存在著緊密關(guān)聯(lián),如果執(zhí)行了其中一個,那么就會熟悉這些相關(guān)聯(lián)任務(wù)的背景上下文,積累一定經(jīng)驗,那么后續(xù)任務(wù)的執(zhí)行相對其他人來說會變得容易。提高任務(wù)執(zhí)行的效率。
圖 5-12
如圖5-12所示,在軟件銷售的過程中,售前和編寫標(biāo)書是重要的兩步,這兩個任務(wù)最好由同一個人進(jìn)行處理,因為參與軟件售前的人更熟悉客戶的實際情況和需求,如果分開由不同的人員執(zhí)行,那么必然會存在前者與后者的交流成本。
實現(xiàn)
后續(xù)節(jié)點進(jìn)行任務(wù)分配時,需要獲取與之關(guān)聯(lián)前續(xù)節(jié)點的分配執(zhí)行信息。流程定義期,在定義任務(wù)節(jié)點屬性時建立兩者的關(guān)系。運(yùn)行期可以通過參與者變量(工作流變量)建立起運(yùn)行期關(guān)系。
8、基于能力的分配(WRP_08:
Capability-Based Distribution)
描述
能夠基于資源的能力進(jìn)行工作項的分配,能力作為組織模型的一部分建模為資源的屬性。
圖 5-13
如圖5-13所示,任務(wù)A需要交與開發(fā)人員執(zhí)行,同時其對辦理該任務(wù)的人員能力提出了要求,要求只有熟悉JAVA且工作經(jīng)驗大于2年的開發(fā)人員才能執(zhí)行該任務(wù)。這樣就縮小了選取資源的范圍。
應(yīng)用
人力資源管理中很重要的一點就是要做到人盡
其用,每個人的能力都能得到最大的發(fā)揮,其實也就是根據(jù)能力將人放置到最合適的工作中去。從這一點看,該模式是對人盡其能的實現(xiàn)。但是如何定義各個人員的
能力,這本身就比較的主觀,執(zhí)行各項工作需要具備的能力也具有主觀因素,更何況很多時候能力并不能與表現(xiàn)劃上等號,模型是固定的但人是變化的受環(huán)境影響
的,所以工具本身就是工具,工具的應(yīng)用最后還是依賴于人。
實現(xiàn)
實現(xiàn)需要兩部分:一部分是組織機(jī)構(gòu)對人進(jìn)行建模時需要包括能力模型;另一部分是流程建模時需要給任務(wù)定義執(zhí)行該任務(wù)所需的能力約束,這些約束是一系列的領(lǐng)域特定條件,需要有特定的解析器進(jìn)行條件的解析。
很多工作流引擎提供有參與者接口,接口返回人員ID列表供給任務(wù)分配,從而將這部分工作委派到工作流實施時實現(xiàn)。
9、基于歷史的分配(WRP_09:
History-Based Distribution)
描述
能夠基于先前的工作歷史決定當(dāng)前任務(wù)的分配。
圖 5-14
如圖5-14所示,當(dāng)需要在員工甲和員工乙之間做出選擇時,會選擇此前執(zhí)行類似任務(wù)時完成最好的員工。需要注意的是,這里的歷史不再是限定在同一流程實例的任務(wù)執(zhí)行里,可能是同一流程模型的執(zhí)行歷史,也可能是不同流程模型的執(zhí)行歷史。
考慮歷史時,有很多的考慮因素,例如完成類似任務(wù)最好的員工、完成類似任務(wù)最快的員工、完成類似任務(wù)出差錯最少的員工等等。這些考慮因素依賴于具體的任務(wù)內(nèi)容和背景。
應(yīng)用
國家籃球隊比賽前,主教練會考察各個位置里各個球員的聯(lián)賽比賽歷史情況,其中不僅會考慮出場時間也會考慮各項數(shù)據(jù),從而做出選擇。
實現(xiàn)
同基于能力的分配模式一樣,該模式的實現(xiàn)依賴于工作流具體應(yīng)用的場景,也就是需要到實施階段結(jié)合實際實現(xiàn)。從某一種角度也說明,應(yīng)用工作流產(chǎn)品時,產(chǎn)品實施階段也是最重要的步驟,選擇工作流產(chǎn)品不僅僅是選擇產(chǎn)品也需要考察其背后的實施團(tuán)隊。同時也可見,這些模式在諸如政府OA這些應(yīng)用中是根本應(yīng)用不上的。
實現(xiàn)需要兩部分:一部分是對用戶任務(wù)執(zhí)行歷史進(jìn)行統(tǒng)計分析找出關(guān)鍵的評定因素;另一部分是流程建模時需要給任務(wù)定義執(zhí)行該任務(wù)所需的歷史因素約束,這些約束同樣是一系列的領(lǐng)域特定條件,需要特定的解析器進(jìn)行解析。
10、按組織分配(WRP_10:
Organizational Distribution)
描述
能夠基于人員在組織機(jī)構(gòu)中的位置以及與其他人員的關(guān)系分配工作項。
圖 5-15
如圖5-15所示,審批任務(wù)需要由申請人的部門經(jīng)理執(zhí)行,即需要員工甲的部門經(jīng)理執(zhí)行。這種情況即基于人員之間的關(guān)系分配工作。
基于人員在組織機(jī)構(gòu)中的位置分配即需要在工作流模型里建立起與用戶相匹配的組織機(jī)構(gòu)模型,可以將任務(wù)分配給部門、角色、臨時組、崗位等。
應(yīng)用
應(yīng)用最為廣泛的模式,實際工作中幾乎所有的工作都必然和組織機(jī)構(gòu)具有聯(lián)系。其他模式,如基于歷史的分配、基于能力的分配等都是基于該模式之上的擴(kuò)展,直接分配、基于角色的分配則直接是該模式的簡單情況。
實現(xiàn)
對該模式的支持實際上是對用戶組織機(jī)構(gòu)模型的支持。正如前面所提到的,很難存在一種工作流產(chǎn)品能夠支持所有的組織機(jī)構(gòu)模型,但是大部分的產(chǎn)品都會提供一套元模型或擴(kuò)展機(jī)制,需要在實施過程中最大限度的契合客戶業(yè)務(wù)。
11、自動執(zhí)行(WRP_11:
Automatic Execution)
描述
任務(wù)的執(zhí)行能夠自動完成,不需要人員參與。
圖 5-16
如圖5-16所示,請假審批后需要將情況通知給申請人,該任務(wù)由計算機(jī)完成,不需要人的參與,也不會產(chǎn)生工作項。
應(yīng)用
隨著自動化水平的提高,越來越多的工作可以交由計算機(jī)或相應(yīng)的機(jī)器設(shè)備完成。流程中的自動執(zhí)行節(jié)點也會逐漸增加。
實現(xiàn)
實際上工作流產(chǎn)品對該模式的支持即是支持各種的企業(yè)集成方式,不管是通過Web服務(wù)還是消息,工作流需要驅(qū)動相應(yīng)的設(shè)備機(jī)器或應(yīng)用系統(tǒng)進(jìn)行工作并傳遞給必須的數(shù)據(jù)。所以也可以看出,隨著信息化程度的提高,目前工作流應(yīng)用越來越趨向于企業(yè)集成領(lǐng)域。這也是為什么基于Web服務(wù)編排的BPEL會逐漸取代XPDL成為工作流流行標(biāo)準(zhǔn)的原因之一。
http://m.tkk7.com/ronghao 榮浩原創(chuàng),轉(zhuǎn)載請注明出處:)
posted on 2009-10-20 13:18
ronghao 閱讀(1501)
評論(2) 編輯 收藏 所屬分類:
Head First Process-深入淺出流程