工作流系統(tǒng)的流轉(zhuǎn)模式
作者:alphaflow來(lái)源:flowyun.com訪問(wèn):448時(shí)間:2019-05-09
工作流程引擎主要由各種流轉(zhuǎn)模式、對(duì)外提供的各類接口和內(nèi)部調(diào)用接口組成。
其中流轉(zhuǎn)模式包括:基本控制模式、先進(jìn)的分支和同步模式、迭代模式、基于狀態(tài)的模式、取消模式以及多實(shí)例模式。下面對(duì)上述的幾種模式進(jìn)行詳細(xì)描述。
一、基本控制模式
1、順序模式
順序模式是最基本的工作流模式。當(dāng)兩個(gè)或更多任務(wù)間存在依賴關(guān)系時(shí)需用順序模式——在前一任務(wù)完成之前,本任務(wù)不能執(zhí)行(調(diào)度)。
在同一流程中,一個(gè)任務(wù)在另一任務(wù)完成后才能被激活。順序模式主要用于對(duì)工作流程中連貫的步驟建模。
同義詞:順序路由,串行路由。
2、并行模式
當(dāng)兩個(gè)或更多任務(wù)需并行執(zhí)行時(shí)需要并行分叉。除不要求任何程度并行支持的系統(tǒng)外大多數(shù)工作流引擎都較易支持并行分叉。
在流程中,需將單進(jìn)程的某控制點(diǎn)分成可并行執(zhí)行的多進(jìn)程控制,于是允許任務(wù)同時(shí)執(zhí)行或以任何順序執(zhí)行。
所有的工作流引擎都可能支持并行任務(wù)。可區(qū)分兩種基本的方法:顯性與分叉和隱性與分叉。支持顯性與分叉結(jié)構(gòu)的工作流引擎(諸如:Visual Workflow)可激活多個(gè)流出轉(zhuǎn)移的路由選擇節(jié)點(diǎn)。支持隱性與分叉的工作流引擎(如MQSeries/Workflow) 不提供特殊的路由選擇結(jié)構(gòu)――每個(gè)任務(wù)可有多于一個(gè)的流出轉(zhuǎn)移,且每個(gè)轉(zhuǎn)移都有相關(guān)條件。為達(dá)到并行執(zhí)行的目的,流程設(shè)計(jì)者須保證流出轉(zhuǎn)移的多個(gè)相關(guān)條件為真(典型的方法是將條件置為空)。
同義詞:與分支,并行路由, 分叉。
3、同步模式
當(dāng)兩個(gè)并行任務(wù)都完成后下一任務(wù)才能開(kāi)始執(zhí)行時(shí)需要同步。
在流程中,多個(gè)并行子流程/任務(wù)在某點(diǎn)匯聚成一個(gè)單進(jìn)程,從而同步多個(gè)進(jìn)程。
4、條件選擇模式
在流程的某一點(diǎn),依據(jù)一個(gè)結(jié)果或流程控制數(shù)據(jù), 從多個(gè)分支路徑中選定一個(gè)路徑。
類似于“并行分叉”,有兩種基本策略――某些工作流引擎提供顯性的結(jié)構(gòu)以實(shí)現(xiàn)“條件選擇”模式 (譬如Staffware, Visual WorkFlow), 但是在其它工作流引擎 (MQSeries/Workflow, Verve)中,流程設(shè)計(jì)者不得不選擇轉(zhuǎn)移條件仿效“條件選擇”。
同義詞:異或分叉,條件路徑,開(kāi)關(guān),決議。
5、簡(jiǎn)單合作模式
欲將選擇執(zhí)行的路徑合并成一個(gè)路徑需用“合并”模式。
在流程中某點(diǎn),需將兩個(gè)或更多可選分支合并而不同步;換言之,“合并”在任一入口達(dá)到時(shí)被觸發(fā)。
同義詞:異或連接,異步連接,合并。
二、分支和同步模式
1、多路選擇模式
排它模式采取的是只有一個(gè)可選項(xiàng)被選定并執(zhí)行,亦即它對(duì)應(yīng)于排它或。有時(shí),要用到從給定的一組選項(xiàng)中選定多項(xiàng)(而非一項(xiàng))的結(jié)構(gòu),于是,引入(非排它)多路選擇。
在工作流過(guò)程的某點(diǎn),依據(jù)判定或工作流控制數(shù)據(jù),選擇一個(gè)或多個(gè)分支。
很多工作流管理系統(tǒng)中,or上可以定義條件。這些系統(tǒng)中可直接實(shí)現(xiàn)OR-分叉,但是有幾種工作流管理系統(tǒng)不能在or上設(shè)置條件,僅提供純粹的AND-split和XOR-split建模元素 (例如Staffware)。正如所述,對(duì)于可在or上設(shè)置條件的工作流管理系統(tǒng) (諸如Verve, MQSeries/Workflow, Forte Conductor)實(shí)現(xiàn)多重選擇是直截了當(dāng)?shù)?流程設(shè)計(jì)者只需簡(jiǎn)單地設(shè)定每一路由的條件即可。值得注意的是多重選擇是并行模式和排它選擇選擇模式的泛化。
2、多路同步合并模式
本模式旨在闡述簡(jiǎn)單合并模式中提及的問(wèn)題, 即當(dāng)一個(gè)合并中有多于一條流入路由被激活時(shí)的情形。
多路同步合并是指在流程中某點(diǎn),兩條或更多分支同步后再合并。若多于一個(gè)分支被激活,可能同時(shí)被激活,任務(wù)后的合并對(duì)于每條流入的激活分支只響應(yīng)一次(亦即,在上圖中,D將被實(shí)例化一次)。
3、多路異步合并模式
多路異步合并是指在流程中某點(diǎn),兩條或更多分支無(wú)同步再合并。若多于一個(gè)分支被激活,可能同時(shí)被激活,任務(wù)后的合并對(duì)于每條流入的激活分支都響應(yīng)一次(亦即,在上圖中,D將被實(shí)例化兩次)。
4、路由鑒別模式
本模式可以看作多路合并模式的逆。其語(yǔ)義是合并后僅一個(gè)任務(wù)應(yīng)被實(shí)例化。
路由鑒別模式是指在流程的某點(diǎn),激活后續(xù)任務(wù)之前等待許多流入分支的完成。從它開(kāi)始之時(shí)起,等待所有剩余分支的完成并“忽略”它們。一旦所有的流入分支都被觸發(fā),它使自己復(fù)位,以便可被再次觸發(fā)。
5、M中選N合并模式
M中選N合并模式可視作路由鑒別模式的泛化,意欲從M個(gè)流入路由中同步N個(gè)線程。
M中選N合并模式是指流程的某點(diǎn)M 條并行路徑聚合到一點(diǎn),只要其中N條路徑完成則激活后續(xù)任務(wù),所有其它剩余路徑的完成應(yīng)被忽略。類似于路由鑒別模式,只要所有流入分支被觸發(fā),則該合并使自己復(fù)位,以便可被再次觸發(fā)。
同義詞:部分合并,定制合并。
三、迭代模式
1、任意循環(huán)模式
在工作流分析/設(shè)計(jì)期間,人們不希望受各種各樣工作流定義工具的語(yǔ)法約束,諸如循環(huán)僅有一個(gè)入口一個(gè)出口。事實(shí)上,為正確抽象, 工作流引擎應(yīng)允許無(wú)約束模型的執(zhí)行,也許更利于最終用戶跟蹤過(guò)程的執(zhí)行。
任意循環(huán)模式指在流程中,一個(gè)或多個(gè)任務(wù)可被重復(fù)執(zhí)行。
同義詞:循環(huán)(loop), 疊代(iterate), 周期(cycle)。
2、結(jié)構(gòu)化循環(huán)模式
結(jié)構(gòu)化循環(huán)是指利用路由將不同的節(jié)點(diǎn)連接為一個(gè)循環(huán)的模式,使得流程中的某些節(jié)點(diǎn)可以循環(huán)執(zhí)行。