在很多行业应用中比如银行、保险领域,业务规则往往非常复杂,并且规则处于不断更新变化中,而现有很多系统做法基本上都是将业务规则绑定在程序代码中。
主要存在的问题有以下几个方面:
1) 当业务规则变更时,对应的代码也得跟着更改,每次即使是小的变更都需要经历开发、测试验证上线等过程,变更成本比较大。
2) 长时间系统变得越来越难以维护。
3) 开发团队一般是由一个熟悉业务的BA(业务分析人员)和若干个熟悉技术的开发人员组成,开发人员对业务规则的把握能力远不及BA,但实际上却承担了将业务规则准确无误实现的重任。
4) 系统僵化,新需求插入困难。
5) 新需求上线周期较长。
解决方案
能否让我们的业务系统更灵活一点呢?
思路:将业务规则从技术实现中提取出来,实现技术和业务分离,开发人员处理 技术、业务分析人员定义业务规则,各自做自己所擅长的事情。
方案:目前已经有比较成熟的开源产品支持,这就是本文所要介绍的Drools,我们将业务规则定义在Database或者BRMS(Business Rule Management System)中,通过管理DB或者BRMS实现业务逻辑的动态改变。
适用情景
什么时候应该使用规则引擎?
虽然规则引擎能解决我们的许多问题,但我们还需要认真考虑一下规则引擎对我
们的项目本身是否是合适的。需要关注的点有:
我的应用程序有多复杂?
对于那些只是把数据从数据库中传入传出,并不做更多事情的应用程序,最好不要使用规则引擎。但是,当在Java中有一定量的商业逻辑处理的话,可以考虑Drools的使用。这是因为很多应用随着时间的推移越来越复杂,而Drools可以让你更轻松应对这一切。
我的应用的生命周期有多久?
如果我们应用的生命周期很短,也没有必要使用Drools,使用规则引擎将会在中长期得到好处。
我的应用需要改变吗?
这个答案一般情况下是肯定的,“这世界唯一不变的只有变化”,我们需求也是这样的,无论是在开发过程中或是在开发完成以后,Drools能从频繁变化的需求中获得好处。
drools语法说明
http://kingsun1980.iteye.com/blog/459272/
drools Accumulate函数介绍
http://hxpwork.iteye.com/blog/102540
分享到:
相关推荐
#### 四、Drools规则引擎介绍 Drools (JBoss Rules) 是一个开源的BRMS,它支持业务规则的定义、管理和执行。Drools的特点包括: - **易于使用:** 业务分析师和审查人员可以直接查看和修改规则。 - **标准化:** ...
Drools是Jboss公司旗下一款开源的规则引擎,它完整的实现了Rete算法;提供了强大的EclipsePlugin开发支持;通过使用其中的DSL(DomainSpecificLanguage),可以实现用自然语言方式来描述业务规则,使得业务分析人员也...
《Drools 指南-2018》是一份深入探讨 Drools 业务规则引擎的详尽资料。Drools 是一个开源的、基于Java的规则引擎,由JBOSS公司开发,现属于Red Hat公司的一部分。它提供了一种高效、灵活的方式来管理并执行复杂的...
#### 一、Drools介绍 Drools是一个业务规则管理系统(BRMS),它提供了完整的业务规则管理解决方案。Drools支持多种类型的业务规则,如决策表、流程定义语言等,并且允许用户以Drools脚本编写规则,这种脚本兼容部分...
---04-规则引擎概述(Drools介绍).mp4 03-规则引擎Drools-Drools入门案例 ---01-Drools入门案例(业务场景说明).mp4 ---02-Drools入门案例(开发实现_1).mp4 ---03-Drools入门案例(开发实现_2).mp4 ---04-...
**Drools介绍** Drools提供了基于DSL(Domain Specific Language)的规则定义,通过DRD(Decision Requirements Diagram)或DRL(Drools Rule Language)文件编写规则。规则可以包含条件(LHS,Left Hand Side)和...
【Drools规则引擎介绍】 Drools是一款由JBoss公司开发的开源规则引擎,它致力于将业务规则从复杂的业务逻辑代码中分离出来,实现业务规则的独立管理和灵活变更。Drools基于Rete算法,这是一套高效的规则匹配算法,...
### Drools介绍与通用用户指南:深入解析 #### 概述 Drools是一个开源的业务规则管理系统(BRMS)和工作流引擎,由JBoss团队维护,现为Red Hat的一部分。它支持复杂的事件处理(CEP)、业务流程管理(BPM)以及决策...
Drools是一个强大的业务规则管理系统,它属于Java领域中的规则引擎,主要用于实现复杂业务逻辑的自动化处理。在本文中,我们将深入探讨Drools的基本概念、核心功能、新特性以及其在不同应用场景中的实践。 首先,...
1. **Drools概述**:这部分将介绍Drools的基本概念,包括什么是规则引擎,为什么需要规则引擎,以及Drools在业务流程中的作用。它会阐述Drools如何帮助开发者将业务逻辑从核心应用程序中分离出来,实现灵活的、可...
**Drools 规则流的使用介绍** Drools 是一个开源的业务规则管理系统(BRMS),它基于Java平台,提供了强大的规则引擎和规则流(Workflow)功能。这篇文章将深入探讨Drools如何实现规则流,以及如何在实际项目中有效...
** Drools 概述 ** Drools 是一个开源的规则引擎,由 JBoss 社区开发并维护,属于 Red Hat 公司的产品。它基于 RETE 算法,用于处理复杂的业务规则,帮助企业快速实现规则驱动的应用。Drools 提供了一个强大的规则...
"Drools NET-3.0 guide.doc"很可能是一份Drools.NET的用户指南,详细介绍了如何在.NET环境中集成和使用Drools。它可能涵盖了规则定义、规则引擎的配置、规则的加载和执行,以及如何使用提供的示例进行实践。 **应用...
Drools开发最全中文版技术指南。 Drools开发最全中文版技术指南,介绍了常见的drools如何进行开发,注意是:中文版中文版中文版! drools 中文文档 规则引擎 drools6 drools7 Java
#### Drools介绍及其使用 **Drools**是JBoss的一个开源项目,提供了一个高度灵活和强大的业务规则管理系统(BRMS)。Drools支持多种规则语言,包括基于事实的语言(如DRL,Drools规则语言)和基于模板的语言。它还...
Drools7 之 HelloWorld 主要介绍了 Drools7 的基本使用方法,包括规则文件、规则属性和定时器和日历等内容。 规则是 Drools 的核心概念,主要包括规则文件、规则属性和定时器和日历等内容。规则文件是 Drools 的...
这一部分介绍了如何将 Drools 应用程序部署到 Drools Server 上,包括基本的部署流程、所需的配置文件以及如何确保应用程序正确启动和运行。 ##### 3.3 配置 - **REST/Camel 服务配置**:详细说明了如何配置 REST ...