1. 程式人生 > >《Drools7.0.0.Final規則引擎教程》第1章 Drools簡介

《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)已經建立,歡迎大家加入討論。
這裡寫圖片描述