业务规则引擎-jboss Drools Expert

本文探讨了业务规则引擎在银行、保险等领域的应用价值,分析了规则引擎Drools的特点及其实现业务规则与技术实现分离的方法。通过对比同类产品,突出了Drools在灵活性、易用性和开放性方面的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

rule engine

目 录

1 现状分析

1.1 现状.

1.2 问题.

1.3 解决方案.

1.4 适用情景.

2 什么是规则引擎.

3 Drools简介.

4 竞争产品比较.

5 开发环境搭建.

6 创建HelloWorld程序.

7 规则语言.

1 现状分析

1.1 现状

在很多行业应用中比如银行、保险领域,业务规则往往非常复杂,并且规则处于不断更新变化中,而现有很多系统做法基本上都是将业务规则绑定在程序代码中。

1.2 问题

主要存在的问题有以下几个方面:

1) 当业务规则变更时,对应的代码也得跟着更改,每次即使是小的变更都需要经历开发、测试验证上线等过程,变更成本比较大。

2) 长时间系统变得越来越难以维护。

3) 开发团队一般是由一个熟悉业务的BA(业务分析人员)和若干个熟悉技术的开发人员组成,开发人员对业务规则的把握能力远不及BA,但实际上却承担了将业务规则准确无误实现的重任。

4) 系统僵化,新需求插入困难。

5) 新需求上线周期较长。

1.3 解决方案

能否让我们的业务系统更灵活一点呢?

思路:将业务规则从技术实现中提取出来,实现技术和业务分离,开发人员处理 技术、业务分析人员定义业务规则,各自做自己所擅长的事情。

方案:目前已经有比较成熟的开源产品支持,这就是本文所要介绍的Drools,我们将业务规则定义在Database或者BRMS(Business Rule Management System)中,通过管理DB或者BRMS实现业务逻辑的动态改变。

1.4 适用情景

什么时候应该使用规则引擎?

虽然规则引擎能解决我们的许多问题,但我们还需要认真考虑一下规则引擎对我

们的项目本身是否是合适的。需要关注的点有:

Ø 我的应用程序有多复杂?

对于那些只是把数据从数据库中传入传出,并不做更多事情的应用程序,最好不要使用规则引擎。但是,当在Java中有一定量的商业逻辑处理的话,可以考虑Drools的使用。这是因为很多应用随着时间的推移越来越复杂,而Drools可以让你更轻松应对这一切。

Ø 我的应用的生命周期有多久?

如果我们应用的生命周期很短,也没有必要使用Drools,使用规则引擎将会在中长期得到好处。

Ø 我的应用需要改变吗?

这个答案一般情况下是肯定的,“这世界唯一不变的只有变化”,我们需求也是这样的,无论是在开发过程中或是在开发完成以后,Drools能从频繁变化的需求中获得好处。

2 什么是规则引擎

规则引擎是基于规则的专家系统的核心部分,主要由三部分组成:规则库(Knowledge base)+Working Memory(Fact base)+推理机(规则引擎),规则引擎根据既定事实和知识库按照一定的算法执行推理逻辑得到正确的结果。

业界标准:jsr 94.
业务规则引擎(BRE,business rules engine)是一种软件组件,它允许非程序员添加或更改业务流程管理(BPM)系统中的业务逻辑。业务规则是一个描述企业政策或程序的说明。业务逻辑描述的是与数据库中执行规则的数据相关的一系列操作。
  业务规则引擎将业务规则执行代码与业务流程管理系统的其他代码分开。这样最终用户无需请求程序员的帮助就可以更改业务规则。在更改时,引擎会评估更改对系统中其他规则的影响,如果有冲突,就会提示用户。
  据作者Alex Berson和Larry Dubov所述,一个完整的业务规则引擎(BRE)包括以下内容:
业务规则库——一个用于存储业务用户所定义的业务规则的数据库。
业务规则编辑器——一个直观的用户界面,使业务用户能够定义、设计、记录和编辑业务规则。
报表组件——直观的用户界面,允许业务用户查询和报告现行规则。
规则引擎执行核心——执行这些规则的实际编程代码。

3 Drools简介

Drools 是一个基于Charles Forgy's的RETE算法的,易于访问企业策略、易于调整以及易于管理的开源业务规则引擎,符合业内标准,速度快、效率高。

业务分析师人员或审核人员可以利用它轻松查看业务规则,从而检验是否已编码的规则执行了所需的业务规则。

4 竞争产品比较

与Drools功能类似的同类开源产品主要有:OpenRules、OpenLexicon等,商业产品功能比较强也比较贵,这里不做比较,主要差别如下表:

 

Drools

OpenRules

OpenLexicon

规则表示方法

支持以下四种:

The Rule Language

Domain Specific Language Decision Tables

XML Rule Language

Decision Table

无规则语言,通过Web界面配置规则,并保存在数据库中

规则算法

RETE算法

不详

不祥

规则开发

Rule IDE(Eclipse插件)

Excel

XML

Excel

基于Web的配置界面

规则知识库

支持XML、Excel、BRMS

Excel

Database

易用性

通过Rule IDE,可以方便地编辑DRL和DSL文件

业务人员直接使用Decision Table估计还是有一定的难度

不太好用

开放性

非常开放

不开放

不开放

可拓展性

通过与J2EE技术结合,具有很强的拓展性。

不太好

很不好

JSR-94标准

支持

支持

不支持

成熟度

较低

比较新,不成熟

厂商背景

JBoss

小厂商

小厂商


如继续请参考:http://blog.youkuaiyun.com/pengrg166/article/details/5796565

8 在线资料

百度文库《Drools5规则引擎开发教程》

http://wenku.baidu.com/view/a6516373f242336c1eb95e7c.html


Drools and jBPM consist out of several projects:

Drools Guvnor (Business Rules Manager) 
Drools Expert (rule engine) 
jBPM 5jBPM 5 (process/workflow)
Drools Fusion (event processing/temporal reasoning)
Drools Planner (automated planning)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值