Drools概述


規則引擎出現的原因?

目前流行的行業,以金融類項目為例,風險控制系統、反欺騙系統、決策引擎等也成為常用且經常變化的業務。這類經常變更的業務讓公司運營和程序員都非常頭痛。對於復雜多變的業務規則,如果按照傳統的邏輯思維,通常的做法首先要傳進去參數,通過if…else或者通過SQL查詢條件中的動態添加判斷,如MyBatis中的<if>進行業務邏輯判斷。其次獲取到接口執行完畢后的結果。會出現以下弊端:

(1)增加開發人員與測試人員的工作量。

(2)部門間需要更加頻繁地進行業務溝通,時間成本增加。

(3)增加用人成本,造成公司損失。

規則引擎的出現就完美的解決了這些問題。

Drools簡要概述

Drools是一款基於Java語言的開源的規則引擎,可以將復雜且多變的規則從硬編碼中解放出來,以規則腳本的形式存放在文件或者特定的存儲介質中(eg:數據庫表),使得業務規則的變更不需要修正項目代碼,重啟服務器就可以在線上環境立即生效。可以理解為動態代碼(動態業務)。

規則引擎的核心目的之一就是將業務決策從程序代碼中分離出來,使其代碼與業務解耦合。通過特定的語法內容編寫業務模塊,由API進行解析並對外提供執行接口,再接收輸入數據、進行業務邏輯處理並返回執行結果。引用規則引擎后的效果如圖1-1所示。

應用場景

(1) 適用的行業分類。

①金融行業——黑名單、白名單、風險投保。

②醫療行業——合理輸血、合理用葯。

③電商行業——促銷平台。

(2)適用的系統分類。

①風險控制系統——風險貸款、風險評估系統。

②反欺詐項目——銀行貸款、征信驗證。

③決策平台系統——財務計算。

④促銷平台系統——滿減、打折、加價購。

作用與優點

(1)業務規則與系統代碼分離,實現代碼與業務的解耦合。

(2)提供領域語言(自然語言),使業務人員更容易理解。

(3)提供了可視化頁面(指KIE-WB)操作,使用更簡單。

(4)大大提高了對復雜邏輯代碼的可維護性。

(5)可隨時對業務進行擴展和維護。

(6)符合公司對敏捷性或者迭代性開發的策略。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM