概述
Drools是业务逻辑集成平台(BLiP)。它是用Java编写的。它扩展并实现了Rete模式匹配算法。
作用
Drools是一组工具,可以分离和理解业务流程中发现的逻辑和数据
重点
Drools分为两个主要部分:创作和运行时。
- 创作:创作过程涉及创建规则文件(.DRL文件)。
- 运行时:它涉及创建工作内存和处理激活。
规则引擎
Drools是规则引擎或使用基于规则的方法实现和专家系统的生产规则系统。
专家系统是基于知识的系统,它使用知识表示将获取的知识转化为可用于推理的知识库。
一个生产规则系统是完整的,重点是知识表达,以简洁,非歧义和陈述的方式表达命题和一阶逻辑。
生产规则系统的大脑是推理引擎,可以扩展到大量的规则和事实。推理引擎将事实和数据与生产规则(也称为Productions或仅仅是规则)相匹配,以推断导致操作的结论。
生产规则是一个两部分的结构,它使用一阶逻辑来推理知识表示。业务规则引擎是在运行时生产环境中执行一个或多个业务规则的软件系统。
规则引擎允许您定义“ 做什么 ”而不是“ 如何做 ”。
什么是规则?
规则是经常表达的知识,“ 当有些情况发生时,然后做一些任务”。
When
Then
规则的最重要的部分是其时的一部分。如果当部分满足时,则触发该部分。
rule
when
<conditions>
then
<actions>
end
模式匹配
将新的或现有的事实与生产规则相匹配的过程称为模式匹配,它由推理引擎执行。
有多种算法用于模式匹配,包括:
线性
Rete算法
对待
飞跃Drools实现并扩展了Rete算法
。Drools Rete实现称为ReteOO,表示Drools对面向对象系统的Rete算法进行了增强和优化的实现。
规则引擎的优点
声明式编程
规则可以很容易地解决困难的问题,并得到解决方案的验证。与代码不同,规则以较不复杂的语言编写; 业务分析师可以轻松阅读和验证一套规则。
逻辑和数据分离
数据位于“域对象”中,业务逻辑位于“规则”中。根据项目的种类,这种分离是非常有利的。
速度和可扩展性
写入Drools的Rete OO算法已经是一个成熟的算法。在Drools的帮助下,您的应用程序变得非常可扩展。如果频繁更改请求,可以添加新规则,而无需修改现有规则。
知识集中化
通过使用规则,您创建一个可执行的知识库(知识库)。这是商业政策的一个真理点。理想情况下,规则是可读的,它们也可以用作文档。
工具集成
Eclipse等工具提供编辑和管理规则的方法,并获得即时反馈,验证和内容帮助。审计和调试工具也可用。