商业规则管理JBoss Rules

文章目录
[隐藏]

1.摘要

个人觉得规则引擎就是把一堆if/else逻辑从业务代码转移到配置文件中,这样如果业务规则发生变化就不用更改代码,而且如果描述这种规则的语言足够清晰明白,更改业务规则的任务就可以由业务人员来完成了,Domain Specific Language就是来干这事的。

最近一直被铁路业务的一堆业务逻辑困扰,这些逻辑比较零碎,但是又相互关联,如何理顺,如何管理,是个头疼的问题。后来就开始从开源的项目里找解决方案,于是发现了jboss rules。

“个人觉得规则引擎就是把一堆if/else逻辑从业务代码转移到配置文件中,这样如果业务规则发生变化就不用更改代码,而且如果描述这种规则的语言足够清晰明白,更改业务规则的任务就可以由业务人员来完成了,Domain Specific Language就是来干这事的。”

JBoss Rules(Drools )具有一个易于访问企业策略、易于调整以及易于管理的开源业务规则引擎,符合业内标准,速度快、效率高。业务分析师或审核人员可以利用它轻松查看业务规则,从而检验是否已编码的规则执行了所需的业务规则。
JBoss Rules 的前身是Codehaus的一个开源项目叫Drools。最近被纳入JBoss门下,更名为JBoss Rules,成为了JBoss应用服务器规则引擎
Drools是为Java量身定制的基于Charles  Forgy的RETE算法规则引擎的实现。具有了OO接口的RETE,使得商业规则有了更自然的表达。

这是某技术网友对规则引擎的描述,很确切,也很精准。以下是JBOSS RULES的一些技术文档解释:

http://www.blogjava.net/guangnian0412/category/11762.html

有人提出了电梯生产行业下面的设想和问题:

如果楼层高是10层
那么控制板上的按钮就是10+5(其它功能)个
如果载重1000公斤
那么就选择A型号的电机
如果是前后开门
那么加工路线就是R
如果门是对开
那么就选择Item Number D作为这个合同的门类型来加工
如果客户要喷涂蓝色的门
那么就选择喷涂加工路线,
并且喷涂颜料选择Item Number Blue
。。。。

类似的Rule可以达到几万条以上,不知道这个企业作用是否适合选择DRools来做,真实地ERP中也使用Rule来做的。

请问DRools在这样的场景中是否物有所值?还是说DRools用在这样的地方,大材小用了,他有更高级的用处?

 

点赞

发表评论