规则引擎概况2015课件

上传人:我*** 文档编号:137927998 上传时间:2020-07-12 格式:PPT 页数:34 大小:1.33MB
返回 下载 相关 举报
规则引擎概况2015课件_第1页
第1页 / 共34页
规则引擎概况2015课件_第2页
第2页 / 共34页
规则引擎概况2015课件_第3页
第3页 / 共34页
规则引擎概况2015课件_第4页
第4页 / 共34页
规则引擎概况2015课件_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《规则引擎概况2015课件》由会员分享,可在线阅读,更多相关《规则引擎概况2015课件(34页珍藏版)》请在金锄头文库上搜索。

1、规则引擎概况,2015.05.19,规则引擎简介,1规则引擎的历史 规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。 2应用背景编辑 企业级管理者对企业IT系统的开发有着如下的要求: 1.为提高效率,管理流程必须自动化,即使现代商业规则异常复杂。 2.市场要求业务规则经常变化,IT系统必须依据业务规则的变化快速、低成本的更新。 3.为了快速、低成本的更新,业务人员应能直接管理IT系统中的规则,不需要程序开发人员参与。,规则引擎简介,3产品优点编辑 使用

2、规则引擎可以通过降低实现复杂业务逻辑的组件的复杂性,降低应用程序的维护和可扩展性成本,其优点如下: 分离商业决策者的商业决策逻辑和应用开发者的技术决策; 能有效的提高实现复杂逻辑的代码的可维护性; 在开发期间或部署后修复代码缺陷; 应付特殊状况,即客户一开始没有提到要将业务逻辑考虑在内; 符合组织对敏捷或迭代开发过程的使用; 4代表企业编辑 大多数规则引擎都支持规则的次序和规则冲突检验,支持简单脚本语言的规则实现,支持通用开发语言的嵌入开发。目前业内有多个规则引擎可供使用,其中包括商业和开放源码选择。开源的代表是Drools,商业的代表是VisualRules ,iLog,是否开源的比较,开源

3、规则引擎,JBoss Drools Mandarax OpenRules JEOPS InfoSapient Roolie Apache Camel,商业规则引擎,Ilog Jrules Oracle Business Rules Visual Rules Jess(可研究,商用收费),开源业务规则引擎入门介绍,1.1 现状 在很多行业应用中比如银行、保险领域,业务规则往往非常复杂,并且规则处于不断更新变化中,而现有很多系统做法基本上都是将业务规则绑定在程序代码中。 1.2 问题 主要存在的问题有以下几个方面: 1) 当业务规则变更时,对应的代码也得跟着更改,每次即使是小的变更都需要经历开发、

4、测试验证上线等过程,变更成本比较大。 2) 长时间系统变得越来越难以维护。 3) 开发团队一般是由一个熟悉业务的BA(业务分析人员)和若干个熟悉技术的开发人员组成,开发人员对业务规则的把握能力远不及BA,但实际上却承担了将业务规则准确无误实现的重任。 4) 系统僵化,新需求插入困难。 5) 新需求上线周期较长。,开源业务规则引擎入门介绍,1.3 解决方案 能否让我们的业务系统更灵活一点呢? 思路:将业务规则从技术实现中提取出来,实现技术和业务分离,开发人员处理 技术、业务分析人员定义业务规则,各自做自己所擅长的事情。 方案:目前已经有比较成熟的开源产品支持,这就是本文所要介绍的Drools,我

5、们将业务规则定义在Database或者BRMS(Business Rule Management System)中,通过管理DB或者BRMS实现业务逻辑的动态改变。 1.4 适用情景 什么时候应该使用规则引擎? 虽然规则引擎能解决我们的许多问题,但我们还需要认真考虑一下规则引擎对我 们的项目本身是否是合适的。需要关注的点有: 我的应用程序有多复杂?我的应用的生命周期有多久? 对于那些只是把数据从数据库中传入传出,并不做更多事情的应用程序,最好不要使用规则引擎。但是,当在Java中有一定量的商业逻辑处理的话,可以考虑规则引擎的使用。这是因为很多应用随着时间的推移越来越复杂,而规则引擎可以让你更轻

6、松应对这一切。 如果我们应用的生命周期很短,也没有必要使用规则引擎,使用规则引擎将会在中长期得到好处。 我的应用需要改变吗? 这个答案一般情况下是肯定的,“这世界唯一不变的只有变化”,我们需求也是这样的,无论是在开发过程中或是在开发完成以后,规则引擎能从频繁变化的需求中获得好处。,开源业务规则引擎入门介绍,2 什么是规则引擎 规则引擎是基于规则的专家系统的核心部分,主要由三部分组成:规则库(Knowledge base)+Working Memory(Fact base)+推理机(规则引擎),规则引擎根据既定事实和知识库按照一定的算法执行推理逻辑得到正确的结果。 3 Drools简介 Droo

7、ls 是一个基于Charles Forgys的RETE算法的,易于访问企业策略、易于调整以及易于管理的开源业务规则引擎,符合业内标准,速度快、效率高。 业务分析师人员或审核人员可以利用它轻松查看业务规则,从而检验是否已编码的规则执行了所需的业务规则。,4 竞争产品比较与Drools功能类似的同类开源产品主要有:OpenRules、OpenLexicon等,商业产品功能比较强也比较贵,这里不做比较,主要差别如下表:,JBoss Drools,Drools(JBoss Rules )具有一个易于访问企业策略、易于调整以及易于管理的开源业务规则引擎,符合业内标准,速度快、效率高。业务分析师或审核人员

