Windows Workflow Foundation能帶來什麼

來源:互聯網
上載者:User

就像通常的工作流程平台一樣,WF也有幾個目標,最突出也是最重要的三個目標是:為Windows系統提供一個通用的工作流程基礎平台,為多樣的工作流程應用系統提供一個架構,統一系統與人工工作流程。這個的章節要驗證每一個目標。

1. 為Windows系統提供一個通用的工作流程基礎平台

很多由Miscrsoft和其他軟體公司建立的Windows應用系統或多或少的包含一些工作流程支援。讓我們只看看在Miscrosoft軟體裡,就有BizTalk伺服器,Exchange伺服器和其他種種都是由工作流程技術提供的,這些廣泛的應用也說明了工作流程技術是多麼的有用,但是工作流程技術在很多其它的軟體體現得不是那麼明顯,就像其他主流的開發技術,工作流程支援會成為Windows作業系統平台的一個組成部分。

這就是WF所要提供的,這種(通過工作流程技術)構建軟體的方式將對那些需要工作流程技術的Windows應用系統會越來越有用,下面的圖彪昭示了這個想法:

,WF對用戶端和服務端都是有用的,它可以用於由使用者,ISVS和Miscrosoft自身建立的許多應用,儘管這需要花上一段時間,但是WF將會成為Microsoft產品和技術中一個工作流程的基礎設施平台,最淺顯的一個例子是最近發布的Windows SharePoint Services,就提供了基於WF的面向文檔的工作流程服務。在不久的將來,其他發布的微軟的產品,包括BizTalk Server,也會使用WF來應用它們的工作流程服務。

有一點必須弄懂的是,WF是做為一個架構來針對開發人員的,而不是一個能被終端使用者立即使用的工作流程應用(中介軟體-譯者注)。因此,它沒有為工作者提供與工作流程互動的資訊工具。它也沒有很酷的管理工具和監視工具,儘管你可以通過開發出這些工具來從工作流程中得到資訊,WF的目的不是為了成為一個完整的Windows工作流程解決方案,相反,它的主要目標是為了讓軟體開發人員更加簡單的開發出基於工作流程的Windows應用。

2. 各種各樣的工作流程應用的一個基礎架構

為Windows建立一個通用的工作流程技術有著一個明顯和有挑戰性的問題,那就是為使用工作流程技術的Windows應用軟體提供多樣的方法和途徑,任何一個工作流程解決方案能囊括這一切嗎?傳統的工作流程基礎平台產品,往往只是用單一的語言來表達工作流程,用單一的圖形化工具來定義工作流程,很難滿足這麼廣泛的需求,那麼,我們需要其他的方法來滿足需求。

不同於只提供單一的語言和單一的工具,取而代之的是,WF通過提供一個通用的架構來建立和運行工作流程,在WF世界裡,一個工作流程由一組活動所構成,如所示,在工作流程裡,每一個活動都會運行一些動作:

                                                         

WF內建了一套有著通用目的活動來定義工作流程。基礎活動庫提供了我們一些熟悉的比如If/else,while迴圈的結構來定義控制流程程。它還包含了一個規則引擎,支援通過 Windows Communication Foundation (WCF)和更多的方式與其他軟體互動。

儘管這些內建的活動為工作流程提供了大量的功能性的支援,開發人員也可以自由定製個人化的活動來滿足一個特定的問題域,可以這樣說,活動所提供的東西就像是工作流程的一個組件模型。例如,Windows SharePoint Services提供了以建立面向文檔工作流程為目標的一套活動集。其他的應用系統,不管是Miscrosoft還是其他公司提供的,都能自由的建立屬於他們自己的活動組。比如,Windows SharePoint Services允許工作流程賦予工作給使用者,理所當然,它就包含了比如CreateTask與CompleteTask諸如此類的活動。 一個基於工作流程的健康顧問應用系統能夠提供完全不通的一套定製的活動,一個基於工作流程的保險應用系統照樣可以自己定製。
因為定製的活動與WF提供的活動一樣都使用了同樣的公用介面,所以工作流程可以將定製的活動與基礎活動庫裡的核心融合在一起,定製者可以自由的忽略WF的基礎活動庫——WF並沒有要求一定要使用這些基礎活動。WF的目標是更多的開發人員通過使用更少的技術開發人員定製的面向領域的活動來建立工作流程。

