基于规则和规则引擎的系统
2012-05-16 08:08
239 查看
具体示例见: 《Drools5.1规则流示例》
做了一段时间的关于基于规则和规则引擎的应用开发工作, 现在将一些心得体会写出来供大家参考。
1. 逻辑表达与执行的分离。这是根本性的东西。业务逻辑的实现可以细分为业务逻辑的表达和执行。 在传统代码中,表达与执行是混在一起的,均是由代码来表达和执行;而在基于规则和规则引擎的系统中,规则用于逻辑表达,引擎进行执行。逻辑表达与执行分离了。
2. 基于规则的系统中, 系统的正确性取决于规则的正确性。规则就像一系列表达“KNOW-HOW”的小片, 通过将规则片合理的组合起来(规则流的作用),从而表达完整的计算逻辑。规则、规则流和规则引擎是核心概念。
3.
动态可配置的计算逻辑,具备固有的可扩展性。由于计算逻辑通过规则来表达和实现,而规则是动态可配置的,这就使得计算逻辑是动态可配置的。这对于复杂多变、要求快速部署的现代商业应用是非常具有潜力和优势的。而传统代码通常是静态的逻辑,通过设计模式技术来获得一定的可扩展性,对人的设计思维有很大的要求。
4.
规则比代码更具可读性。 如果将规则生成和管理系统做到更人性化,就可以让用户通过编写规则和规则流来创建应用逻辑了。
5. 规则具备自解释性。可以跟踪规则的执行, 清晰地看到最终计算结果的产生过程。而在传统代码中,虽然能够打印出一些语句,但是受程序结构限制, 通常仅限于程序员来调试。
6. 计算组件的复用性。 如前所述, 规则用于表达, 引擎用于执行。 业务逻辑的多变性通常体现在表达上,而不是执行上。 因此, 表达部分是多变的,而执行部分是相对稳定的。规则引擎是计算组件中的可复用部分。
7.
策略与机制的分离。在软件设计的角度来说,这也体现了策略与机制的分离。 规则表达是策略, 引擎是机制。 策略可变,机制稳定。
总而言之, 基于规则和规则引擎的系统确实是一种非常具备潜力的新的计算方案。
做了一段时间的关于基于规则和规则引擎的应用开发工作, 现在将一些心得体会写出来供大家参考。
1. 逻辑表达与执行的分离。这是根本性的东西。业务逻辑的实现可以细分为业务逻辑的表达和执行。 在传统代码中,表达与执行是混在一起的,均是由代码来表达和执行;而在基于规则和规则引擎的系统中,规则用于逻辑表达,引擎进行执行。逻辑表达与执行分离了。
2. 基于规则的系统中, 系统的正确性取决于规则的正确性。规则就像一系列表达“KNOW-HOW”的小片, 通过将规则片合理的组合起来(规则流的作用),从而表达完整的计算逻辑。规则、规则流和规则引擎是核心概念。
3.
动态可配置的计算逻辑,具备固有的可扩展性。由于计算逻辑通过规则来表达和实现,而规则是动态可配置的,这就使得计算逻辑是动态可配置的。这对于复杂多变、要求快速部署的现代商业应用是非常具有潜力和优势的。而传统代码通常是静态的逻辑,通过设计模式技术来获得一定的可扩展性,对人的设计思维有很大的要求。
4.
规则比代码更具可读性。 如果将规则生成和管理系统做到更人性化,就可以让用户通过编写规则和规则流来创建应用逻辑了。
5. 规则具备自解释性。可以跟踪规则的执行, 清晰地看到最终计算结果的产生过程。而在传统代码中,虽然能够打印出一些语句,但是受程序结构限制, 通常仅限于程序员来调试。
6. 计算组件的复用性。 如前所述, 规则用于表达, 引擎用于执行。 业务逻辑的多变性通常体现在表达上,而不是执行上。 因此, 表达部分是多变的,而执行部分是相对稳定的。规则引擎是计算组件中的可复用部分。
7.
策略与机制的分离。在软件设计的角度来说,这也体现了策略与机制的分离。 规则表达是策略, 引擎是机制。 策略可变,机制稳定。
总而言之, 基于规则和规则引擎的系统确实是一种非常具备潜力的新的计算方案。
相关文章推荐
- 基于规则和规则引擎的系统
- 基于规则引擎的电信CRM系统架构研究
- 基于规则系统组织业务规则
- Web服务搜索与执行引擎(四)——基于(三)的系统架构设计
- 基于文件数据库的规则引擎处理海量高复杂度数据(二,解决方案)
- 以Drools5.5为例说明“规则引擎在业务系统中应用”---规则引擎与业务系统交互
- 基于规则系统组织业务规则
- Web服务搜索与执行引擎(四)——基于(三)的系统架构设计
- 外部系统调用规则引擎接口
- Web服务搜索与执行引擎(四)——基于(三)的系统架构设计
- 近期工作:规则引擎/专家系统
- 基于Spring的简单规则引擎设计
- 技术 | TDM系统排程规则引擎
- Golang 基于chrome浏览器语音识别web演示系统WebHTK开发之 引擎篇
- 在智能交通系统中基于 Drools BRMS 实现业务规则动态管理
- 【机器学习之推荐系统实战】建立基于GitHub库的推荐引擎
- 基于storm引擎的虫洞系统
- 基于规则的专家系统
- 高可用高性能系统(五)基于规则的请求路由
- 使用规则引擎建立电力调度运行安全分析系统学习