`
江南白衣
  • 浏览: 550039 次
  • 来自: 广州
社区版块
存档分类
最新评论

Drools - 规则引擎可以用了么?

阅读更多

 所有项目都是被需求变更累死的,eXtreme Programing提供了一种哲学,一种态度,但更实际的,是那些能够应付需求变更的技术。
    比如用OLAP支持复杂报表的快速定制,用script语言如Groovy支持客户自定义公式,
    还有Rule Engine,我们一天到晚挂在口上的亲爱的商业规则。

    Rule Engine的意义:
    1.将复杂的if...else....elseif 整理为一条条的清晰的规则
    2.将商业规则从程序逻辑中分离
    3.规则改变时不需要重新编译和部署系统
    4.如果Rule Engine提供普通用户级的规则语言,可以直接让客户的领域专家进行规则定制

    Rule Engine并不新鲜,而Drools,比其他的规则引擎都要亲民,使用java和xml,让规则引擎简单到和JSP一样可以进入所有的程序组。

    先看一段精简又实用的HelloWorld,由两部分组成, 一个是调用规则的test.jsp :

     //设置一个测试用的VO     Vo vo = new Vo();     vo.setPoStatus("A:draft");      //读入规则     RuleBase ruleBase = RuleBaseBuilder.buildFromURL("rule.drl");     //把vo放入WorkingMemory中并执行     WorkingMemory workingMemory = ruleBase.newWorkingMemory( );     workingMemory.assertObject( vo );     workingMemory.fireAllRules( );     //显示结果     out.print(po.getPoStatus());         

         一个是规则文件rule.drl:

   <rule-set name="test rules"     <rule name="Bob Likes Cheese">      <parameter identifier="vo">        <java:class>com.ito.vo</java:class>      </parameter>              <java:condition>vo.getStatus().equals("A:draft")</java:condition>              <java:consequence>        vo.setStatus("B:order");      </java:consequence>     </rule>   </rule-set>   
整个规则分成三段, 第一段定义刚刚放入的对象; 第二段用Java语法判断条件; 第三段为条件符合时的执行语句

真的非常简单吧


经过小范围的试用,发现没有这么简单,因为Drools主要提供了一个RETE的规则匹配算法和一个Script Engine,具体怎么用,还很靠自己。必须能够充分发挥上面的四点要求才是RuleEngine的用武之地,否则,一段重构后的代码能够达到和drl文件相仿的功能。所以,还是要多看点基础,把Business Rules用在正确的地方。

1.  JSR http://www.jcp.org/en/jsr/detail?id=94
2.  javarules.org  http://www.javarules.org/
3.  ilog JRules      http://www.ilog.com



分享到:
评论

相关推荐

    规则引擎drools-guvnor

    Drools-Guvnor 规则引擎使用指南 Drools-Guvnor 是一个基于 Java 的规则引擎,可以用于构建业务规则管理系统。下面是 Drools-Guvnor 的使用说明和知识点总结。 规则引擎 Drools-Guvnor 的基本概念 * Drools-...

    kie-Drools-workbench7.10.0+kie-server7.10.0+tomcat8 下载运行

    dools是一款开源规则引擎,drools-workbench是它的工作台web程序,可以编译,打包,发布规则,kie-server是可以运行规则的服务器程序, 两个服务单独部署,用户可以通过通过http请求发送数据,然后返回规则额匹配...

    kie-drools-wb

    kie-drools-wb,这个名字代表着Drools工作台(Drools Workbench)的运行时库,它是 Drools 高级规则引擎的重要组成部分。Drools 是一个开源的业务规则管理系统(BRMS),它提供了一种高效、灵活的方式来编写、测试和...

    Drools-规则引擎

    Drools 提供了一个规则引擎,使得业务规则可以与应用程序的主体逻辑分离,从而更容易管理和调整。下面我们将深入探讨Drools 的核心概念和功能。 1. **核心概念** - **规则(Rule)**:规则是Drools 的基本单元,它...

    drools-distribution-7.9.0.Final&spring;-drools-demo

    Drools 是一个强大的规则引擎,它基于 Java 平台,提供了业务规则管理系统的功能。在版本 7.9.0.Final 中,Drools 提供了对复杂业务逻辑的高效处理能力,并且与流行的 Spring 框架无缝集成,使得业务规则的管理和...

    drools 5.0完整组件打包压缩文档 drools-5.0-bin.zip

    Drools是一个强大的规则引擎,它允许开发人员在Java应用程序中使用业务规则。这个压缩包“drools-5.0-bin.zip”包含了Drools 5.0版本的所有核心组件和必要的库,使得开发者能够方便地集成和使用Drools进行规则驱动的...

    kie-Drools-kie-server7.10.0+tomcat8

    dools是一款开源规则引擎,drools-workbench是它的工作台web程序,可以编译,打包,发布规则,kie-server是可以运行规则的服务器程序, 两个服务单独部署,用户可以通过通过http请求发送数据,然后返回规则额匹配...

    jboss 规则引擎 drools库 drools-compiler-5.1.1.jar

    jboss 规则引擎 drools库。 api,core,compiler,jsr94 drools-compiler-5.1.1.jar

    kie-drools-wb-7.5.0.Final-tomcat8整合kie-server7.5服务

    drools的workbench平台与kie-server的整个打包,通过tomcat8运行,搞了两天终于搞好了,drools-7.7.0目前界面显示还有问题,因此通过drools-7.5.0版本来运行,服务启动后可以通过代码的方式发送命令来执行规则引擎

    drools-wb-7.10 tomcat 安装包

    标题中的"drools-wb-7.10 tomcat 安装包"指的是Drools Workbench的一个版本,这是Red Hat公司开发的一款基于Java的工作台,用于规则引擎Drools和决策服务KieServer的管理和开发。Drools是一款强大的业务规则管理系统...

    drools文档教程-规则引擎文档

    使用 Drools 规则引擎可以轻松解决这个问题。Drools 规则引擎可以将业务逻辑从应用程序中分离出来,并将其编写成规则文件。这样可以使得业务逻辑变得更加清晰、灵活和可维护。 使用 Drools 规则引擎的好处包括: *...

    drools-distribution-7.5.0

    《 Drools:深入解析Java规则引擎的精华》 Drools,作为一个强大的开源Java规则引擎,自其诞生以来,就以其高效、灵活的业务规则管理能力,在IT领域中独树一帜。本文将深入探讨Drools的核心特性,以及如何在实际...

    drools-distribution-6.3.0

    这些示例包括了各种场景,如信贷审批、销售促销等,每个示例都包含了完整的源代码,可以方便地进行编译和运行,从而加深对Drools规则引擎的理解。 此外,压缩包中包含的所有"jar"包,是Drools 6.3.0的核心组件和...

    Drools 业务规则管理系统 BRMS

    ---02-规则引擎概述(使用规则引擎的优势).mp4 ---03-规则引擎概述(规则引擎应用场景).mp4 ---04-规则引擎概述(Drools介绍).mp4 03-规则引擎Drools-Drools入门案例 ---01-Drools入门案例(业务场景说明).mp4 -...

    drools-distribution-7.7.0.Final

    drools规则引擎相关文件, 源码:\drools-distribution-7.7.0.Final\sources\drools-core-7.7.0.Final-sources.jar、 jar包:\drools-distribution-7.7.0.Final\binaries\drools-core-7.7.0.Final.jar、 API:\...

    kie-drools-wb-6.5可运行tomcat版

    Drools是一款强大的规则引擎,而Drools Workbench则为它提供了一个直观的、基于Web的开发环境。这里我们关注的是这个版本能够在Tomcat 7.0.85上顺利运行,这为开发者提供了极大的便利。 首先,我们要了解Drools。...

    drools-规则语言

    ### Drools规则引擎及其规则语言解析 #### 一、Drools简介 Drools是一个开源的业务规则管理系统(BRM)框架,它提供了一个灵活且强大的环境来管理和部署业务规则。Drools的核心是一个高性能的规则引擎,它支持决策表...

Global site tag (gtag.js) - Google Analytics