快速业务通道

在智能交通系统中基于Drools BRMS实现业务规则动态管理 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
规则文件。RuleAgent 能够将规则文件下载到本地并装载到规则引擎进行解析执行。RuleAgent 需要一些 参数进行初始化对象,这些参数保存在一个配置文件中,用单例模式装载配置文件生成一个唯一的 RuleAgent 对象。从 RuleAgent 得到一个 StatefulSession,就可以执行规则了。在 session 对象中注 入前面定义的一个 RuleInput 对象。fireAllRules() 就执行了所有的规则。得到的结果保存在 RuleInput 的输出属性中。

清单 1. 执行规则的关键代码

public class ChargeSessionHelper {    private static RuleAgent agent;    private static StatefulSession session;    public static StatefulSession getSession(){      if(agent==null){     agent=loadRuleAgent();     }     //get ruleBase intance     RuleBase ruleBase=agent.getRuleBase();     //create StatefulSession     session=ruleBase.newStatefulSession();     return session;    }   private static RuleAgent loadRuleAgent() {      //initialize the parameters from the property file,get a RuleAgent  instance   return RuleAgent.newRuleAgent("/rules.properties");   } } public RuleInput excute(){    //create StatefulSession    StatefulSession session=ChargeSessionHelper.getSession();    //insert an instance of RuleInput    session.insert(input);    //fire all the rules     session.fireAllRules();    //destroy the StatefulSession    session.dispose();    //return the result, stored in the input object    return input; }

在智能交通系统中基于Drools BRMS实现业务规则动态管理(9)

时间:2011-08-11 IBM 陈剑辉 龚萍

Rules.properties 文件包含基本的配置信息。newInstance 如果设为 false,那么 RuleAgent 不需 要每次都创建一个 RuleBase,当服务器规则文件更新时,StatefulSession 能够自动更新。url 是设置 成服务器上已部署的规则文件地址。poll=30 表示 RuleAgent 每隔 30 秒都会轮询一次 url 规则是否有 更新。Name 表示这个 RuleAgent 的名字,将会出现在日志里。localCacheDir 表示将服务器上的规则文 件缓存到本地的目录,这个属性大大提高性能,当服务器规则发生改变时,本地的缓存文件也会自动更新 。

清单 2. 客户端连接业务规则管理系统的配置

newInstance=false url=http://localhost:8080/drools-jbrms/org.drools.brms.JBRMS/    package/com.sample.rule/TollRule poll=30 name=TollRule localCacheDir=c:/temp

下图是我们的一个调用界面

图 11. 业务系统模拟

规则的动态修改

Drools BRMS 提供了规则动态修改的功能。当业务规则发生变化,如 OCR 附加费从 50 提高到了 80 ,我们只需要将第二张决策表的 50 改成 80,重新上传这个文件,并且发布这个业务规则。不需要重新 启动应用,修改后的规则能够实时地应用到业务系统中,即我们的规则调用页面刷新后,就能展现附加费 从 50 提高到了 80

总结

Drools BRMS 虽然相比商业化的业务规则管理系统还有一些不足,但却是目前较好的开源业务规则管 理系统。在基于 Drools 这个强大的开源规则引擎上,提供了一个轻量级的管理系统。基于 Web 2.0 Ajax 技术,提供了较好的用户友好度,支持规则文件的上传,编辑,版本管理,编译部署等整个过程。 实现了业务规则的动态配置。满足在业务规则频繁更新的行业中应用。

本文介绍了如何通过业务规则管理软件 Drools BRMS,实现智能交通系统中的业务规则。为

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号