Microsoft Windows Workflow Foundation
 Step by Step

 Kenn W. Scribner/著
 Microsoft Press出版
 售價:44.99美元
 Amazon五顆星


當我們在設計與撰寫應用程式時,多少會有條件、步驟、狀態、事件、時程、進度。若這些組合簡單易懂,則直接寫在程式內即可,開發與維護都不成問題。

但若組合複雜,執行時程跨日甚至跨月,則可能需要簡單的工作流程引擎(Workflow Engine),透過明確與程式碼區塊對應的圖形來萃取工作流程模型(model),這將可簡化設計、開發與維護,但又不需要花大錢購買如微軟BizTalk等伺服器。

WF提供開發者基礎的流程開發環境
微軟在推出Vista作業系統之後,同時推出了.NET Framework 3.0,也就是在既有的.NET Framework 2.0之上,新增四大功能:

一、定義使用者圖形介面的WPF
二、程式間標準溝通方式WCF
三、設計與撰寫工作流程邏輯的WF
四、認證個人身分用的WCS

在此介紹一本不錯的WF入門書:《Microsoft Windows Workflow Foundation Step by Step》,作者Kenn Scribner擁有多年的程式開發與顧問經驗。

他詳細解釋了工作流程引擎需要注意的問題,透過WF撰寫自己的工作流程邏輯並不容易,因為可能要考慮多個相同工作流程定義、但不同的執行個體一起執行,這時資料交換將需透過特定的界面與服務架構。

WF處在撰寫程式的階層,主要提供開發者將工作流程的功能內建到自己的應用程式中,是單一程式內的工作流程。其包含了工作流程架構(Framework)、.NET API、延伸的服務,以及 Visual Studio 2005 的視覺化設計開發介面,但並非獨立執行的服務或引擎。

藉由其API和工具,你我可以在Windows平臺上開發含有工作流程的系統,並延伸WF 既有的架構,客製化所需的功能。期待透過統一的模型與程式介面,解決多種工作流程的問題,包括人與人、人與系統和系統與系統之間的工作流程。

結合Visual Studio開發工作流程
一般而言,工作流程大致分成兩類:
一、循序工作流程:工作流程的工作可以自動執行,不需要外界介入,例如不需與使用者互動或等待事件觸發。

二、以狀態為基礎的工作流程(State-Based Workflow):也有人稱為有限狀態機(Finite State Machine),其工作流程特徵在與外界互動後改變狀態,轉換到下一個狀態以進入工作流程下一步。

WF據此提供兩種主要的設計範本,搭配工作流程引擎提供了許多標準活動(Activity)。一般的作法是:它們以圖形呈現在Visual Studio的工具列上,讓你拖曳到設計區中,以規畫工作流程邏輯,再經由屬性視窗設定事件對應的函數,進一步到程式碼頁撰寫.NET程式語言。

換句話說,WF的「工作流程」是以「活動」示意圖來定義人或系統的行為模型。「活動」是「工作流程」中的各個步驟,並且是設定、執行和重用的單位,經由活動組合的設計圖表達了規則、操作、狀態以及彼此的關係。

最後編譯為.NET程式組件,且在工作流程執行環境和共通語言執行環境(CLR)中執行。如此,藉由WF可以設計使用者或伺服器端的工作流程,在所有類型的.NET應用程式內執行。

這讓程式設計人員可將個別程式的工作流程行為,從巨量的程式碼中單獨萃取出來。在Visual Studio內,透過圖形化的模型,較容易開發與維護這些工作流程。在大型應用系統上,我們需要彈性整合與控管,結合其它應用程式與多個平臺,則仍需A to A(Application to Application)、B to B(Business to Business)、EAI(Enterprise Application Integration)、BPM(Business Process Management)等相關產品。

畢竟,你可以徒手開發符合特殊目的之系統,但要整合多個系統、交換各種資料,融貫不同技術的存取介面等,本身就是件麻煩事。此時,建立商業工作流程的標準與彈性是重要的目的,耗時費工用低階的WF自己建車輪,反而會見樹不見林。

《作者簡介》胡百敬
現任職恆逸資訊教育訓練處資深講師,Ascentn、睿智資訊與臺灣微軟技術顧問。著有《SQL Server 2005 T-SQL 資料庫設計》等書,並為專欄作家。

熱門新聞

Advertisement