工做流引擎,是軟件開發中很是重要的一部分。所謂工做流引擎,是指workflow做爲應用系統的一部分,併爲之提供對各應用系統有決定做用的根據角色、分工和條件的不一樣決定信息傳遞路由、內容等級等核心解決方案。數據庫
工做流引擎包括流程的節點管理、流向管理、流程樣例管理等重要功能。編程
開發一個優秀的軟件系統,系統界面是最基礎的部分,數據庫之間的信息交換是必備條件,而根據業務需求開發出符合實際的程序邏輯,並在必定程度上保證其穩定性、易維護性纔是根本。穩定性自沒必要說,易維護性則要保證模塊化和結構化,這樣能夠在業務流程發生變化,例如決策權的改變、組織結構的變更時產生的全新業務邏輯,而工做流引擎解決的就是這個問題。若是應用程序缺少強大的邏輯層,就會變得容易出錯,好比信息的路由錯誤、死循環等等。架構
舉個簡單的例子,一輛汽車,外觀很漂亮,可是若是發動機有問題,那就變成了一個擺設,勢必會bug不斷。而應用系統的拓展性就比如汽車的引擎轉速,別人的百千米加速只要10s,而你的則須要一個小時(業務流程變更須要更長時間的程序修改),孰優孰劣,一目瞭然。而若是引擎再動不動就熄火(程序邏輯死循環),那這樣的車誰還會叫好呢?框架
服務架構dom
面向服務的體系結構,是一個組件模型,它將應用程序的不一樣功能單元經過這些服務之間定義良好的接口和契約聯繫起來。接口是採用中立的方式進行定義的,它應該獨立於實現服務的硬件平臺、操做系統和編程語言。工做流引擎使得構建在各類這樣的系統中的服務,能夠以一種統一和通用的方式進行交互。編程語言
Learun工做流引擎ide
之前一直在想如何構建一個靈活的OA工做流機制,可能開始有不少人用domino來作,後來到了ASP.NET的時候,好像你們都醒悟了,公司老闆、CTO等都開始嚷嚷要上工做流引擎實現企業信息審批流程化。基於企業的實際需求,公司也在近幾年開發了標準企業級的工做流引擎(learun),並得到了雙軟認證,各項指標及客戶反映都不錯,其基本思路以下:模塊化
首先定義每一個操作,就是定義流程步,定義流程步主要包括:操做的接口地址、操做參數、操做類型(起始操做、中間操做等)。定義操做的目的是接着爲每一個操做設置關係和定義流程時選用這些定義好的操做步。spa
第二定義操做的參數,有了接口地址外,還須要定義操做參數。操作系統
第三是定義操做步之間的關係。就是定義一個流程中每一個操做步的前驅、後繼的操做步。
第四是定義流程了,必要的信息是流程名稱等基本信息和定義流程的各個操做步以及流轉規則。流程基本信息就不用說了。流程步定義比較複雜,設置定義步驟類型(起始、中間、終結),入口步驟、出口步驟、通知模式、人員、角色、發送通知的內容。
第五是涉及跳步狀況的定義,好比須要根據參數的不一樣提交到不一樣的步驟進行審批,這裏叫作流程步驟變遷規則設置。設置的內容須要:原步驟、目標步驟、變遷方向(正/負)、條件規則(判斷參數時用與仍是用或)。接着設置參數和參數值及比較條件。
第六是受權管理。這個比較簡單了,判斷被提交的人是否處於受權狀態,從而進行受權處理。
以上所說只是基礎邏輯,實際編寫過程當中還要考慮各企業的實際狀況,learun框架內置的工做流引擎,集合了各行業客戶意見與建議,適用性強,穩定性高,使用便捷,歡迎體驗指正。