1. 引言
什么是规则引擎
一个业务规则包含一组条件和在此条件下执行的操作,它们表示业务规则应用程序的一段业务逻辑。业务规则通常应该由业务分析人员和策略管理者开发和修改,但有些复杂的业务规则也可以由技术人员使用面向对象的技术语言或脚本来定制。业务规则的理论基础是:设置一个或多个条件,当满足这些条件时会触发一个或多个操作。
规则引擎(rule engine)是指将复杂的业务逻辑抽象成规则,然后使用特定的算法(比如Rete)对规则进行求值等操作。简单点说,规则引擎就是实现复杂业务逻辑的框架。
为什么要用规则引擎
在维护和更新项目的业务逻辑代码时,大家深有体会:
- 因编码风格的问题,不同人有不同的代码实现,而造成代码理解的困难;
- 每一次业务逻辑的更改会导致项目的重编译;
- 为了能实时响应更改,而不得不做服务重启的无缝衔接
从上面的需求出发,规则引擎应满足如下特点:
- 脚本化,允许用类Python的脚本语言或DSL来描述规则;
- 动态化,实时动态地加载规则脚本,规则的修改能实时地反馈于服务系统ÿ