正如語(yǔ)言是人之間的溝通方式一樣,數(shù)據(jù)是IT系統(tǒng)之間的溝通方式,語(yǔ)言之間的溝通總是最有效的,數(shù)據(jù)交互卻未必,因?yàn)?/font>IT系統(tǒng)里的數(shù)據(jù)除了讓計(jì)算機(jī)理解外重要的是還需要人理解。在這篇文章里,我們將討論工作流系統(tǒng)里的數(shù)據(jù),從數(shù)據(jù)角度分析工作流數(shù)據(jù)的分類以及不同的應(yīng)用場(chǎng)景。
一、工作流系統(tǒng)的應(yīng)用場(chǎng)景
在正式開(kāi)始對(duì)工作流數(shù)據(jù)的討論之前,首先對(duì)工作流系統(tǒng)的應(yīng)用場(chǎng)景進(jìn)行討論是必要的,因?yàn)楣ぷ髁鲾?shù)據(jù)脫離不開(kāi)工作流系統(tǒng)這個(gè)大的上下文。目前,工作流系統(tǒng)的應(yīng)用主要有兩種方式:
1、 將工作流系統(tǒng)嵌入到業(yè)務(wù)系統(tǒng)中使用。此時(shí)工作流系統(tǒng)作為內(nèi)部組件對(duì)業(yè)務(wù)系統(tǒng)進(jìn)行流程邏輯的橫切。試想一個(gè)需要多人處理的電力繳費(fèi)流程,在引入工作流系統(tǒng)之前,我們需要為每個(gè)業(yè)務(wù)表單設(shè)置一個(gè)狀態(tài)位,以此來(lái)進(jìn)行業(yè)務(wù)處理狀態(tài)的跟蹤。如果流程固定,那么這樣做并沒(méi)有什么不好,例如財(cái)務(wù)軟件、海關(guān)報(bào)關(guān)軟件等,它們的流程雖然復(fù)雜但是不常改變,此時(shí)就沒(méi)有必要引入工作流系統(tǒng)。但是對(duì)于另外一些情況,例如制造業(yè)的訂單處理、庫(kù)存管理、政府的協(xié)同辦公等,流程經(jīng)常需要定制修改,此時(shí)如果繼續(xù)由業(yè)務(wù)系統(tǒng)自己處理流程邏輯那么成本將會(huì)很高。
2、 使用工作流系統(tǒng)進(jìn)行業(yè)務(wù)系統(tǒng)的集成。在上規(guī)模的企業(yè)里,很多流程會(huì)涉及到不同的業(yè)務(wù)功能,例如報(bào)價(jià)、訂單審核、資產(chǎn)核準(zhǔn)、績(jī)效評(píng)估等,這些流程經(jīng)常會(huì)跨越不同的部門和業(yè)務(wù)系統(tǒng)。因?yàn)椴煌髽I(yè)都有自己所采用的業(yè)務(wù)系統(tǒng)、組織機(jī)構(gòu)以及最佳的業(yè)務(wù)協(xié)作方法,所以這些流程基本上也隨企業(yè)而異。工作流系統(tǒng)此時(shí)扮演的就是集成角色,由其通過(guò)定制流程將這些業(yè)務(wù)系統(tǒng)撮合起來(lái),實(shí)現(xiàn)企業(yè)內(nèi)各部門、客戶間的信息流動(dòng)和協(xié)作。
在第一種應(yīng)用場(chǎng)景下,工作流系統(tǒng)作為業(yè)務(wù)系統(tǒng)的內(nèi)部橫切組件出現(xiàn),作為橫切組件,工作流數(shù)據(jù)僅僅包括與流程邏輯相關(guān)的數(shù)據(jù)以及其他必需數(shù)據(jù),這些數(shù)據(jù)包括工作流控制數(shù)據(jù)、工作流相關(guān)數(shù)據(jù)以及需要通過(guò)流程傳遞的業(yè)務(wù)數(shù)據(jù)。
在第二種應(yīng)用場(chǎng)景下,由于不同業(yè)務(wù)系統(tǒng)之間的數(shù)據(jù)傳遞很大程度上依靠工作流系統(tǒng),所以這些數(shù)據(jù)被封裝為SDO在不同WEB服務(wù)間傳遞,需要注意的是,這些數(shù)據(jù)并不在工作流系統(tǒng)中存儲(chǔ)。
在下面的工作流數(shù)據(jù)分類中,我們將詳細(xì)分類這些工作流數(shù)據(jù)。
二、工作流數(shù)據(jù)的分類
提到工作流數(shù)據(jù),就不得不提業(yè)務(wù)數(shù)據(jù)。作為最直接的區(qū)分,我們將存儲(chǔ)于業(yè)務(wù)系統(tǒng)中的數(shù)據(jù)稱為業(yè)務(wù)數(shù)據(jù),將存儲(chǔ)于工作流系統(tǒng)中的數(shù)據(jù)稱為工作流數(shù)據(jù)。根據(jù)WFMC定義,我們將工作流數(shù)據(jù)分為工作流控制數(shù)據(jù)和工作流相關(guān)數(shù)據(jù)。
1、 工作流控制數(shù)據(jù)。指被工作流系統(tǒng)管理的系統(tǒng)數(shù)據(jù),這些數(shù)據(jù)包括了與流程實(shí)例和任務(wù)實(shí)例相關(guān)的執(zhí)行數(shù)據(jù),例如流程實(shí)例的狀態(tài)、執(zhí)行時(shí)間等信息、任務(wù)實(shí)例的執(zhí)行者、執(zhí)行時(shí)間、狀態(tài)、緊急程度等。
2、 工作流相關(guān)數(shù)據(jù)。指與業(yè)務(wù)流程相關(guān)的數(shù)據(jù)。工作流相關(guān)數(shù)據(jù)又具體分為3種:
· 影響流程實(shí)例執(zhí)行的業(yè)務(wù)數(shù)據(jù)。在WFMC中,這個(gè)數(shù)據(jù)被描述為:工作流系統(tǒng)通過(guò)該數(shù)據(jù)來(lái)確定流程實(shí)例的流轉(zhuǎn)條件,并選擇下一個(gè)將執(zhí)行的任務(wù),這些數(shù)據(jù)可以被業(yè)務(wù)系統(tǒng)訪問(wèn)并修改。例如報(bào)銷流程中的“報(bào)銷金額”,這個(gè)數(shù)據(jù)會(huì)決定該流程的審批路徑;再例如為任務(wù)設(shè)置的超時(shí)時(shí)間,這個(gè)數(shù)據(jù)會(huì)觸發(fā)任務(wù)的取消。實(shí)質(zhì)上這些數(shù)據(jù)就是工作流系統(tǒng)需要依賴于進(jìn)行流程流轉(zhuǎn)的業(yè)務(wù)數(shù)據(jù)。
· 契合業(yè)務(wù)的關(guān)聯(lián)數(shù)據(jù)。指工作流系統(tǒng)與業(yè)務(wù)系統(tǒng)進(jìn)行關(guān)聯(lián)的數(shù)據(jù),例如特定于WEB系統(tǒng),工作流系統(tǒng)會(huì)在每個(gè)流程實(shí)例里保持有導(dǎo)航至對(duì)應(yīng)業(yè)務(wù)表單的URL。
· 傳遞作用的業(yè)務(wù)數(shù)據(jù)。當(dāng)流程跨越多個(gè)業(yè)務(wù)模塊時(shí),需要在模塊間傳遞數(shù)據(jù),此時(shí)會(huì)利用工作流系統(tǒng)進(jìn)行傳遞,會(huì)在工作流系統(tǒng)里暫時(shí)存儲(chǔ)這些業(yè)務(wù)數(shù)據(jù)。
那么,工作流數(shù)據(jù)有哪些應(yīng)用場(chǎng)景呢?
三、工作流數(shù)據(jù)與業(yè)務(wù)上下文
工作流數(shù)據(jù)最重要的職責(zé)之一就是為業(yè)務(wù)系統(tǒng)的不同應(yīng)用場(chǎng)景建立起與之對(duì)應(yīng)的業(yè)務(wù)上下文。
什么是業(yè)務(wù)上下文?
我們知道,IT系統(tǒng)是對(duì)企業(yè)現(xiàn)實(shí)業(yè)務(wù)的映射。在一個(gè)翻譯公司的典型業(yè)務(wù)場(chǎng)景中,校對(duì)人員對(duì)翻譯人員提交的翻譯文檔進(jìn)行審校,此時(shí),校對(duì)人員持有翻譯人員翻譯后的文檔,他需要對(duì)該文檔進(jìn)行檢查,產(chǎn)生新的審校文檔并反饋翻譯人員的翻譯質(zhì)量。那么,映射到IT系統(tǒng)里,校對(duì)人員的任務(wù)通常對(duì)應(yīng)于一張需要處理的業(yè)務(wù)表單,業(yè)務(wù)表單里會(huì)展現(xiàn)他進(jìn)行當(dāng)前工作所需要的數(shù)據(jù):翻譯文檔、翻譯人員信息、該校對(duì)工作的緊急程度等,另外,在這張表單里,他所能進(jìn)行的操作也根據(jù)他此時(shí)的職責(zé)作出了行為限定:例如他可以上傳新的校對(duì)后的文檔,但是不能刪除已有的翻譯文檔等。如下圖1所示,業(yè)務(wù)表單實(shí)質(zhì)上反映的是此刻我們能獲取哪些數(shù)據(jù)以及能夠如何處理這些數(shù)據(jù),我們把它稱之為業(yè)務(wù)上下文,可以看到,在IT系統(tǒng)里,業(yè)務(wù)上下文實(shí)質(zhì)上等于數(shù)據(jù)加上行為。
企業(yè)業(yè)務(wù)由一系列相互關(guān)聯(lián)的業(yè)務(wù)場(chǎng)景組成,這些業(yè)務(wù)場(chǎng)景對(duì)應(yīng)于IT系統(tǒng)里的業(yè)務(wù)上下文,而業(yè)務(wù)上下文的本質(zhì)則是數(shù)據(jù)加上行為。數(shù)據(jù)和行為的不同決定了業(yè)務(wù)上下文的差別。這與現(xiàn)實(shí)中的工作相符,人們根據(jù)獲取/處理信息的不同,擔(dān)負(fù)不同的職責(zé)。
圖 1與應(yīng)用場(chǎng)景對(duì)應(yīng)的業(yè)務(wù)上下文
工作流數(shù)據(jù)如何建立業(yè)務(wù)上下文呢?看一個(gè)簡(jiǎn)單的例子。
在實(shí)際應(yīng)用工作流系統(tǒng)進(jìn)行開(kāi)發(fā)時(shí),我們經(jīng)常會(huì)碰到這樣的問(wèn)題:同一流程中的不同任務(wù)對(duì)業(yè)務(wù)數(shù)據(jù)擁有不同的權(quán)限,如下圖6-9所示。
圖 6?9與流程相關(guān)的業(yè)務(wù)數(shù)據(jù)權(quán)限
上圖中,在執(zhí)行請(qǐng)假申請(qǐng)任務(wù)時(shí),申請(qǐng)者可以編輯請(qǐng)假人、天數(shù)和原因3個(gè)字段;而到審批任務(wù)時(shí),審批者增加了一個(gè)可編輯的審批意見(jiàn)字段,但其余3個(gè)字段變化為只讀字段。我們將這類問(wèn)題統(tǒng)稱為與流程相關(guān)的業(yè)務(wù)數(shù)據(jù)權(quán)限控制。
產(chǎn)生這類問(wèn)題的原因是什么呢?原因就在于在一個(gè)業(yè)務(wù)流程里,不同的任務(wù)具有不同的業(yè)務(wù)上下文。如下圖6-10所示,不同的任務(wù)展現(xiàn)不同的數(shù)據(jù),并具有不同的行為。
圖 6?10任務(wù)與業(yè)務(wù)上下文
在IT系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)中,數(shù)據(jù)的建模是通過(guò)領(lǐng)域模型實(shí)現(xiàn)的。在工作流系統(tǒng)的嵌入式應(yīng)用中,流程實(shí)例即是通過(guò)與領(lǐng)域模型相關(guān)聯(lián)實(shí)現(xiàn)與業(yè)務(wù)契合的。那么,圖6-10可以進(jìn)一步泛化為圖6-11,流程中任務(wù)通過(guò)獲取領(lǐng)域模型不同的部分實(shí)現(xiàn)業(yè)務(wù)上下文的界定。
圖 6?11領(lǐng)域模型與業(yè)務(wù)上下文
在大部分的業(yè)務(wù)流程建模中,一個(gè)流程模型只與一個(gè)領(lǐng)域模型關(guān)聯(lián)。
那么,回到最初的問(wèn)題上,如何處理此類權(quán)限問(wèn)題呢?答案非常明了:由領(lǐng)域模型實(shí)現(xiàn)對(duì)業(yè)務(wù)上下文的切分,工作流系統(tǒng)通過(guò)契合業(yè)務(wù)的關(guān)聯(lián)數(shù)據(jù)與業(yè)務(wù)上下文掛接,保持工作流系統(tǒng)的單一職責(zé)。
圖 6?12流程相關(guān)的業(yè)務(wù)數(shù)據(jù)權(quán)限控制
如上圖6-12所示,我們?cè)跇I(yè)務(wù)系統(tǒng)里引入業(yè)務(wù)權(quán)限角色的概念,通過(guò)該角色隔離開(kāi)工作流系統(tǒng)與業(yè)務(wù)數(shù)據(jù)權(quán)限,即我們認(rèn)為業(yè)務(wù)數(shù)據(jù)權(quán)限的管理屬于業(yè)務(wù)系統(tǒng)范圍(由業(yè)務(wù)系統(tǒng)具體實(shí)現(xiàn)),更進(jìn)一步,我們認(rèn)為其屬于領(lǐng)域模型的職責(zé)范圍。在定義好業(yè)務(wù)系統(tǒng)的權(quán)限角色后,我們通過(guò)任務(wù)級(jí)別的工作流變量將流程中的具體任務(wù)與業(yè)務(wù)權(quán)限角色綁定,這樣就實(shí)現(xiàn)了流程任務(wù)與業(yè)務(wù)數(shù)據(jù)權(quán)限的掛接。
在上面的例子中,我們看到的是利用關(guān)聯(lián)業(yè)務(wù)的工作流數(shù)據(jù)界定任務(wù)級(jí)別的業(yè)務(wù)上下文,這是一種最簡(jiǎn)單的工作流數(shù)據(jù)應(yīng)用場(chǎng)景。在不同應(yīng)用中,我們可以看到,工作流數(shù)據(jù)一個(gè)重要的職責(zé)就是為業(yè)務(wù)流程里的任務(wù)/流程建立業(yè)務(wù)上下文,實(shí)現(xiàn)數(shù)據(jù)的聚合。在簡(jiǎn)單的應(yīng)用場(chǎng)景里,對(duì)一個(gè)流程實(shí)例而言,這些數(shù)據(jù)可能只對(duì)應(yīng)于一個(gè)領(lǐng)域模型;對(duì)流程實(shí)例里的一個(gè)任務(wù)實(shí)例而言,這些數(shù)據(jù)對(duì)應(yīng)于領(lǐng)域模型的一個(gè)切面。復(fù)雜一些的情況,業(yè)務(wù)上下文需要跨越多個(gè)領(lǐng)域模型甚至多個(gè)業(yè)務(wù)系統(tǒng),這時(shí)我們可以看到,通過(guò)工作流系統(tǒng)能夠顯著降低業(yè)務(wù)系統(tǒng)建模的復(fù)雜性,因?yàn)檫@些數(shù)據(jù)聚合工作可以有效分派給工作流系統(tǒng)承擔(dān)。同時(shí),我們需要保持工作流系統(tǒng)的單一職責(zé),工作流系統(tǒng)只保存與業(yè)務(wù)數(shù)據(jù)進(jìn)行關(guān)聯(lián)的關(guān)聯(lián)數(shù)據(jù)、必需的業(yè)務(wù)傳遞數(shù)據(jù)以及自身的執(zhí)行數(shù)據(jù)。
圖 6?29跨系統(tǒng)的業(yè)務(wù)上下文
四、工作流數(shù)據(jù)與數(shù)據(jù)分析
工作流數(shù)據(jù)的第2個(gè)應(yīng)用場(chǎng)景是對(duì)業(yè)務(wù)流程執(zhí)行進(jìn)行數(shù)據(jù)分析,這部分的數(shù)據(jù)主要是工作流控制數(shù)據(jù)。這一部分正受到越來(lái)越多的重視,是未來(lái)工作流系統(tǒng)的發(fā)展方向。
圖 6?48外部環(huán)境從流程實(shí)例拉數(shù)據(jù)進(jìn)行分析
這里有兩個(gè)典型的應(yīng)用例子:
例子1在對(duì)報(bào)銷流程進(jìn)行分析時(shí),我們發(fā)現(xiàn)大部分的報(bào)銷金額都低于500元,然而這些報(bào)銷流程卻都要經(jīng)過(guò)很多環(huán)節(jié),在與客戶確認(rèn)后,我們將低于500元的報(bào)銷限定于部門內(nèi)部審批即可,這樣對(duì)個(gè)人來(lái)說(shuō)大大加快了報(bào)銷過(guò)程,對(duì)公司來(lái)說(shuō)則省下了很多的辦公成本。
例子2,在制造流程里,很重要的一點(diǎn)是需要控制流程的節(jié)拍時(shí)間,即流程里各個(gè)任務(wù)的完成時(shí)間要一致,如果有一項(xiàng)任務(wù)的時(shí)間多于其他任務(wù),那么很快就會(huì)形成瓶頸,造成在制品的大量積壓,前續(xù)的任務(wù)完成很快,中間忙死,后續(xù)任務(wù)執(zhí)行者卻無(wú)事可做,更重要的是,不能對(duì)客戶進(jìn)行快速交付。
五、工作流數(shù)據(jù)與流程路由
最后一種應(yīng)用場(chǎng)景非常常見(jiàn),這部分?jǐn)?shù)據(jù)即影響流程實(shí)例執(zhí)行的業(yè)務(wù)數(shù)據(jù),直接上圖:
這部分影響路由的一定是業(yè)務(wù)數(shù)據(jù),它們保存到工作流系統(tǒng)里對(duì)流程路由產(chǎn)生影響。這種影響不限于任務(wù)的選擇,還包括的任務(wù)的執(zhí)行條件、任務(wù)的完成條件、基于數(shù)據(jù)的任務(wù)觸發(fā)等。
六、工作流數(shù)據(jù)小結(jié)
總結(jié)一下,作為區(qū)分,我們將存儲(chǔ)于業(yè)務(wù)系統(tǒng)中的數(shù)據(jù)稱為業(yè)務(wù)數(shù)據(jù),將存儲(chǔ)于工作流系統(tǒng)中的數(shù)據(jù)稱為工作流數(shù)據(jù)。
工作流數(shù)據(jù)分為兩種:工作流控制數(shù)據(jù)和工作流相關(guān)數(shù)據(jù)。其中工作流相關(guān)數(shù)據(jù)又分為3種:影響流程實(shí)例執(zhí)行的業(yè)務(wù)數(shù)據(jù)、契合業(yè)務(wù)的關(guān)聯(lián)數(shù)據(jù)和傳遞作用的業(yè)務(wù)數(shù)據(jù)。
工作流數(shù)據(jù)的應(yīng)用場(chǎng)景:為流程/任務(wù)建立業(yè)務(wù)上下文,這部分?jǐn)?shù)據(jù)主要是契合業(yè)務(wù)的關(guān)聯(lián)數(shù)據(jù)和傳遞作用的業(yè)務(wù)數(shù)據(jù),這是工作流數(shù)據(jù)最重要的職責(zé)之一;數(shù)據(jù)分析,這部分?jǐn)?shù)據(jù)主要是工作流控制數(shù)據(jù),這是未來(lái)工作流的發(fā)展方向;影響流程路由,這部分?jǐn)?shù)據(jù)人如其名,是影響流程實(shí)例執(zhí)行的業(yè)務(wù)數(shù)據(jù)。
實(shí)際應(yīng)用中,我們一定要保持工作流系統(tǒng)的單一職責(zé),例如劃分任務(wù)權(quán)限這個(gè)需求,一定需要業(yè)務(wù)系統(tǒng)自行實(shí)現(xiàn)權(quán)限的界定,工作流數(shù)據(jù)僅僅進(jìn)行掛接。
http://www.aygfsteel.com/ronghao 榮浩原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處:)