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。
致谢
感谢楚晖在与我合著这本书的过程中所付出的努力,正是这份努力促成了本书的顺利面市。
感谢家人对我的支持与鼓励,让我能在业余时间全身心地投入到本书的写作中。
谨以此书献给企业规则的关注者、建设者和使用者!
关泽发