1. 規(guī)則引擎介紹
1.1 傳統(tǒng)業(yè)務(wù)編程與聲明式編程
(1)傳統(tǒng)業(yè)務(wù)編程
(2) 聲明式編程
1.2 業(yè)務(wù)規(guī)則面臨的問題
- 業(yè)務(wù)規(guī)則欺缘、商業(yè)邏輯復(fù)雜
- 業(yè)務(wù)規(guī)則經(jīng)常變換
- 24小時(shí)不停機(jī)栋豫,實(shí)時(shí)修改商業(yè)規(guī)則
1.3 規(guī)則引擎解決的問題
- 聲明式編程 -- Rule Engine 允許你說"做什么(What)", 而不是"怎么去做(How to do)"
- Rule系統(tǒng)能解決非常,非常困難的難題
- 邏輯和數(shù)據(jù)分離
- 快捷和靈活
- 易于理解
- 可靠的性能:基于RETE算法
- 將需求轉(zhuǎn)化成規(guī)則
1.4 什么是規(guī)則引擎
- 是一種嵌入到應(yīng)用程序中的組件谚殊,實(shí)現(xiàn)了將業(yè)務(wù)決策從應(yīng)用程序中分離出來
- 規(guī)則引擎的核心就是獲取knowledge (知識)
- 應(yīng)用knowledge到特定的數(shù)據(jù)上(fact)
- 使用 "production rules(產(chǎn)生式規(guī)則)"
- IF <conditions> THEN <actions>
- Rule表達(dá)邏輯(任何邏輯都可以使用這種方式表達(dá))
1.5 什么是規(guī)則
- 一個(gè)rule 由conditions和actions組成丧鸯。當(dāng)所有的conditions匹配,rule可能"fire"
- conditions 即LHS (left hand side)
- Actions 即RHS (right hand side 或者 consequence)
- Rule操縱應(yīng)用程序中的數(shù)據(jù)(fact)
(1) 規(guī)則例子 -- 訂單折扣
1.6 術(shù)語
- Rule engines (比如drools)使用正向或者反向鏈(或者混合使用)
- 正向鏈從事實(shí)到結(jié)論的推理嫩絮。
- rule在LHS conditions匹配的時(shí)候執(zhí)行丛肢。
- Actions可以改變facts, 并可能導(dǎo)致新rule被fire。
- 反向鏈則是指 從假設(shè)剿干,即要證明的結(jié)論蜂怎,到事實(shí)的推理。
1.7 推理引擎
(1) 推理例子
(2) 正向鏈
1.8 何時(shí)使用規(guī)則引擎
- 當(dāng)沒有更讓人滿意的"傳統(tǒng)"方案
- 當(dāng)遇到以下問題:
-- 太復(fù)雜
-- 沒有已知的算法
-- 太易變
2. JBoss Drools介紹
2.1 什么是JBoss Drools
2.2 Drools組成模塊
2.3 Drools 5.x 特性
2.4 Drools IDE
IDEA 是否有對應(yīng)的Drools IDE插件 這個(gè)需要查資料置尔。
3. Drools開發(fā)環(huán)境搭建與創(chuàng)建樣例
用到的時(shí)候杠步,再直接google 搜索。。幽歼。