1. InforFlow2.1功能簡介 InforFlow2.1是遵循由國際工作流程管理聯盟制定的工作流程管理規範而實現的工作流程中介軟體產品。InforFlow2.1由可獨立啟動並執行工作流程引擎以及圖形化的流程設計器構成。工作流程引擎是工作流程管理系統的核心,負責執行個體化流程定義,根據流程定義驅動商務程序的運行,根據定義及運行時的動態資訊計算任務分配條件,分配任務,根據對實際的流程式控制制請求完成對流程的動態回退、跳轉等控制操作,負責發起對應用程式的調用,接收來自應用系統的調用請求,負責發起對應用程式外掛程式的調用。流程設計器基於Eclipse架構實現,完成流程的圖形化定義,使得開發人員與業務人員輕鬆完成對商務程序的分析與設計過程。 2. 強大的流程建模能力 流程建模能力的強弱是工作流程產品區別於普通辦公自動化系統的因素之一。企業中所存在的商務程序是企業生產、經營過程的反映,必然涉及多部門、多角色的人員之間的分工協作,有些商務程序的運行甚至是跨層級、跨地區、跨季度的在時間與空間上都跨度極廣的複雜過程。若支援這樣的商務程序,必然要求工作流程產品具有極強的流程建模能力。 InforFlow2.1工作流程元模型基於WfMC規範實現,是對商務程序所具有的共性的完善的抽象。InforFlow2.1在對支援複雜商務程序的分層建模、複雜任務分配方式以及應付易變的業務過程方面都具有獨到之處,使之可以輕鬆應付這些複雜性,降低了應用系統的開發難度,也減輕了開發人員的工作量。 2.1 工作流程元模型 InforFlow所支援的工作流程元模型如所示: 圖1.InforFlow的工作流程元模型
包就像一個容器,一個包中包含了多個業務相關的流程定義以及這些流程運行時所需要的資源,調用的應用程式,所使用的相關資料。包將這些資訊包容在一些,使得對商務程序的描述更加清晰。 一個包可以含多個流程定義,每個流程定義都是一個可獨立啟動並執行完整的商務程序。一個流程包含一個開始節點、一個結束節點以及多個活動節點。開始節點定義了流程唯一的進入點,結束節點定義了流程唯一的出口點,而活動節點的實作類別型有五種,分別為:無實現活動、Tool活動、子流程活動、塊活動、路由活動。 當一個活動的實作類別型是“Tool類型”時,活動可包含一個或者多個應用程式,當為活動增加應用程式時,需要指明對應此應用程式的形參的輸入參數,即實參集,實參可以從活動的所包含的相關資料中取。 當一個活動的實作類別型是“子流程類型”時,此活動可以引用其它的流程定義。同應用程式的定義相同,也需要定義對應此流程的形參的實參集,實參可以從活動的所包含的相關資料中取。此外,還需要指明流程的執行方式(同步還是非同步)。在非同步執行的情況下,活動的執行持續到子流程的過程執行個體初始化後。在同步執行的情況下,在子流程執行個體被初始化後,活動將被掛起。在這個流程執行個體運行終止後,活動被恢複。在子流程完成時,在調用與被調用流程間可能要使用返回參數。 下面的兩個圖以兩級嵌套流程為例分別描述了同步子流程與異常子流程的健全狀態: 圖2.同步子流程運行過程 圖3.非同步子流程運行過程
當一個活動的實作類別型是“塊活動類型”時,此活動可以引用一個活動集。和子流程實現不同的是,不必為塊活動定義實參集,執行方式等。 塊活動的健全狀態如所示: 圖4.塊活動運行過程
當實作類別型是“無實作類別型”時,需要手工來控制工作流程活動,並且其實現必須使用明確的訊號通知工作流程管理系統。 路徑活動(虛活動)即沒有執行者,也沒有應用程式。並且路徑活動的運行對流程相關資料,或者應用程式資料沒有任何影響。 2.2 任務分配方式 流程中某個節點的工作由誰來做,反映了相應的這個人對任務處理的許可權。在實際的應用系統中,對執行人任務處理許可權的定義可能會非常的複雜,需要與業務系統緊密結合,才能定義出符合特定業務需求的人員許可權。例如,在銀行信貸審批系統中,可能需要定義某人(具有某種角色的人)可以審批的信貸額度;在製造業的採購計劃制定流程中,可能需要視採購金額的不同而由具有不同許可權的人進行審批;甚至在某些辦公系統中,要求定義時並不確定由哪些人來做,而是在運行時由流程上一節點的執行直接指定下一步由誰來做。 在InforFlow中,我們可以定義節點的執行人為由符合以下條件的人進行處理: 直接指定執行人 運行時將任務直接分配給指定的人員 由屬於某個部門的人處理 運行時將由屬於此部門的某一個人或所有人進行處理 由具有某種角色的人的處理 運行時將由擁有此角色的某一個人或所有人進行處理 定義任務分配條件運算式,由符合運算式的某一個人或所有人處理 其中,使用任務分配條件運算式,InforFlow可以將應用系統自身的許可權系統方便的整合進來,並在任務分配時有效利用這些資訊,從而極大的擴充了InforFlow的任務分配方式,在應用系統許可權設計良好的情況下,可以滿足幾乎所有任務分配的需求。 例如,仍以上面列舉的需求為例,在銀行信貸審批系統中,人員有審批額度這種許可權,則可以定義某個節點由執行人審批額度大於流程執行個體所申請的額度的人進行處理;我們也可以定義某個節點由流程執行個體的發起人進行處理,或者由另外一個節點的相同的執行人進行處理。 我們也可以定義,執行人運算式為一個變數,此變數代表了一個人(或一個組織),變數的值是在流程執行個體的運行過程中由上一步節點的執行人動態指定的。 2.3 使用操作與業務單元分離流程邏輯與商務邏輯 InforFlow2.1擴充了XPDL對應用程式的定義,將應用程式分為“業務單元”與“操作”兩種類型。業務單元反映了某個活動節點要“做什麼”,操作反映了此活動節點對流程有什麼樣的控制許可權,例如“批准”、“否決”、“打回”等等。業務單元與操作都是某種類型的應用程式,但是將這兩個概念區分開來,可以協助開發人員構建出耦合性更低,業務組件對流程運行過程的依賴性更小的應用系統出來,從而真正使得所開發的流程可變、易變。從形式上來看,業務單元可以由工作流程引擎發起調用,而操作則是由應用系統控制發起對工作流程引擎的控制方法的調用。 3. 強大的流程式控制制能力 3.1 靜態流程式控制制 靜態流程式控制制是指工作流程引擎嚴格按照商務程序的定義驅動協調流程執行個體的運行。InforFlow可以支援串型、並型、迴圈等工作流程模式的運行,其中並型模式又可支援同步分叉、選擇分叉、同步合并、選擇合并等並型流程運行策略。同時,在節點的輸出轉移上可以定義轉移條件,可以實現基於條件的路由。如果運行時工作流程引擎發現所有輸出轉移上轉移條件都不滿足,則可以根據對預設轉移路徑的定義,驅動流程按預設路徑運行。 3.2 動態流程式控制制 InforFlow可以支援串型、同步分叉、選擇分叉、同步合并、選擇合并、迴圈等靜態定義的工作流程模式,同時也支援任務的動態回退、跳轉等由應用系統在運行時動態決定的控制方式。 任務的動態回退使得使用者可以將任務退回到已經經過的任意一個活動執行個體上去,由活動原先的執行人重新執行此項活動。任務動態回退的流程圖示如所示: 圖5.任務回退
任務的跳轉使得使用者可以決定流程下一步不按照預先定義好的流程運行,而是按自己所指定的目標節點運行。使用跳轉功能,可以實現對緊急事項的處理,也可以實現對流程式控制制的靈活性要求比較高的商務程序。流程跳轉的如下所示: 圖6.任務跳轉
3.3 使用外掛程式增強流程式控制制能力 使用流程事件外掛程式使得InforFlow工作流程引擎對流程的控制更加細膩,更加靈活。在流程執行個體、活動執行個體、工作項目狀態發生改變的任一時刻,InforFlow允許應用系統以外掛程式的形式擴充其業務上所需要的功能。InforFlow所支援的外掛程式示意如所示: 圖7.InforFlow的可擴充架構
使用事件外掛程式的一個情境是利用外掛程式來擷取、修改流程相關資料的值。當業務單元完成對業務對象的處理後,可以由外掛程式從業務資料庫中擷取所定義的流程相關資料的值。由於某些相關資料會影響流程的運行過程,因此,也可以在適當的時刻在外掛程式中修改相關資料的值,以擷取所希望的流程運行路徑。 當然,也可以使用外掛程式以發送mail的形式實現對任務處理人的任務到達通知,或者當流程運行結束時,及時通知流程的申請人,以提醒業務人員做進一步的處理。
|