探索工作流(八)--使用總結

一 工作流概述
        1 工作流是什麼?
                爲了實現某個業務目標,利用計算機在多個參與者之間按某種預定規則自動傳遞文檔、信息或者任務。
        2 分類
                業務流、審批流
        3 解決方案

                Workflow、BPM、Activity

二 工作流服務
        1 對外接口


                1 流程定義的導入導出,爲不同的流程定義提供商定義了一個接口規範。
                2 用戶接口,工作流系統必須提供與用戶交互的通道
                3 外部應用接口,調用外部應用所需要的接口
                4 不同工作流系統之間的接口,跨系統、跨服務器之間的數據接口
                5 管理和監視,用戶管理和監控系統運行狀態,查看歷史記錄等數據。
        2 核心業務


                RepositoryService:用於設計流程模板。
                RuntimeService:每當一個流程定義被啓動一次之後,都會生成一個相應的流程對象實例。Runtime Service 提供了啓動流程、查詢流程實例、設置獲取流程實例變量等功能。
                TaskService:流程定義中的每一個執行節點被稱爲一個 Task,對流程中的數據存取,狀態變更等操作均需要在 Task 中完成。
                IdentityService:工作流內置了用戶以及組管理的功能,必須使用這些用戶和組的信息才能獲取到相應的 Task。
                ManagementService:Management Service 提供了對流程引擎的管理和維護功能,這些功能不在工作流驅動的應用程序中使用,主要用於工作流系統的日常維護。
                HistoryService: History Service 用於獲取正在運行或已經完成的流程實例的信息,與 Runtime Service 中獲取的流程信息不同,歷史信息包含已經持久化存儲的永久信息,並已經被針對查詢優化。
                FormService: 工作流中的流程和狀態 Task 均可以關聯業務相關的數據。通過使用 Form Service 可以存取啓動和完成任務所需的表單數據並且根據需要來渲染表單。
三 持久化
        1 持久化方式
                XML、數據庫

        2 持久化數據庫


四 工作流宿主
                1 WorkflowInvoker提供調用工作流的簡單方法,我們使用WorkflowInvoker對象時,就像使用一個普通方法一樣創建和啓動工作流,並且只能用於不使用持久化的工作流;
                2 WorkflowApplication對象爲執行工作流提供了更加豐富的模型,包括生命週期事件通知、執行控制、書籤恢復和持久化等;
                3 WorkflowServiceHost爲消息傳遞活動提供支持,一個工作流主機可以管理多個工作流實例,用於工作流遠程調用。
五 設計時描述


        設計時描述類:每個流程以IWfProcess來表示,在流程中我們會有很多的活動點,但是起始點和終結點只有一個.所以流程的描述會有一個起始點描述,多箇中間活動點描述和一個終結點描述.這些活動點上可能有一些流轉時的限制條件,所以我們還需要條件的描述.
但是隻有這些內容不足以完整的定義一個流程,因爲缺少流程的流向,即活動點之間的關係.所以我們還需要線描述來聯結活動點,說明活動點的先後順序.線的流轉也可能會有一些條件的判斷和限制,比如說當金額超出時流轉到活動點1,否則流轉到活動點2.這樣我們就可以完整地描述一個流程,並將其保存至數據庫或文件.
六 運行時實例


        運行時實例:流程的運行時對象與設計時對象相比,多了一些操作和流程的起始結束時間,創建者,操作者,分派人,候選人等信息,流程運行的操作包括流轉到下一活動點,撤回到已有活動點,取消流程,流程結束.這些操作都由流程的實例來完成.活動點實例檢查是否可以流轉,受到活動點條件描述或線條件描述的制約.
七 運行環境
        1 運行時的參數
        WfProcessStartupParams
        流程啓動參數包含流程創建人,分派人等信息持有一個流程描述.
        WfRuntimeParameters
        流程啓動參數,定義是否加載Action
        WfTransferParams
        流程流轉時參數包含分派人以及操作人.持有下一活動點的描述.持有下一活動點的入線描述.持有WfBranchProcessTransferParams集合,爲只讀屬性.由描述文件自動生成
        WfBranchProcessTransferParams

        子流程啓動參數,持有子流程描述,持有WfBranchProcessStartupParams集合
        WfBranchProcessStartupParams
        每一種分支流程的啓動參數,包括分派人集合信息.
2 流程執行上下文
        WfProcessActionContext 
        在工作流的運行環境中用來存放一些行爲和操作,流程的流轉,撤回,通知相關人員等操作都需要使用        WfProcessActionContext中的一些數據或操作.

3 流程實例管理器
        WfRuntime
        前面我們在啓動流程時使用過WfRuntime類, 通過WfRuntime來管理所有運行中的流程實例。該類提供了流程實例的裝載,保存,刪除以及啓動新流程實例的功能.它持有一個很重要的對象,就是WfProcessActionContext,在WfRuntime中它的生命週期是單次會話,即緩存在ContextCacheQueue中,很多方法都要訪問WfProcessActionContext來完成。
八 前臺框架
        介紹前臺幾個模塊之間的關係
九 執行控制
    1 表單數據
    2 持久層
    3 控件
    4 事件
         1 工作流執行時觸發的事件
                1 Aborted工作流中止時觸發的事件
                2 Completed工作流完成時觸發的事件
                3 Unloaded 工作流卸載時觸發的事件
                4 Idel 工作流進入空閒狀態時觸發的事件
                5 PersistableIdle工作流進入空閒狀態並且可被持久化時執行的事件

          2 客戶選擇觸發的事件

<span style="font-size:18px;">      public event MoveToEventHandler BeforeMoveTo;
      public event MoveToEventHandler AfterMoveTo;</span><span style="font-size: 18px; font-family: Arial, Helvetica, sans-serif;">      </span><span style="font-size:18px;">
      public event ExecutorEventHandler BeforeExecute;
      public event ExecutorEventHandler PrepareApplicationData;
      public event PrepareTasksEventHandler PrepareMoveToTasks;
      public event PrepareTasksEventHandler PrepareNotifyTasks;
      public event PrepareUserOperationLogEventHandler PrepareUserOperationLog;
      public event ExecutorEventHandler SaveApplicationData;
      public event ExecutorEventHandler AfterSaveApplicationData;
      public event ExecutorEventHandler AfterModifyWorkflow;
      public event ErrorEventHandler Error;</span>


發佈了124 篇原創文章 · 獲贊 168 · 訪問量 27萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章