基于 Jboss Drools 规则引擎开发框架

Drools规则引擎 Drools(Drools Rule Engine)是一个开源的规则引擎,它主要用于在Java应用程序中实现规则管理。Drools规则引擎将规则定义和管理从应用程序代码中分离出来,使得规则可以独立于应用程序运行。这样可以提高规则的可靠性和可维护性,同时也可以使得规则的更新和管理更加方便。将规则定义和管理从应用程序代码中分离出来,使得规则可以独立于应用程序运行。提供基于规则的访问和操作数据的功能,例如过滤、排序、检索等。支持动态规则扩展和维护,可以根据需要添加、删除或修改规则。 阅读详情
 
1、框架概述
a)         CTU系统分为3部分:1、事件注册器。 2、事件分析引擎。 3、风险处理系统。
b)        事件注册器:收集服务器信息、事件触发人员信息、以及事件相关的数据,将这些数据组合成一个Event 。事件注册器负责将Event派送到事件分析引擎进行处理。
c)     事件分析引擎:采用Drools3.0.*版本作为规则引擎的核心。通过bread模块的支持,采用Lucene 做event数据源。实现大数据量查询相关的Event。
d)    风险处理系统:通过定义风险模型(风险等级、风险描述、触发的处理动作)生成一个风险派送到风险处理系统进行相关的业务处理(目前只是在CTU Engine中处理,将来可以扩展一个Interceptor实现ESB架构的一个endpoint)。
应用服务器端(CTU client):
a)    事件注册器(业务层):EventRegister.java
public interface EventRegister {
     /**
      * 向事件库注册一条消息
      * @param event 要注册的事件
      * @return boolean 是否成功
      */
     public boolean register(Event event);
}
b)    事件注册器默认提供2种实现方式:
1、是JmsQueueEventRegister:采用Jms直接连接方式,该类是采用短连接方式(每发送一条消息都会创建连接),因此最好能够配合Jms JCA,让容器管理物理连接(关于JMS JCA的技术以及实现在下面将会解释)。
     2、EventRouterRegister(commandDispatcher router list),采用路由方式,可以由多个commandDispatcher组合而成。
c)     提供发送失败存储的EventRegisterWrapper,该包装负责调用EventRegister进行发送,发送失败以后进行对象存储,直到重发成功。
 
a)    分析引擎,
1、        下面是分析引擎的总体预览图
2、Drools:规则引擎核心开发包。
3、FileObjectProvider:由多个FileManager负责管理文件。负责配置文件管理跟规则文件管理
默认实现有:
DefaultFileManager:普通的文件系统
ResourceLoaderFileManager:由ResourceLoaderService提供支持
3、BeanObjectProvider:由多种BeanObjectFactory以各种方式来生产bean。负责创建Bean跟bean生命周期的管理。
这些Bean可以标识为singleton、LifecycleAble(如果为非singleton,则在引擎一次分析完成作为一次生命周期,如果是singleton则在配置重载的时候作为一次生命周期)
 
/**
 * bean 工厂
 */
public interface BeanObjectFactory {
 
     /**
      * Build a generic Java object of the given type.
      *
      * @param clazz the type of Object to build
      */
     public abstract Object buildBean(Class clazz) throws Exception;
 
     /**
      * Build a generic Java object of the given type.
      *
      * @param className the type of Object to build
      */
     public abstract Object buildBean(String className) throws Exception;
 
}
 
     默认实现:GenericBeanObjectFactory 普通的,根据Class直接实例化
  SpringBeanObjectFactory,由BeanFactoryService提供支持。
 
4、ReloadManager:负责重载可重载的item,只要类实现Reloadable,并且受ReloadManager管理,则reloadManager负责定期检查每个Reloadable是否需要reload。如果item需要reload,则reloadManager将调用reload方法重载配置等...….
    
     默认实现:DefaultReloadManager
     目前Reloadable实现类:
²   ConfigurationManager:负责engine配置管理
²   RuleFiredAgendaEventListener:负责将触发的规则描述bean放入        ThreadLocalContext中,为生成risk风险模块提供数据,该类采用XStream来解析RuleDescription 的描述文件。
 
 
5、Engine Service配置
a)    可以模仿src/conf.test/services.xml的配置
b)    BeanFactoryService的实现类com.alibaba.ctu.engine.DefaultAutowireBeanFactoryService
c)     需要配置2个ServiceBean:
     autowireBeanFactoryService指向BeanFactoryService
    resourceLoaderService指向ResourceLoaderService
 
