一种规则引擎配置方法、装置、设备及存储介质
文献发布时间:2023-06-19 12:05:39
技术领域
本发明实施例涉及自动程序设计技术,尤其涉及一种规则引擎配置方法、装置、设备及存储介质。
背景技术
规则引擎也称业务规则管理系统(Business Rule Management System,BRMS),是将业务决策的判断语句,从应用程序代码中分离出来,嵌入程序中的应用组件。
规则引擎使用预定义的语义模块编写业务决策,即业务规则,由用户或开发者在需要时进行配置和管理。大型企业尤其是银行金融类企业,业务规则种类繁多复杂,配置繁琐。现有技术中,通常采用Java语言编写的规则引擎,例如Drools,Drools属于重量级规则引擎组件,执行效率低,不支持动态可配置。
实际应用中,项目经常会出现变化,因此,规则引擎也需要根据业务需要进行配置。但由于现有技术中业务规则与应用系统Java代码耦合较紧,预先配置的业务规则不便于实时查看和维护,从而导致项目维护困难,响应速度慢。
发明内容
本发明实施例提供一种规则引擎配置方法、装置、设备及存储介质,以实现方便对规则引擎中的业务规则进行配置和管理。
第一方面,本发明实施例提供了一种规则引擎配置方法,包括:
发布预设规则引擎公共文件包到预设项目仓库;
响应于规则引擎文件包拉取操作,从所述预设项目仓库中拉取对应的所述预设规则引擎公共文件包;
响应于规则配置操作,将用户配置的规则写入所述预设规则引擎公共文件包中的预设数据库规则表,生成用户配置的规则引擎。
第二方面,本发明实施例还提供了一种规则引擎配置装置,包括:
规则文件包发布模块,用于发布预设规则引擎公共文件包到预设项目仓库;
规则文件包拉取模块,用于响应于规则引擎文件包拉取操作,从所述预设项目仓库中拉取对应的所述预设规则引擎公共文件包;
规则引擎生成模块,用于响应于规则配置操作,将用户配置的规则写入所述预设规则引擎公共文件包中的预设数据库规则表,生成用户配置的规则引擎。
第三方面,本发明实施例还提供了一种规则引擎配置设备,所述规则引擎配置设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例所提供的规则引擎配置方法。
第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如本发明任意实施例所提供的规则引擎配置方法。
本发明实施例通过将预设规则引擎公共文件包分布到预设项目仓库中,根据用户的配置操作写入业务规则,生成规则引擎,解决业务规则不便于实时查看和维护导致的项目维护困难,响应速度慢的问题,实现方便对规则引擎中的业务规则进行配置和管理,快速响应项目变化的效果。
附图说明
图1是本发明实施例一中的一种规则引擎配置方法的流程图;
图2是本发明实施例二中的一种规则引擎配置方法的流程图;
图3是本发明实施例三中的一种规则引擎配置方法的流程图;
图4是本发明实施例四中的一种规则引擎配置装置的结构示意图;
图5是本发明实施例五中的一种规则引擎配置设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种规则引擎配置方法的流程图,本实施例可适用于企业中针对业务需要,配置规则引擎情况,例如银行金融类企业建立规则引擎,该方法可以由规则引擎配置装置来执行,该装置可以由硬件和/或软件来实现,并一般可以集成中规则引擎配置设备中,例如服务器,该方法具体包括:
步骤110、发布预设规则引擎公共文件包到预设项目仓库;
其中,预设规则引擎公共文件包可以是一个jar包,其中可以包括预设数据库规则表,用于记录用户配置的业务规则。规则引擎管理平台可以将预设规则引擎公共文件包发布到预设项目仓库,比如Maven仓库,Maven仓库能帮助我们管理构件,它也就是放置所有jar文件的地方。
可选的,在所述发布预设规则引擎公共文件包到预设项目仓库之前,还包括:编译生成所述预设规则引擎公共文件包;其中,所述预设规则引擎公共文件包为jar包。
步骤120、响应于规则引擎文件包拉取操作,从所述预设项目仓库中拉取对应的所述预设规则引擎公共文件包;
其中,对于需要配置规则引擎的用户,可以向规则引擎管理平台请求从预设项目仓库拉取预设规则引擎公共文件包。
步骤130、响应于规则配置操作,将用户配置的规则写入所述预设规则引擎公共文件包中的预设数据库规则表,生成用户配置的规则引擎。
其中,用户根据自己企业系统的不同业务需要,依赖本业务相关数据,生成不同的规则,在获取到预设规则引擎公共文件包之后,将用户自己确定的业务规则写入。预设规则引擎公共文件包中的预设数据库规则表中,从而生成用户根据自己业务需求而配置的规则引擎。用户配置的规则引擎之中可以包括至少两条规则,这些规则可以进行修改和删除,当然也可以在预设数据库规则表中新增规则。
本实施例的技术方案,通过将预设规则引擎公共文件包分布到预设项目仓库中,根据用户的配置操作写入业务规则,生成规则引擎,解决业务规则不便于实时查看和维护导致的项目维护困难,响应速度慢的问题,实现方便对规则引擎中的业务规则进行配置和管理,快速响应项目变化的效果。
实施例二
图2为本发明实施例二提供的一种规则引擎配置方法的流程图,本实施例在上述技术方案的基础上进一步细化,具体可以是所述用户配置的规则包括规则条件、规则动作和优先级。该方法具体包括:
步骤210、发布预设规则引擎公共文件包到预设项目仓库;
步骤220、响应于规则引擎文件包拉取操作,从所述预设项目仓库中拉取对应的所述预设规则引擎公共文件包;
步骤230、响应于规则配置操作,将用户配置的规则写入所述预设规则引擎公共文件包中的预设数据库规则表,生成用户配置的规则引擎。
步骤240、响应于规则新增操作,在所述规则引擎中增加至少一个所述规则;
步骤250、响应于规则修改操作,对所述规则引擎的规则条件、规则动作和优先级至少之一进行相应修改;
步骤260、响应于规则删除操作,删除所述规则引擎中当前已有的规则。
其中,用户配置规则需要配置规则的优先级。由于用户配置的规则引擎中可以包括至少两条规则,所以为每条规则设置对应的优先级。而在生成规则引擎之后,规则管理系统提供联机维护交易,包括对规则引擎中的规则进行以下至少一种操作:新增、修改和删除。也就是步骤240、步骤250和步骤260根据用户请求的操作内容执行对应的步骤。对于新增规则,需要设置规则的规则条件、规则动作和优先级。对于删除规则,可以删除一个规则,也可以删除一组规则,可选的,在预设数据库规则表中配置至少一个规则集,而一个规则集下可以配置至少一个规则,那么,对于规则集中有多个规则的情况,可以搜索规则集的标识号,然后将搜索到的规则集删除。对于规则的修改,可以根据规则集的标识号批量修改该规则集下的规则。也可以根据规则的标识号修改某一个规则集下的某一个规则。
本实施例的技术方案,可以对预设数据库规则表中的规则进行管理,方便查阅其中记录的规则,也方便对规则引擎中的规则进行新增、修改和删除,便捷地调整规则引擎,适应项目的变化。
实施例三
图3为本发明实施例三提供的一种规则引擎配置方法的流程图,本实施例在上述技术方案的基础上进一步细化,具体可以是对所述响应于规则配置操作,将用户配置的规则写入所述预设规则引擎公共文件包中的预设数据库规则表,生成用户配置的规则引擎进行细化,该方法具体包括:
步骤310、发布预设规则引擎公共文件包到预设项目仓库;
步骤320、响应于规则引擎文件包拉取操作,从所述预设项目仓库中拉取对应的所述预设规则引擎公共文件包;
步骤330、响应于所述规则配置操作,在所述预设数据库规则表中配置至少一个规则集,在所述规则集中配置至少一个规则;
其中,预设数据库规则表可以以规则集的标识号即ruleset_id为主键,一个规则集下可设置有多个规则,每个规则对应一个规则的标识号即rule_id,每个规则有自己的规则条件rule_condition,规则动作rule_actions,优先级rule_priority。规则条件
步骤340、为所述规则集设置集优先级,为所述规则设置规则优先级;
其中,配置到数据库里,规则引擎读取到预设数据库规则表配置的规则条件,通过MVEL(MVFLEX Expression Language,MVFLEX表达式语言)解析规则执行条件,并执行相应的规则动作。优先级分为规则集优先级rulesetPriority和规则优先级rulePriority。规则引擎首先根据规则集优先级执行规则集的动作,而在同一规则集中,根据规则优先级执行每一条规则的动作。
步骤350、为每个所述规则配置所述规则条件和所述规则动作,并设置每个所述规则的工作状态。
其中,预设数据库规则表中还可以设置规则的规则状态rule_status,也就是在规则引擎中,规则是否处于启用的状态,这样对于暂时不需要使用的规则可以设置为不启用,而规则也不会直接从规则引擎中删除,方便根据业务需要灵活调整规则引擎中启用的规则。
可选的,在所述在所述规则集中配置至少一个规则之后,还包括:
为每个所述规则设置规则描述。其中,预设数据库规则表中还设置有规则的规则描述rule_dsc,有了规则描述,可以直观了解规则的功能,便于后续开发和管理。
可选的,所述预设数据库规则表包括Oracle数据库规则表和HBase数据库规则表。也就是用户配置规则引擎时,支持将规则写入规则Oracle表或者支持将规则写入规则HBase表。
可选的,规则引擎可以支持多种规则多种,所述规则动作,包括:ElasticsearchAction、HBaseAction和InvokeAction。
其中,对于ElasticsearchAction,Elasticsearch是一个实时的分布式搜索分析引擎,规则引擎可以提供Elasticsearch检索,给规则引擎使用方提供了更多动作执行方式。对于HBaseAction,HBase是一种分布式的、面向列存储的开源NoSQL数据库。本规则引擎执行动作提供基于HBase的查询、新增、修改和删除功能。对于InvokeAction,InvokeAction是一种基于Java反射机制调用的执行动作类。规则引擎使用方传入要反射调起的类名、方法名以及方法需要传入的参数等,通过InvokeAction即可以执行该类下面的方法,实现动作的执行。
本实施例提供的技术方案,对于有多种规则并且规则复杂的系统,可以在预设数据库规则表中设置多个规则集,每个规则集下包含多个规则,根据不同的条件,不同优先级去执行动作。而且,可以适配调用方多种方式调用的需求,规则引擎支持HBase,Elasticsearch等多种方式读写需求,也支持反射调用Invoke的方式。本实施例中配置得到的规则因支持更复杂多样的规则逻辑,更灵活更高效,并满足调用方复杂多变的业务需求。
实施例四
图4为本发明实施例四提供的一种规则引擎配置装置的结构示意图,如图4所示,规则引擎配置装置包括:规则文件包发布模块410、规则文件包拉取模块420和规则引擎生成模块430。其中,
规则文件包发布模块410,用于发布预设规则引擎公共文件包到预设项目仓库;
规则文件包拉取模块420,用于响应于规则引擎文件包拉取操作,从所述预设项目仓库中拉取对应的所述预设规则引擎公共文件包;
规则引擎生成模块430,用于响应于规则配置操作,将用户配置的规则写入所述预设规则引擎公共文件包中的预设数据库规则表,生成用户配置的规则引擎。
本实施例的技术方案,通过将预设规则引擎公共文件包分布到预设项目仓库中,根据用户的配置操作写入业务规则,生成规则引擎,解决业务规则不便于实时查看和维护导致的项目维护困难,响应速度慢的问题,实现方便对规则引擎中的业务规则进行配置和管理,快速响应项目变化的效果。
可选的,规则引擎配置装置,还包括:
规则文件包生成模块,用于在所述发布预设规则引擎公共文件包到预设项目仓库之前,编译生成所述预设规则引擎公共文件包;其中,所述预设规则引擎公共文件包为jar包。
可选的,所述用户配置的规则包括规则条件、规则动作和优先级。
可选的,规则引擎配置装置,还包括以下至少之一:
规则新增模块,用于在所述响应于规则配置操作,将用户配置的规则写入所述预设规则引擎公共文件包中的预设数据库规则表,生成用户配置的规则引擎之后,响应于规则新增操作,在所述规则引擎中增加至少一个所述规则;
规则修改模块,用于在所述响应于规则配置操作,将用户配置的规则写入所述预设规则引擎公共文件包中的预设数据库规则表,生成用户配置的规则引擎之后,响应于规则修改操作,对所述规则引擎的规则条件、规则动作和优先级至少之一进行相应修改;
规则删除模块,用于在所述响应于规则配置操作,将用户配置的规则写入所述预设规则引擎公共文件包中的预设数据库规则表,生成用户配置的规则引擎之后,响应于规则删除操作,删除所述规则引擎中当前已有的规则。
可选的,所述规则引擎生成模块,包括:
规则集配置单元,用于响应于所述规则配置操作,在所述预设数据库规则表中配置至少一个规则集,在所述规则集中配置至少一个规则;
优先级设置单元,用于为所述规则集设置集优先级,为所述规则设置规则优先级;
规则设置单元,用于为每个所述规则配置所述规则条件和所述规则动作,并设置每个所述规则的工作状态。
可选的,所述规则引擎生成模块,还包括:
规则描述设置单元,用于在所述在所述规则集中配置至少一个规则之后,为每个所述规则设置规则描述。
可选的,所述规则动作,包括:ElasticsearchAction、HBaseAction和InvokeAction。
可选的,所述预设数据库规则表包括Oracle数据库规则表和HBase数据库规则表。
本发明实施例所提供的规则引擎配置装置可执行本发明任意实施例所提供的规则引擎配置方法,具备执行方法相应的功能模块和有益效果。
实施例五
图5为本发明实施例五提供的一种规则引擎配置设备的结构示意图,如图5所示,该规则引擎配置设备包括处理器510、存储器520、输入装置530和输出装置540;规则引擎配置设备中处理器510的数量可以是一个或多个,图5中以一个处理器510为例;规则引擎配置设备中的处理器510、存储器520、输入装置530和输出装置540可以通过总线或其他方式连接,图5中以通过总线连接为例。
存储器520作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的规则引擎配置方法对应的程序指令/模块(例如,规则引擎配置装置中的规则文件包发布模块410、规则文件包拉取模块420和规则引擎生成模块430)。处理器510通过运行存储在存储器520中的软件程序、指令以及模块,从而执行规则引擎配置设备的各种功能应用以及数据处理,即实现上述的规则引擎配置方法。
存储器520可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器520可进一步包括相对于处理器510远程设置的存储器,这些远程存储器可以通过网络连接至规则引擎配置设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置530可用于接收输入的数字或字符信息,以及产生与规则引擎配置设备的用户设置以及功能控制有关的键信号输入。输出装置540可包括显示屏等显示设备。
实施例六
本发明实施例六还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种规则引擎配置方法,该方法包括:
发布预设规则引擎公共文件包到预设项目仓库;
响应于规则引擎文件包拉取操作,从所述预设项目仓库中拉取对应的所述预设规则引擎公共文件包;
响应于规则配置操作,将用户配置的规则写入所述预设规则引擎公共文件包中的预设数据库规则表,生成用户配置的规则引擎。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的规则引擎配置方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述规则引擎配置装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
- 一种规则引擎配置方法、装置、设备及存储介质
- 后勤业务规则引擎及其配置方法、装置、设备和存储介质