8、可以利用它轻松查看业务规则,从而检验是否已编码的规则执行了所需的业务规则。 JBoss Rules 的前身是Codehaus的一个开源项目叫Drools。最近被纳入JBoss门下,更名为JBoss Rules,成为了JBoss应用服务器的规则引擎。 Drools是为Java量身定制的基于Charles Forgy的RETE算法的规则引擎的实现。具有了OO接口的RETE,使得商业规则有了更自然的表达。 Drools的用XML的、 节点表达If-Then句式,而里面可以嵌入上述语言的代码作为判断语句和执行语句。 其中Java代码会使用Antlr进行解释,而Groovy和Python本身就是脚本语言

9、,可以直接调用。 Drools的聪明之处在于,用XML节点来规范If-Then句式和事实的定义,使引擎干起活来很舒服。 而使用Java,Groovy等原生语言来做判断和执行语句,让程序员很容易过渡、移植,学习曲线很低。,10,议程,什么是规则引擎? Drools规则引擎介绍 信用卡申请实例介绍 Drools实现信用卡申请规则 编写客户端测试信用卡申请规则,JBoss Drools,11,什么是规则引擎?,规则引擎是一种嵌套在应用程序中的组件,它实现了将业务规则从应用程序代码中分离出来。规则引擎使用特定的语法编写业务规则,规则引擎可以接受数据输入、解释业务规则、并根据业务规则做出相应的决策。,引

10、入规则引擎后带来的好处: 实现业务逻辑与业务规则的分离,实现业务规则的集中管理 可以动态修改业务规则,从而快速响应需求变更 使业务分析人员也可以参与编辑、维护系统的业务规则 使用规则引擎提供的规则编辑工具,使复杂的业务规则实现变得的简单,JBoss Drools,12,Drools规则引擎介绍,Drools是Jboss公司旗下一款开源的规则引擎,它完整的实现了Rete 算法;提供了强大的Eclipse Plugin开发支持; 通过使用其中的DSL(Domain Specific Language),可以实现用自然语言方式来描述业务规则,使得业务分析人员也可以看懂业务规则代码。 最新版本Droo

11、ls5提供了基于WEB的BRMSGuvnor,Guvnor提供了规则管理的知识库,通过它可以实现规则的版本控制,及规则的在线修改与编译,使得开发人员和系统管理人员可以在线管理业务规则。,Eclipse Plugin版规则设计器,Drools的Guvnor,JBoss Drools,13,信用卡申请实例,用户填写申请的个人信息。 然后提交到系统进行初审。初审的职责是通过已有的规则对用户信息合法性和真实性进行检查。 对于合法的用户提交到信用卡发放部门,使用规则来决定要发放的信用卡额度等信息。 通知申请人申请结果,申请流程图,信息提交,检查通过,检查不通过,发送通知,JBoss Drools,14,

12、用户需要输入的个人信息,用户需要输入的信息包括:姓名、性别、年龄、学历、电话、所在公司、职位、月收入、是否有房、是否有车、是否有信用卡等。,点击“申请”按钮将申请信息提交到后台,后台启动审批流程,通过规则先对信息的合法性进行验证,对于验证合格申请系统将调用相关规则发放相关的信用卡。,JBoss Drools,15,用户信息合法性检查规则,申请人信息提交到系统后,首先调用这些规则进行验证,只有这些规则全部通过,才能进入发放信用卡的流程,否则申请结果就是不通过。,JBoss Drools,16,合法用户的信用卡发放规则,以上5条规则为验证通过的用户发放信用卡时使用,主要是用来决定信用卡的发放额度,

13、JBoss Drools,17,Drools实现信用卡申请规则,采用Drools规则引擎来计算复杂的信用卡审批与发放规则 通过Drools提供的BRMSGuvnor实现规则的管理与动态更新 通过Drools提供的RuleFlow(规则流)实现对信用卡审批规则的编排与执行,系统架构,JBoss Drools,18,Drools实现的信用卡自动审批流程,“检查申请人信息是否合法”:用来存放检查申请人信息是否合法的四条规则,对申请人信息进行合法性检查。 “判断是否合法”:判断当前申请人信息是否合法,如果合法那么将选择“合法”线路,否则选择“非法”线路。 “合法申请人信用卡发放”:存放发放信用卡的五条

14、规则,对申请人的信息进行检查,从而为申请人提供合适的信用卡额度。 两个结束节点分别用来结束合法与非法的信用卡申请信息。,利用Drools提供的Rule Flow设计的信用卡审批流程,该流程的主要作用是用来对信用卡的合法性检查规则及信用卡发放规则的执行顺序进行编排。,JBoss Drools,19,Drools实现的用户信息合法性检查规则,点击查看用户信息合法性检查规则的完整源文件,/* 如果申请人既没房也没车,同时学历为大专及以下,并且月薪少于5000,那么不通过。 */ rule 检查学历与薪水1 ruleflow-group applycheck lock-on-active true s

15、alience 1 when Current user -degree is 1 -has car is false -has house is false -salary is less then 5000 then So current user apply is invalid end /* 如果申请人既没房也没车,同时学历为大专或本科,并且月薪少于3000,那么不通过。 */ rule 检查学历与薪水2 ruleflow-group applycheck lock-on-active true salience 2 when Current user -has car is false

16、 -has house is false -salary is less then 3000 -current user degree is 2 or 3 then So current user apply is invalid End ,JBoss Drools,20,Drools实现的合法用户的信用卡发放规则,/* 如果申请人有房有车,那么发放的信用卡信用额度为15000。 */ rule 规则1 salience 1 ruleflow-group creditcardpayment lock-on-active true when Current user -has car is true -has house is true then Payment credit card and credit limit is 15000 end /* 月收入在20000以上,那么发放的信用卡信用额度为15000。 */ rule 规则2 salience 2 ruleflow-group creditcardpayment lock-on-active true wh

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号