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