《Drools7.0.0.Final規則引擎教程》第1章 Drools簡介
1.1 什麼是規則引擎
規則引擎是由推理引擎發展而來,是一種嵌入在應用程式中的元件,實現了將業務決策從應用程式程式碼中分離出來,並使用預定義的語義模組編寫業務決策。接受資料輸入,解釋業務規則,並根據業務規則做出業務決策。
大多數規則引擎都支援規則的次序和規則衝突檢驗,支援簡單指令碼語言的規則實現,支援通用開發語言的嵌入開發。目前業內有多個規則引擎可供使用,其中包括商業和開放原始碼選擇。開源的代表是Drools,商業的代表是Visual Rules ,I Log。
1.2 Drools規則引擎
Drools(JBoss Rules )具有一個易於訪問企業策略、易於調整以及易於管理的開源業務規則引擎,符合業內標準,速度快、效率高。業務分析師或稽核人員可以利用它輕鬆檢視業務規則,從而檢驗是否已編碼的規則執行了所需的業務規則。
JBoss Rules的前身是Codehaus的一個開源專案叫Drools。現在被納入JBoss 門下,更名為JBoss Rules,成為了JBoss應用伺服器的規則引擎。
Drools是為Java量身定製的基於Charles Forgy的RETE演算法的規則引擎的實現。具有了OO介面的RETE,使得商業規則有了更自然的表達。
1.3 Drools使用概覽
Drools是Java編寫的一款開源規則引擎,實現了Rete演算法對所編寫的規則求值,支援宣告方式表達業務邏輯。使用DSL(Domain Specific Language)語言來編寫業務規則,使得規則通俗易懂,便於學習理解。支援Java程式碼直接嵌入到規則檔案中。
Drools主要分為兩個部分:一是Drools規則,二是Drools規則的解釋執行。規則的編譯與執行要通過Drools 提供的相關API 來實現。而這些API 總體上游可分為三類:規則編譯、規則收集和規則的執行。
Drools是業務規則管理系統(BRMS)解決方案,涉及以下專案:
- Drools Workbench:業務規則管理系統
- Drools Expert:業務規則引擎
- Drools Fusion:事件處理
- jBPM:工作流引擎
- OptaPlanner:規劃引擎
1.4 Drools版本資訊
目前Drools釋出的最新版本為7.0.0.Final,其他版本正在研發過程中。官方表示後續版本會加快迭代速度。本系列也是基於此版本進行講解。
從Drools6.x到7版本發生重大的變化項:
- @PropertyReactive不需要再配置,在Drools7中作為預設配置項。同時向下相容。
- Drools6版本中執行sum方法計算結果資料型別問題修正。
- 重新命名TimedRuleExecutionOption。
- 重新命名和統一配置檔案。
Drools7新功能:
(1)支援多執行緒執行規則引擎,預設為開啟,處於試驗階段。
(2)OOPath改進,處於試驗階段。
(3)OOPath Maven 外掛支援。
(4)事件的軟過期。
(5)規則單元RuleUnit。
1.5 JDK版本及IDE
從Drools6.4.0開始已經支援JAVA8,最低版本JDK1.5。可通過Eclipse外掛進行整合,也可通過Intellij IDEA中外掛進行整合開發。Drools提供了一個Eclipse的整合版本,不過它核心依賴於JDK1.5。
關鍵Eclipse的整合官方有詳細的文件可參考,這裡不再贅述。本系列後續專案及示例演示均採用JAVA8和Intellij IDEA。
1.6 官方資料
關於
你的支援是我努力的最大動力!此係列課程正在持續更新中,相關討論QQ(593177274)已經建立,歡迎大家加入討論。