- Drools 教程
- Drools - 首頁
- Drools - 簡介
- Drools - Eclipse 外掛
- Drools - 執行時
- Drools - 建立 Drools 程式
- Drools - 常用術語
- Drools - 規則編寫
- Drools - 規則語法
- Drools - Drools 程式示例
- Drools - 除錯
- Drools 有用資源
- Drools - 快速指南
- Drools - 有用資源
- Drools - 討論
Drools - 簡介
任何 Java 企業級應用程式都可以分成三個部分:
- UI - 使用者介面(前端)
- 服務層,它又連線到資料庫
- 業務層
我們有很多框架可以一起處理 UI 和服務層,例如 Spring 和 Struts。但是,在 Drools 出現之前,我們還沒有標準的方法來處理業務邏輯。
什麼是 Drools?
Drools 是一個**業務邏輯整合平臺 (BLiP)**。它是用 Java 編寫的。它是一個開源專案,由 JBoss 和 Red Hat, Inc. 支援。它擴充套件並實現了 Rete 模式匹配演算法。
通俗地說,Drools 是一組工具,允許我們分離和推理業務流程中發現的邏輯和資料。我們需要注意的兩個重要關鍵詞是**邏輯**和**資料**。
Drools 分為兩個主要部分:**創作**和**執行時**。
**創作** - 創作過程涉及建立規則檔案(.DRL 檔案)。
**執行時** - 它涉及建立工作記憶體和處理啟用。
什麼是規則引擎?
Drools 是規則引擎或生產規則系統,它使用基於規則的方法來實現專家系統。專家系統是基於知識的系統,它使用知識表示將獲取的知識處理成可以用於推理的知識庫。
生產規則系統是圖靈完備的,它專注於知識表示,以簡潔、明確和宣告的方式表達命題邏輯和一階邏輯。
生產規則系統的核心是**推理引擎**,它可以擴充套件到大量的規則和事實。推理引擎將事實和資料與生產規則(也稱為**產生式**或僅稱為**規則**)進行匹配,以推斷結論,從而導致操作。
生產規則是一個兩部分的結構,它使用一階邏輯對知識表示進行推理。業務規則引擎是一個軟體系統,它在一個執行時生產環境中執行一個或多個業務規則。
規則引擎允許你定義“**做什麼**”,而不是“**如何做**”。
什麼是規則?
規則是知識片段,通常表示為“當某些條件發生時,則執行某些任務”。
When <Condition is true> Then <Take desired Action>
規則最重要的部分是它的**when**部分。如果**when**部分滿足,則觸發**then**部分。
rule <rule_name>
<attribute> <value>
when
<conditions>
then
<actions>
end
模式匹配
將新的或現有的事實與生產規則進行匹配的過程稱為模式匹配,這是由推理引擎執行的。有多種用於模式匹配的演算法,包括:
- 線性
- Rete
- Treat
- Leaps
Drools 實現並擴充套件了 Rete 演算法。Drools 的 Rete 實現稱為 ReteOO,表示 Drools 對面向物件系統進行了 Rete 演算法的增強和最佳化實現。
規則引擎的優勢
宣告式程式設計
規則使表達對複雜問題的解決方案變得容易,並能驗證這些解決方案。與程式碼不同,規則是用不太複雜的語言編寫的;業務分析師可以輕鬆閱讀和驗證一組規則。
邏輯和資料分離
資料駐留在域物件中,業務邏輯駐留在規則中。根據專案的型別,這種分離可能非常有利。
速度和可擴充套件性
Drools 所基於的 Rete OO 演算法已經是一個經過驗證的演算法。藉助 Drools,你的應用程式變得非常可擴充套件。如果存在頻繁的變更請求,則可以新增新規則而無需修改現有規則。
知識集中化
透過使用規則,你建立了一個可執行的知識儲存庫(知識庫)。它是業務策略的單一事實來源。理想情況下,規則的可讀性非常強,因此也可以用作文件。
工具整合
Eclipse 等工具提供了編輯和管理規則以及獲得即時反饋、驗證和內容輔助的方法。還提供審計和除錯工具。