从Drools规则引擎到风控反洗钱系统v0.3.2.pdf

所需积分/C币:50 2017-08-22 09:47:09 2.87MB PDF
61
收藏 收藏
举报

从Drools规则引擎到风控反洗钱系统v0.3.2.pdf ,此版本文档在不断刚更新升级中。
Δ文档持续更新中,QQ技术交流群:593177274,作者邮箱:secbro2@gmai.com 1 Drools简介 1.1什么是规则引擎 规则引擎是由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决筼 从应用程序代码中分离岀来,并使用预定义的语义模块编写业务决策。接受数据翰入,解释 业务规则,并根据业务规则做出业务决策。 大多数规则引擎都支持规则的次序和规则冲突检验,支持简单脚本语言的规则实现,文 持通用开发语言的嵌入开发。目前业内有多个规则引擎可供使用,其中包括商业和开放源码 选择。开源的代表是 Drools,商业的代表是 Visual rules,Log 1.2Doos规则引擎 Drools( JBoss Rules)具有一个易于访问企业策略、易于调鑾以及易于管理的开源业 务规则引擎符合业内标准,速度快、效率高。业务分析师或审核人员可以利用它轻松查看 业务规则,从而检验是否已编码的规则执行了所需的业务规则。 JBoss rules的前身是 Codehaus的一个开源项目叫 Drools。现在被纳入 JBOss门下,更 名为 JBoss Rules,成为了]Boss应用服务器的规则引擎。 Drools是为Java量身定制的基于 Charles forgy的RETE算法的规则引擎的实现。具有 了○O接口的RETE使得商业规则有了更自然的表达 13 Drools使用概览 Drools是Java编写的一款开源规则引擎,实现了Rete算法对所编写的规则求值,支持 声明方式表达业务逻辑。使用DsL( Domain Specific Language)语言来编写业务规则,使得规 则通俗易懂.使于学习理解。支持Java代码直接嵌入到规则文件中 Drools主要分为两个部分∶一是 Drools规则,二是 Drools规则的解释执行。规则的编 译与运行要通过 Drools提供的相关AP来实现。而这些AP总体上游可分为三类:规则编 译、规则收集和规则的执行。 Drools是业务规则管理系统(BRMS)解决方案,涉及以下项目 本系文档系作者原创,禁止其他人商用。作者CSDN博客地址.htp:// plog csdn. net/wo541075754 Δ文档持续更新中,QQ技术交流群:593177274,作者邮箱:secbro2@gmai.com 四 Drools Workbench:业务规则管理系统 Drools Expert:业务规则引擎 Drools fusion:事件处理 jBPM:工作流引莩 OptaPlanner:规划引擎 14 Drools版本信息 目前 Drools发布的最新版本为7.00Fina,其他版本正在研发过程中。官方表示后 续版本会加快迭代速度。本系列也是基于此版本进行讲解。 从 Drools6x到7版本发生重大的变化项: @ Property Reactive不需要再配置,在 Drools7中作为默认配置项。同时向下 兼容。 Drools6版本中执行sum方法计算结果数据类型问题修正。 重命名 Timed Rule ExecutionOption。 重命名和统一配置文件。 Drools7新功能: 支持多线程执行规则引擎,默认为开启,处于试验阶段。 OOPath改进,处丁试验阶段。 ● OPath maven插件支持。 事件的软过期 规则单元 RuleUnit 15JDK版本及|DE 从 Drools640开始已经支持JAVA8,最低版本JDK15。可通过 Eclipse插件进行集 成,也可通过 nelly IDEA中插件进行集成开发。 Drools提供了一个 Eclipse的集成版 本,不过它核心依赖于JK15 关键 Eclipse的集成官方有详细的文档可参考,这里不再赘述。 Drools7.0.0.Fina要 求的最低⑩K版本为⑩DK1.8(核心包采用此版本编译,低于此版本的JDK运行时会抛 出异常)。本系列后续项目及示例演示均采用AVA8和nte|DEA。 16官方资料 官网地址:htp/www.drools.org. 官方最新文档 https://docsjboss.org/drools/release/7.0.0.final/drools-docs/htmlsingle/index.html 本系文档系作者原创,禁止其他人商用。作者CSDN博客地址.htp:// plog csdn. net/wo541075754 Δ文档持续更新中,QQ技术交流群:593177274,作者邮箱:secbro2@gmai.com 2追溯 Drools5的使用 21 Drools5简述 上面已经提到 Drools是通过规则编译、规则收集和规则的执行来实现具体功能的 Drools5提供了以下主要实现AP ● Knowledgebuilder ● Knowledge Base KnowledgePackage Stateful KnowledgeSession StatelessKnowledge Session 它们起到了对规则文件进行收集、编译、查错、插入fect、设置 global、执行规则或规 则流等作用。 2.2 Drools5 z HelloWorld 下面结合实例,使用上面的AP来实现一个简单规则使用实例。随后简单介绍每个AP 的主要作用。 Drools7目前依旧包含上面提的 Drools5的AP,因此本实例直接使用 Drools7 的jar包。 221业务场景 目前有两种商品钻石( diamond)和黄金(Goa),需要对这两种商品分别制定销售折 扣( discount)。如果使用 Drools规则引擎就是为了适用两种商品折扣的各和变化,不用修 改代码就可以实现复杂业务组合的变更。当然简单的情况,使用普通的ee或配置项也可 以达到变更的目的,那就不需要 Drools,也就不是本节讨论的范畴了。 222代码实例 整体目录结构如下图 本系文档系作者原创,禁止其他人商用。作者CSDN博客地址.htp:// plog csdn. net/wo541075754 仝文档持续更新中,Q技术交流群:593172.作者邮箱:sccbro2@gmail.com F r droolsdemo E: \code\droolsdemo m器 Ch Proc E resource □cem.rdes RUles.drl test e droolsdemo, iml m Ill Externa 首先创建JAVA项目,使用 maven进行管理。创建之后 maven的 pom.xm文件内容如 <?xml version=1.0"encoding=UTF-8?> project xmins="hTtp: //maven. apache. org/pom/4.0.0 xmins:Xsi="http://www.w3.org/2001/xmlschema-instance xsIschemalocation="http://maven.apacheorg/pom/4.0.0 http://maven.apacheorg/xsd/maven-4.0.0.xsd"> <model version>4.0.0</modelVersion> < groupld>com. secbro </groupld> cartifactld>drools-demo</artifactld> <version>1.0-SNAPSHOT</version> <properties> <drools-version>7.0.0.Final</drools-version> </properties> <dependencies> <dependency> <groupld>org. drools</groupld> <artifactld>drools-compiler/artifactld> <version>$drools-version/</version> </dependency> </dependencies> </project> 创建产品类 Product,如下 package com. secbro. drools. model 本系文档系作者原创,禁止其他人商用。作者CSDN博客地址.htp:// plog csdn. net/wo541075754 Δ文档持续更新中,QQ技术交流群:593177274,作者邮箱:secbro2@gmai.com 大产品类 Created by zhuzs on 2017/7/4 public class Product i public static final String DIAMOND=" DIAMOND";∥/钻石 ublic static final String GOLD="GOLD";∥黄金 private String type private int discount ∥/省略 getter/setter方法 在项目的 resources目录下创建com/ules目录,并在创建 Rules. dr,内容如下 package com rules import com.secbro drools model Product rule Offer 4Diamond when oroductobject: Producttype ==Product. DIAMOND) then productObject. setDiscount(15); end rule offer4gold when productobject: Product(type = Product GOLD then productobject. setDiscount(25 end 刂建执行规则的测试类 Drools5Test package com. secbro drools import com. secbro droolsmodel Product import org. kie api. io Resource Type import org. kie internal Knowledge Base import org. kie internal. KnowledgeBaseFactory import org. kie internal builder. Knowledge Builder import org. kieinternal builder. Knowledge Builder Factory import org. kie internal definition. Knowledge Package, 本系文档系作者原创,禁止其他人商用。作者CSDN博客地址.htp:// plog csdn. net/wo541075754 仝文档持续更新中,Q技术交流群:593172.作者邮箱:sccbro2@gmail.com import org. kie internal io Resource Factory import org. kie internal runtime. Statefulknowledge Session import java. util. Collection Created by zhus on 2017/7/4 public class Drools5XTest i public static void main(Stringl args)( Drools5XTest test new Drools 5XTesto test. old ExecuteDrools(: private void old Execute Drools t Knowledge Builder kbuilder Knowledge Builder Factory newKnowledge Builder( kbuilder. add(Resource Factory. new ClassPathResource(com/rules/Rules. drl this getClass(), Resource Type. DRL); if (kbuilder has Errors)I System. out printIn(kbuilder get Errors(). toString); Collection< KnowledgePackage> pkgs= kbuilder. getKnowledgePackages( // add the package to a rulebase Knowledge Base kbase Knowledge Base Factory newKnowledge Base( ∥/将 KnowledgePackage集合添加到 Knowledge Base当中 kbase. add KnowledgePackages(pkgs Stateful Knowledge Session session kbase new StatefulKnowledge Session( Product product new Product( product set Type( Product. GOLD): session. insert(product) session. fireAllRules( session. dispose( System. out. println The discount for the product " product getType( is"+ product get Discount(+"9": 现在执行,main方法,打印出来的结果为 The discount for the product 1 is 25% 本系文档系作者原创,禁止其他人商用。作者CSDN博客地址.htp:// plog csdn. net/wo541075754 Δ文档持续更新中,QQ技术交流群:593177274,作者邮箱:secbro2@gmai.com 223实例详解 通过上面的实例我们已经完成了 Drools规则引擎AP的使用。下面,针对实例逐步讲 解每个AP的使用方法及dr文件的语法。 类名 使用说明 Knowledge builder 在业务代码中收集已编写的规则,并对规则文件进行编译,生成编译 好的 KnowledgePackage集合,提供给其他AP使用。通过其提供的 has Errors)方法获得编译过程中是否有错, getErrors0方法打印错误 信息。支持d文件、ds文件和ⅹs文件等。 Knowledge Package 存放编译之后规则的对象 Knowledge base 收集应用当中知识( knowledge)定义的知识库对象 ( KnowledgePackage),在一个 Knowledge Base当中可以包含普通 的规则(rue)、规则流( rule flow)、函数定义( function)、用户自定义 对象( type model)等,并创建 session对象( StatefulKnowledge Session Th StatelessKnowledge Session) StatefulKnowledge Session接收外部插入的数据fot对象(POO),将编译好的规则包和业务 数据通过 fireallrules0方法触发所有的规则执行。使用完成需调用 dispose(方法以释放相关内存资源。 StatelessKnowledgeSession对 StatefulknowledgeSession的封装实现,与其对比不需要调用 dispose0方法释放内存,只能插入一次fact对象。 以上是针对 Drools5x版本AP相关使用简介,Doos7版本已经不再使用此系列的AP|, 此处章节就不展开描述。规则的语法也放在Doo7对应章节中进行详细介绍。 3 Drools7之 Helloworld 31 Hello world实例 在上一章中介绍了 Drools.5版本中规则引擎使用的实例,很明显在 Drools7中 Knowledge Base类已被标注为“@ Deprecated”废弃。在本章节中介绍 Drools7版本中的 使用方法。后续实例都将默认使用此版本。 先看一下 Drools项目的目录结构 本系文档系作者原创,禁止其他人商用。作者CSDN博客地址.htp:// plog csdn. net/wo541075754 仝文档持续更新中,Q技术交流群:593172.作者邮箱:sccbro2@gmail.com o I droolsdemo E:\code(droolsdemo d sFC FACT对象 ava □ com secbro drools ⊙ Product AP实现类 Ca Drools Test Me] Rules. drl F moduler配已置文件 ca module. xml p□test rg 4. droolsdemo, iml Maven pom.xm文件中依赖配置 <properties> <drools-version >7.0.0.Final</drools-version> /properti <dependencies> <depender groupld>junit</grouped rtitactld>unit</artifactld <version >4.12</version> </depended <dependency> grouped>org. drools </group <artitactld >drools-compiler</artifactld> <version>sdrools-version]</version> /depender </dependencies> Fact对象对应的实体类依旧为 Product package com.secbro drools model 产品类 Created by zhuzs on 2017/7/4 本系文档系作者原创,禁止其他人商用。作者CSDN博客地址.htp:// plog csdn. net/wo541075754

