翻譯來至《Understanding WF in WSS and Office 2007 v1.doc》
作者:David Chappell, Chappell & Associates(鼎鼎大名)
翻譯片段,全文請查看:http://www.davidchappell.com/blog/index.html
在軟體實現中,包含一個定義的多步流轉的流程是很經常的。如果是很多程式都包含到,那麼為什麼不直接提供一個包含這種應用的軟體呢?Windows Worldflow Foundation就是出於這種目的而產生。一個基於WF的應用就是由許多工作流程(workflows)組成,每個工作流程包含有許多活動(Activities).每個活動,在工作流程的位置中,於某一時刻執行於WF運行引擎上。在對面向過程的程式中,WF可以使這些程式更容易建立和維護。
下面一張圖指出了WF的主要組件。工作流程(Workflow)又許多活動(Activities)組成,執行於引擎(Runtime Engine)上。執行過程依賴於低層的運行時服務(Runtime Services)。服務跟蹤工作流程狀態,跟蹤執行過程等。它可以宿主(Host)於傳統型程式,也可以宿主於大型伺服器中。它能對各種環境進行自適應。在需要的時候,Runtime Services能在各種環境中替換。
WF可以在Visual Studio中進行可視化的設計,可以建立各種工作流程,並拖動活動來建立。一個活動是一個類,所以你完全有可能通過全代碼的形式來編寫活動。工作流程可以又任何活動組成,包括WF中提供的BAL(Base Activity Library),也可以用自己建立的活動。BAL包含一些通用的,基礎性的活動:
>>IFElse:根據條件,有兩種或更多的可選路徑。
>>While:重複執行一個或多個活動。
>>Sequence:順序指定一組活動。
>>Parallet:同時執行兩組或多組活動。
>>Code:執行一個定義的程式碼片段。
>>Listen:監聽事件集,當事件發生,觸發執行活動。
>>InvokeWebService:引用WebService。
>>Policy:用WF提供的規則引擎來定義、執行商務邏輯。
WF提供兩種內建的工作流程:
>>Sequential Workflows:執行定義的一系列活動,它可以包含IFElse、While等所有活動。
>>State machine workflows:執行傳統有限狀態機器,它可以包含IFElse、While等活動。它以來於其他活動的狀態來轉換。
理解WF不是工作流程應用程式,而是提供一個基礎來開發工作流程應用是很重要的。它可以宿主在任何的Windows應用中,也可以和其他技術結合來提供工作流程服務。WWSv3就是個很好的例子。