1. 程式人生 > >workflow工作流型別及其區別

workflow工作流型別及其區別

workflow中,工作流分為兩種型別,順序工作流(Sequential)和狀態機工作流(State Machine)。

順序工作流將一系列要執行的步驟以一種預先設計好的流程順序執行。在這種工作流裡,控制流程的是我們很熟悉的如if-elsewhile迴圈結構。順序工作流的行為可以用簡單的流程圖來演示。每一個步驟都是很清楚地定義好的。這種工作流有著確定的起點與終點,我們不能隨意跳轉到中間的某個點上,唯一能做的只有從頭開始。

狀態機工作流則並不定義固定的流程,它們定義一組狀態,包括狀態之間可能存在的轉移。每個狀態可以轉移到一個或多個其它狀態上去。執行這樣的工作流不一定要從第一個狀態開始。這就允許工作流被打斷,然後根據需要恢復。在WF

中,狀態的轉移是通過宿主應用程式引起的外部事件觸發的,這就意味著工作流的控制完全是交由外界完成的。

具體在設計時該選擇哪一種工作流是一個很重要的問題。一般來說,判斷的依據就在於控制工作流走向的重要選擇是發生在工作流的內部還是外部,是否由使用者進行控制。順序工作流在本質上是對工作流的路徑建模,將路徑資訊都編碼到了模型之中;而在某些時候,我們並不關心工作流的路徑,我們只關心當前的工作流狀態,並且有哪些可能的選擇會跳轉到某個另外的狀態,這就是後一種情況,應該採用狀態機工作流。