...展开详情
试读 72P 从Drools规则引擎到风控反洗钱系统v0.3.2.pdf
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
wushuo30 就是一份drools的教程而已,和反洗钱有个毛线的关系
2018-05-15
回复
tang2992 没有风控部分,只是drools教程
2018-03-04
回复
句-号 就是一份drools的教程而已,和反洗钱有个毛线的关系
2017-12-19
回复
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
  • GitHub

    绑定GitHub第三方账户获取
  • 图书勋章

    CSDN技术图书作者专属勋章
  • 签到达人

    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证(专家版)

    博客专家完成年度认证,即可获得
关注 私信
上传资源赚积分or赚钱
最新推荐
从Drools规则引擎到风控反洗钱系统v0.3.2.pdf 50积分/C币 立即下载
1/72
从Drools规则引擎到风控反洗钱系统v0.3.2.pdf第1页
从Drools规则引擎到风控反洗钱系统v0.3.2.pdf第2页
从Drools规则引擎到风控反洗钱系统v0.3.2.pdf第3页
从Drools规则引擎到风控反洗钱系统v0.3.2.pdf第4页
从Drools规则引擎到风控反洗钱系统v0.3.2.pdf第5页
从Drools规则引擎到风控反洗钱系统v0.3.2.pdf第6页
从Drools规则引擎到风控反洗钱系统v0.3.2.pdf第7页
从Drools规则引擎到风控反洗钱系统v0.3.2.pdf第8页
从Drools规则引擎到风控反洗钱系统v0.3.2.pdf第9页
从Drools规则引擎到风控反洗钱系统v0.3.2.pdf第10页
从Drools规则引擎到风控反洗钱系统v0.3.2.pdf第11页
从Drools规则引擎到风控反洗钱系统v0.3.2.pdf第12页
从Drools规则引擎到风控反洗钱系统v0.3.2.pdf第13页
从Drools规则引擎到风控反洗钱系统v0.3.2.pdf第14页
从Drools规则引擎到风控反洗钱系统v0.3.2.pdf第15页

试读结束, 可继续读5页

50积分/C币 立即下载 >