您的位置:首页 > 其它

Drools的简要概述

2017-03-22 17:43 351 查看
Drools(JBoss Rules)具有一个易于访问企业策略、易于调整以及易于管理的开源业务规则引擎,符合业内标准,速度快、效率高。业务分析师或审核人员可以利用它轻松查看业务规则,从而检验是否已编码的规则执行了所需的业务规则。

JBoss Rules 的前身是Codehaus的一个开源项目叫Drools。最近被纳入JBoss门下,更名为JBoss
Rules,成为了JBoss应用服务器的规则引擎。

Drools是为Java量身定制的基于Charles Forgy的RETE算法的规则引擎的实现。具有了OO接口的RETE,使得商业规则有了更自然的表达。

Drools的简要概述

Drools是一款基于 Java的开源规则引擎,以将复杂多变的规则从硬编码中解放出来,以规则脚本的形式存放在文件中,使得规则的变更不需要修正代码重启机器就可以立即在线上环境生效

     规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策,从而给编程带来了极大的方便。

下图就是引用了规则引擎后的效果:



开始我们Drools规则引擎之旅

小编是一经验尚浅的java工程师,有写的不得当的地方,还请大家海涵。小编研究的版本是Drools6.4版本,目前看的最新的版本是Drools6.5,上面做了一些优化,在最后小编会简单的在文中说明一下的。

 

Drools新特性   

Drools推出了一套新的基于KIE(Knowledge Is Everything 知识就是一切)概念的API,其目的是将之前版本中对规则引擎繁琐的调用和加载过程加以简化。 

Drools6给我的最大不同就是把rules打包成jar,使用端通过kie-ci来动态从maven repo中获取指定rules jar版本,虽然和maven有紧耦合,简化以及清晰了rules的使用和动态升级,例如:系统建立2个项目:一个Drools项目来实现规则,验收规则,生成jar包,另外一个就是真正要用规则的项目,直接通过引入不同版本的jar包实现规则动态升级。

引入业务规则技术的目的

对系统的使用人员

把业务策略(规则)的创建、修改和维护的权利交给业务经理
提高业务灵活性
加强业务处理的透明度,业务规则可以被管理
减少对IT人员的依赖程度
避免将来升级的风险
对IT开发人员

简化系统架构,优化应用
提高系统的可维护性和维护成本
方便系统的整合
减少编写“硬代码”业务规则的成本和风险
这里引用了一位Drools大咖的博客文章http://blog.csdn.net/lifetragedy/article/details/51143914

如果大咖看到了,请谅解。小编在这里先谢谢您啦  MK大神!

应用场景

·        为提高效率,管理流程必须自动化,尽管现代商业规则异常复杂。

·        市场要求业务规则经常变化,系统必须依据业务规则的变化快速、低成本的更新。

·        为了快速、低成本的更新,业务人员应能直接管系统中的规则,不需要程序开发人员参与。

作用与优点:

·        将业务规则与业务系统分离,解耦合;

·        实现自然语言描述规则逻辑,业务人员易于理解;

·        可视化的规则定制、审批、查询及管理;

·        能有效的提高实现复杂逻辑的代码的可维护性;

·        应付特殊状况,即客户一开始没有提到要将业务逻辑考虑在内;

·        符合组织对敏捷或迭代开发过程的使用;

如下如所示:      



小编想和读者说的话

    小编也是加了少群的,研究Drools这一块技术,遇到了很多难题,很多技术问题,小编不敢说这文章是写的最好的,只是做一个技术分享,之前也有写过博客,但遇到一些事让小编有些心寒,所以将博客删除了,小编真的不是来装大神装B的,只是将自己会的一些技术分享出来,让初学者少走一些弯路,这技术比较冷门,所以资料少的可怜

经过小编的不懈努力,结合了自己的认知和笔记,用时两周将些文档编辑成功,读者如果心疼小编,就给一些辛苦费啥的,小编后续会继续努力将底层实现和算法的知识也写进来的

    文章是不可编辑的,读者要是看到哪里有问题或出错的地方,可随时与小编联系,小编的QQ是448998253 邮箱是kangzuguan@qq.com

下面是小编的微信转帐二维码,小编再次谢谢读者的支持,小编会更努力

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息