猜你喜欢
实战Drools规则引擎

实战Drools规则引擎

书籍作者:关泽发 ISBN:9787111717362
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:9449
创建日期:2023-06-01 发布日期:2023-06-01
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

这是一部由浅入深、从理论到实践、以实战方式讲解开源规则引擎Drools的原理、模型、使用方式、适用场景和案例实现的著作,得到了国内外众多知名企业专家的一致好评。
本书的作者都就职于红帽软件,长期深耕开源中间件技术,具有深厚的产品知识及项目经验,曾多次参与企业的IT系统建设和业务规则实现,为业务规则系统的建设者和使用者答疑解惑。本书正是对作者多年实战经验的总结,对国内外企业的规则系统建设具有很高的参考价值。
全书共14章,按照难易程度,可分为初级、中级和高级三个层次。
初级(第1~4章)
首先,总体介绍Drools的构成、多种使用方式、核心概念;其次,以Hello Drools为例让读者切身体验*简单规则的编写过程,通过对示例工程的解读,让读者理解Drools规则语言的基本语法与模式匹配;再次,对Drools规则语言的方方面面进行详细讲解;最后,深入讲解Drools规则引擎的核心概念。
中级(第5~11章)
通过详尽的步骤分别讲解Drools基于主机、容器和云模式的环境搭建,介绍如何基于已搭建的环境进行规则的开发、测试与发布,并通过实战让读者掌握多种规则编写方式:向导式规则、规则模板、领域专用语言、规则表、规则流。
高级(第12~14章)
有针对性地讲解Drools在流模式下的复杂事件处理原理、基于决策模型和表示法的规则编写及Drools对机器学习的支持和使用,以帮助读者拓宽思路,将Drools应用到更广阔的领域。

作者简介
关泽发
红帽软件(北京)有限公司资深解决方案架构师,拥有20余年IT从业经验,目前专注于云原生微服务系统架构设计与开发。曾就职于AWS应用现代化团队、红帽服务交付团队、投资银行开发团队,熟悉公有云和私有云生态,擅长企业业务系统的设计、开发与交付。通过微信公众号“撞墙秀”分享了许多项目实践经验与心得。
陈楚晖
红帽软件(北京)有限公司首席架构师、开源技术专家,专注于云计算、容器技术、开源中间件、规则引擎的推广。曾就职于甲骨文中间件团队、银行业务开发团队,拥有20余年中间件及应用开发经验,以及丰富的金融企业、政府机构、电信运营商等的应用上云、DevOps、PaaS、系统集成及IT项目管理经验,熟悉开源软件的软件开发、架构设计、系统运维等。
编辑推荐
适读人群 :程序员、架构师等
(1)作者背景资深:Red Hat官方资深架构师撰写,致力于开源中间件和规则引擎的推广。
(2)作者经验丰富:作者有20余年IT行业从业经验,在系统架构、中间件、规则引擎领域有深厚积累。
(3)内容系统全面:一本书讲透Drools的使用、各种规则的编写、开发、测试、发布等。
(4)注重工程实践:基于主机、容器和云等生产环境,详细讲解规则引擎的环境搭建以及开发、测试、发布等。
(5)包含大量案例:书中包含大量尽心设计的案例,均可直接用于生产,并附源码。
前言
Preface 前  言
为何要写本书
本书的两位作者都是资深的IT从业者,共同经历并见证了中国IT行业的飞速发展历程:应用从单机版应用发展到基于客户端/服务器(C/S)模式的应用,再发展到基于浏览器的Web应用和移动端应用;企业的IT系统从功能单一的专有系统发展到具备集成能力的复合系统,再发展到具备跨公司能力的SaaS系统。企业的IT发展是由市场环境和企业业务共同驱动的,市场环境瞬息万变,能否以足够小的开发量来适应市场变化是衡量IT系统优劣的一项重要标准。
本书的两位作者目前均就职于红帽软件,曾多次合作参与企业的IT系统建设工作,深刻体会到企业IT系统的复杂度很高,系统中的业务规则数量与日俱增,如何实现、管理并有效利用这些业务规则是IT建设者不可回避的问题。企业的业务策略不是静态的,而是会根据市场变化不断调整,与之关联的业务规则也将随之改变,故而有必要在实现和修改业务规则的同时保持其灵活性,从而使企业在激烈的竞争中赢得一席之地。业务规则引擎正是这种灵活性需求驱动下的产物,它将业务规则从程序代码中分离开来,用业务人员可理解的语言描述规则,让IT专家和业务人员能共同协作完成规则的设计与实现。我们曾多次与企业IT规则建设者讨论、实践企业业务系统的规则,为规则的建设者和使用者答疑解惑,在这个过程中也了解到国内介绍业务规则的图书少之又少。为了让IT建设者在业务规则方面少走弯路,我们决定把自己的实践经验总结成书,由浅入深,从理论到实战,全面讲解开源规则引擎Drools的原理、使用方式和现实场景实践。
本书从规则引擎的起源开始,对规则和Drools进行简要介绍;再从Hello Drools开始让读者浸入规则中,逐步掌握规则的语言、决策引擎的原理、Drools的多种部署与使用方式、规则的编写、规则的测试;最后引导读者学习Drools的中高级用法,如规则表、规则流、复杂事件处理、决策模型和表示法、预测模型标记语言与机器学习。

