淺析LR.Net工作流引擎
在當代資訊化軟體系統開發中 , 是 其中 非常重要的一環。所謂 ,是指 工作流 作為 軟體 系統的一部分, 其中 包括 了 流程的節點管理、流向管理、流程樣例管理、稽核管理等重要功能。
可 根據角色、分工和條件的不同 來 決定資訊傳遞 的 路由 與 內容 的分級 。 其對 各應用系統 是 有 著 決定作用的 。
美觀友好的互動 介面, 穩定的 資料庫資訊交換, 滿足 實際業務需求 的高效 程式邏輯, 這些都是判斷一個軟體系統是否優秀的重要標準。一個滿足以上條件的系統,將會 在一定程度上保證其穩定性和易用性。
做到程式 穩定 , 是為了保證 該 系統的可靠 性 , 滿足介面 易用 , 則 是在 保證模組化、結構化、操作的便捷性 。 這樣可以在業務流程發生變化,例如決策權的改變、組織結構的變動時 , 隨之變換 的全新業務邏輯,而 解決的就是這個問題。如果應用程式缺乏 穩定高效 的邏輯層,就 會很 容易出 現包括 資訊路由錯誤、 異常 迴圈 在內的各種錯誤 。
這裡舉個簡單的例子。一臺電腦,外觀前衛炫酷,但如果硬體系統有問題,那勢必會出現各種BUG,如不加以改進,極有可能被人嫌棄,最終變成一堆廢品。而應用系統的擴充性就好比電腦的執行速度,別人開機只需五秒,而你的則需要五分鐘(業務流程變動需要更長時間的程式修改),孰優孰劣,一目瞭然。而如果電腦動不動就藍色畫面重啟(程式邏輯異常迴圈),那這樣的電腦誰還會用呢?
服務架構
面向服務的體系結構,是一個元件模型,它將應用程式的不同功能單元透過這些服務之間定義好的介面和契約聯絡起來。介面是採用中立的方式進行定義的,它獨立於硬體平臺、作業系統和程式語言。工作流引擎使構建在各種系統中的服務,以統一和通用的方式進行互動。
想要一套有 靈活工作流機制的OA 系統的企業不在少數 , 於是 有很多人 使用 用 D omino來 摸索著 做 。 等待 後來ASP.NET 出現 ,好像大家都醒悟了, 各領域企業都 要 求使用 實現企業資訊審批流程化。
基於企業的實際需求,近幾年 出現了一批 標準的企業級工作流引擎,並獲得了雙軟認證 。 這裡講一下口碑比較好的Learun, 總體採用拖拽式設計,配合程式碼生成器,通用業務流程程式碼量接近於零,各項指標及客戶反映都不錯,其基本思路如下:
首先 , 定義流程步,主要包括:操作的介面地址、操作引數、操作型別(起始操作、中間操作等)。 其 目的是 將來對 每個操作 進行 關係設定和流程定義時 , 可以 選用這些定義好的操作步。
第二 , 定義操作的引數, 除 介面地址外,還需定義 其 引數。
第三 , 定義操作步之間的關係。就是定義 各 流程中每步的前驅、後繼的操作。
第四 , 定義流程 。 其中 必要的 內容 , 是基本資訊 、 流程操作以及流轉規則。流程基本資訊 這裡不表 。流程步定義比較複雜, 包括 步驟型別(起始、中間、終結),入口步驟、出口步驟、通知模式、人員、角色、傳送通知的內容。
第五 , 跳步定義,如需根據引數的不同 , 提交審批到不同的步驟,這裡叫做流程步驟變遷規則設定。設定的內容需要:原步驟、目標步驟、變遷方向(正/負)、條件規則(判斷引數時用與還是用或)。 然後 設定引數 、 引數值 以 及比較條件。
第六 , 授權管理。這個比較簡單了,判斷被提交的人是否處於授權狀態,從而進行授權處理。
以上所說只是基礎邏輯,實際編寫過程中還要考慮各企業的實際情況,learun框架內建的 ,集合了各行業客戶意見與建議,適用性強,穩定性高,使用便捷,歡迎體驗指正。
參考資料來源以及技術詳情參閱 :
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69980847/viewspace-2716876/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 淺析 Laravel Session 元件的工作流程LaravelSession元件
- 探究Presto SQL引擎(2)-淺析JoinRESTSQL
- 淺析渲染引擎與前端優化前端優化
- 淺析InnoDB引擎的索引和索引原理索引
- LR.Net自定義工作流視覺化配置視覺化
- 淺析防毒軟體開發原理(之查毒引擎)防毒
- iOS Block淺淺析iOSBloC
- activiti工作流引擎元件元件
- 淺析 JWTJWT
- MongoDB淺析MongoDB
- RunLoop 淺析OOP
- Nginx淺析Nginx
- 淺析 requestAnimationFramerequestAnimationFrame
- 淺析PromisePromise
- 淺析GitGit
- 淺析RedisRedis
- Jvm 淺析JVM
- 工作流引擎:jbpm和activiti
- Webpack 原理淺析Web
- css: clip淺析CSS
- 淺析Promise原理Promise
- BTrace 原理淺析
- 淺析Java NIOJava
- 字串模板淺析字串
- 淺析 ReentrantLockReentrantLock
- HTTP Cache 淺析HTTP
- 淺析JAVA反射Java反射
- setXfermode 模式淺析模式
- AQS原理淺析AQS
- koa原理淺析
- CGLib淺析CGLib
- 淺析DES原理
- ejs 淺析JS
- AIDL淺析AI
- Fragment流程淺析Fragment
- 淺析SELinuxLinux
- IOS代理淺析iOS
- MySQL Replication淺析MySql