6、Engine的Configuration配置:
1、        Xml格式可以根据cut项目下面的engine/src/conf.test/Engine.dtd
2、    配置分成Risk(分析风险的规则引擎配置)、Event(分析事件的规则引擎配置)、interceptors(拦截器配置,供全局使用)、include(可包含另外一个配置)
3、    Risk、Event的配置解释:
a)   每种DomainObject都有各自的domainName。每个domainName都会找到配置文件中的(event/name、risk/name)相匹配的配置作为规则引擎的配置。
b)   他们都可以extends另外的类型一直的配置(主要是规则文件跟pulltool合并)。
c)   interceptor-stack:他们有各自的拦截堆栈,该堆栈在规则引擎执行前后执行。在这儿可以对规则引擎的WorkingMemory、以及一些数据进行处理。
d)   Pulltool:将作为规则引擎的GlobalTool来使用。该    对象由BeanObjectProvider负责产生。支持singleton、LifecycleAble。
e)   WorkingMemory配置:他们是构造Drools的WorkingMemory的主要配置。使用该领域需要对drools有一定的了解。
  
4、    interceptors配置解释
a)   Interceptor拦截在分析引擎分析前后。可对WorkingMemory进行操作。该 对象由BeanObjectProvider负责产生。支持singleton、LifecycleAble。
b)   为Risk、Event提供拦截器堆栈(interceptor-stack)。
 
5、    include配置解释:提供包含另外一个配置文件。方便管理配置。不用将所有的配置写在一个文件中,可以有条件地将他们归写在一个文件下面,然后有一个总文件来include这些文件。
 
Java规则引擎Drools急速入门 (1)什么是规则引擎全称为业务规则管理系统,英⽂名为BRMS(即 Business Rule Management System)。规则引擎的主要思想是将应用程序中的业务决策部分分离出来,并使用预定义的语义模块编写业务决策(业务规则),由用户或开发者在需要时进行配置、管理。需要注意的是规则引擎并不是一个具体的技术框架,而是指的⼀类系统,即业务规则管理系统。目前市面上具体的规则引擎产品有:drools、VisualRules、iLog等,使用最为广泛并且开源的是Drools。 阅读详情

相关推荐

JBoss Drools如何动态加载并更新规则?

JBoss Drools中提供了一个类KieScanner,可以支持从Maven存储库动态的加载并更新规则。官方给出的例子没有很好的证明这一能力,笔者经过几天研究,成功实验出了如何达到动态更新的效果,整理出来供大家参考。相关的源代码可以从Gitee下载。程序结构和运行目标如图所示,演示项目共包含四个项目:my-dynamic-rule: 父项目my-kjar: 一个kjar项目,其中包含了kmod...

架构师学习成长之路 1万+

规则引擎JBoss Drools简介

Drools提供了十二中类型比较操作符:< 、、>=、==、!=、contains、not contains、memberOf、not memberOf、matches、not matches,并且这些条件都可以组合使用。上述罗列了三个条件,当前规则只有在这三个条件都匹配的时候才会执行RHS部分。通过该类加载kmodule.xml文件,并获得KieSession。有两种实现方案,一种是规则直接写在文件中,一种是规则写在数据库中。'@'是元数据定义,用于描述数据的数据~,没什么执行含义。

justlpf的专栏 2581

开源规则引擎Drools、URule简介

最近要开始做一个风控项目,大概看了下有很多指标,于是决定调研一下开源业务规则引擎。首先我们要明白什么是规则引擎。规则引擎是一种嵌套在应用程序中的组件,实现将业务规则从应用程序代码中分离出来。规则引擎使用特定的语法编写业务规则。引入规则引擎后端带来的好处:(1)实现业务逻辑与业务规则的分离,实现业务规则的集中管理。(2)可以动态修改业务规则,从而快速响应需求变更。(3)使业务分析人员可以参与编辑、维...

天天臭乐呵 3万+

jboss drools_JBoss Drools –入门

jboss drools 这篇文章是关于我如何掌握JBoss Drools的 。 其背后的原因是:SAP收购了我公司当前的规则引擎,而Drools是我们将寻找的另一种选择,只要有人有能力提高概念验证的能力。 尽管似乎有大量的文档,但是我总是会通过示例来发现它是有帮助的,这就是我在这里要做的事情。乍一看,流口水令人生畏,它由以下内容组成: Drools Expert (规则引擎) 作为开...