WF工作流程既可以直接寫代碼來實現。也可以通過圖形化定義,如果有需要,可以再增加代碼。為了實現這種可能性,WF提供了一個讓開發人員建立和修改工作流程的內建在Visual Studio中的工作流程設計工具,設計器左邊的工具列裡有基礎活動庫標示的表徵圖,你可以從工具列上拖拽活動圖表標到設計介面上。每一個活動都有讓開發人員在Visual Studio設定的屬性和事件。

工作流程設計工具可以由其他的環境所內建和定製。ISV可以將設計器工具直接內建在自主開發的工作流程產品裡,可以讓它具有更適合的介面和感官。類似的,組織也需要為資訊工作者提供一個將工作流程內建的比Vistual Studio更加具有商業友好性的環境來建立和修改工作流程。並且,ISV可以自由的建立其他的圖形化設計器來與WF工作流程平台工作——不是一定要使用工作流程設計工具。

另外一個挑戰是Windows通用工作流程平台的宿主:什麼樣的應用能夠跑工作流程呢?WF的答案是相當多的Windows進程都可以跑工作流程,不僅僅是簡單的控制台程式或者Windows Forms應用,由企業或者ISV開發的大型複雜的軟體都是可以跑的。目標就是讓非常廣泛的軟體族都能使用WF。

WF的建立者的一個基本目標就是鼓勵在這個工作流程架構周圍形成一個生態系統。特定的活動關注於特定的問題域,內建了工作流程的定製環境,能建立所有的能夠讓WF運行時內建的用於解決特定需求的宿主環境。不管WF如何被使用,核心的程式模式和運行時引擎都是保持一樣。圖形化開發工具的行為也是相似的。隨著時間的流逝,WF使用者的使用體驗可能會變得非常的多樣化,但是這種體驗的基礎還是保持共通。

3. 統一系統與人工工作流程

即使業務處理流程常常會是人與應用系統共同參與,在軟體之間的自動化互動要比在人之間的自動化互動要困難的多。因此,以往的工作流程技術往往會有代表性的強調其中的一種或者另一種。WF的主要目標之一就是:通過提供解決這些問題的統一解決方案來結束這樣的分裂。

讓我們來看看為什麼這是一個挑戰,想想應用系統之間自動化互動的典型特點。有些時候稱之為系統工作流程或者管弦樂編曲,應用系統之間的互動常常是可預知和相對靜態。這種互動的邏輯可以一次性的定義好,然後恒而不變的使用。典型的,系統工作流程也會交換結構化,有著良好定義的資料,比如XML文檔,這種互動在不需要人的幹涉的情況下能夠由軟體高效的處理。

與之不同的在人之間互動的人工工作流程,相對於那些只需要與其他互動的應用系統來講,那些與人的利益相互影響的應用系統需要更多的彈性。人們改變他們的注意,帶來了新的點子和異常,出乎意料的決定取消一個流程以及種種其他,這深刻導致了人工工作流程需要比系統功過流更加的靈活和動態。因此,支援人工工作流程的軟體需要一個更多事件驅動的,更有彈性的方式。人工工作流程往往要與無結構的,人性化的資料打交道,比如Email和文字文件,而不是系統工作流程中使用的結構化的資訊。

給出了這兩種工作流程的不同需求後,你就不會驚訝要在一個單一的技術來解決所有的問題是一個挑戰了。WF就是很明確的用統一的方式來解決這些種類的工作流程。為了達到這個目的,WF提供了順序和狀態機器的方法來定義工作流程,有能力為正在運行工作流程增加或者修改步驟或者其他事情,我們將在後面章節中一一描述。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.