JBossRules的入门学习

学习JBoss Rules有几天了,因为这方面的中文资料较少,所以这几天都在看官网上的manual。这是一份不错的教程,我把我看的一些重要的东西翻译整理了一下,希望可以对想学习JBoss Rules的朋友们提供一点帮助。

在开始这份教程之前,我先简要介绍一下JBoss Rules:
JBoss Rules 的前身是Codehaus的一个开源项目叫Drools。最近被纳入JBoss门下,更名为JBoss Rules,成为了JBoss应用服务器的规则引擎。Drools是为Java量身定制的基于Charles  Forgy的RETE算法的规则引擎的实现。具有了OO接口的RETE,使得商业规则有了更自然的表达。
 
既然JBoss Rules是一个商业规则引擎,那我们就要先知道到底什么是Rules,即规则。在JBoss Rules中,规则是如何被表示的

一条规则是对商业知识的编码。一条规则有 attributes,一个 Left Hand Side(LHS)和一个Right Hand Side( RHS )。Drools 允许下列几种attributes :salience,agenda-group,no-loop,auto-focus,duration,activation-group 。

  1. rule “  <  name  >  ”      
  2.      < attribute >   < value >       
  3.     when          
  4.          < LHS >       
  5.     then          
  6.          < RHS > 
  7. end  

规则的LHS由一个或多个条件(Conditions)组成。当所有的条件(Conditions)都满足并为真时,RHS将被执行。RHS被称为结果(Consequence)。LHS和RHS  类似于:

  1. if   (   <  LHS  >   ) {  
  2.      < RHS > 

规则可以通过package关键字同一个命名空间(namespace)相关联;其他的规则引擎可能称此为规则集(Rule Set)。一个package声明了imports,global变量,functions和rules  。 

  1. package   com.sample  
  2. import  java.util.List  
  3. import  com.sample.Cheese  
  4. global List cheeses  
  5. function  void  exampleFunction(Cheese cheese) {  
  6.     System.out.println( cheese );  
  7. }  
  8. rule “A Cheesy Rule”  
  9.     when  
  10.         cheese : Cheese( type  ==   " stilton "  )  
  11.     then  
  12.         exampleFunction( cheese );  
  13.         cheeses.add( cheese );  
  14. end  

对新的数据和被修改的数据进行规则的匹配称为模式匹配(Pattern Matching)。进行匹配的引擎称为推理机(Inference Engine)。被访问的规则称为ProductionMemory,被推理机进行匹配的数据称为WorkingMemory。Agenda管理被匹配规则的执行。推理机所采用的模式匹配算法有下列几种:Linear,RETE,Treat,Leaps。 

【编辑推荐】

  1. JBoss企业中间件概述
  2. 配置JBoss4.0上MySQL数据库
  3. JBoss配置mysql数据库连接池
  4. Red Hat宣布JBoss开放选择应用平台战略
  5. 在JBoss4.0上完成Oracle数据库配置

标题名称:JBossRules的入门学习
本文地址:http://www.hantingmc.com/qtweb/news19/345669.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联