欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

JBoss Rules 1

系統 1929 0

JBoss Rules 學習(一): 什么是Rule

??????? 學習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中,規則是如何被表示的

Rules

一條規則是對商業知識的編碼。一條規則有 attributes ,一個 Left Hand Side LHS )和一個 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


規則的
LHS 由一個或多個條件( Conditions )組成。當所有的條件( Conditions )都滿足并為真時, RHS 將被執行。 RHS 被稱為結果( Consequence )。 LHS RHS 類似于:

if ?(? < LHS > ?)?{
????
< RHS >
}

?

規則可以通過 package 關鍵字同一個命名空間( namespace )相關聯;其他的規則引擎可能稱此為規則集( Rule Set )。一個 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

?

?

對新的數據和被修改的數據進行規則的匹配稱為模式匹配( Pattern Matching )。進行匹配的引擎稱為推理機( Inference Engine )。被訪問的規則稱為 ProductionMemory ,被推理機進行匹配的數據稱為 WorkingMemory Agenda 管理被匹配規則的執行。推理機所采用的模式匹配算法有下列幾種: Linear RETE Treat Leaps

Drools 采用了 RETE Leaps 的實現。 Drools RETE 實現被稱為 ReteOO ,表示 Drools Rete 算法進行了加強和優化的實現。

JBoss Rules 1

一條規則的 LHS Conditional Element 和域約束( Field Constraints )。下面的例子顯示了對一個 Cheese Fact 使用了字面域約束( Literal Field Constraint

rule? " Cheddar?Cheese "
????when
????????Cheese(?type?
== ? " cheddar " ?)
????then
????????System.out.println(?
" cheddar " ?);
end

上面的這個例子類似于:

public ? void ?cheddarCheese(Cheese?cheese)?{
????
if ?(?cheese.getType().equals( " cheddar " )?{
????????System.out.println(?
" cheddar " ?);
????}
}

<!--[if !vml]--> <!--[endif]-->

規則引擎實現了數據同邏輯的完全解耦。規則并不能被直接調用,因為它們不是方法或函數,規則的激發是對 WorkingMemory 中數據變化的響應。結果( Consequence ,即 RHS )作為 LHS events 完全匹配的 Listener

rules 被加入 Productioin Memory 后, rules 被規則引擎用 RETE 算法分解成一個圖:

JBoss Rules 1

Facts assert 進入 WorkingMemory 中后,規則引擎找到匹配的 ObjectTypeNode ,然后將此 Fact 傳播到下一個節點。 ObjectTypeNode 擁有一塊內存來保存所有匹配的 facts 。在我們的例子中,下一個節點是一個域約束( Field Constraint ), type = = “cheddar” 。如果某個 Cheese 對象的類型不是“ cheddar ”,這個 fact 將不會被傳播到網絡的下一個節點。如果是“ cheddar ”類型,它將被記錄到 AlphaNode 的內存中,并傳播到網絡的下一個節點。 AlphaNode 是古典 RETE 術語,它是一個單輸入 / 單輸出的節點。最后通過 AlphaNode fact 被傳播到 Terminal Node Terminal Node 是最終節點,到此我們說這條規則被完全匹配,并準備激發。

當一條規則被完全匹配,它并沒有立刻被激發(在 RETE 中是這樣,但在 Leaps 中它會立刻被激發)。這條規則和與其匹配的 facts 將激活被放入 Agenda ,由 Agenda 來負責安排激發 Activations (指的是 rule + the matched facts )。

?

下面的圖很清楚的說明了 Drools 規則引擎的執行過程:

?

JBoss Rules 1

數據被 assert WorkingMemory 后,和 RuleBase 中的 rule 進行匹配(確切的說應該是 rule LHS ),如果匹配成功這條 rule 連同和它匹配的數據(此時就叫做 Activation )一起被放入 Agenda ,等待 Agenda 來負責安排激發 Activation (其實就是執行 rule RHS ),上圖中的菱形部分就是在 Agenda 中來執行的, Agenda 就會根據沖突解決策略來安排 Activation 的執行順序。

JBoss Rules 1


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 青娱乐在线视频观看 | 久久久久久久99精品免费观看 | 久久免费看少妇高潮A片JA | 亚洲国产一区二区三区四区五区 | 日本黄页网站免费 | 国产一卡2卡三卡4卡免费网站 | 午夜视频吧 | 日日干夜夜操 | 一区二区精品在线 | 日本理伦片午夜理伦片 | 91精品国产综合久久婷婷香蕉 | 激情五月婷婷综合网 | 精精国产xxxx视频在线 | 夜夜骑狠狠干 | 亚洲综合久久久久久888 | 在线观看的av | 特黄免费 | 欧美午夜一区二区三区免费大片 | 国产欧美日韩在线不卡第一页 | 国产精品久久久久久无遮挡 | 啪啪乐视频 | 久久亚洲国产成人亚 | 日本高清天码一区在线播放 | 九九99国产精品视频 | 亚洲狠狠爱 | 欧美黄色一级 | 亚洲成人精品在线 | 特级毛片8级毛片免费观看 亚洲精品不卡 | 97一本大道波多野吉衣 | 欧美乱强性伦xxxxx | 色橹橹欧美在线观看视频高清免费 | 黄视频网站免费看 | 亚洲综合在线视频 | 国精品日韩欧美一区二区三区 | 亚洲国产精品第一区二区三区 | 国产99免费 | 亚洲国产精品成 | 国产精品永久免费视频 | 国产午夜精品视频免费不卡69堂 | 国产免费一区二区三区免费视频 | 国产午夜亚洲精品一区 |