最佳 Java 编程 583

规则引擎Drools介绍、使用及SpringBoot整合Drools

规则引擎Drools介绍、使用及SpringBoot整合Drools一、Drools介绍1.1 优点1.2 架构1.2.1 Drools引擎的核心组件1.2.2 规则引擎工作流程简述1.3 Drools语法1.3.1 规则文件1.3.1.1. 规则详情1. 属性详情2. 条件部分- LHS3. 结果部分- RHS1.3.1.2 Drools关键词1.3.1.3 Drools方法定义1.3.1.4 Drools声明类型1. 声明类类型2. 声明枚举类型3. 声明元数据类型1.4 设计1.5 Drools vs

爱是与世界平行 2925

基于DPLL算法解决3-SAT问题(C++实现)

近日看到一个3-SAT问题(Boolean SATisfiability Problem, 布尔逻辑可满足性问题),试着写了个算法求解。

qq_63241496的博客 2215

Drools开源业务规则引擎(一)- 安装与介绍(构建KieBase)

规则引擎,是业务规则管理系统的一部分,主要思想是将应用程序中的业务决策部分分离出来,并使用预定义的语义模板编写业务决策(业务规则),由用户或开发者在需要时进行配置、管理。规则引擎通过业务规则管理系统(BRMS,Business Rule Management System)来实现对业务规则的集中管理和动态执行。灵活性和可配置性:用户通过配置而不是代码编写来定义和管理业务规则。这使得规则可以根据需求进行更加灵活的调整和修改,而无需进行软件开发和发布。可维护性和可扩展性:业务规则的管理和维护变得更加容易。

AHAO的博客 4206

Windows显卡TDR超时导致Unity崩溃?手把手教你修改注册表延长响应时间

本文详细解析了Windows显卡TDR超时导致Unity崩溃的问题,并提供了修改注册表延长响应时间的完整解决方案。通过调整TdrDelay和TdrDdiDelay键值,开发者可以有效避免D3D11设备丢失错误,提升Unity编辑器的稳定性。文章还包含显卡驱动优化、系统性能调优等实用技巧,帮助开发者彻底解决编辑器崩溃问题。

weixin_33737774的博客 622

【规则引擎】Drools急速入门

Java规则引擎Drools急速入门

互联网小阿祥 1万+

Xilinx FPGA ICAP原语实现多重配置

众所周知,常见的FPGA通常为SRAM结构,固件程序一般存放在外置的串行Flash中,比如SPI Flash,M25P16或N25Q128等。 FPGA启动时,一般先从SPI起始地址开始加载数据到内部的SRAM,加载完成、校验通过则会直接运行。 那么有没有可能在SPI Flash中存放两个或多个FPGA固件呢?

whik1194的博客 4612

R语言基于机器学习三分类结果、计算三分类混淆矩阵、计算每一个类别对应的特异度(specificity)、灵敏度(sensitivity)、PPV、NPV

R语言基于机器学习三分类结果、计算三分类混淆矩阵、计算每一个类别对应的特异度(specificity)、灵敏度(sensitivity)、PPV、NPV

data+scenario+science+insight 649

规则引擎drools与spring整合

最近开发一个项目,要用到规则引擎,就下载JBoss drools研究了一下,使用springside开发了一个简单的购物车项目,使用规则引擎在购物结账时使用规则引擎计算订单价格,可以使用jetty运行,也可以使用tomcat 附近已上传。...

goodluck_wgw的博客 533

后仿真中的必懂VCS仿真选项之initreg和deposit

后仿真中,我们常常对于没有复位寄存器和存储器单元,使用仿真选项之initreg和deposit,两种处理方式。今天做总结。请注意:请勿将两者进行同时使用。对于到底选取哪种方式,要结合实际的情况决断。但是,两者同时使用,会有冲突,得不到预期结果。

那么菜的博客 4331

java第三方工具包

--搜集于网络 1.Apache POI 处理office文档用到的2. IText PDF操作类库 3.Java Base64 Base64编码类库 4.Commons-lang 对应java sdk里面的java.lang包,用来简化基本工具类操作 5.pingyin4j 中文转拼音库 6.Commons-IO,处理IO的工具包 7.Commons-beanutils 用来处...

