工作流-2(貼自csdn論壇)

  工作流開發中,我們所需解決的第一個問題就是分析業務需求,在業務需求沒有出來之前空談工作流是不切實際的,分析了具體需求以後再來考慮開發中的實際情況,是否需要建立一個穩定的工作流平臺等問題,實際上大部分的oa系統中都涉及到了工作流的一些思想,但是他們所謂的工作流相對而言主要是一些面向於文檔的工作,如收發文的管理、公文的審批等,這些工作並非一定要建立一個工作流平臺才能解決的,實際開發過程中,類似這些簡單的流程,可以通過代碼在表現層開發的時候直接實現,但是如果在開發政務系統或者商務應用系統項目時,由於這些項目往往涉及到很複雜的流程,而且流程的變化也是沒有辦法事先估計的,所以此是考慮使用一個穩定的工作流平臺纔是合理的。以上問題解決以後,再來考慮開發的問題,如果公司人手比較足,技術力量比較雄厚,可以考慮自主開發工作流平臺,如果不具有這樣的條件,可以考慮一下選擇一個比較好的合作伙伴,使用他們的工作流平臺,你在他們工作流平臺的基礎上再來進行二次開發和應用系統的集成。 

 工作流系統開發體系  
  一般的工作流管理系統由三個部分組成:工作流引擎、流程管理工具、流程定義工具(含圖形化的建模工具)和客戶端。開發的重點在於流程定義工具,工作流引擎可以考慮使用別人的產品。其各個組成部分又包括自己的數據系統,接口與表現形式。最好都開發成圖形的可交互操作界面。整個系統的工作流程如下:  
  工作流建模工具建立模型->流程定義工具對已建立的模型進行定義->把已建立的模型自動存入數據庫或自動生成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的文件格式存放邏輯  
   
  我的想法:一般來說用數據庫來存放可獲得更好的內部操作性,而文件格式更有利於系統的封裝與對外接口的統一,實現了數據庫邏輯後再做文件格式,先將模型中各個元素的屬性存在數據庫裏,再從數據庫生成標準的文件,作爲標準的接口用,這樣挺方便的(或者直接用Java語言生成標準的xml文件)  
   
  工作流流程邏輯實現的關鍵點:  
  (1)應當具有的接口方法  
  (2)接口對應的邏輯  
  (3)條件判斷的實現  
   
   
  3)   界面設計部分(form   designer)  
          此部分提供了類似於頁面設計的圖形化應用開發工具,用戶可以使用圖形         化設計方法,開發出動態頁面應用,其結果可保存爲html或jsp,並具有數據庫訪問能力。運行時用戶將從瀏覽器上訪問到設計結果。它的最大的優點是:讓開發人員避免了活動中應用程序的開發過程  
  4)   報表設計及自動生成部分(report   designer)  
  它提供了圖形化設計複雜報表頁面的能力,可設計非常複雜的報表,並可畫出各種統計分析圖,能夠使用多種形式輸出。  
  5)流程模型仿真部分  
  對已經定義好的模型進行仿真和測試  
   
  客戶端  
  在客戶端執行審批等各種操作,實現流程的具體流轉  
   
  流程流轉方式:  
  審批、建議、知會、決定、執行  
   
  審批:通過或者不通過,可以給出建議  
  建議:給出相關的建議  
  知會:流程通知事件,不影響流程的流轉,可以通過知會的方式通知發文人流程的流轉情況  
  決定:可以使流程繼續或者終止至某一步,使流程具有重定向的功能  
  執行:在一定時間內可以具有審批的權限,超過了指定時間就可以按照已經指定的方式執行流程  
  最終,形成可由發文人或指定羣組的人員可以查看的工作流流程流轉報告  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章