工作流控制模式-多實例模式7種

在一個流程實例裏,當一個活動存在多個工作項或活動實例時,我們稱之爲多實例。多實例 產生於3種情況:

  1. 活動在觸發時產生多個工作項;
  2. 活動在流程實例中被觸發多次,產生了多個活動實例(循環、多實例合併);
  3. 兩個或多個活動具有相同的工作內容,這些內容重複的活動被抽 離成塊活動或子流程多次執行。

多實例模式共有7種,如圖A-25所示。

圖A-25 多實例模式

  1. 異步多實例:活動創建多個工作項,這些工作項彼此獨立同時執行,不需要同步。
  2. 定義期確定數目的同步多實例:活動創建多個工作項,創建數目在定義期建模時確定, 這些工作項彼此獨立同時執行,當它們都執行完畢後才觸發後續活動的執行。
  3. 運行期確定數目的同步多實例:與定義期確定數目的同步多實例區別:創建工作項的數 目在運行期、活動創建工作項前確定。
  4. 運行期不確定數目的同步多實例:活動創建多個工作項,創建數目依賴於運行時的一系 列因素,這些因素包括流程實例狀態、可用的資源、外部環境等,在最後一個工作項執 行完成前都有可能產生新的工作項,這些工作項彼此獨立同時執行,所有工作項都執行 完畢後才觸發後續活動的執行。
  5. 多實例的靜態部分合並:擴展運行期確定數目的同步多實例模式。創建工作項的數目M 在活動創建前確定,同時確定的還有必須完成的實例數目N,N < M。當N個工作項完成 後即觸發後續活動的執行,剩餘的工作項繼續執行,但是被忽略。
  6. 多實例的取消部分合並:與多實例的靜態部分合並區別:當第N個工作項完成觸發後續活 動後,剩餘工作項被取消不再執行。
  7. 多實例的動態部分合並:擴展運行期不確定數目的同步多實例模式,增加活動的完成條 件,只要滿足條件就觸發後續活動,剩餘的工作項繼續執行,但被忽略。

異步多實例(WCP_12: Multiple Instances without Synchronization)

描述

在一個流程實例裏,一個活動創建多個工作項,這些工作項彼此獨立同時執行,不需要同步。 活動創建工作項的數目在定義期確定,是一個固定值。
如圖A-26所示, 某單位的發文流程,擬稿後需要局長和副局長審批,然後下發到各科室負 責人進行傳閱,傳閱這個行爲不影響流程實例本身的執行,觸發傳閱活動後即觸發發文活動。

圖A-26 異步多實例

我們在活動定義期確定活動產生工作項的數目,如圖A-27所示,下屬有4個科室,所以我們 設置啓動數量爲4,爲每位科室負責人生成一個工作項;工作項的循環順序爲並行,表明這些工作項並行執行;流轉條件是None,表明生成完工作項後就觸發後續活動。

圖A-27 定義期確定活動產生工作項的數目、異步執行

定義期確定數目的同步多實例(WCP_13: Multiple Instances with a Priori Design- Time Knowledge)

描述

在一個流程實例裏,一個活動創建多個工作項,創建數目在定義期建模時確定,這些工作項 彼此獨立同時執行,當這些工作項都執行完畢後才觸發後續活動的執行。
如圖A-28所示,某單位的發文流程,擬稿後需要局長和副局長審批,必須都審批通過後才能 下發到各科室負責人進行傳閱。

圖A-28 定義期確定數目的同步多實例

我們在活動定義期確定活動產生工作項的數目,如圖A-29所示,有2個領導,所以我們設置 啓動數量爲2,爲每位領導生成一個工作項;工作項的循環順序爲並行,表明這些工作項並行執 行;流轉條件是All,表明所有工作項都執行完成後才能觸發後續活動。

圖 A-29 定義期確定活動產生工作項的數目

運行期確定數目的同步多實例 (WCP_14: Multiple Instances with a Priori Run-Time Knowledge)

描述

在一個流程實例裏,一個活動創建多個工作項,創建數目在運行期確定,這些工作項彼此獨 立同時執行,當這些工作項都執行完畢後才觸發後續活動的執行。
如圖A-30所示。傳閱的名單由局長、副局長在審批時指定。

圖A-30 運行時確定數目的同步多實例

運行期不確定數目的同步多實例(WCP_15: Multiple Instances without a Priori Run-Time Knowledge)

描述

在一個流程實例裏,一個活動創建多個工作項,創建數目依賴於運行期的一系列因素,這些因素包括流程實例狀態、可用的資源、外部環境變化等,在最後一個工作項執行完成前都有可能 產生新的工作項,這些工作項彼此獨立同時執行,所有工作項都執行完畢後才觸發後續活動的執 行,如圖A-31所示。

圖A-31 運行期不確定數目的同步多實例

多實例的靜態部分合並(WCP_34: Static Partial Join for Multiple Instances)

描述

在一個流程實例裏,一個活動創建多個工作項,創建數目M在運行期確定,同時確定的還有 必須完成的工作項數目N,N <= M,這些工作項彼此獨立同時執行,當N個工作項完成後即觸發 後續活動的執行,其餘的工作項繼續執行,但是被忽略,不影響流程的路由。

如圖A-32所示。傳閱的名單由局長、副局長在審批時指定,只要有一半的人閱讀了文件沒有 意見就可以發文。

圖A-32 多實例的靜態部分合並

多實例的取消部分合並(WCP_35: Cancelling Partial Join for Multiple Instances)

描述

在一個流程實例裏,一個活動創建多個工作項,創建數目M在運行期確定,同時確定的還有 必須完成的工作項數目N,N <= M,這些工作項彼此獨立同時執行,當N個工作項完成後即觸發 後續活動的執行,其餘的工作項被取消。
如圖A-33所示。傳閱的名單由局長、副局長在審批時指定,只要有一半的人閱讀了文件沒有 意見就可以發文,剩下的傳閱工作被取消,直接閱讀正式發文。

圖A-33 多實例的取消部分合並

多實例的動態部分合並(WCP_36: Dynamic Partial Join for Multiple Instances)

描述

在一個流程實例裏,一個活動創建多個工作項,創建數目依賴於運行期的一系列因素,這些 因素包括流程實例狀態、可用的資源、外部環境變化等,在最後一個工作項執行完成前都有可能產 生新的工作項,這些工作項彼此獨立同時執行,每個工作項完成時就對活動的完成條件進行驗證, 如果滿足該條件那麼就觸發後續的活動,剩餘的工作項將繼續執行但被忽略,不再產生新的工作項。
如圖A-34所示。傳閱的名單由局長、副局長在審批時指定,閱讀人在閱讀過程中可以加入新 的人閱讀文件,只要有名單總數一半的人閱讀了文件沒有意見就可以發文。

圖A-34 多實例的動態部分合並

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