1. 规则引擎介绍
1.1 传统业务编程与声明式编程
(1)传统业务编程
(2) 声明式编程
1.2 业务规则面临的问题
- 业务规则、商业逻辑复杂
- 业务规则经常变换
- 24小时不停机,实时修改商业规则
1.3 规则引擎解决的问题
- 声明式编程 -- Rule Engine 允许你说"做什么(What)", 而不是"怎么去做(How to do)"
- Rule系统能解决非常,非常困难的难题
- 逻辑和数据分离
- 快捷和灵活
- 易于理解
- 可靠的性能:基于RETE算法
- 将需求转化成规则
1.4 什么是规则引擎
- 是一种嵌入到应用程序中的组件,实现了将业务决策从应用程序中分离出来
- 规则引擎的核心就是获取knowledge (知识)
- 应用knowledge到特定的数据上(fact)
- 使用 "production rules(产生式规则)"
- IF <conditions> THEN <actions>
- Rule表达逻辑(任何逻辑都可以使用这种方式表达)
1.5 什么是规则
- 一个rule 由conditions和actions组成。当所有的conditions匹配,rule可能"fire"
- conditions 即LHS (left hand side)
- Actions 即RHS (right hand side 或者 consequence)
- Rule操纵应用程序中的数据(fact)
(1) 规则例子 -- 订单折扣
1.6 术语
- Rule engines (比如drools)使用正向或者反向链(或者混合使用)
- 正向链从事实到结论的推理。
- rule在LHS conditions匹配的时候执行。
- Actions可以改变facts, 并可能导致新rule被fire。
- 反向链则是指 从假设,即要证明的结论,到事实的推理。
1.7 推理引擎
(1) 推理例子
(2) 正向链
1.8 何时使用规则引擎
- 当没有更让人满意的"传统"方案
- 当遇到以下问题:
-- 太复杂
-- 没有已知的算法
-- 太易变
2. JBoss Drools介绍
2.1 什么是JBoss Drools
2.2 Drools组成模块
2.3 Drools 5.x 特性
2.4 Drools IDE
IDEA 是否有对应的Drools IDE插件 这个需要查资料。
3. Drools开发环境搭建与创建样例
用到的时候,再直接google 搜索。。。