最近一年多的時間我都在流程管理系統領域工作,雖然現在該項目處於停滯狀態,但我仍然對流程管理領域充滿希望.這一系列的隨筆由bobmazelin和他的同事這段時間工作的經驗積累而成,同時也是我們流程管理系統的介紹,如果有志同道合者隨意發表自己的想法,同時我們也需要新的活力來再次使項目推進.
這是該系列的第一篇,我介紹一下系統在大體上的構架以及一些基本情況.由於該項目是商業化項目,請大家原諒我不能公開項目名稱等具有商業化意義的資料.
系統能作什麼?
一句話總結, 讓客戶通過系統對流程生命週期中的每個步驟進行控制.
我們認識的流程生命週期:
認識流程 -> 設計流程 -> 靜態分析流程 -> 再設計流程 -> 部署流程 -> 流程版本控制 -> 測試流程 -> 再設計流程 -> 執行流程 -> 監控流程 -> 動態分析流程 -> 再設計流程
注:有些地方是反覆迴圈的,建立這種良性迴圈機制正是流程管理的核心任務之一.
在認識到流程生命週期後,我們又認識到在流程生命週期中的流程不僅僅是流程,它覆蓋了流程中的資源,規則以及流程本身.我們把這三種元素代到流程生命週期中思考就形成了流程系統的總體架構.
我很難使用一種視圖就總結出流程系統的整體架構,我使用3個視圖來表達.
1. 系統元素: 資源,規則和流程.這3個是流程系統的和行元素,其他視圖都依賴它.
其中資源處於系統底部,他代表了系統的資料;規則處於中間,描述了邏輯性的商務規則,並依賴(使用)資源;流程處於最上層,調用規則並管理資源.也可以看到,資源應該是系統最穩定的元素,改變資源可能需要調整規則和流程,由此,儘可能的抽象資源的業務意義,能儘力減少資源的影響.規則雖然處於中層,但是他具有良好的封裝性,他的使用者(流程)不需要關注其內部結構,只需要執行,這樣規則的靈活性是至關重要的.流程處於最上層,流程的變化影響最小,這也是流程管理需要的.
2. 流程生命週期: 針對上面談到的流程生命週期的每個步驟提供工具集來協助使用者更好的管理.
流程設計構件: 認識和設計資源,規則,流程的必要工具;
流程靜態分析構件: 通過分析流程靜態結構,資源的分配方式以及規則的正確性等步驟,在流程實際部署前保證流程"理論"上的正確性;
部署構件: 通過http部署資源,規則,流程, 隨時隨地完成流程的部署工作,同時部署方式簡單;
版本管理: 變化不可避免, 自動版本控制功能,確保曆史設計資料的恢複和查詢能力;
測試流程構件: 即使沒有頁面,沒有表單設計也能測試資源,規則,流程,為快速,準確的執行流程奠定基礎;
執行流程構件: 流程執行介面多樣化: API, remoting,webservice, MSMQ等;
監控流程構件: 即時監視和控制流程程;
流程動態分析構件: 隨需應變的分析曆史資料報表,為流程最佳化提供良好的工具.
以上我列出了比較重要的構件集合,但還不是完整的集合,我們可以看到每個功能集合都圍繞系統元素展開.
3. 系統結構: 這個視圖由於商業技術的原因,我這裡不便多透露,這個視圖更多的是和開發人員關係緊密,使用者角度上說沒有實際用處.
這個系列大部分圍繞著前兩個視圖來展開,介紹其中的概念性元素以及流程管理中的應用.
最後,還是請大家多提意見,不恰之處還請包涵.