weixin_30633507的博客 454

【目标追踪】python背景模型减除法原理及其实现

python基于背景模型差法的视频目标追踪帧差法的问题:背景模型差法目标追踪原理1. 基本思路:2. 图例讲解:3. 存在的问题&如何解决:4. 最终效果预览第一步——调用摄像头:1. 使用opencv打开视频or摄像头:2. 读取逐帧图片:第二步——处理图片:1. 转换成灰度图:3. 累加权重重构背景:3. 计算像素差:3. 使用中值滤波和膨胀腐蚀去噪:3.1 中值滤波:3.2 图像腐蚀...

梁瑛平的博客 1948

在树莓派4B上基于NCNN框架部署YOLOv8的实战教程

摘要:本文详细介绍了在树莓派4B上基于NCNN框架部署YOLOv8目标检测模型的完整流程。从PyTorch模型转换为NCNN格式,到树莓派环境配置(OpenCV和NCNN编译),再到C++代码实现与优化,涵盖模型加载、推理和绘图等核心功能。测试结果显示,树莓派4B上可实现约2 FPS的检测速度,Windows平台达6~7 FPS。文章还提供了量化模型、多线程优化等实用建议,并附常见问题解答,为边缘设备部署轻量化目标检测提供了可行方案。(149字)

m0_64661770的博客 595

巨详细的规则引擎 Drools——小白也可食用

巨详细的规则引擎 Drools——小白也可食用

小李的便利店 2万+

Matlab仿真:均匀面阵方向图、均匀线阵方向图、均匀圆阵方向图

其中,阵列方向图是评价阵列性能的重要参数之一。均匀面阵由若干个相同的阵元构成,阵元间等距排列,阵元的方向图形状为一个圆盘。均匀线阵由若干个相同的阵元构成,阵元间等距排列,阵元的方向图形状为一个矩形。本文将采用Matlab进行仿真,分别实现均匀面阵方向图、均匀线阵方向图和均匀圆阵方向图,并对三种阵列进行比较分析。通过以上代码仿真,我们可以对均匀面阵、均匀线阵和均匀圆阵进行方向图的绘制,进一步分析不同阵列在天线性能方面的差异。Matlab仿真:均匀面阵方向图、均匀线阵方向图、均匀圆阵方向图。

2301_79326857的博客 3436

Drools规则引擎入门及实战

一、Drools简介 drools是一款由JBoss组织提供的基于java语言开发的开源规则引擎,可以将复杂且多变的业务规则从硬编码中解放出来,以规则脚本的形式存放在文件或特定的存储介质中(例如存放在数据库中),使得业务规则的变更不需要修改项目代码,重启服务器就可以在线上环境立即生效。 drools官网地址:https://drools.org/ drools源码下载地址:https://github.com/kiegroup/drools

小米吃辣椒的博客 3118

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

规则引擎Drools

规则引擎核心思想:将应用程序中的业务决策部分分离出来使得业务规则的变更不需要修改项目代码、重启服务器就可以在线上环境立即生效我们项目中使用Drools。

qq_64064246的博客 1653

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【Java】规则引擎 Drools

规则引擎,全称为业务规则管理系统,规则引擎的主要思想是将应用程序中的业务决策部分分离出来,并使用预定义的语义模块编写业务决策(业务规则),由用户或开发者在需要时进行配置、管理。需要注意的是规则引擎并不是一个具体的技术框架,而是指的一类系统。目前市面上具体的规则引擎产品有:drools、VisualRules、iLog等。规则引擎实现了将业务决策从应用程序代码中分离出来,接收数据输入,解释业务规则,并根据业务规则做出业务决策。规则引擎其实就是一个输入输出平台。

开心星人的博客 1429

SpringBoot-Drools规则引擎

规则编号订单金额奖励积分1100元以下不加积分2100元 - 500元加100积分3500元 - 1000元加500积分41000元以上加1000积分规则引擎,全称为业务规则管理系统,英文名为BRMS(即Business Rule Management System)。规则引擎的主要思想是将应用程序中的业务决策部分分离出来,并使用预定义的语义模块编写业务决策(业务规则),由用户或开发者在需要时进行配置、管理。

qq_42211536的博客 3125

规则引擎Drools入门

流程引擎Drools入门

qq_52148082的博客 1063
下一篇: 海盗基地demo~ 一个地图
csrcom
博客等级 码龄25年 20粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值