工做流是企業應用開發過程當中很是重要的一部分,幾乎常見的管理、業務類系統都與工做流有千絲萬縷的聯繫。java
工做流做爲應用系統的一部分,根據角色、分工和條件的不一樣,來解決信息傳遞路由、內容等級問題的核心解決方案。數據庫
經常使用的工做流應包含節點管理、流向管理、流程樣例等基礎功能。編程
優秀的企業應用,其美觀大方的系統界面是最基礎的部分;數據庫之間的信息交換是必備條件;而保證應用系統的功能性、契合性、穩定性和易維護性則是重中之重。架構
考慮到後期的維護性,能夠採用模塊化和結構化應用程序,這樣在業務流程發生變化時(決策權改變、組織結構變更)能迅速產生全新業的務邏輯。並且,若是應用程序缺少完備高效的邏輯層(一般由工做流引擎實現),就會容易出現信息的路由錯誤和運行效率低下這一類問題。編程語言
在架構上,面向服務的體系結構,是一個組件模型,它將應用程序的不一樣功能單元經過這些服務之間定義的接口和契約聯繫起來。接口定義採用中立方式進行,它獨立於硬件、系統和編程語言。工做流引擎使得構建在這類系統中的服務,能夠統一通用的方式進行交互。模塊化
LeaRun標準工做流引擎spa
在早前,不少企業都迫切須要一套靈活的OA工做流機制,因而有愈來愈多人開始利用Domino來構建;後來當ASP.NET出現時,你們猶如醍醐灌頂通常,各集團高層都開始要求使用工做流引擎實現企業流程審批信息化。設計
基於市場的實際需求,咱們最開始開發了標準的ASP.NET企業級工做流引擎(LeaRun),並得到相關認證,各項指標及客戶反映都不錯,因此隨後的java平臺也延續了其設計思想:接口
首先定義流程步驟,主要包括:操做的接口地址、操做參數、操做類型(起始操做、中間操做)。其目的是爲每一個操做設置好相關關係,在定義流程時便可選用設置好的流程步驟。路由
其次定義操做的參數,是除接口地址外的另外一必須項。
再次是定義流程操做步驟之間的關係。即定義一個流程中每一個操做步的前驅、後繼的操做。
而後定義流程,其內容包括基本信息和流程定義中的各操做步驟、流轉規則。流程基本信息無需贅述。流程步驟定義比較複雜,設置定義步驟類型(起始、中間、終結),入口步驟、出口步驟、通知模式、人員、角色、通知發送的內容。
以後定義涉及跳步的狀況,如需根據不一樣參數提交到相應的步驟進行審批,這裏叫作流程步驟變遷規則設置。其須要設置的內容:原步驟、目標步驟、變遷方向(正/負)、條件規則(判斷「與」、「或」運算)。接着設置參數、值、比較條件。
最後管理受權。該項較簡單,判斷被提交的人是否處於受權狀態,從而進行相關處理。
上述所說是流程的大體邏輯,實際編寫過程當中考慮的狀況會更爲複雜,如需案例參考,請搜索「力軟」進行查看。
Windy.