Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >《Drools7.0.0.Final规则引擎教程》第1章 Drools简介

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

作者头像
程序新视界
发布于 2018-01-08 07:00:29
发布于 2018-01-08 07:00:29
9.3K0
举报
文章被收录于专栏:丑胖侠丑胖侠

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

关于

你的支持是我努力的最大动力!此系列课程正在持续更新中,相关讨论QQ(593177274)已经建立,欢迎大家加入讨论。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-07-05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
《Drools7.0.0.Final规则引擎教程》第2章 追溯Drools5的使用
本文介绍了Drools规则引擎在Java项目中的使用,包括规则的定义、编译、解释执行,以及基于Drools的规则引擎在代码生成、代码优化、代码检查中的实际应用。同时,介绍了Drools规则引擎API的常用API和实例,以及基于Drools规则引擎的代码生成和优化实例。
程序新视界
2018/01/08
1.6K0
《Drools7.0.0.Final规则引擎教程》第2章 追溯Drools5的使用
小明历险记:规则引擎Drools教程一
小明是一家互联网公司的软件工程师,他们公司为了吸引新用户经常会搞活动,小明常常为了做活动加班加点很烦躁,这不今天呀又来了一个活动需求,我们大家一起帮他看看。 小明的烦恼 活动规则是根据用户购买订单的金额给用户送相应的积分,购买的越多送的积分越多,用户可以使用积分来兑换相应的商品,我们这次活动的力度很大,肯定会吸引很多的用户参加,产品经理小王兴高采烈唾液横飞的对小明讲到。小明心想,又tm来这套,这次需求又要变更多少次呢?表面上还的配合,说赶紧把规则给我们吧,早点开发早点上线,小王说这次需求老简单啦,估计你们两
纯洁的微笑
2018/07/20
1.2K0
《Drools7.0.0.Final规则引擎教程》第3章 3.1 Hello World 实例
本文介绍了如何使用Drools规则引擎实现业务逻辑,通过一个具体的实例对Drools规则进行了介绍,包括规则定义、编译、解释执行和规则优化等步骤。同时,还介绍了Drools的配置文件kmodule.xml的用法。
程序新视界
2018/01/08
1.7K0
《Drools7.0.0.Final规则引擎教程》第3章 3.1 Hello World 实例
规则引擎之drools入门
现实生活中,规则无处不在。对于某些企业级应用,诸如欺诈检测软件,购物车,活动监视器,信用和保密应用之类的系统,经常会有大量的、错综复杂的业务规则配置,而且随着企业管理者的决策变化,这些业务规则也会随之发生更改。我们开发人员不得不一直处理软件中的各种复杂问题,不仅需要将所有数据进行关联,还要尽可能快地一次性处理更多的数据,甚至还需要以快速的方式更新相关机制。
lyb-geek
2018/07/26
5.7K0
规则引擎之drools入门
规则引擎-BRMS在企业开发中的应用
1. 什么是规则 复杂企业级项目的开发以及其中随外部条件不断变化的业务规则(business logic),迫切需要分离商业决策者的商业决策逻辑和应用开发者的技术决策,并把这些商业决策放在中心数据库或
用户1263954
2018/01/30
5.6K1
规则引擎-BRMS在企业开发中的应用
《Drools7.0.0.Final规则引擎教程》Springboot+规则重新加载
该文介绍了一种基于SpringBoot和Drools的规则引擎,用于规则校验,并提供了相关代码实现。具体实现包括:定义规则文件、使用构建工具编译规则文件、定义校验逻辑、使用SpringBoot加载规则文件、定义规则校验接口、基于Drools规则引擎实现规则校验。实现了代码的自动生成和规则校验,具有较好的实用价值。
程序新视界
2017/12/29
2.9K0
《Drools7.0.0.Final规则引擎教程》Springboot+规则重新加载
《Drools7.0.0.Final规则引擎教程》第3章 3.2 KIE概念&FACT对象
本文介绍了Drools规则引擎的基本概念、使用场景、规则语法、Fact对象以及FactHandler对象在规则执行过程中的作用,并给出了相关示例。
程序新视界
2018/01/08
1.2K0
《Drools7.0.0.Final规则引擎教程》第3章 3.2 KIE概念&FACT对象
《Drools7.0.0.Final规则引擎教程》第5章 session使用说明
该文介绍了Drools 7.0.0.Final规则引擎的session使用,包括有状态session和无状态session,并通过具体示例讲解了如何使用规则引擎进行数据处理。
程序新视界
2018/01/08
2K0
Drools - 规则引擎快速体验
Drools 是用 Java 语言编写的开放源码规则引擎,使用 Rete 算法(参阅 参考资料)对所编写的规则求值。Drools 允许使用声明方式表达业务逻辑。可以使用非 XML 的本地语言编写规则,从而便于学习和理解。并且,还可以将 Java 代码直接嵌入到规则文件中,这令 Drools 的学习更加吸引人 Hello World pom.xml <dependencies> <dependency> <groupId>org.springframework.boot</gro
十毛
2019/03/27
1.7K0
规则引擎深度对比,LiteFlow vs Drools!
Drools是一款老牌的java规则引擎框架,早在十几年前,我刚工作的时候,曾在一家第三方支付企业工作。在核心的支付路由层面我记得就是用Drools来做的。
码猿技术专栏
2023/05/01
8.5K0
规则引擎深度对比,LiteFlow vs Drools!
JAVA规则引擎工具有哪些?
Drools 是一个强大的业务规则管理系统(BRMS),它提供了一整套用于定义、管理和执行业务规则的工具。
科技新语
2024/07/28
2570
JAVA规则引擎工具有哪些?
【猫头虎科技角】深入Drools:规则引擎的艺术与实践
在今天的高速发展的软件行业中,Drools作为一个高效、灵活的业务规则管理系统(BRMS),提供了一个桥梁,将复杂业务逻辑与应用程序代码分离。这篇文章将深入探讨Drools的内核机制、实现原理以及如何在项目中灵活运用。我们将通过详细的代码案例和操作命令,一步步展示如何利用Drools简化业务逻辑的实现。无论你是初学者还是在行业内有深厚的积累,本文都将为你提供宝贵的技术洞见。关键词包括:Drools, 规则引擎, 业务规则管理, Java, 规则定义语言(RDL)。
猫头虎
2024/04/07
1K0
【猫头虎科技角】深入Drools:规则引擎的艺术与实践
【Drools】值得打工人学习的规则引擎Drools<一>
规则引擎:全称为业务规则管理系统,英文名为BRMS(即Business Rule Management System)。规则引擎的主要思想是将应用程序中的业务决策部分分离出来,并使用预定义的语义模块编写业务决策(业务规则),由用户或开发者在需要时进行配置、管理。 需要注意的是规则引擎并不是一个具体的技术框架,而是指的一类系统,即业务规则管理系统。 目前市面上具体的规则引擎产品有:drools、VisualRules、iLog等。 规则引擎实现了将业务决策从应用程序代码中分离出来,接收数据输入,解释业务规则,并根据业务规则做出业务决策。规则引擎其实就是一个输入输出平台。
沁溪源
2020/11/13
8.4K0
【Drools】值得打工人学习的规则引擎Drools<一>
规则引擎Drools在贷后催收业务中的应用
在日常业务开发工作中我们经常会遇到一些根据业务规则做决策的场景。为了让开发人员从大量的规则代码的开发维护中释放出来,把规则的维护和生成交由业务人员,为了达到这种目的通常我们会使用规则引擎来帮助我们实现。
2020labs小助手
2022/11/29
1.6K0
《Drools7.0.0.Final规则引擎教程》第4章 4.3 定时器
本文讲述如何使用Drools规则引擎实现一个规则引擎,并使用Timer定时器模拟规则触发。通过创建一个规则文件,定义规则条件和结果,然后使用Timer定时器模拟规则触发,并返回结果。
程序新视界
2018/01/08
1.3K0
《Drools7.0.0.Final规则引擎教程》番外实例篇——FactHandler使用案例
本文介绍了Drools规则引擎在实践中的运用,通过一个具体的实例来展示如何通过修改Fact对象来对WorkingMemory进行操作。这个实例包括如何获取Fact对象、如何设置Fact对象以及如何使用FactHandler对Fact对象进行修改。同时,文章还介绍了如何使用FactHandler获取Person对象的具体信息,并通过两次调用规则来展示如何通过修改Fact对象来改变WorkingMemory的状态。
程序新视界
2018/01/08
1K0
《Drools7.0.0.Final规则引擎教程》第4章 4.5RHS语法
该文介绍了Drools规则引擎的使用方法,包括语法、使用场景、规则文件格式、规则实例、规则解析、规则推理、Fact声明、声明变量、Working Memory、insert、update、delete、modify、query、query Answer、reasoning、learning、pattern、rule、knowledge、fact、declaration、agenda、bind、eval、plan、agenda、listen、learn等知识点。
程序新视界
2018/01/08
1.4K0
《Drools7.0.0.Final规则引擎教程》第4章 4.5RHS语法
《Drools7.0.0.Final规则引擎教程》番外实例篇——Map使用案例
本文介绍了Drools 7.0.0.Final规则引擎中如何使用Map进行规则判断和推理,并通过实例进行了详细说明。
程序新视界
2018/01/08
1.5K0
《Drools7.0.0.Final规则引擎教程》第4章 4.3 日历
该文介绍了如何使用Drools规则引擎实现日历任务,通过规则定义、规则计算、规则应用等步骤,完成对日历任务的处理。同时,还介绍了如何使用Quartz框架实现定时任务,并给出了示例代码。
程序新视界
2018/01/08
8080
规则引擎从入门到实践
小明是一个兢兢业业的服务端程序员,有一天产品经理找到他说,我们要给用户发一条消息,消息的内容按照用户的积分分为三档,1000 以下的用户发:
用户3147702
2022/06/27
1.4K0
规则引擎从入门到实践
推荐阅读
相关推荐
《Drools7.0.0.Final规则引擎教程》第2章 追溯Drools5的使用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档