工作流控制模式-狀態模式5種

當前流程實例的狀態會影響流程實例的後續執行。這裏的狀態包括了當前流程實例正在執行 的活動數量、內容、時間,正在執行活動的狀態(掛起、超時)、與流程實例相關的數據以及當 前資源狀態等。狀態模式討論當前流程實例狀態對流程實例後續執行所產生的影響。
狀態模式共有5種,如圖A-35所示。

圖A-35 狀態模式

  1. 延遲選擇:當需要在多個分支中選擇一個分支實際執行時,這個決定被儘可能的延後,以獲得最新最充分的信息。
  2. 交叉並行路由:一系列的活動需要執行,在同一時間,只允許一個活動被執行。這些活動之間部分存在順序,剩餘活動任意執行,它們的順序在運行時決定。
  3. 里程碑:只有當流程實例處於某一特定狀態(里程碑)時,特定活動纔有可能被激活。流程實例的特定狀態充當活動執行的前提條件。
  4. 關鍵區域:兩個或多個由互相連接活動構成的區域被標識爲關鍵區域。在同一時間,這些關鍵區域只有一個能夠激活執行,標示對資源的獨佔使用。
  5. 交叉路由:一系列的活動需要執行,在同一時間,只允許一個活動被執行。與交叉並行路由模式的區別:活動之間完全不存在任何預定的順序,任意執行,在運行時決定它們 的順序。

延遲選擇(WCP_16: Deferred Choice)

描述

流程實例在某個點有多個分支可供選擇,只能有一個分支被實際執行。

延遲選擇與XOR-split的區別是:選擇並不是在後續分支被觸發之前,相反,這個決定被儘可 能的延後,每個分支都有可能被執行,具體哪個分支被實際執行取決於具體的流程實例運行環境。

如圖A-36所示,某電商的貨物自提流程,三個分支都被觸發,一旦有一種分支情況發生,其 他的分支將被取消。選擇被延遲到第一個分支開始實際執行之前。

圖A-36 延遲選擇

同義詞

隱式選擇、延遲XOR-split。

交叉並行路由(WCP_17: Interleaved Parallel Routing)

描述

一系列的活動需要執行,在同一時間,只允許一個活動被執行。與順序模式不同,這些活動 之間可能部分存在順序,剩餘活動則任意執行,它們的順序在運行時決定。所有活動都執行完畢 後觸發後續活動的執行。
如圖A-37所示,去醫院檢查身體,需要做常規檢查、抽血和喫早飯,抽血一定要在喫早飯之 前,其他項目則沒有限制。那麼可能的順序有:常規檢查->抽血->喫早飯(抽血處排隊嚴重)、 抽血->喫早飯->常規檢查和抽血->常規檢查->喫早飯。

圖A-37 交叉並行路由

里程碑(WCP_18: Milestone)

描述

只有當流程實例處於某一特定狀態時,特定活動纔有可能被激活。

如圖A-38所示,我們去在線旅遊網站預訂行程,只要沒有打印最終的行程單,我們就可以修 改行程。這裏我們使用事件網關做分支的延遲選擇。

圖A-38 里程碑

關鍵區域(WCP_39: Critical Section)

描述

兩個或多個由互相連接活動構成的區域被標識爲關鍵區域。在流程實例執行的任何時刻,這 些關鍵區域只有一個能夠激活執行,不能同時執行。保證活動對某資源的獨佔式使用,該資源是 物理資源、人力資源也可以是業務系統。

如圖A-39所示,修改產品環境的流程,在任何時刻,都只能有一個系統管理員對環境進行修 改。這裏我們使用事件網關做分支的延遲選擇。

圖A-39 關鍵區域

交叉路由(WCP_40: Interleaved Routing)

描述

一系列的活動需要執行,在同一時間,只允許一個活動被執行。交叉路由與交叉並行路由模 式的區別是:活動之間完全不存在任何預定的順序,可以任意執行,在運行時決定它們的順序。 所有活動都執行完畢後觸發後續活動的執行。

如圖A-40所示,體檢流程,我們根據自己的情況選擇檢查項目的順序,當所有項目都檢查完 畢後體檢就結束了。

圖A-40 交叉路由

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章