工作流系統的開發 (轉)

amyz發表於2007-08-15
工作流系統的開發 (轉)[@more@]

   工作流開發

一般的工作流管理系統由三個部分組成:工作流引擎、流程管理工具、流程定義工具(含圖形化的建模工具)和客戶端。開發的重點在於流程定義工具,工作流引擎可以考慮使用別人的產品。其各個組成部分又包括自己的資料系統,介面與表現形式。最好都開發成圖形的可互動操作介面。整個系統的工作流程如下::namespace prefix = o ns = "urn:schemas--com::office" />

工作流建模工具建立模型->流程定義工具對已建立的模型進行定義->把已建立的模型自動存入或自動生成XPDL->工作流引擎從資料庫或者XPDL檔案工作流定義->工作流程->返回執行後的相關資料。

基本開發策略:
1、理解工作流的基本概念,工作流技術中所涉及到的概念較多,都不是很容易理解。
2、把流程的導航問題做為核心。
3、開發過程中遵守一定的標準,例如WFMC的介面1

工作流引擎部分 

工作流引擎基本功能

  1、解釋過程定義

2、控制過程例項—建立、啟用、掛起、終止等
3、為過程的活動導航,可能要包含順序或者平行的操作、最後時間期限、對  工作流相關資料進行解釋
4、參與者簽名和退出
5、確定任務專案,實現意圖;提供介面,支援使用者互動
6 、維護工作流控制資料和工作流相關資料,在應用間或者使用者間傳遞  工作流相關資料
7、提供呼叫外部程式的介面,連線所有工作流相關資料
8 、提供控制、管理和審查功能

工作流引擎部分,可以自己開發,也可以考慮選用其他公司的產品,但必須保證以上基本的功能

流程管理器

  流程管理器至少應該包含兩個部分:管理部分和部分

  管理部分:提供了完善的使用者管理、角色管理、、系統管理、和日誌管理,使用者的操作分佈如下:

 以部門、使用者組、角色分別描述組織結構
分別基於部門、使用者組、角色、使用者進行授權,達到最大靈活性

  監控部分:主要實現對工作流程的監控,讓管理者可以追蹤和控管角色、活動、節點、過程例項的狀態和過程例項流經的路徑;可以以圖形的方式再現已經完成的過程例項的路徑、可以顯示正在進行中的過程例項,並且提供管理的機制,讓監控者得以在必要時終止或暫停某些過程例項。同時,系統亦提供有關工作過程的統計資料和報表,動態改變過程的狀態,協調各個部分的關係,並進而提升經營管理的。負載平衡提高工作流的工作效率。

流程定義工具

這個部分是開發的重點,流程定義工具部分包括:過程建模部分、XPDL自動生成部分、介面設計部分、報表設計和自動生成部分和設計模型的模擬部分。

1)  過程建模部分(process modeling)
使用圖形化的方法,讓開發者用最少的時間設計或修改企業工作流程,建模工具提供相當豐富的流程邏輯表達方式,可以表示非常複雜的流程,和介面設計部分、報表設計部分相結合可以輕易的設定每個流程步驟要執行的功能,和組織機構建模工具相結合,可方便準確地選擇每個活動執行的參與者。Process Designer 最大的優點是:讓開發人員在設計與模擬流程的過程中,避免複雜且耗時的流程程式開發過程。

基本功能特點如下:

1) 圖形化拖拽方式建立工作流模型
2) 人性化的各種選項設定
3) 多視窗的使用者介面
4) 豐富的過程圖形元素
5) 過程元素複製、貼上、刪除操作
6) 支援同時開啟多個模型檔案進行編輯
7) 定位過程元素
8) 支援圖形的分層顯示
9) 模型檔案統一存放、安全管理
10) 豐富多樣的活動型別可以適應不同的業務處理需求
11) 支援多種流程邏輯關係
12) 支援子過程設計
13) 支援使用者自定義型別資料
14) 工作流過程的參與者支援各種
15) 支援內建塊設計
16) 可設定工作流過程時限
17) 支援工作流程的許可權管理
18) 模型的合法性檢查
19) 模型檔案的圖形輸出

2)XPDL自動生成部分

此部分作用是使已經定義完的圖形化的流程模型邏輯自動轉變為XPDL文件或者其他通用的形式

工作流邏輯的物理形式:
1.採用資料庫來存放邏輯

2.採用WPDL或者XPDL的檔案格式存放邏輯

我的想法:一般來說用資料庫來存放可獲得更好的內部操作性,而檔案格式更有利於系統的封裝與對外介面的統一,實現了資料庫邏輯後再做檔案格式,先將模型中各個元素的屬性存在資料庫裡,再從資料庫生成標準的檔案,作為標準的介面用,這樣挺方便的(或者直接用語言生成標準的xml檔案)

工作流流程邏輯實現的關鍵點:
(1)應當具有的介面方法
(2)介面對應的邏輯
(3)條件判斷的實現


3) 介面設計部分(fodesigner)
  此部分提供了類似於頁面設計的圖形化應用開發工具,使用者可以使用圖形  化設計方法,開發出動態頁面應用,其結果可儲存為html或,並具有資料庫訪問能力。執行時使用者將從上訪問到設計結果。它的最大的優點是:讓開發人員避免了活動中應用程式的開發過程
4) 報表設計及自動生成部分(report designer)
它提供了圖形化設計複雜報表頁面的能力,可設計非常複雜的報表,並可畫出各種統計分析圖,能夠使用多種形式輸出。
5)流程模型模擬部分

對已經定義好的模型進行模擬和測試

客戶端

在客戶端執行審批等各種操作,實現流程的具體流轉

流程流轉方式:

審批、建議、知會、決定、執行

審批:透過或者不透過,可以給出建議

建議:給出相關的建議

知會:流程通知事件,不影響流程的流轉,可以透過知會的方式通知發文人流程的流轉情況

決定:可以使流程繼續或者終止至某一步,使流程具有重定向的功能

執行:在一定時間內可以具有審批的許可權,超過了指定時間就可以按照已經指定的方式執行流程

最終,形成可由發文人或指定群組的人員可以檢視的工作流流程流轉報告


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-959162/,如需轉載,請註明出處,否則將追究法律責任。

相關文章