懂得Windows WorkFlow Foundation

來源:互聯網
上載者:User

每一個WF工作流程都包含了一定數量的活動,每一個活動都實現工作流程某些方面的功能。對這些活動來講,工作流程扮演著容器的角色,控制著活動的生命週期和執行順序。WF立志於用統一的方式來支援系統工作流程與人工工作流程,如早前描述的,系統工作流程是按預先定義好的順序執行的,而人工工作流程恰恰相反。為了都滿足這些需求,WF提供了兩種內建的工作流程類型:順序工作流程:根據預先定義好的模式來執行活動的能力。狀態機器工作流程:與外部發生的事件進行互動的能力。它們都依賴於同樣的運行時環境,都能使用同樣的定製的活動。順序工作流程很自然的適合系統工作流程。狀態機器工作流程則提供一種方法來為鬆散定義的人工工作流程建模。一個獨立的工作可以合并所有的這些元素,並把兩種工作流程融合起來。如果有必要,開發人員還可以建立定製的工作流程類型,不過WF應用系統大多數都只使用兩個標準工作流程類型中其中的一個。下面的章節都會描述,我們從順序工作流程開始。

使用順序工作流程

順序工作流程的目的是為了根據預定義好的順序執行活動的工作流程應用系統。這種順序可以包括迴圈,分支和其他類型的控制流程程。當工作流程不會有一個已經定義了從開始到結束的路徑。基礎活動庫裡內建了一組在順序工作流程裡使用的活動,這些活動包括:
IfElse:根據條件是否符合來執行兩個或者更多重路徑的活動。
While: 重複執行一個或多個活動直到一條條件為真。
Sequence:根據定義好的順序在同一時間裡執行一組工作流程。
Parellel: 並存執行一個或多個工作,在工作流程繼續下一步前等待並行中的所有活動都執行完成。
Code:    執行一段已經定義好的代碼。
CompensationHandler: 包含一個補充邏輯,比如,當一些情況下,在執行一組其他的活動時發生了錯誤,一些代碼會執行。
Listen:等待一個特別事件,當事件接收的時候執行一個或多個活動。
Delay:進行一個執行中的工作流程掛起一定的時間。
CallExternalEvent:等待一個從應用系統中但是在工作流程之外的方法調用。
InvokeWorkFlow:引起其他工作流程執行。
InvokeWebService:調用WebService。
TransactionScope:允許將一個或多個其他的活動合并起來放在一個原子事務裡。
Terminate:終止工作流程執行。

展示了一個由WF工作流程設計工具建立的一個簡單的順序工作流程和幾個活動:

在這個領域裡有過一些經驗的人可能已經注意到在順序工作流程中使用的很多預設的活動與商務程序執行語言(BPEL)裡的活動很類似。最初由Microsoft與IBM定義的BPEL,現在已經是OASIS標準。它的目的在於定義系統工作流程。這也是WF眾多方式中的一個子集。
為了滿足那些希望使用BPEL的開發人員,Microsoft為Windows WorkFlow Foudation提供了一個叫做BFEL的技術。它允許將在BPEL定義好的商務程序處理邏輯匯入到一個WF工作流程中,開發人員也可以將WF工作流程邏輯匯入到BPEL。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.