Drools规则引擎介绍.

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

TEAMBSTEK©CopyrightBSTEKCorporation2006BstekTeamDrools规则引擎TEAMBSTEK©CopyrightBSTEKCorporation20062议程什么是规则引擎?Drools规则引擎介绍信用卡申请实例介绍Drools实现信用卡申请规则编写客户端测试信用卡申请规则TEAMBSTEK©CopyrightBSTEKCorporation20063什么是规则引擎?规则引擎是一种嵌套在应用程序中的组件,它实现了将业务规则从应用程序代码中分离出来。规则引擎使用特定的语法编写业务规则,规则引擎可以接受数据输入、解释业务规则、并根据业务规则做出相应的决策。客户端包含业务规则的业务逻辑组件业务规则调用传统业务逻辑编写方式客户端业务逻辑组件调用引入规则引擎后业务逻辑组件的编写方式调用规则引擎业务规则引入规则引擎之前引入规则引擎之后引入规则引擎后带来的好处:-实现业务逻辑与业务规则的分离,实现业务规则的集中管理-可以动态修改业务规则,从而快速响应需求变更-使业务分析人员也可以参与编辑、维护系统的业务规则-使用规则引擎提供的规则编辑工具,使复杂的业务规则实现变得的简单TEAMBSTEK©CopyrightBSTEKCorporation20064Drools规则引擎介绍Drools是Jboss公司旗下一款开源的规则引擎,它完整的实现了Rete算法;提供了强大的EclipsePlugin开发支持;通过使用其中的DSL(DomainSpecificLanguage),可以实现用自然语言方式来描述业务规则,使得业务分析人员也可以看懂业务规则代码。最新版本Drools5提供了基于WEB的BRMS——Guvnor,Guvnor提供了规则管理的知识库,通过它可以实现规则的版本控制,及规则的在线修改与编译,使得开发人员和系统管理人员可以在线管理业务规则。EclipsePlugin版规则设计器Drools的GuvnorTEAMBSTEK©CopyrightBSTEKCorporation20065信用卡申请实例1.用户填写申请的个人信息。2.然后提交到系统进行初审。初审的职责是通过已有的规则对用户信息合法性和真实性进行检查。3.对于合法的用户提交到信用卡发放部门,使用规则来决定要发放的信用卡额度等信息。4.通知申请人申请结果信息录入申请流程图使用规则进行合法性检查通过规则发放信用卡信息提交通知申请人申请结果TEAMBSTEK©CopyrightBSTEKCorporation20066用户需要输入的个人信息用户需要输入的信息包括:姓名、性别、年龄、学历、电话、所在公司、职位、月收入、是否有房、是否有车、是否有信用卡等。点击“申请”按钮将申请信息提交到后台,后台启动审批流程,通过规则先对信息的合法性进行验证,对于验证合格申请系统将调用相关规则发放相关的信用卡。TEAMBSTEK©CopyrightBSTEKCorporation20067用户信息合法性检查规则规则编号名称描述1检查学历与薪水1如果申请人既没房也没车,同时学历为大专及以下,并且月薪少于5000,那么不通过。2检查学历与薪水2如果申请人既没房也没车,同时学历为大专或本科,并且月薪少于3000,那么不通过。3检查学历与薪水3如果申请人既没房也没车,同时学历为本科以上,并且月薪少于2000,同时之前没有信用卡的,那么不通过。4检查申请人已有的信用卡数量如果申请人现有的信用卡数量大于10,那么不通过。申请人信息提交到系统后,首先调用这些规则进行验证,只有这些规则全部通过,才能进入发放信用卡的流程,否则申请结果就是不通过。TEAMBSTEK©CopyrightBSTEKCorporation20068合法用户的信用卡发放规则规则编号名称描述1规则1如果申请人有房有车,或者月收入在20000以上,那么发放的信用卡信用额度为15000。2规则2如果申请人没房没车,但月收入在10000~20000之间,那么发放的信用卡信用额度为60003规则3如果申请人没房没车,月收入在10000以下,那么发放的信用额度为3000。4规则4如果申请人有房没车或者是没房但有车,月收入在10000以下,那么发放的信用额度为5000。5规则5如果申请人有房没车或者是没房但有车,月收入在10000~2000之间,那么发放的信用额度为8000。以上5条规则为验证通过的用户发放信用卡时使用,主要是用来决定信用卡的发放额度TEAMBSTEK©CopyrightBSTEKCorporation20069Drools实现信用卡申请规则采用Drools规则引擎来计算复杂的信用卡审批与发放规则通过Drools提供的BRMS——Guvnor实现规则的管理与动态更新通过Drools提供的RuleFlow(规则流)实现对信用卡审批规则的编排与执行Dorado表现层接收用户输入信用卡申请信息DatasetServer端Client端控件绑定用户业务逻辑层业务逻辑Drools规则引擎Drools的BRMS-Guvnor信用卡审批规则流信用卡审批规则系统架构TEAMBSTEK©CopyrightBSTEKCorporation200610Drools实现的信用卡自动审批流程“检查申请人信息是否合法”:用来存放检查申请人信息是否合法的四条规则,对申请人信息进行合法性检查。“判断是否合法”:判断当前申请人信息是否合法,如果合法那么将选择“合法”线路,否则选择“非法”线路。“合法申请人信用卡发放”:存放发放信用卡的五条规则,对申请人的信息进行检查,从而为申请人提供合适的信用卡额度。两个结束节点分别用来结束合法与非法的信用卡申请信息。存放检查申请人信息是否合法的四条规则判断当前申请人申请信息是否合法来决定要走的线路存放发放信用卡的五条规则利用Drools提供的RuleFlow设计的信用卡审批流程,该流程的主要作用是用来对信用卡的合法性检查规则及信用卡发放规则的执行顺序进行编排。TEAMBSTEK©CopyrightBSTEKCorporation200611Drools实现的用户信息合法性检查规则点击查看用户信息合法性检查规则的完整源文件/**如果申请人既没房也没车,同时学历为大专及以下,并且月薪少于5000,那么不通过。*/rule检查学历与薪水1ruleflow-groupapplychecklock-on-activetruesalience1whenCurrentuser-degreeis1-hascarisfalse-hashouseisfalse-salaryislessthen5000thenSocurrentuserapplyisinvalidend/**如果申请人既没房也没车,同时学历为大专或本科,并且月薪少于3000,那么不通过。*/rule检查学历与薪水2ruleflow-groupapplychecklock-on-activetruesalience2whenCurrentuser-hascarisfalse-hashouseisfalse-salaryislessthen3000-currentuserdegreeis2or3thenSocurrentuserapplyisinvalidEnd……TEAMBSTEK©CopyrightBSTEKCorporation200612Drools实现的合法用户的信用卡发放规则点击查看信用发放规则完整源文件/**如果申请人有房有车,那么发放的信用卡信用额度为15000。*/rule规则1salience1ruleflow-groupcreditcardpaymentlock-on-activetruewhenCurrentuser-hascaristrue-hashouseistruethenPaymentcreditcardandcreditlimitis15000end/**月收入在20000以上,那么发放的信用卡信用额度为15000。*/rule规则2salience2ruleflow-groupcreditcardpaymentlock-on-activetruewhenCurrentuser-salaryisgreatethen20000thenPaymentcreditcardandcreditlimitis15000End……TEAMBSTEK©CopyrightBSTEKCorporation200613将相关规则文件部署到Guvnor申请人信息合法性检查规则在Guvnor里查看的效果在Guvnor里查看信用卡审批的规则流程图可以将编写好的信用卡申请规则及编排规则执行的规则流文件一起发布到Guvnor,通过Guvnor可以实现对规则的管理与动态编译,以快速的响应业务变化需求。通过使用Guvnor提供的Eclipse-plugin可以将规则文件直接部署到Guvnor当中。TEAMBSTEK©CopyrightBSTEKCorporation200614编写客户端测试信用卡申请规则为了可以更加真实的反映Drools的使用方法,我们用一个B/S架构的应用来作为规则调用的客户端。Drools的客户端采用Dorado实现,通过Dorado客户端提供申请人申请信息,再这些信息交给Drools进行合法性检查,对于合法的申请再进行信用卡的发放,最将结果返回给Dorado。Dorado客户端调用规则引擎进行信用卡申请Dorado客户端Drools规则引擎信用卡申请规则提供信用卡申请信息返回申请结果TEAMBSTEK©CopyrightBSTEKCorporation2006谢谢

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功