Drools規則引擎簡介
任何 Java 企業級應用程式都可以分為三個部分 -
- UI - 使用者介面(前端)
- 服務層又連線到資料庫
- 業務層
在 Drools 出現之前,我們還沒有處理業務邏輯的標準方法。
Drools 是一個業務邏輯整合平臺 (BLiP)。它是用 Java 編寫的。它是一個由 JBoss 和 Red Hat, Inc. 支援的開源專案。它擴充套件並實現了 Rete 模式匹配演算法。
用外行的話來說,Drools 是一組工具,允許我們對業務流程中的邏輯和資料進行分離和推理。我們需要注意的兩個重要關鍵字是Logic和Data。
Drools 分為兩個主要部分:Authoring和Runtime。
- 創作- 創作過程涉及建立規則檔案(.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這樣的工具提供了編輯和管理規則的方法,並獲得即時反饋、驗證和內容幫助。審計和除錯工具也是可用的。
相關文章
- Drools 規則引擎應用
- 快速整合和使用 drools 規則引擎
- Evrete 規則引擎簡介 | baeldungVR
- Drools 業務規則引擎的完整教程
- Drools規則引擎實踐直白總結
- 25個有關Drools規則引擎的面試題面試題
- 符號推理:Drools規則引擎 + LangChain4j大模型演示符號LangChain大模型
- 第2-4-4章 規則引擎Drools規則屬性-業務規則管理系統-元件化-中臺元件化
- Java中最流行的幾種業務規則引擎簡介Java
- drools執行指定的規則
- Devs--開源規則引擎介紹dev
- 第2-4-2章 規則引擎Drools入門案例-業務規則管理系統-元件化-中臺元件化
- 第2-4-6章 springboot整合規則引擎Drools-業務規則管理系統-元件化-中臺Spring Boot元件化
- RAP簡介教程&常用規則
- drools規則屬性(rule attributes)的使用
- drools動態增加、修改、刪除規則
- 第2-4-5章 規則引擎Drools高階語法-業務規則管理系統-元件化-中臺元件化
- drools執行String規則或執行某個規則檔案
- Drools與動態載入規則檔案
- 用 Java 構建簡單的規則引擎Java
- URule規則引擎
- drools執行完某個規則後終止別的規則執行
- 規則引擎模式 - upperdine模式
- .NET RulesEngine(規則引擎)
- TDengine3.0 流式計算引擎語法規則介紹
- Java各種規則引擎Java
- 架構 規則引擎 quartz架構quartz
- Java規則引擎 Easy RulesJava
- Drools決策引擎——Docker部署Docker
- j-easy/easy-rules: Java簡單的規則引擎Java
- 什麼是規則引擎? - martinfowler
- 規則引擎Golang指南 – Mohit KhareGolang
- 儲存引擎簡介儲存引擎
- 如何編寫一個簡單但強大的規則引擎? – maxant
- 什麼是業務規則引擎?
- 全渠道營銷規則引擎案例
- iptables防火牆簡介,原理,規則編寫,常見案例防火牆
- InnoDB儲存引擎簡介儲存引擎