工作流模式
編輯工作流模式是在軟件工程或業務流程工程領域定義的一種特殊形式的設計模式。工作流模式專門指與工作流應用程序開發相關的反復出現的問題和經過驗證的解決方案,特別是,更廣泛地說,是面向流程的應用程序。
概念
編輯工作流模式是節約開發的概念。它們的使用應遵循簡化維護和減少建模工作的策略。工作流程是實時執行的。控制機制必須支持典型的工作節奏。設計模式必須延遲工作流的執行。
聚合
工作流模式通常可以聚合為鏈,并且必須明確定義開始和終止的條件。
應用
工作流模式可以應用于各種環境,因此必須明確定義和顯示使用條件,以防止誤解。
范德阿爾斯特分類
編輯一個著名的工作流模式集合是由WilvanderAalst等人提出的。(2003)在他們的論文工作流程模式中。與2000年2月發布的早期版本。這組模式集中于面向流程的應用程序開發的一個特定方面,即描述工作流/流程中活動之間的控制流依賴關系。這些模式分為以下幾類:
基本控制模式
- 順序-按順序執行兩個或多個活動
- 并行拆分-以任意順序或并行執行兩個或多個活動
- 同步——同步兩個或多個可以以任意順序或并行執行的活動;在所有前面的活動都完成之前,不要繼續執行后面的活動;也稱為屏障同步。
- 排他選擇——根據流程執行到達排他選擇時可用的數據,從眾多備選方案中選擇一個執行路徑
- 簡單合并-等待一組活動中的一個完成,然后再繼續;假設只有其中一項活動將被執行;通常,這些活動在源自排他選擇或延遲選擇的不同路徑上(見下文)
- 終止-在定義的事件或狀態更改時終止活動的執行
高級分支和同步模式
- 多項選擇-從許多備選方案中選擇多個執行路徑
- ConditionalChoice-根據區分的狀態條件從眾多備選方案中選擇一個執行路徑
- 同步合并-合并許多執行路徑;如果采用許多路徑,則同步;如果只采用一個執行路徑,則執行與簡單合并相同的操作
- 多重合并-在繼續之前等待一組活動中的一個完成;如果執行了幾個正在等待的活動,則每次其中一個活動完成時都會觸發簡單的合并。
- 鑒別器-在繼續之前等待一組活動中的一個完成;如果執行了幾個正在等待的活動,則鑒別器只觸發一次。
- N-out-of-MJoin-與鑒別器相同,但現在可以通過將參數N設置為大于1的某個自然數,等到多個前面的活動完成后再繼續。
結構模式
多實例(MI)
- MIwithoutsynchronizing-生成一個活動的許多實例而不在之后同步它們
- 具有先驗設計時知識的MI-當在設計時已知實例數量時生成一個活動的許多實例(同步)
- 具有先前已知運行時知識的MI-當在運行時的某個時間點可以確定多個實例時(如在FOR循環中但并行),生成一個活動的多個實例
- 沒有預先運行時知識的MI-當無法確定多個實例時生成一個活動的多個實例(如在WHILE循環中但并行)
基于狀態的模式
- DeferredChoice-執行多個備選線程之一。執行哪個線程的選擇不是基于執行到達延遲選擇時可用的數據,而是由事件(例如,應用程序用戶從工作列表中選擇任務或消息)確定由流程執行引擎接收)。
- InterleavedParallelRouting-以任意順序執行多個活動(例如,基于資源的可用性),但不要同時執行這些活動中的任何一個。
- 里程碑-在達到里程碑之前的任何時間允許某個活動,之后該活動將無法再執行。
取消模式
- 取消活動-停止執行已啟用的活動
- CancelCase-停止正在運行的進程的執行
- 取消等待-在沒有事先完成事件的情況下繼續執行正在運行的進程
上述工作流模式已用于評估支持面向過程的應用程序開發的商業產品的功能。它們還被用于評估許多提議的標準,包括BPEL、BPMN、UML活動圖、XPDL等。值得注意的是,并非所有這些模式都與所有應用程序領域相關,因此在使用以上工作流模式為給定的應用程序選擇特定的語言或系統。工作流模式也被用作設計工作流語言和稱為YAWL(YetAnotherWorkflowLanguage)的開源系統的初始要求。已經提出了對上述工作流模式集的幾個擴展。特別是,開發這些模式的同一研究小組還提出了一組工作流數據模式、工作流資源模式、工作流異常處理模式和服務交互模式。
另一種分類
編輯工作流模式的另一種分類如下:獨立/池化,其中計劃工作的每個組件都獨立于其他組件完成,并且沒有組件對任何其他組件有特定的依賴關系。一個例子是工作人員在柜臺服務-Raoul可以為排隊的顧客服務,而無需等待Jamie為排隊的顧客服務。順序的,其中計劃工作的每個組件都依賴于前面的組件。在這種情況下,前面的組件通過后續組件控制工作流的推進。一個例子是在一條生產線上——在Veronica將散熱器安裝到位之前,Betty無法將散熱器蓋固定到ModelTFord上。相互依賴/網絡化其中計劃工作的每個組成部分都依賴于一個或多個正在完成的其他組成部分。在這種情況下,前面的組件通過后續組件控制工作流。一個例子是一個項目團隊——莎拉必須等待凱文和喬治完成幾項任務,然后她才能執行她的任務。
其他觀點
編輯工作流模式不限于控制流。其他(工作流)模式集合包括:
- 資源模式,
- 數據模式,
- 異常模式,
- 服務交互模式。
- 并行性和流水線模式。
這些模式集合已用于評估各種工作流流程,包括商業(Websphere、OracleBPEL、Staffware、SAP工作流、WindowsWorkflowFoundation等)和開源。
實現模式的工作流系統
編輯- Tavaxy是一個基于云的工作流系統,它實現了一種基于模式的方法,以實現Galaxy和Taverna之間的互操作性,這兩個工作流引擎在生物信息學領域很流行,
- YAWL,另一種工作流語言,
- Cameleon(編程語言),基于工作流的函數式編程圖形語言。
內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/139292/