Windows Workflow Foundation簡述

來源:互聯網
上載者:User

當今所有的企業級系統軟體事實上都有一個共同的目標:支援業務處理流程。有些處理流程是全自動化的,僅僅依賴於應用之間的互動,其他大部分的處理流程依賴於人來初始化處理流程,批准流程使用的文檔,解決其中出現的任何異常的情況。也就是說,我們完全可能將這一系列離散的步驟稱之為眾所周知的工作流程,並用它來描述處理流程中涉及到的人與軟體系統的活動。一旦一個工作流程被定義,那麼一個應用就可以圍繞這這個定義(工作流程)來支援業務處理流程。

在軟體系統裡建立和執行一個工作流程是獨一無二的挑戰:

A. 一些業務處理流程需要幾個小時,幾天甚至幾天才能執行完畢,比如,怎麼才能讓一個工作流程當前的狀態(一個應用的維護資訊)維持如此長的時間?

B. 這種長久啟動並執行工作流程也將會與其他軟體進行無障礙的互動。如何使得這種非同步互動的挑戰讓開發人員更簡單的開發出來?

C. 在軟體中一些固定的互動模式往往還是相對直接簡單的(流程寫入程式碼--譯者注),但是人們需要更好的彈性——比如自由的更改業務處理流程。那麼,工作流程如何處理這些多樣的,不可預測的行為呢?

如果沒有一個已經建立好的正確的基礎平台,想滿足這樣的需求是很困難的,當然,如有被設計成支援這種工作流程的技術出現,那麼建立這類有用的軟體系統還是能讓它簡單的。

MiscoSoft's Windows Workflow Foudnation (WF)就是用於解決這類需求的。它是.NET FRAMEWORK 3.0(3.5)的一個組件,並作為Windows開發平台的一部分提供給開發人員,它提供了一個在Windows建立基於工作流程的應用的公用的基礎平台。不管這些應用是與軟體系統內部互動,還是與人互動,或者兩者兼之。

1. 什麼是工作流程應用系統所需要的

為了對一個像WF工作流程平台到底能提供什麼有一個認識,我們來研究下一些各種各樣的基於工作流程的應用系統,下面是一些例子:

A. 任何一種實現長時間啟動並執行處理流程的應用系統都是一個正常的工作流程。系統中的處理流程與人互動,這些人可能需 要幾個小時或者幾天才會 回應,這是這種應用最重要的一個執行個體情境。比如,圍繞的工作流程建立起來的一個文檔審批次程序會讓你有所認識。

B. 一個顯示Web頁面的ASP.NET應用可以讓使用者來通過工作流程來控制如何根據順序來顯示頁面,這樣做可以無需更改Web頁面(頁面裡的代碼)來輕鬆更改頁面的顯示流。而且很清晰將頁面的控制邏輯與UI分離開來。

C. 一個處於面向服務的環境中的複合應用可以通過工作流程來實現的核心行為,當前,越來越多的應用系統通過服務來暴露它們的邏輯,在這些服務之上來建立業務處理流程會變得越來越簡單。一個像WF這種的工作流程技術提供了基礎的平台,在複雜應用裡,工作流程控制調用這些服務的邏輯,並將他們融合在一起。

D. 一個面向於特定問題的應用,比如CRM系統,或者垂直行業的系統,比如金融領網域服務都可以建立在工作流程之上,這種應用共同的特點是處理一個或多個業務處理流程。把這些通過驅動商務程序的邏輯的應用系統建立在一個像WF這樣的公用的工作流程基礎平台之上,可以更快的構建,更輕鬆的變更,更簡單的定製。

如果要對工作流程基礎平台的需求有更深刻的認識,最好的的方法看看一個有更多細節的工作流程應用系統的例子。假設現在有一個獨立軟體開發商(ISV)希望開發一套保險公司的基於工作流程的應用系統,展示了應用系統需要支援的一個自動保險策略商務程序:

 

流程開始於一個提交者發出一個新的保險單的請求,這個提交者可能是一個話務中心的保險代理員,也可能是客戶直接通過INTERNET網提交的請求。無論如果,請求是發送到應用系統了,應用系統根據新的請求的資訊來建立一個工作流程執行個體。最開始工作流程會根據請求提供的資訊來比對公司的策略條款規則。如果申請無法滿足公司的保險業標準,申請會被應用系統所拒絕。相反,工作流程會通過外部應用系統的個人信用服務來取得申請者的信用曆史資訊。如果申請者的信用評分達到某一標準,此申請會立即通過!而那些高風險的,有著曆史壞帳的信用資訊的申請者則需要經理的批准,如果被批准,那麼此次請求被接收,否則此次申請將被拒絕。

這個例子揭示了一個基於工作流程應用系統的諸多需求,這些需求包括:

A. 根據商務規則來進行決策的能力:這些商務規則有些是很簡單的規則,比如根據信用核對的結果來決定是"Yes"還是"No"。還有一些更複雜的規則,比如為了下一個最初的保險業的決定,必須對大量的潛在的規則集進行評估。

B. 與工作流程外部系統或者軟體互動的方式:比如在這個例子裡,一個初始的請求從其他系統發送過來,比如Asp.NET頁面。還有其他方面,比如與信用服務互動,可以通過Web Service或者其他的技術。

C. 與人互動的方式:在這個例子裡,經理需要審核一些申請的單,這樣工作流程應用需要有與使用者互動的介面,或者通過其他軟體的形式與人互動。

D. 在整個工作流程生命週期維持狀態的能力:尤其是人蔘與的工作流程,比如上述的例子,一個工作流程需要長時間才能完成(比如經理外出了一天,或者正在為期兩周的假期裡),構建一個延展性的系統也需要有一種讓工作流程停止活動和持久的儲存它狀態的方法,這樣在執行下一步動作的時候才重新啟用它並匯入其狀態資訊。

這些都是對工作流程的基本要求,但是大部分應用系統的都在沒有這些支援工作流程基礎設施之上迎接挑戰。

工作流程架構不止提供這些基礎的功能,它還能提供如下所述的功能:

A. 一種類似於組件方式的方法,在這樣的工作流程裡,每一步都由一個特定的軟體模組來實現,這種方法對在某一特別的領域預見建立一些預先定義的步驟,比如保險應用或者系統管理,然後把它們應用到許多不通的工作流程中可能非常有用。

B. 用於建立和修改工作流程的圖形化工具:因為工作流程由一定數量的步驟組成,可以通過圖形化工具來圖解這些步驟以及他們之間的關係。

C. 監控運行時工作流程的能力,即時的檢查它們的運行情況。

D. 一種為工作流程執行個體添加步驟的方法:只在軟體內部互動的工作流程往往不需要這種功能,但是這種彈性的功能,在一些與人互動的工作流程中是常見的需求。

工作流程是一門比較獨特的技術,它有著它獨一無二的好處和需求,當這種方法需要長時間的應用在某些特定的領域的時候,一個通用的,有效工作流程基礎平台會讓它更加有用。工作流程已經為成為開發主流軟體的派別已經等待了許多年,它只是一個其輔助作用的角色,不是一顆明星,而現在,是改變的時候了!

相關文章

聯繫我們

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