1. 程式人生 > >工作流的基本概念

工作流的基本概念

導讀:

  1993年工作流管理聯盟的成立標誌著工作流技術開始進入相對成熟的階段。為了實現不同工作流產品之間的互操作,WFMC在工作流管理系統的相關術語、體系結構及應用程式設計介面(WAPI)等方面制定了一系列標準[20]。

  不同的研究者和工作流產品供應商從不同的角度給出了工作流的定義。

  工作流管理聯盟給出的工作流定義是[1]:工作流是一類能夠完全或者部分自動執行的經營過程,它根據一系列過程規則,文件、資訊或任務能夠在不同的執行者之間進行傳遞與執行。

  Georgakopoulos[3]給出的工作流定義是:工作流是將一組任務(Task)組織起來完成某個經營過程。在工作流定義了任務的出發順序和觸發條件。每個任務可以由一個或多個軟體系統完成,也可以由一個或一組人完成,還可以是由一個或多個人與軟體系統協作完成。任務的觸發順序和觸發條件用來定義並實現任務的觸發、任務的同步和資訊流的傳遞。

  PeopleSoft公司給出的定義是:工作流是一個用來實施經營過程實踐的機制。IBM Almaden研究中心給出的工作流定義是:工作流是經營過程的一種計算機化的標識模型,定義了完成整個過程所需要的各種引數。這些引數包括對過程中每個步驟的定義、步驟件的執行順序、條件以及資料流的建立、每一步驟由誰負責以及每個活動所需要的應用程式。

  以上的這些工作流的定義,包括其它的一些工作流定義基本上都是用非形式化語言對工作流所進行的描述,雖然表述方式略有不同,但是基本上都說明這樣一個問題,即工作流是經營過程的一個計算機實現,工作流管理系統則是這一實現的軟體環境。使用工作流作為經營過程的實現技術首先要求工作流系統能夠反映經營過程的如下幾個方面的問題:即經營過程是什麼(由那些活動、任務組成,也就是結構上的定義)、怎麼做(活動間的執行條件、規則以及所互動的資訊,也就是控制流與資訊流的定義)、由誰來做(人或計算機應用程式,也就是組織角色的定義)、做的怎麼樣(通過工作流管理系統對執行過程進行監控)。

  根據以上定義和我們對工作流管理技術的理解,我們給出如下的工作流定義:

  “工作流是一種反映業務過程的計算機化的模型,它是為了在先進計算機環境支援下實現經營過程整合與經營過程自動化而建立的可由工作流管理系統執行的業務模型。”

  工作流(Workflow)的概念是為了提高工作效率而產生的,它是一種通過先進的電子、通訊和網路技術,使得企業中並行任務的執行過程現形化的企業管理技術和方法。從使用者的角度來看,工作流就相當於將特定的任務送到使用者面前,使用者可以使用一些應用工具來存取和處理資料,並按要求執行任務,最後執行結果傳遞給下一個使用者;這樣一步一步下去,就形成了相應的工作流程,簡稱為“工作流”。

  工作流概念目前尚沒有一個統一的定義。WFMC給出的工作流定義是:工作流是一類能夠完全或者部分自動經營的過程,它根據一系列過程規則、文件、資訊或任務能夠在不同的執行者之間進行傳遞和執行。

  下面將描述與工作流相關的一些基本概念及其相互關係,如圖2.1所示。

  (1)工作流管理系統

  工作流管理系統(Workflow Management System,簡寫為WFMS)[4]是完成工作流的定義和管理,並按照在計算機中預先定義好的工作流邏輯推進工作流例項執行的軟體系統。它的主要功能是:儲存和解釋流程定義;建立和管理執行環境中的工作流例項;控制工作流的執行者和工作流應用之間的互動等。

  (2)業務流程

  業務流程(Business Process)[29]是指在功能確定的組織結構中,能夠實現業務目標和策略的相互連線的流程和節點集,如投保過程、專案開發過程等。在WFMS中,一個業務流程的自動化過程被描述為流程模板。

  (3)流程模板

  簡單的講,流程模板就是一個定義了一些必要元素的流程,如節點、子流程、傳輸線、條件表示式、參與者、應用程式及相關資料等等。使用者在建立一個業務系統流程的時候,只需要繼承該業務系統或者給出一個流程的模板,並做適當的修改,即可以完成流程的設計。

  流程模板是企業根據自己的需要定義的。在進行流程定義的時候,除了需要定義流程本身的一些必要屬性外,還需要利用各種組成元素來描述一個流程的具體執行情況。組成流程模板的基本元素包括:節點、子流程、傳輸線、環境變數和條件表示式、參與者、應用程式以及相關資料[30]。

  (4)節點

  節點即通常所說的流程中的辦理步驟,它是構成工作流過程的基本元素,節點主要描述了一個工作流程是由哪些辦理步驟構成,一個流程是由若干個節點和他們之間的連線組成。另外它還指定了處理是否被WFMS自動開始和結束,以及工作的優先級別等資訊。節點定義中需要指定事件的執行者、事件完成的功能及與事件相關的各類資訊。處理事務可以是由人工手動辦理,也可以是由程式自動完成。當一個節點有多個出口,或多個節點的出口連線到一個節點時,就涉及到節點的出口控制和入口控制。

  根據執行方式的不同,節點分為手動節點和自動節點。

   手動節點:手動節點是正常事件處理節點,由使用者手工進行處理來完成的節點。在定義手動節點的時候,需要指定該節點的參與者,參與者在流程定義中宣告,可以是從組織機構中進行引入角色或者人員。在執行時手動節點拆分出來的工作項是手動工作項,交由參與者進行處理。

   自動節點:自動節點是不需要人工參與進行處理而由後臺自動應用程式進行處理的節點。在指定自動節點的時候,不需要指定參與者,但需要指定自動應用程式,由工作流引擎自動排程該應用程式。在執行時自動節點拆分出來的工作項是自動工作項,由引擎自動通過工作流標準介面3呼叫自動應用程式,不需要人蔘與處理。

  (5)子流程

  作為組成業務流程的最基本單元,活動是不能被進一步分解的。一旦我們的流程比較複雜,涉及的環節比較多,那麼活動的數量也將大大增加,有向圖中的節點數也必然會不斷膨脹。這首先影響了使用者對流程中各主要環節的把握和理解。實事上,我們可以把某些關係緊密的活動集合起來,在圖上以一個節點表示,這就形成了子過程的概念。

  子過程是一類能夠分解的節點型別,它的內部可以包含組成工作流模型的所有元素型別,實質上就是一個子工作流。子過程的引入大大增強了模型的表達能力,使模型具有了層次化的概念,並支援自頂向下的建模過程。通常,使用者可以在模型的最頂層全部用子過程來表示,這樣即確定了模型的總體邏輯結構,進而再在每個過程中詳細地佈置活動及其它模型元素,直到完成最底層的基本活動的建模。

  (6)流程例項

  流程例項是在執行時由流程模板建立,流程例項的建立是執行一個應用流程的開始,建立流程例項包括建立一些相關流程狀態資料和工作流相關資料,如分配該例項的唯一ID號,取得第一個節點即開始節點的相關資訊及啟用條件等。流程例項在執行時有初始態、執行態、啟用態、掛起態、完成態和終止態等六種狀態。流程例項建立時還沒有滿足流程啟動執行的條件,處於初始態。一個流程例項的執行是通過啟動並激活流程的第一個節點而開始。

  (7)節點例項

  節點例項是在流程執行過程中由流程例項啟動並執行時開始建立的,節點例項建立時由流程例項給節點例項分配一個唯一的ID號,並將流程例項的相關資料賦予節點例項。節點例項執行完成時將其相關資料上傳給流程例項,然後該節點例項消失。啟動流程時建立第一個節點例項即開始節點例項,流程結束時建立結束節點例項,開始和結束節點例項均不進行任何操作,只是修改一下例項的狀態,結束節點例項完成時將流程例項置於完成態,流程執行結束。節點例項的狀態有初始態、執行態、啟用態、掛起態、完成態和終止態。

  (8)工作項

  工作項是在節點例項執行時由節點來建立的。節點例項在建立工作項的時候,首先分配一個唯一的ID號給工作項,然後將節點的相關資料傳給工作項。一個節點例項可能一次建立多個工作項,但是某一時刻只能有一個工作項被啟用,當一個工作項被啟用時,其他工作項將被掛起,當一個工作項完成並提交給節點時,其他的工作項將被刪除。

  工作項分為兩種:一種是手動節點拆分出來的,有具體的參與者的工作項,我們稱為手動工作項;一種是自動節點拆分出來的,沒有具體的參與者,但是必須指定了外部應用程式,我們稱為自動工作項。手動工作項被放入工作項列表,由工作流標準介面2呼叫,參與者手動參與執行。自動工作項通過工作流標準介面3訪問自動應用程式,由工作流引擎來自動呼叫執行。

  (9)應用程式

  應用程式宣告一個在本流程中需要被(伺服器或客戶端)呼叫的應用程式,該應用程式可以完成某個特定的功能和任務。在宣告中需要指定應用程式呼叫的方法、傳遞的引數、返回的結果等資訊。在使用者進行節點定義的時候,可能需要指明該節點呼叫的應用程式的標識。應用程式就是在流程在流轉中被工作流引擎呼叫的後臺應用程式和被使用者客戶端呼叫的應用程式工具。它們必須首先在流程定義中被宣告,指明程式的呼叫方法、名稱、引數等資訊,然後在進行節點定義的時候進行引用。

  如果在一個節點中,既指明瞭參與者,又指明瞭需要呼叫的應用程式,則系統認為該應用程式是一個客戶端呼叫的應用程式工具,需要使用者來處理;如果一個節點僅指明瞭需要呼叫的應用程式,而沒有指明參與者,則系統認為該應用程式是由工作流引擎自動排程的,不需要人工干預。

  應用程式需要支援工作流標準介面Interface3,以便與引擎之間進行引數傳遞和返回結果。需要傳遞的引數和返回的結果應該是流程中已經宣告的相關資料。

  應用程式的呼叫有兩種方式:分散式元件呼叫和直接應用程式呼叫。如果是分散式元件呼叫方式,則需要給出元件的標準和元件名稱;如果是直接應用程式呼叫,則需要給出應用程式名稱和路徑。

  以上介紹了工作流管理中所涉及到的一些基本概念。這些概念對於我們理解工作流的含義,WFMS的功能、組成、執行流程以及應用具有重要的意義。



本文轉自

http://soa.5d6d.com/redirect.php?fid=7&tid=64&goto=nextoldset