读者对象
本书适合作为IT系统中规则的建设者和使用者的规则入门与使用的参考资料,也适合作为Drools爱好者进行知识拓展的方向指导。
本书特色
本书书如其名,以实战为主,演示了大量基于现实场景的项目的实现过程。
本书适当介绍部分理论知识,以让读者能了解Drools,进而顺利完成实战演练。
本书提供了大量的实战示例,这些示例没有版权限制,读者可随意在自己的系统中使用,不需要通知作者,也不需要声明出处。
本书不是Drools的使用指南,不适合作为指导手册使用。

如何阅读本书
本书共14章,按照Drools的使用难易程度组织,可分为初级、中级和高级三个层次。
初级(第1 ~ 4章)
首先,总体介绍Drools的构成、多种使用方式、核心概念;其次,以Hello Drools为例让读者切身体验最简单规则的编写过程,通过对示例的解读,让读者理解Drools规则语言的基本语法与模式匹配;再次,对Drools规则语言的方方面面进行详细讲解;最后,深入讲解Drools规则引擎的核心概念,让读者知其然并知其所以然。
中级(第5 ~ 11章)
通过详尽的步骤讲解Drools基于主机、容器和云模式的环境搭建,介绍如何基于已搭建的环境进行规则的开发、测试与发布,并通过实战让读者掌握多种规则编写方式:向导式规则、规则模板、领域专用语言、规则表、规则流。
高级(第12 ~ 14章)
有针对性地讲解Drools在流模式下的复杂事件处理原理、基于决策模型和表示法的规则编写及Drools对机器学习的支持和使用,以帮助读者拓宽思路,将Drools应用到更广阔的
领域。

在线获取资料
我们在写作过程中参考了红帽的官方技术文档和Drools社区的官方指导文档。如果你在阅读过程中有疑问,可以访问如下网站获取相关内容。
https://access.redhat.com/documentation/en-us/red_hat_decision_manager/7.11
https://docs.drools.org/7.71.0.Final/drools-docs/html_single/index.html
https://kiegroup.github.io/dmn-feel-handbook/#dmn-feel-handbook

勘误与支持
限于水平,再加上技术的更新和迭代,书中难免会存在一些错误或不准确的地方,你可以通过关泽发的微信公众号“撞墙秀”(jonkey-show)向我们反馈。书中的全部源文件可以从GitHub上获取,地址为https://github.com/JonkeyGuan/drools-in-action.git。
目录
目  录 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