📜  Drools-简介

📅  最后修改于: 2020-10-15 10:56:12             🧑  作者: Mango


 

任何Java企业级应用程序都可以分为三个部分-

  • UI-用户界面(前端)
  • 服务层又连接到数据库
  • 业务层

我们有许多框架共同处理UI和服务层,例如Spring和Struts。但是,在Drools出现之前,我们还没有一种处理业务逻辑的标准方法。

什么是流口水?

Drools是一个业务逻辑集成平台(BLiP) 。它是用Java编写的。这是一个由JBoss和Red Hat,Inc.支持的开源项目。它扩展并实现了Rete Pattern匹配算法。

用外行的话来说,Drools是一组工具,这些工具使我们能够对业务流程中发现的逻辑和数据进行分离和推理。我们需要注意的两个重要关键字是LogicData

Drools分为两个主要部分: AuthoringRuntime

  • 创作-创作过程涉及规则文件(.DRL文件)的创建。
  • 运行时-它涉及创建工作内存并处理激活。

什么是规则引擎?

Drools是使用基于规则的方法实施和专家系统的规则引擎或生产规则系统。专家系统是基于知识的系统,该系统使用知识表示将获取的知识处理为可用于推理的知识库。

图灵完善的生产规则系统侧重于知识表示,以简洁,明确和声明性的方式表达命题和一阶逻辑。

生产规则系统的大脑是一个推理引擎,可以扩展到大量规则和事实。推理引擎将事实和数据与生产规则(也称为生产规则)进行匹配,以推断出导致采取行动的结论。

生产规则是由两部分组成的结构,该结构使用一阶逻辑对知识表示进行推理。业务规则引擎是一种在运行时生产环境中执行一个或多个业务规则的软件系统。

规则引擎允许您定义“该怎么做“而不是“如何做“。

什么是规则?

规则是常被表示为“某些情况发生时,然后执行一些任务”的知识。

When
   
Then
   

规则最重要的部分是其时间部分。如果满足when部分,则触发then部分。

rule  
    
      
   when
      
      
   then
      
end

模式匹配

将新事实或现有事实与生产规则进行匹配的过程称为模式匹配,由推理引擎执行。模式匹配使用多种算法,包括-

  • 线性的
  • te
  • 对待
  • 飞跃

Drools实现并扩展Rete算法。 Drools Rete实现称为ReteOO,表示Drools对面向对象系统的Rete算法具有增强和优化的实现。

规则引擎的优势

声明式编程

规则使表达针对难题的解决方案变得容易,同时也使解决方案得到验证。与代码不同,规则以不太复杂的语言编写;业务分析师可以轻松阅读和验证一组规则。

逻辑与数据分离

数据驻留在域对象中,而业务逻辑驻留在规则中。根据项目的类型,这种分离可能会非常有利。

速度和可扩展性

编写Drools的Rete OO算法已经被证明是一种算法。在Drools的帮助下,您的应用程序变得非常可扩展。如果有频繁的更改请求,则可以添加新规则而无需修改现有规则。

知识集中

通过使用规则,您可以创建可执行的知识存储库(知识库)。这是业务策略的唯一真理。理想情况下,规则具有很高的可读性,因此它们也可以用作文档。

工具整合

诸如Eclipse之类的工具提供了编辑和管理规则以及获得即时反馈,验证和内容帮助的方法。还提供审计和调试工具。