《Drools7.0.0.Final规则引擎教程》第1章 Drools简介

简介: 《Drools7.0.0.Final规则引擎教程》第1章 Drools简介

1.1 什么是规则引擎

规则引擎是由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。


大多数规则引擎都支持规则的次序和规则冲突检验,支持简单脚本语言的规则实现,支持通用开发语言的嵌入开发。目前业内有多个规则引擎可供使用,其中包括商业和开放源码选择。开源的代表是Drools,商业的代表是Visual Rules ,I Log。


1.2 Drools规则引擎

Drools(JBoss Rules )具有一个易于访问企业策略、易于调整以及易于管理的开源业务规则引擎,符合业内标准,速度快、效率高。业务分析师或审核人员可以利用它轻松查看业务规则,从而检验是否已编码的规则执行了所需的业务规则。


JBoss Rules的前身是Codehaus的一个开源项目叫Drools。现在被纳入JBoss 门下,更名为JBoss Rules,成为了JBoss应用服务器的规则引擎。


Drools是为Java量身定制的基于Charles Forgy的RETE算法的规则引擎的实现。具有了OO接口的RETE,使得商业规则有了更自然的表达。


1.3 Drools使用概览

Drools是Java编写的一款开源规则引擎,实现了Rete算法对所编写的规则求值,支持声明方式表达业务逻辑。使用DSL(Domain Specific Language)语言来编写业务规则,使得规则通俗易懂,便于学习理解。支持Java代码直接嵌入到规则文件中。


Drools主要分为两个部分:一是Drools规则,二是Drools规则的解释执行。规则的编译与运行要通过Drools 提供的相关API 来实现。而这些API 总体上游可分为三类:规则编译、规则收集和规则的执行。


Drools是业务规则管理系统(BRMS)解决方案,涉及以下项目:


Drools Workbench:业务规则管理系统

Drools Expert:业务规则引擎

Drools Fusion:事件处理

jBPM:工作流引擎

OptaPlanner:规划引擎

1.4 Drools版本信息

目前Drools发布的最新版本为7.0.0.Final,其他版本正在研发过程中。官方表示后续版本会加快迭代速度。本系列也是基于此版本进行讲解。


从Drools6.x到7版本发生重大的变化项:


@PropertyReactive不需要再配置,在Drools7中作为默认配置项。同时向下兼容。

Drools6版本中执行sum方法计算结果数据类型问题修正。

重命名TimedRuleExecutionOption。

重命名和统一配置文件。

Drools7新功能:

(1)支持多线程执行规则引擎,默认为开启,处于试验阶段。

(2)OOPath改进,处于试验阶段。

(3)OOPath Maven 插件支持。

(4)事件的软过期。

(5)规则单元RuleUnit。


1.5 JDK版本及IDE

从Drools6.4.0开始已经支持JAVA8,最低版本JDK1.5。可通过Eclipse插件进行集成,也可通过Intellij IDEA中插件进行集成开发。Drools提供了一个Eclipse的集成版本,不过它核心依赖于JDK1.5。

关键Eclipse的集成官方有详细的文档可参考,这里不再赘述。本系列后续项目及示例演示均采用JAVA8和Intellij IDEA。


1.6 官方资料

官网地址:http://www.drools.org/

官方最新文档:https://docs.jboss.org/drools/release/7.0.0.Final/drools-docs/html_single/index.html


目录
相关文章
|
前端开发 Java API
【第49期】一文了解React动画
【第49期】一文了解React动画
508 0
|
数据可视化 Java
探索Drools:Java世界的规则引擎
探索Drools:Java世界的规则引擎
1503 1
|
消息中间件 负载均衡 监控
skynet框架:批量服务管理方案
【10月更文挑战第7天】Skynet 框架下的批量服务管理方案通过高效、可靠及可扩展的设计,实现了对大量服务实例的集中管理。该方案涵盖服务注册与发现、消息队列、负载均衡及集群管理等关键技术,确保系统稳定运行并提升响应速度。其优势在于提高系统性能、增强可靠性、便于扩展及简化管理操作,适用于大规模分布式系统、微服务架构、实时数据处理及游戏服务器等多种场景。通过定制化优化,可充分发挥 Skynet 框架的优势,构建高效稳定的分布式系统。
681 6
|
存储 安全 API
权限设计种类【RBAC、ABAC】
权限设计种类【RBAC、ABAC】
2556 2
|
Java API
QLExpress功能清单
QLExpress从一开始就是从复杂的阿里电商业务系统出发,并且不断完善的脚本语言解析引擎框架,在不追求java语法的完整性的前提下(比如异常处理,foreach循环,lambda表达式,这些都是groovy是强项),定制了很多普遍存在的业务需求解决方案(比如变量解析,spring打通,函数封装,操作符定制,宏替换),同时在高性能、高并发、线程安全等方面也下足了功夫,久经考验。
22357 1
|
存储 Java 应用服务中间件
Java规则引擎Drools急速入门
Java规则引擎Drools急速入门
10293 0
Java规则引擎Drools急速入门
|
IDE Linux 开发工具
GoLand IDE 2023 快捷键大全:提高开发效率的必备操作
GoLand IDE 2023 快捷键大全:提高开发效率的必备操作
584 0
|
应用服务中间件 缓存 nginx
消除单点,一篇搞定 | 架构设计篇
系统架构中,为什么会存在单点?思路比结论重要。
5890 1
|
SQL Oracle 关系型数据库
Flink cdc报错问题之时区报错如何解决
Flink CDC报错指的是使用Apache Flink的Change Data Capture(CDC)组件时遇到的错误和异常;本合集将汇总Flink CDC常见的报错情况,并提供相应的诊断和解决方法,帮助用户快速恢复数据处理任务的正常运行。
Flink cdc报错问题之时区报错如何解决
|
消息中间件 Java Kafka
【Spring底层原理高级进阶】Spring Kafka:实时数据流处理,让业务风起云涌!️
【Spring底层原理高级进阶】Spring Kafka:实时数据流处理,让业务风起云涌!️

热门文章

最新文章