這是一部由淺入深、從理論到實踐、以實戰方式講解開源規則引擎Drools的原理、模型、使用方式、適用場景和案例實現的著作,得到了國內外眾多知名企業專家的一致好評。
本書的作者都就職于紅帽軟件,長期深耕開源中間件技術,具有深厚的產品知識及項目經驗,曾多次參與企業的IT系統建設和業務規則實現,為業務規則系統的建設者和使用者答疑解惑。本書正是對作者多年實戰經驗的總結,對國內外企業的規則系統建設具有很高的參考價值。
全書共14章,按照難易程度,可分為初級、中級和高級三個層次。
初級(第1~4章)
首先,總體介紹Drools的構成、多種使用方式、核心概念;其次,以Hello Drools為例讓讀者切身體驗*簡單規則的編寫過程,通過對示例工程的解讀,讓讀者理解Drools規則語言的基本語法與模式匹配;再次,對Drools規則語言的方方面面進行詳細講解;*后,深入講解Drools規則引擎的核心概念。
中級(第5~11章)
通過詳盡的步驟分別講解Drools基于主機、容器和云模式的環境搭建,介紹如何基于已搭建的環境進行規則的開發、測試與發布,并通過實戰讓讀者掌握多種規則編寫方式:向導式規則、規則模板、領域專用語言、規則表、規則流。
高級(第12~14章)
有針對性地講解Drools在流模式下的復雜事件處理原理、基于決策模型和表示法的規則編寫及Drools對機器學習的支持和使用,以幫助讀者拓寬思路,將Drools應用到更廣闊的領域。
目 錄 Contents
贊 譽
前 言
第1章 Drools概述 1
1.1 什么是規則引擎 1
1.2 Drools是什么 2
1.3 Drools的組件 2
1.4 Drools的使用方式 3
1.4.1 嵌入式 3
1.4.2 遠程調用模式 4
1.4.3 云提供模式 4
1.5 Drools的核心概念 5
1.5.1 規則語言 5
1.5.2 事實對象 6
1.5.3 決策引擎 7
1.6 社區的Drools與企業級的
Decision Manager 7
1.7 本章小結 8
第2章 Drools初體驗 9
2.1 環境準備 9
2.2 hello drools 9
2.3 規則語法解讀 11
2.4 Drools的模式匹配 11
2.5 規則工程解讀 13
2.6 本章小結 15
第3章 Drools規則語言 16
3.1 語法說明 17
3.1.1 包定義 17
3.1.2 依賴導入 17
3.1.3 函數 18
3.1.4 查詢 18
3.1.5 類型聲明 19
3.1.6 全局變量 21
3.1.7 規則屬性 21
3.1.8 規則的條件 22
3.1.9 規則的動作 25
3.1.10 注釋 29
3.1.11 錯誤提示 30
3.2 實戰:斐波那契數列 32
3.2.1 功能說明 32
3.2.2 規則實現 32
3.2.3 工程解讀 33
3.2.4 規則解讀 35
3.3 本章小結 36
第4章 Drools決策引擎 37
4.1 會話 37
4.1.1 無狀態會話 38
4.1.2 有狀態會話 39
4.1.3 會話池 41
4.2 推理與真理 42
4.3 規則執行控制 43
4.3.1 優先級 44
4.3.2 議程組 45
4.3.3 激活組 46
4.3.4 運行模式 46
4.3.5 事實傳播模式 47
4.3.6 議程評估過濾??器 48
4.3.7 規則單元 48
4.4 Phreak算法 51
4.4.1 延遲評估 51
4.4.2 面向集合的傳播 52
4.4.3 網絡分段 52
4.5 查詢事實數據 53
4.6 事件偵聽器和日志 54
4.6.1 事件偵聽器 54
4.6.2 日志 55
4.7 性能調優項 55
4.8 實戰:費用分攤 57
4.8.1 功能說明 57
4.8.2 規則實現 58
4.8.3 工程解讀 59
4.8.4 規則解讀 61
4.9 本章小結 65
第5章 遠程調用模式 66
5.1 基于主機的Drools環境搭建 66
5.1.1 獲取介質 66
5.1.2 安裝 69
5.2 基于容器的Drools環境搭建 74
5.2.1 環境準備 74
5.2.2 安裝 75
5.3 實戰:將軍排隊 79
5.3.1 功能說明 79
5.3.2 規則實現 79
5.3.3 工程解讀 84
5.3.4 規則解讀 86
5.4 本章小結 88
第6章 云提供模式 89
6.1 環境準備 89
6.1.1 獲取介質 89
6.1.2 安裝OpenShift Local 90
6.1.3 安裝Business Automation Operator 95
6.1.4 安裝業務中心與決策
服務器 97
6.1.5 驗證安裝 99
6.2 實戰:東西在里面嗎 101
6.2.1 功能說明 101
6.2.2 規則實現 101
6.2.3 驗證規則 110
6.3 本章小結 113
第7章 規則的測試 114
7.1 測試場景設計器 114
7.1.1 全局參數配置 115
7.1.2 數據對象別名 115
7.1.3 表達式語法 115
7.2 “東西在里面嗎”實戰的測試 116
7.2.1 創建測試場景 116
7.2.2 定義測試場景數據結構 117
7.2.3 添加用例數據并測試 122
7.3 “將軍排隊”實戰的測試 125
7.3.1 創建測試場景與用例 125
7.3.2 編寫背景數據并測試 126
7.4 本章小結 128
第8章 向導式規則 129
8.1 向導式規則設計器 129
8.1.1 數據對象 129
8.1.2 設計規則 130
8.2 實戰:商品促銷 131
8.2.1 功能說明 131
8.2.2 規則實現 131
8.2.3 驗證規則 148
8.3 本章小結 155
第9章 向導式規則模板與領域
專用語言 156
9.1 向導式規則模板 156
9.1.1 創建規則模板 156
9.1.2 定義數據表 157
9.2 領域專用語言 158
9.3 實戰:積分換禮品 159
9.3.1 功能說明 159
9.3.2 規則實現 160
9.3.3 驗證規則 167
9.3.4 DSL規則實現 168
9.3.5 驗證DSL規則 171
9.4 本章小結 171
第10章 規則表 172
10.1 向導式規則表 172
10.1.1 創建向導式規則表 172
10.1.2 導入數據對象類型 174
10.1.3 添加模式匹配事實 175
10.1.4 添加約束 176
10.1.5 添加更新動作 176
10.1.6 添加插入動作 177
10.1.7 選擇展開列 178
10.1.8 添加規則表數據 179
10.2 電子表格規則表 179
10.3 實戰:電腦推薦 181
10.3.1 功能說明 181
10.3.2 規則實現 181
10.3.3 驗證規則 193
10.3.4 轉換為電子表格規則表 194
10.4 本章小結 198
第11章 規則流 199
11.1 什么是規則流 199
11.2 Drools中的規則流 199
11.3 實戰:貸款申請 202
11.3.1 功能說明 202
11.3.2 規則流實現 203
11.3.3 驗證規則流 240
11.4 本章小結 245
第12章 復雜事件處理 246
12.1 復雜事件處理中的事件 246
12.2 將事實數據定義為事件 247
12.3 事件相關的元數據注解 247
12.4 事件處理模式 249
12.4.1 云模式 249
12.4.2 流模式 250
12.4.3 反向匹配 250
12.5 事實屬性更改的評估策略與
偵聽 251
12.6 事件的時間運算符 253
12.6.1 before和after 254
12.6.2 coincides 254
12.6.3 during和includes 255
12.6.4 finishes和finished by 256
12.6.5 meets和met by 256
12.6.6 overlaps和overlapped by 257
12.6.7 starts和started by 257
12.7 會話時鐘 258
12.8 事件流和入口點 259
12.9 滑動窗口 260
12.10 事件的內存管理 261
12.11 實戰:行情提醒 262
12.11.1 功能說明 262
12.11.2 規則實現 262
12.11.3 工程解讀 263
12.11.4 規則解讀 266
12.12 本章小結 267
第13章 決策模型和表示法 268
13.1 DMN的實現級別 268
13.2 決策需求圖 269
13.3 規則表達式 270
13.3.1 數據類型 270
13.3.2 條件語句 271
13.3.3 循環語句 271
13.3.4 范圍語句 272
13.3.5 內置函數 272
13.3.6 變量和函數名 283
13.4 盒裝表達式 283
13.4.1 決策表 283
13.4.2 字面表達式 284
13.4.3 上下文 285
13.4.4 關系 285
13.4.5 函數 285
13.4.6 調用 286
13.4.7 列表 286
13.5 實戰:網購圖書 287
13.5.1 功能說明 287
13.5.2 規則實現 287
13.5.3 驗證規則 301
13.6 本章小結 304
第14章 PMML與機器學習 305
14.1 PMML 305
14.2 PMML的實現級別 308
14.3 PMML與機器學習的關系 309
14.4 實戰:申請設備 310
14.4.1 功能說明 310
14.4.2 規則實現 311
14.4.3 驗證規則 322
14.5 本章小結 323