Drools 教程:Drools 规则引擎 Archi结构与实例
什么是 Drools?
流口水 是一款开源业务规则管理软件 (BRMS),采用 Java 它为用户提供多种功能,如业务规则引擎、Web 创作、规则管理应用程序以及对决策模型和符号模型的运行时支持。它使用先进的 rete 模式匹配算法实现系统。
Drools 是在 Apache License 2.0 下发布的,它与任何 JVM 兼容,并且也可在 Maven Central Repository 中使用。
Drools 工具可帮助您分离和推理业务流程中的逻辑和数据。它支持基于前向和后向链推理的 Drools 规则引擎。
Drools 分为两个部分:
- 创作 – 涉及规则文件的开发。
- 运行时 – 它涉及工作记忆的创建和处理激活。
規則是什麼?
规则是知识的一部分,通常表述为“当特定条件发生时,执行某些任务”。
规则最关键的部分是 ,尤其是 部分。一旦 ,尤其是 部分满足, 然后 该部分已被触发。
语法:
When <Condition is true> Then <Take desired Action>
模式匹配方法
模式匹配方法可帮助您将新事实或旧事实与产生式规则进行比较。它由推理引擎完成。
Algorithms 用于模式匹配的是:
- Rete算法
- 跳跃算法
- 线性算法
- 治疗算法
不过Drools最常用的算法是Rete算法。
Rete算法
Rete 算法是一种有用的模式匹配算法,它允许您实现生产规则系统。它可以帮助您牺牲内存来提高速度。它还借助节点共享减少或消除特定类型的冗余。它在执行不同事实类型之间的连接时存储部分匹配。
Drools 规则引擎
Drools 规则引擎 是一种基于规则的方法,用于在 Drools 软件中实现专家系统。规则引擎提供专家系统,这些系统是基于知识的系统,可帮助您做出决策,例如做什么以及如何做。它将知识收集到可用于推理的知识库中。
Drools 工具套件
现在,在本 Drools 规则引擎教程中,我们将了解 Drools 工具套件。以下是 Drools 套件中的五种工具:
- Drools Guvnor:它是 Drools KnowledgeBase 的集中存储库。
- 口水流淌:它提供工作流和业务流程。
- Drools Fusion:用于复杂事件处理的工具
- Drools 专家或规则引擎:进行推理的有用工具。
- Drools 规划师: 提供自动规划,其中包括 NP-hard 规划问题。
Drools 中的重要组件
现在,在本 Drools 教程中,让我们了解 Drools 的重要组成部分。
以下是 Drools 中使用的基本术语:
- 事实 – 事实代表作为规则输入的数据
- 工作记忆 – 存储事实,用于模式匹配。可以修改、插入和删除。
- 知识讲座 – 此组件包含触发规则所需的所有资源。在这里,所有事实都插入到单个会话中,然后触发匹配的规则。
- 知识库 – 它代表 Drools 生态系统中的知识。它存储了规则所在资源的形成过程。
- 模块 – 这是一个存储多个知识库的模块,可以容纳不同的会话
ArchiDrools 的结构
以下是Drools架构的工作系统:
步骤1) 规则被加载到规则库中,随时可用。
步骤2) 事实被存入工作记忆中,然后可以被修改或撤回。
步骤3) 将新的或现有的事实与生产规则进行匹配的过程称为模式匹配,由规则引擎执行。
步骤4) 议程允许您借助冲突解决策略来管理冲突规则的执行顺序。
Drool 的功能
以下是 Drool 的重要功能:
- 帮助您将应用程序与动态逻辑分离
- 声明式编程
- 知识集中化
- 速度和可扩展性
- 将逻辑与应用程序分离
- 可理解的规则
如何添加 Drools 插件 Eclipse
现在在本 Drools 教程中,让我们学习如何在 Eclipse.
步骤1) 单击“Distribution ZIP”进行jBPM集成
在MyCAD中点击 软件更新 https://www.drools.org/download/download.html 然后单击 jBPM Integration 的“Distribution ZIP”。下载后,将其解压到您的硬盘上。
步骤2) 安装新软件
In Eclipse,选择安装新软件。
步骤3) 点击添加按钮
点击添加按钮来添加软件。
步骤4) 浏览文件夹
在下一个屏幕中,单击“本地”并选择文件夹“org.drools.updatesite/”,然后单击“确定”。
步骤5) 单击“下一步”按钮
在安装修复页面上,单击下一步按钮。
步骤6) 接受许可协议
接受许可协议并单击下一步。
步骤7) 重新启动 Eclipse
该软件将会下载,并要求您重新启动 eclipse。
步骤8) 安装过程完成
In Windows > 首选项菜单,您将看到 Drools 选项,表明它已安装。
Drools 程序 Hello World 示例
下面是 Hello World 程序的 Drools 示例:
package com.sample import com.sample.DroolsTest.Message; rule "Hello World" when m : Message( status ** Message.Hello, myMessage : message ) then System.out.println( myMessage ); m.setMessage( "Goodbye cruel world" ); m.setStatus( Message.GOODBYE ); update( m ); end rule "GoodBye" when Message( status ** Message.GOODBYE, myMessage : message ) then System.out.println( myMessage ); end
什么是后向链接和前向链接?
前向链接引擎检查事实并得出具体结论。
让我们考虑一个医疗诊断系统的场景。如果病人的症状作为事实被放入工作记忆中,那么诊断他是否患有疾病就很容易了。
正向链接引擎
后向链接引擎具有设定的目标,并且引擎会尝试去满足该目标。
考虑同样的医疗诊断场景。假设某种疾病流行。该人工智能可以推测某个人患有该疾病,并尝试根据现有信息确定其诊断是否正确。
反向链接引擎
为什么要使用 Drools 规则引擎?
以下是使用 Drools 规则引擎的主要原因:
- 规则对于开发人员来说很容易理解,并且 业务分析师.
- 规则易于维护。
- 规则引擎使用 Rete 算法,该算法指出引擎的性能不依赖于规则的数量。
- 无需关闭应用程序即可修改和部署规则。
- 从相对静态的代码库中外部化业务逻辑。
- 规则以不太复杂的格式开发,因此业务分析师可以轻松阅读和验证一组规则。
- 规则允许您创建可执行形式的知识仓库。
- 像工具一样 Eclipse 帮助您管理规则、获得即时响应、身份验证和内容支持。
规则引擎的缺点
以下是使用规则引擎的缺点/弊端:
- 开发人员需要付出大量的学习努力才能了解这种编程方法
- 规则引擎不是解决问题的安全方法。
- 需要了解规则引擎的工作原理以消耗更多内存
- 复杂分支有一系列的规则。
规则可能会随着时间而改变,并且会随着代码的改变而生效
总结
- JBoss Drools 是一个业务逻辑集成平台 (BLiP)
- Drool 工具的类型有:1)Drools Guvnor 2)Drools Flow 3)Drools Fusion 4)Drools Expert 5)Drools,Planner。
- Drool 帮助您将应用程序与动态逻辑分离。
- 事实代表了作为规则输入的数据。
- 工作记忆是一个包含事实的存储器,用于进行模式匹配。它可以被修改、插入和删除。
- 知识库是保存触发规则所需的所有资源的组件。
- 知识会话代表Drools生态系统中的知识。
- 知识库代表Drools生态系统中的知识。
- 模块存储多个知识库,可以容纳不同的会话。
- 规则是知识的一部分,通常表述为“当特定条件发生时,执行某些任务”。
- Drools 是一个规则引擎,它使用基于规则的方法来实现专家系统。
- 前向链接引擎检查事实并得出具体结论。
- 后向链接引擎具有设定的目标,并且引擎会尝试去满足该目标。
- Rete 算法是一种有用的模式匹配算法,它允许您实现生产规则系统。
- 规则对于开发人员和业务分析师来说很容易理解。
- 使用像 Drool 这样的规则引擎的主要缺点是开发人员需要付出大量的学习努力才能了解这种编程方法。