基于Java注解的Drools业务规则开发框架设计实现
2017-06-01周中雨,李洋,杨程屹等
电子测试 2017年6期
基于Java注解的Drools业务规则开发框架设计实现
0 引言
规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。规则引擎接受数据输入,解释业务规则,并根据业务规则做出业务决策。规则引擎适用于业务规则复杂且频繁改动的系统。
Drools是RedHat公司旗下一款基于Java语言的开源规则引擎,广泛应用于金融、保险、电信等领域,可以将复杂多变的规则以规则脚本的形式存放在文件中,使得规则的变更不需要重启机器就可以立即在线上环境生效。
在业务规则开发过程中,Drools规则引擎只能识别与处理基于DRL(Domain Rule Language)格式定义的业务逻辑,与Java程序相比存在着一些缺陷,不能很好地支持企业级应用管理,主要表现在以下两方面。
(1)开发效率待提高:DRL语法学习成本较高;传统Java开发环境(例如Eclipse)不支持对DRL进行语法检查和语法辅助,无法在运行前发现语法错误;部分规则文件无法进行调试;重构难度大,进行规则修改时很难评估影响范围。
(2)代码质量缺乏保障:无法通过代码质量管理工具(例如SonarQube)对DRL文件进行检查与分析。
为解决这些缺陷,迫切需要建立Drools业务规则开发框架,直接使用Java语言实现业务逻辑,单元测试通过后自动生成Drools业务规则。
1 开发框架设计
Drools业务规则开发框架主要由编写模块、执行模块、转换模块三部分组成。其中编写模块定义Java语言实现业务逻辑的规范;执行模块对Java语言实现的业务逻辑模拟执行,并支持在传统Java开发环境中进行代码调试;……
登录APP查看全文
