在上一章里,我們談到了工作流的控制模式,控制模式強調的是對業務流程進行建模,業務流程的目標是實現一個商業目標或者管理目標,業務流程的執行往往由一系列的任務所構成,控制模式建模的實質在于合理調配這些任務,以期以最少的成本達到最大的收益。
本章將介紹工作流的資源模式,如果說控制模式更為宏觀,強調的是業務流程里各個任務的合理調配的話,那么資源模式則深入細節,將要討論單個具體任務的執行情況。提到任務的執行,那么誰能執行這些任務呢。答案很直接,是人。不管是在公司企業還是政府里,人都是最重要的資源,除去人之外,還有其他的非人力資源,例如機器、設備、計算機等。探討這些資源如何執行業務流程中的具體任務,如何調配這些資源即構成了本章的內容,即資源模式。
本章介紹工作流的資源模式,共計43種。提到模式,很多人會想到四人幫,想到他們的設計模式,但是需要與編程里的設計模式區別的是:程序里的設計模式關注的是代碼,通過應用設計模式做到代碼的職責清晰、不重復、開發人員友好等等;而工作流里的模式關注的是業務價值,通過合理調配任務和資源為組織帶來最大的業務價值,工作流模式是對實際業務的直接描述,與具體的工作流產品實現沒有直接的關系(后面我們可以看到,很多模式當前的工作流產品很難實現),兩者的出發點完全不同。
本章先會討論與資源模式相關的一些基本概念,例如資源、工作項、組織機構建模等。接下來會對具體的43種資源模式進行討論,討論的模式按照描述、應用和實現展開,分別對應著模式的介紹、模式對實際業務的映射和工作流產品對該模式的實現支持。最后是小結。
一、基本概念
1、資源
既然是資源模式,那么什么是資源。在本章的前言里,我們已經提到人是業務流程執行里最為重要的資源,除去人之外,隨著自動化水平的提高,還有其他的非人力資源,例如機器、設備、計算機等。資源指的是能夠進行工作的實體,通俗一點,就是能夠執行業務流程里任務的實體。對于需要盈利的公司而言,就是找到一種可以盈利的模式,然后找尋能夠執行這些盈利工作的資源,通過資源的工作達到盈利的目的,通過合理調配這些資源達到利益最大化。
因為人是最為重要的資源,所以在后續對資源模式的討論中,沒有特殊說明,資源指的都是人力資源,大多數的模式也將以人來說明。
典型的,人是某個組織機構里的成員。組織機構對人員進行分組,執行相關的工作以達到共同的目標。例如,企業的目標是盈利,政府的目標是為人民提供更好的公共服務。組織機構對人員的分組具有多種形式,最常見的就是部門、角色和崗位(實際上與角色相比,崗位更多體現的是一種業務職能,而角色更多體現的是管理職能,與權限相關)。對于大的跨地域的組織而言,還有分支機構的劃分,此外,還有臨時組(典型的如以交付為核心的軟件開發公司里的項目組)。在很多情況下,人可能具有多個角色、屬于多個部門,這些,增加了管理的復雜性。
對工作流產品而言,要對資源模式進行支持,則必然涉及到對資源分組的支持,在大多情況下,資源分組即組織機構模型。只有支持目標客戶的組織機構模型,才能在實施工作流產品時最大限度的契合客戶業務。當然,如果產品是某個行業的標準,讓客戶模型向產品靠攏也是另外一種方式。
2、工作流產品里的組織機構建模
所有的工作流產品都有自己的組織機構模型,其是工作流產品里一個重要的模塊。但是一套模型往往很難契合多種業務場景。在大多數的產品實現里,都會提供一套元模型,例如人(Person)和組(Group),然后建立多套與業務相關的模型向元模型適配,例如,角色、部門都是組的一種形式,它們只是擁有不同的業務語義而已。
在工作流產品實施時,很重要的一步就是進行組織機構建模,然后將建立完成的模型與工作流產品內置的模型進行適配,在適配的過程中,妥協是經常出現的。
3、工作項
一個業務流程由一系列相關的任務組成。在工作流產品里,使用圖形化的節點代表這些任務,而實際的任務被映射為工作項(work item),任務的調用被映射為工作項的執行。一般情況下,一個任務對應著一個工作項,但是存在一個任務需要多人完成的情況,這個時候一個任務就會對應著多個工作項。工作項可以看作是工作流中最小的工作單元,其代表著一個單一資源對某一任務的執行。
既然在工作流系統里任務的執行被映射為工作項的執行,那么就一定存在著人與工作項這個計算機概念的交互,在工作流系統里,這一交互通過工作項管理器來進行管理。即我們通常所見的工作項列表(任務列表),我們通過這一列表拾取任務、處理任務以及管理任務的狀態。
4、工作項的生命周期
工作項有其自己的生命周期。
圖 5-1
如圖5-1所示,當工作流系統執行某一任務節點時就會創建工作項,工作項可以是一個也可以是多個,正如上面已經提到的,工作項代表著一個單一資源對某一任務的執行即一個工作項只能由一個資源來執行,現在我們討論的是一個工作項的生命周期。
工作項被系統創建完畢后即處于創建狀態,接下來系統會選取資源來執行該工作項。有兩種狀態:一種是提供狀態,一種是指派狀態,這兩者的區別在于一個是可選的一個是必須的。如果系統提供一個工作項給你執行,這意味著你符合執行該工作的條件,但你不必為該工作負責,即你可以選擇執行該工作也可以選擇拒絕,你只是該工作的合適候選者;而如果系統指派一個工作項給你執行,則意味著你必須為該工作負責,該工作必須由你來執行。因為一個工作項只能由一個資源來執行,所以如果是指派的話,那么只能指定一個資源;而提供,則可以提供給一個資源也可以提供給多個資源來候選。通常工作項管理器會提供兩種列表來區分這兩種狀態,分別是待拾取列表和待辦列表,一旦資源對待拾取列表里的工作項進行拾取,工作項即進入到資源的待辦列表,狀態成為指派狀態。
工作項進入指派狀態即意味著執行該工作的資源已確定,那么接下來就可以由資源來開始執行該工作,執行的過程中可以將工作暫時掛起中斷處理,后續可以再恢復對該工作的執行。如果工作成功完成,則工作項成為完成狀態;如果工作因為各種原因沒有成功完成,則工作項置為失敗狀態。
http://www.tkk7.com/ronghao 榮浩原創,轉載請注明出處:)
posted on 2009-10-18 09:45
ronghao 閱讀(1603)
評論(1) 編輯 收藏 所屬分類:
Head First Process-深入淺出流程