新聞中心
學(xué)習(xí)JBoss Rules有幾天了,因?yàn)檫@方面的中文資料較少,所以這幾天都在看官網(wǎng)上的manual。這是一份不錯(cuò)的教程,我把我看的一些重要的東西翻譯整理了一下,希望可以對(duì)想學(xué)習(xí)JBoss Rules的朋友們提供一點(diǎn)幫助。

在開(kāi)始這份教程之前,我先簡(jiǎn)要介紹一下JBoss Rules:
JBoss Rules 的前身是Codehaus的一個(gè)開(kāi)源項(xiàng)目叫Drools。最近被納入JBoss門下,更名為JBoss Rules,成為了JBoss應(yīng)用服務(wù)器的規(guī)則引擎。Drools是為Java量身定制的基于Charles Forgy的RETE算法的規(guī)則引擎的實(shí)現(xiàn)。具有了OO接口的RETE,使得商業(yè)規(guī)則有了更自然的表達(dá)。
既然JBoss Rules是一個(gè)商業(yè)規(guī)則引擎,那我們就要先知道到底什么是Rules,即規(guī)則。在JBoss Rules中,規(guī)則是如何被表示的
一條規(guī)則是對(duì)商業(yè)知識(shí)的編碼。一條規(guī)則有 attributes,一個(gè) Left Hand Side(LHS)和一個(gè)Right Hand Side( RHS )。Drools 允許下列幾種attributes :salience,agenda-group,no-loop,auto-focus,duration,activation-group 。
- rule “ < name > ”
- < attribute > < value >
- when
- < LHS >
- then
- < RHS >
- end
規(guī)則的LHS由一個(gè)或多個(gè)條件(Conditions)組成。當(dāng)所有的條件(Conditions)都滿足并為真時(shí),RHS將被執(zhí)行。RHS被稱為結(jié)果(Consequence)。LHS和RHS 類似于:
- if ( < LHS > ) {
- < RHS >
- }
規(guī)則可以通過(guò)package關(guān)鍵字同一個(gè)命名空間(namespace)相關(guān)聯(lián);其他的規(guī)則引擎可能稱此為規(guī)則集(Rule Set)。一個(gè)package聲明了imports,global變量,functions和rules 。
- package com.sample
- import java.util.List
- import com.sample.Cheese
- global List cheeses
- function void exampleFunction(Cheese cheese) {
- System.out.println( cheese );
- }
- rule “A Cheesy Rule”
- when
- cheese : Cheese( type == " stilton " )
- then
- exampleFunction( cheese );
- cheeses.add( cheese );
- end
對(duì)新的數(shù)據(jù)和被修改的數(shù)據(jù)進(jìn)行規(guī)則的匹配稱為模式匹配(Pattern Matching)。進(jìn)行匹配的引擎稱為推理機(jī)(Inference Engine)。被訪問(wèn)的規(guī)則稱為ProductionMemory,被推理機(jī)進(jìn)行匹配的數(shù)據(jù)稱為WorkingMemory。Agenda管理被匹配規(guī)則的執(zhí)行。推理機(jī)所采用的模式匹配算法有下列幾種:Linear,RETE,Treat,Leaps。
【編輯推薦】
- JBoss企業(yè)中間件概述
- 配置JBoss4.0上MySQL數(shù)據(jù)庫(kù)
- JBoss配置mysql數(shù)據(jù)庫(kù)連接池
- Red Hat宣布JBoss開(kāi)放選擇應(yīng)用平臺(tái)戰(zhàn)略
- 在JBoss4.0上完成Oracle數(shù)據(jù)庫(kù)配置
本文題目:JBossRules的入門學(xué)習(xí)
當(dāng)前路徑:http://fisionsoft.com.cn/article/djdipog.html


咨詢
建站咨詢
