Drools規則引擎簡介

banq發表於2022-03-18

任何 Java 企業級應用程式都可以分為三個部分 -
  • UI - 使用者介面(前端)
  • 服務層又連線到資料庫
  • 業務層

在 Drools 出現之前,我們還沒有處理業務邏輯的標準方法。
Drools 是一個業務邏輯整合平臺 (BLiP)。它是用 Java 編寫的。它是一個由 JBoss 和 Red Hat, Inc. 支援的開源專案。它擴充套件並實現了 Rete 模式匹配演算法。
用外行的話來說,Drools 是一組工具,允許我們對業務流程中的邏輯和資料進行分離和推理。我們需要注意的兩個重要關鍵字是LogicData
Drools 分為兩個主要部分:AuthoringRuntime
  • 創作- 創作過程涉及建立規則檔案(.DRL 檔案)。
  • 執行時- 它涉及工作記憶體的建立和處理啟用。

 

什麼是規則引擎?
Drools是一個規則引擎或生產規則系統,使用基於規則的方法來實現專家系統。專家系統是基於知識的系統,它使用知識表示法將獲得的知識處理成可用於推理的知識庫。

生產規則系統是圖靈完整的,重點是知識表示,以簡明、非歧義和宣告的方式表達命題和一階邏輯。

生產規則系統的大腦是一個推理引擎,可以擴充套件到大量的規則和事實。推理引擎將事實和資料與生產規則(也稱為產品或規則)相匹配,從而推斷出導致行動的結論。

生產規則是一個由兩部分組成的結構,使用一階邏輯對知識表示進行推理。業務規則引擎是一個軟體系統,在執行時生產環境中執行一個或多個業務規則。

一個規則引擎允許你定義 "做什麼",而不是 "怎麼做"。
  

什麼是規則?
規則是一些知識片斷,通常表示為:"當某些條件發生時,就做一些任務",也就是if else。

When
   <Condition is true>
Then
   <Take desired Action>


規則中最重要的部分是它的when部分。如果when部分被滿足,then部分就會被觸發。

rule  <rule_name>
   <attribute> <value>
      
   when
      <conditions>
      
   then
      <actions>
end

 

模式匹配
將新的或現有的事實與生產規則相匹配的過程稱為模式匹配,它由推理引擎執行。有許多用於模式匹配的演算法,包括

  • 線性
  • 檢索
  • 處理
  • 躍遷

Drools執行並擴充套件了Rete演算法。Drools的Rete實現被稱為ReteOO,標誌著Drools為物件導向的系統提供了Rete演算法的增強和最佳化實現。
  

規則引擎的優勢

  • 宣告式程式設計

規則使得表達困難問題的解決方案變得容易,同時也使解決方案得到驗證。與程式碼不同,規則是用不太複雜的語言編寫的;商業分析師可以很容易地閱讀和驗證一套規則。
  • 邏輯和資料的分離

資料存在於領域物件中,商業邏輯存在於規則中。根據專案的型別,這種分離可能是非常有利的。

Drools所採用的Rete OO演算法已經是一種成熟的演算法。在Drools的幫助下,你的應用變得非常可擴充套件。如果有頻繁的變更要求,人們可以新增新的規則而不需要修改現有的規則。
  • 知識的集中化

透過使用規則,你建立了一個可執行的知識庫(知識庫)。它是業務政策的單一真理點。理想情況下,規則是可讀的,它們也可以作為文件。
  • 工具整合

像Eclipse這樣的工具提供了編輯和管理規則的方法,並獲得即時反饋、驗證和內容幫助。審計和除錯工具也是可用的。
 

相關文章