Drools 8 規(guī)則引擎:核心技術與實踐 朱智勝
定 價:99 元
- 作者:朱智勝
- 出版時間:2024/8/1
- ISBN:9787111761860
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP391.3
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
內(nèi)容介紹這是一本可幫助讀者迅速掌握Drools的精髓并將其應用于實際項目,為企業(yè)構(gòu)建智能決策系統(tǒng)提供可用經(jīng)驗和方法的專業(yè)技術書。全書以作者15年實戰(zhàn)經(jīng)驗為基礎,以作者在支付系統(tǒng)中的風控、反洗錢業(yè)務板塊實際運用Drools規(guī)則引擎并構(gòu)建一套完整的規(guī)則引擎體系為基礎,以CSDN上超36萬閱讀量的規(guī)則引擎專欄文章為參考,以近3.7萬人購買的收費視頻課程為藍本,從入門知識、底層原理、一線架構(gòu)到實戰(zhàn)項目深入解讀運用Drools 8規(guī)則引擎所有知識。無論你是程序開發(fā)人員,還是項目管理者或決策者,都能在本書中找到自己想要的內(nèi)容,比如提升規(guī)則引擎使用能力的方法、實現(xiàn)智能決策的技巧等。本書共分為12章,外加2個附錄。第1~5章 帶領大家初步了解Drools規(guī)則引擎,包括什么是規(guī)則引擎、什么是Drools規(guī)則引擎框架、規(guī)則引擎適用的業(yè)務場景以及規(guī)則引擎運行的基本原理,并通過實例介紹Drools規(guī)則引擎的使用以及常用的核心API。這部分為實踐和系統(tǒng)集成架構(gòu)提供理論和技術支持。第6~10章 站在業(yè)務系統(tǒng)架構(gòu)的視角解讀如何將Drools規(guī)則引擎引入項目,制定規(guī)則資源的管理方案,包括Drools決策管理系統(tǒng)架構(gòu)解讀、與Spring Boot集成、與Kogito云原生集成、轉(zhuǎn)轉(zhuǎn)圖書Drools實踐、自主設計Drools BRMS系統(tǒng)等經(jīng)典內(nèi)容。這部分可幫讀者從更多的視角認識和實踐Drools規(guī)則引擎,真正做到活學活用,學以致用。第11章和第12章 剖析Drools規(guī)則引擎的底層算法,介紹Drools與人工智能結(jié)合的可能性。這部分的目的是拓展讀者的視野,站在當下展望未來。附錄部分 通過KIE Server和WildFly的實戰(zhàn)應用,為讀者提供更多技術選型和實操方面的參考。
作者是10年系統(tǒng)架構(gòu)師,這本書是他在支付系統(tǒng)中的風控、反洗錢業(yè)務板塊實際運用Drools規(guī)則引擎并構(gòu)建一套完整的規(guī)則引擎體系總結(jié)得到的實戰(zhàn)精華,本書部分內(nèi)容曾以連載文章的方式分享在CSDN閱讀量超36萬,作者曾基于本書內(nèi)容錄制了視頻收費課程,至本書完稿時已有近3.7萬人購買。本書以指導實戰(zhàn)為目標,深入解讀Drools 8規(guī)則引擎的核心技術、原理、架構(gòu)和實戰(zhàn)項目,可助你實現(xiàn)規(guī)則引擎實戰(zhàn)能力提升、智能決策和業(yè)務流程優(yōu)化。
前 言
為什么要寫這本書
2015年我首次接觸Drools規(guī)則引擎,當時我在做一個金融系統(tǒng),需要使用規(guī)則引擎來處理大量反洗錢業(yè)務場景。由于場景的復雜性、多樣性和多變性,傳統(tǒng)的if-else判斷和簡單的腳本化處理已經(jīng)無法滿足業(yè)務需求,而市面上做得比較好的、開源的規(guī)則引擎非Drools莫屬。
但是,我在學習和使用的過程中遇到了一個難題:技術資料匱乏。當時,我搜遍整個網(wǎng)絡都無法找到相對全面的中文資料,唯一能夠提供完整參考資料的就是官方的英文文檔,即便如此,文檔中對語法的講解和使用案例的說明也不足。
于是,在隨后的學習和使用過程中,我做了一些事情,比如翻譯英文文檔、編寫實戰(zhàn)案例、補充官方資料的不足等,并在博客上發(fā)布了近百篇相關文章,同時建立了一些技術交流群,錄制了一些視頻教程。
如今,再次搜索相關資料時,我發(fā)現(xiàn)網(wǎng)絡上關于Drools規(guī)則引擎的資料越來越豐富了,而且許多文章和案例都是基于我的博客文章擴展而成的,這也算是我在這一領域所作的貢獻之一吧。
同時我也發(fā)現(xiàn),目前網(wǎng)絡上的文章和書籍,大多停留在基礎語法的使用和說明上,缺少深入的、系統(tǒng)的、貼近實戰(zhàn)的案例。于是,我便有了寫這本書的想法。
在寫這本書時,我更多的是希望為技術社區(qū)多做一些貢獻。在寫作的過程中,不少朋友提供了實戰(zhàn)案例和技術支持,在此表示感謝。寫作、分享、為技術社區(qū)做貢獻,這些都是非常有意義的事情,也希望更多的朋友以更豐富的形式為國內(nèi)技術的發(fā)展添磚加瓦。
讀者對象
本書涵蓋了Drools規(guī)則引擎的使用場景、實現(xiàn)原理、基礎語法、項目集成、實戰(zhàn)案例、算法等多方面的內(nèi)容,因此,理論上適合各類讀者群體閱讀:
有一定Java編程語言基礎的Drools規(guī)則引擎初學者。
想深入了解和實踐Drools規(guī)則引擎的開發(fā)者。
希望使用規(guī)則引擎對項目進行設計和重構(gòu)的架構(gòu)師。
對規(guī)則引擎感興趣的技術愛好者。
大專院校相關專業(yè)的學生。
本書特色
關于Drools規(guī)則引擎,目前市面上有兩類資料(文章和書籍):一類為基礎的語法講解,另一類為簡單的實戰(zhàn)案例。這些資料雖然能夠幫助初學者入門,但無論是語法的羅列還是簡單實戰(zhàn)案例的代碼展示,都無法讓初學者或系統(tǒng)架構(gòu)師從整體、系統(tǒng)、深入淺出的視角來學習和實踐。再加上Drools規(guī)則引擎自身有非常多的靈活組合方案,于是大家就面臨一個困境:語法學會了,簡單的案例也寫了,就是無法著手去實踐。
本書的重點(或者說是特色)便是帶領讀者解決此難題。本書站在初學者的視角,先從Drools規(guī)則引擎的使用場景、實現(xiàn)原理出發(fā),使讀者理解什么場景適合使用規(guī)則引擎,它是如何運作的;然后,基于Drools規(guī)則引擎的核心語法結(jié)構(gòu)、簡單示例,使讀者了解Drools的基本使用;接著,用大量篇幅來介紹各類組合案例以及如何將其集成到項目當中,其中既有我參與的項目,也有一些大廠項目。通過這樣的結(jié)構(gòu)設計,可幫讀者學會技術選型,掌握基礎語法,完成技術集成并學會設計適合自己項目的解決方案。最后,本書為想了解底層算法的讀者簡單介紹了規(guī)則引擎的算法實現(xiàn),以便讀者知其然也知其所以然。
本書的另外一個特色就是,在Drools框架的版本方面做到了最大的覆蓋,兼顧歷史版本和新版本的語法與解決方案。除已經(jīng)過時的Drools 5之外,本書詳細講解了Drools 6/7的基礎語法、組件支持(附錄部分)、解決方案,以及Drools 8的傳統(tǒng)語法、規(guī)則單元(新語法)、云原生實踐等,以最大限度地滿足讀者的實踐場景需要。
如何閱讀本書
本書分為3篇:
基礎篇(第1~5章),簡單介紹規(guī)則引擎的使用場景、實現(xiàn)原理,以及Drools規(guī)則引擎的基礎語法和核心API的使用。這部分旨在幫助讀者快速了解相關背景、基礎語法知識,并熟悉Drools規(guī)則引擎的代碼編寫。
高級篇(第6~10章),著重講解Drools規(guī)則引擎決策管理系統(tǒng)架構(gòu)、與Spring Boot的集成、與Kogito云原生的集成、轉(zhuǎn)轉(zhuǎn)圖書的Drools實戰(zhàn)案例、自建Drools BRMS實戰(zhàn)等。這部分為本書的重點,也是讀者在實踐中常常無從下手的地方。這部分以從整體到局部的案例場景向讀者演示如何進行實踐,以便讀者可以根據(jù)自己的業(yè)務場景選擇最合適的實踐方案。
拓展篇(第11和12章),簡單介紹Drools規(guī)則引擎的底層算法實現(xiàn)以及可與人工智能(AI)配合使用的場景,旨在拓寬讀者的視野和思路。
此外,附錄(附錄A和附錄B)是基于Drools 6/7提供的BRMS組件的兩種實戰(zhàn)方案,以便使用這兩個版本的讀者更好地進行實踐以及構(gòu)建自己的BRMS。
上述內(nèi)容按照遞進關系展開,但又相對獨立。初學者順序閱讀學習即可;已經(jīng)有一定經(jīng)驗的讀者,如果需要了解解決方案或?qū)崿F(xiàn)原理等,可以直接閱讀對應章節(jié)。
勘誤和支持
由于我的水平有限,編寫時間倉促,書中難免會出現(xiàn)一些錯誤或者不準確的地方,懇請讀者批評指正。為此,我特意創(chuàng)建了一個提供在線支持與應急方案的二級站點https://github.com/secbr/drools-book,書中所有案例源碼都可以從這里下載。讀者也可以將發(fā)現(xiàn)的書中錯誤發(fā)布在勘誤表頁面中。讀者遇到任何問題,可以訪問問答(Q
朱智勝
資深軟件開發(fā)者,系統(tǒng)架構(gòu)師,Drools規(guī)則引擎國內(nèi)早期的推廣者和技術分享者之一,暢銷書《Spring Boot技術內(nèi)幕:架構(gòu)設計與實現(xiàn)原理》與《深入以太坊智能合約開發(fā)》作者。具有15年軟件開發(fā)經(jīng)驗和10年支付領域工作經(jīng)驗。在規(guī)則引擎領域?qū)嵺`經(jīng)驗豐富,尤其是在Drools規(guī)則引擎的應用與研究上。曾主導在支付系統(tǒng)中風控、反洗錢業(yè)務板塊運用Drools規(guī)則引擎的項目,為公司業(yè)績提升做出卓越貢獻。曾主導構(gòu)建一套完整的規(guī)則引擎體系。
翻譯了大量Drools規(guī)則引擎相關文檔,撰寫了一系列Drools規(guī)則引擎博客文章,僅CSDN上Drools規(guī)則引擎專欄閱讀量就超過了36萬,Drools規(guī)則引擎收費視頻課程已有近3.7萬人購買學習。
CSDN博客專家,博客排名位列前100,全網(wǎng)博客訪問量超過1000萬。
目 錄 Contents
前言
基礎篇
第1章 規(guī)則引擎簡介2
1.1 什么是規(guī)則引擎2
1.2 為什么要使用規(guī)則引擎4
1.2.1 規(guī)則引擎的使用場景4
1.2.2 規(guī)則引擎的優(yōu)缺點5
1.2.3 舉例分析6
1.3 規(guī)則引擎的使用流程7
1.4 規(guī)則引擎家族9
1.4.1 Drools9
1.4.2 Ilog JRules9
1.4.3 Easy Rules9
1.4.4 Jess10
1.5 Drools規(guī)則引擎家族10
1.6 Drools規(guī)則引擎的主要版本12
第2章 規(guī)則引擎的架構(gòu)與原理14
2.1 基于規(guī)則引擎的業(yè)務系統(tǒng)架構(gòu)14
2.1.1 業(yè)務系統(tǒng)架構(gòu)的變化14
2.1.2 規(guī)則引擎的系統(tǒng)架構(gòu)17
2.2 規(guī)則引擎的實現(xiàn)原理18
2.2.1 推理引擎模型18
2.2.2 規(guī)則數(shù)據(jù)模型20
2.3 Drools中的基礎概念22
第3章 初識Drools規(guī)則引擎23
3.1 如何循序漸進地學習24
3.2 創(chuàng)建第一個Drools項目24
3.2.1 環(huán)境準備25
3.2.2 創(chuàng)建項目26
3.2.3 業(yè)務實現(xiàn)29
3.2.4 運行驗證31
3.3 項目結(jié)構(gòu)詳解32
3.3.1 事實對象32
3.3.2 規(guī)則文件33
3.3.3 kmodule.xml配置35
3.3.4 API使用35
3.4 Drools 8語法示例36
3.4.1 創(chuàng)建Drools 8項目36
3.4.2 業(yè)務實現(xiàn)37
第4章 核心語法示例詳解41
4.1 規(guī)則文件的結(jié)構(gòu)41
4.1.1 規(guī)則屬性41
4.1.2 判斷條件44
4.1.3 規(guī)則執(zhí)行44
4.2 規(guī)則語法綜合示例45
4.2.1 場景分析45
4.2.2 具體實現(xiàn)46
4.3 示例語法點分析51
4.3.1 規(guī)則的優(yōu)先級51
4.3.2 規(guī)則的分組52
4.3.3 內(nèi)置update函數(shù)53
4.3.4 no-loop防止規(guī)則死循環(huán)54
4.3.5 global全局變量55
4.3.6 function的使用56
4.4 Drools 8核心語法分析57
4.4.1 規(guī)則單元與傳統(tǒng)語法58
4.4.2 Drools 8示例實現(xiàn)58
第5章 Drools核心API詳解64
5.1 什么是KIE64
5.2 核心API之間的關系65
5.3 KieServices詳解67
5.4 KieContainer詳解68
5.5 KieModule詳解70
5.6 KieBase詳解72
5.7 KieRepository詳解74
5.8 KieFileSystem詳解76
5.9 KieScanner詳解77
5.10 KieSession和StatelessKieSession
詳解79
5.11 KieHelper詳解82
5.12 規(guī)則單元API詳解84
高級篇
第6章 Drools決策管理系統(tǒng)架構(gòu)88
6.1 什么是決策管理系統(tǒng)架構(gòu)88
6.2 Drools的決策資產(chǎn)分類89
6.2.1 DMN90
6.2.2 引導決策表90
6.2.3 電子表格決策表91
6.2.4 引導規(guī)則93
6.2.5 DRL規(guī)則93
6.2.6 PMML模型94
6.3 Drools的不同部署環(huán)境95
6.4 Drools項目存儲和構(gòu)建方案96
6.5 Drools項目部署方案97
6.6 Drools決策資產(chǎn)的執(zhí)行98
6.7 Drools決策管理架構(gòu)方案98
6.7.1 方案一:Drools 7官方推薦
組合99
6.7.2 方案二:IDE和內(nèi)置Java
應用組合101
6.7.3 方案三:自主研發(fā)決策資產(chǎn)
管理平臺102
第7章 Drools與Spring Boot
集成實戰(zhàn)104
7.1 與Spring Boot集成實戰(zhàn)案例104
7.1.1 實戰(zhàn)案例分析105
7.1.2 項目創(chuàng)建105
7.1.3 Drools集成配置107
7.1.4 業(yè)務邏輯實現(xiàn)109
7.1.5 功能驗證114
7.2 基于kmodule.xml配置實戰(zhàn)
案例115
7.3 動態(tài)加載規(guī)則實戰(zhàn)案例116
第8章 Drools基于Kogito云
原生實戰(zhàn)122
8.1 規(guī)則單元與Spring Boot集成123
8.1.1 Spring Boot項目創(chuàng)建123
8.1.2 規(guī)則單元集成配置124
8.1.3 基于規(guī)則單元的業(yè)務邏輯
改造125
8.2 規(guī)則單元與Kogito集成128
8.2.1 Kogito簡介128
8.2.2 項目創(chuàng)建129
8.2.3 業(yè)務改造與實現(xiàn)131
8.2.4 基本原理講解134
8.3 Kogito Tooling工具包136
第9章 轉(zhuǎn)轉(zhuǎn)圖書的Drools實戰(zhàn)139
9.1 什么是DMN139
9.1.1 DMN的基本組成139
9.1.2 DMN與DRL的區(qū)別140
9.1.3 DMN合規(guī)等級與Drools
支持140
9.2 項目技術選型141
9.3 業(yè)務場景簡介142
9.4 DMN建模工具選擇143
9.5 DMN建模實現(xiàn)145
9.6 Drools集成DMN151
9.6.1 DMN決策導出151
9.6.2 創(chuàng)建Drools項目152
9.6.3 編寫業(yè)務代碼153
第10章 自建Drools BRMS實戰(zhàn)155
10.1 Drools BRMS簡介155
10.2 自建BRMS的優(yōu)勢156
10.3 自建BRMS的基本步驟157
10.4 設計實戰(zhàn)158
10.4.1 包存儲設計158
10.4.2 基礎元素設計159
10.4.3 事實對象設計160
10.4.4 DRL規(guī)則設計161
10.4.5 DRL的編譯校驗163
10.4.6 構(gòu)建KJAR實現(xiàn)164
10.4.7 部署和運維168
拓展篇
第11章 Drools底層算法詳解172
11.1 Drools 算法演變172
11.2