APP下载

Drools规则引擎的发展及应用周里

2018-01-18周里程熊碧辉裘瑞清周后盘

电子技术与软件工程 2017年21期
关键词:引擎规则算法

周里程++熊碧辉++裘瑞清++周后盘

摘 要在现阶段下,Drools规则引擎技术发展的已经相对成熟,且非常具有吸引力,并广泛应用于制造业、娱乐业等各个行业。本文主要是对Drools规则引擎的研究背景、现状、概念以及其核心算法Rete及其实现原理等多方面进行阐述,旨在促进其技术应用的更加广泛。

【关键词】规则引擎 DroolsRete算法

1 规则引擎的产生背景

随着世界经济形势变化,市场竞争日趋激烈,为不断适应市场的各种变化,企业需要不断调整产品设计、生产制造、市场营销、内部管理等各个环节的管控方式和规则制度。故而支撑企业运作的管理系统亦应该予以随之调整,定期地维护并且更新程序的业务逻辑。在以往的系统设计架构里面,对每一回业务逻辑进行变更操作的时候,均需修改程序的源代码,重新予以编译并部署,容易导致系统不稳定,同时维护工作量大,维护成本居高不下。迫切需要将管理系统中内含的业务规则、业务逻辑独立出来,例如生产计划排程、风险控制规则、市场定价策略等,以解除其程序代码与业务规则的耦合性,通过调整修改业务规则来适应市场的变化。规则引擎就是解决此问题的方式之一。

2 Drools规则引擎的应用现状及分析

正因为Drools规则引擎技有着如此多优势特点,现今在许多行业都有着其身影。

2.1 Drools规则引擎在生产制造和产品设计中的应用

在传统的制造行业上,规则引擎就有着很好的应用。华中科技大学的闫欢,张宜生等在《规则引擎在制造企业MES中的研究与应用》一文中,提出了在MES中引入业务规则管理系统(Business Rule Management System),借助规则引擎Drools和其对应的规则语言,并契合企业的实际需求来制定业务规则,把程序代码和业务规则分离开来,使企业根据市场需求随时对企业的生产方针予以优化调整,从而能够加速MES系统的开发、升级与维护的过程,最终可大大增强了MES系统的灵活性、适应性。同时在基于BRMS和规则引擎的MES系统原型中,实现了生产计划的自动安排和生产计划调整过程中的设备负荷均衡处理。伴随工件的工序以及机床数量的增加,以Drools的规则为基础去定义文件的复杂性亦随之明显升高。Drools这些有关的问题均可运用Hadoop Map/Reduce的办法加以解决。Map/Reduce其实为一个处理并且生成超级数据集的算法模型,它可以借助较为低廉的计算资源达到大规模的并行运算,在解决大规模作业调试的方面有着非常大的潜力。不仅如此,浙江大学电气工程学院的郑春团队利用Drools规则引擎技术设计了一个丝绸辅助设计专家系统,用户可以通过Web访问本系统,输入需求信息,结合知识库中存储的模糊规则处理得到创意图。系统实现了丝绸产品设计的智能化和自动化,提高了产品设计效率。从而能够看出Drools规则引擎应用于传统制造行业,提高了工厂资源整体的利用率。

2.2 Drools规则引擎在政务服务中的应用

Drools规则引擎同样应用在政务服务当中,江苏大学的夏平平就将其应用于征税系统当中,在征税系统开发过程中,需要定义匹配的业务规则,比如企业名称的长度、合伙纳税人比例情况、外资企业比重情况等,虽然可以通过源代码的方式实现这些业务规则,但是随着国家税制的改革和完善,征税方面的业务规则势必会经常变化,必然导致程序需要二次修改和重新部署,给维护工作带来非常大的不便,使用Drools规则引擎很好的解决了上述问题。

2.3 Drools规则引擎在企业管理中的应用

Drools规则引擎在企业管理中也有应用,上海复旦大学的祝志飞团队设计了一套基于Drools规则引擎的自主管理会计系统,通过Drools Guvnor管理会计业务规则,以及通过Drools Expert将业务系统实时产生的单笔交易数据或历史批量数据转换成会计凭证和分录产生会计报表等核心内容,并将其应用在了志飞天下公司的管理会计系统中,彻底解决了志飞天下公司交易量大、需要适时自动记账的功能需求,解放了会计人员繁杂的手工记账,实时提供会计报表给公司管理人员,帮助管理人员及早做出商业决策。

2.4 Drools规则引擎在娱乐业的应用

在娱乐产业,Drools规则引擎也发挥了不小的作用。当今市场十分火热的桌游三国杀就运用到了规则引擎Drools,它选择游戏脚本的开发模式,将游戏的逻辑规则相关的部分放进脚本中来减少游戏各模块间的耦合度,方便游戏的测试、修改以及内容的升级与更新。这是未来游戏开发的一个全新的方向。Drools规则引擎在游戏中的引入,给其网络桌游的开发和维护带来了事半功倍的效果。

2.5 Drools规则引擎在电力行业的应用

在电力部门,Drools规则引擎同样有着很好的应用。国网电力科学研究院的李穆,文正其等针对变电站现有的变压器故障诊断系统普遍存在知识固化的问题,提出了一种基于Drools规则引擎的变压器故障诊断专家系统。利用Drools框架搭建变压器故障诊断专家系统的架构,实现规则文件与逻辑文件的分离;结合真实案例与权威专家的经验,确定故障模式,利用规则库实现变压器的故障诊断。并于2014年8月份开始在武汉某750kv变压器应用了此Drools规则引擎。实践证明,系统具有较快的反应能力和准确的诊断能力,具备很好的工程推广价值。

2.6 Drools规则引擎在数据清洗中的应用

当今大数据的年代,Drools规则引擎为以动态可配置规则为基础的数据清洗打下了坚实的技术基础。武汉理工大学的曹永亮团队通过实例测试得出结论为:规则数量变化对Drools规则引擎性能的影响不是非常明显;在記录数很大的时候,运用Drools规则引擎跟运用硬编码清洗的时间的比值接近恒定。运用Drools规则引擎的清洗时长仅有运用硬编码的2/5左右,在性能方面的损失换来的是系统的通用性以及规则的动态可配置性上的提升。但规则引擎用于数据清洗技术发展的空间还很大,还有许多的工作要做,比如当前存在的一个突出问题,即是清洗规则是依赖于一些清洗算法的,因而嵌入进Drools规则引擎技术并没有降低数据清洗的算法复杂性,所以将Drools规则引擎的Rete算法与清洗算法整合,达到算法优化便是当前应用的一个发展方向。endprint

猜你喜欢

引擎规则算法
数独的规则和演变
基于MapReduce的改进Eclat算法
Travellng thg World Full—time for Rree
进位加法的两种算法
让规则不规则
TPP反腐败规则对我国的启示
一种改进的整周模糊度去相关算法
无形的引擎
基于Cocos2d引擎的PuzzleGame开发
One Engine Left只剩下一个引擎