JBoss Rules的入门学习

开发 后端
本文叙述JBoss Rules学习教程的入门篇,包括JBoss Rules的介绍。

学习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数据库配置
责任编辑:佚名 来源: JavaEye
相关推荐

2009-06-16 13:48:58

JBoss概述

2009-06-15 17:22:36

JBoss Seam

2009-06-18 15:15:35

JBoss的配置

2009-06-15 17:31:07

2009-06-12 13:40:25

JBoss下载JBoss安装

2009-06-15 16:41:43

JBoss启动

2009-06-17 09:40:01

JBoss的class

2009-06-16 11:39:17

JBoss端口修改

2009-06-15 12:59:09

JBoss配置

2009-06-16 09:19:13

JBoss Seam

2009-06-15 17:44:38

JBoss Cache

2009-06-15 14:16:17

JBoss与Tomca

2009-06-12 13:59:04

2016-09-18 21:14:54

JavascriptPromiseWeb

2009-06-15 10:21:07

基于JBossMBean

2009-06-17 17:02:22

2009-03-30 09:31:41

JBoss DevelJBossEclipse

2009-06-17 08:51:26

Eclipse启动JB

2009-06-12 14:12:18

JBoss配置MyEclipse

2009-07-06 17:49:02

Apache的配置JBoss的配置
点赞
收藏

51CTO技术栈公众号