一种高扩展性的规则校验框架的制作方法

文档序号:14036457阅读:419来源:国知局
本发明属于电子信息
技术领域
:,具体是指一种高扩展性的规则校验框架。
背景技术
::随着互联网应用的飞速发展,各种业务需求也应运而生,业务规则不断变更和革新,以丹露网交易平台为例,平台中存在各种活动:某些时间段内注册、激活送红包,根据时间段内的交易额发放抽奖机会,根据订单的金额返还一定的红包等。对应不同的规则,就需要大量的规则校验的功能,且随着业务的越来越复杂,规则校验的功能的实现将会变的越来越繁琐。现有技术的如今的主要缺陷包括:1、现有的规则校验方案主要是以普通业务代码为主,不同的活动有相同的校验规则时,需要重新开发代码,且各个活动的规则校验方案并未形成完整的框架;2、现有的规则校验方案对需要监听的行为代码侵占性较强,若规则校验方案需要监听某个行为,则需要对原有的业务代码进行修改才能完成;3、现有的规则校验方案不够灵活,其对于多种规则的组合、阶梯规则以及每满规则都需要重复进行繁琐的开发,极大的浪费了企业的人力与物力资源。技术实现要素:本发明的目的在于克服上述问题,提供一种高扩展性的规则校验框架,将规则校验方案搭建成一个完整的框架,大大提高了产品的复用性与扩展性,降低了产品对代码的入侵性,很好的降低了企业的人力与物力投入,提高了产品的经济效益。本发明的目的通过下述技术方案实现:一种高扩展性的规则校验框架,包括ssm框架,设置在ssm框架上的活动促销微服务,还包括设置在活动促销微服务上的用于收集用户产生行为信息的行为监听模块,与行为监听模块相连接的消息处理模块,与消息处理模块相连接的规则引擎模块,与规则引擎模块相连接的规则校验模块,以及与该规则引擎模块相连接的规则校验结果处理模块;其中,消息处理模块上还同时连接有外部直接调用规则校验框架,在规则校验模块上还连接有规则储存模块;上述的行为监听模块、消息处理模块、规则引擎模块、规则校验模块、校验结果处理模块以及规则储存模块均采用java语言进行编写。所述行为监听模块是利用metaq消息中间件完成对用户产生行为的监控,在用户产生行为时metaq消息中间件将会根据该行为信息发送给行为监听模块相应的消息,而行为监听模块将会完成对metaq消息中间件发送的消息以及外部直接调用规则框架发送的消息进行监听收集,并将收集到的消息发送给消息处理模块进行。所述消息处理模块的数量有若干个,不同的消息处理模块将会从行为监听模块接收到不同的消息,且各个消息处理模块从行为监听模块中接收到的消息将与该消息处理模块的处理类型相匹配;消息处理模块将根据接收到的消息来从ssm框架中获取对应类型的活动,并对对应类型的活动的相关状态进行校验,只有在需要校验的活动可用时才会调用规则引擎模块进行下一步的处理。所述规则引擎模块是根据消息处理模块的调用来完成对组合规则、校验结果累计以及阶梯校验规则进行最后的结果计算,具体每条规则的校验是交给规则校验模块处理,而规则校验模块处理后的信息将会反馈回规则引擎模块进行最后的结果计算。所述规则校验模块负责对规则引擎模块计算后的单个规则进行一一的校验,校验完毕后得到的校验结果再返回规则引擎模块;具体的校验过程为:(1)规则校验模块从规则储存模块中获取规则数据;(2)根据获取的规则数据利用java反射调用引擎模块计算后的单个规则,并依次对引擎模块计算后的所有单个规则进行一一校验,在校验过程中,同一个规则组之间的不同规则为且的关系,而多个规则组之间则为或的关系;(3)得到最终的校验结果,完成校验的过程。所述规则储存模块中的活动规则均储存在mysql数据库中,且活动规则又包括规则表和活动与规则关联表;其中,规则表是将所有活动促销微服务中存在的规则存于一个table中得到的,而活动与规则关联表则是用于存储每个活动管理的具体规则、该具体规则所在的规则组、具体满足该具体规则所需的值以及达到该规则的奖励倍数。所述规则校验结果处理模块的作用是根据规则校验模块的校验结果来进行结果的处理,具体的处理方式包括根据规则发送发放奖励信息到活动促销微服务以及将校验结果返回给活动促销微服务并进行展示。本发明与现有技术相比,具有以下优点及有益效果:(1)本发明具有高扩展性,理论上能够无限的添加各种规则,而添加新规则的开发成本远小于如今的开发新代码的成本,大大降低了企业的负担,同时提高了开发的效率。(2)本发明的规则校验模块采用java反射机制,能够灵活的满足各种规则的组合校验、阶梯校验以及结果累计校验,具有高度的灵活性,大大提高了框架的运行效率。(3)本发明采用metaq消息中间件,能够根据在需要监听的用户行为发生时及时的自动发送消息,很好的降低了代码的入侵,提高了框架的安全性,降低了监听的难度。(4)本发明对于已经添加过的规则能够进行重复利用,大大降低了新活动的开发难度以及经费投入量,提高了代码的利用率和新活动开发的效率,拥有极高的复用性。附图说明图1为本发明的框图。具体实施方式下面结合实施例对本发明作进一步的详细说明,但本发明的实施方式不限于此。实施例如图1所示,本发明包括ssm框架,设置在ssm框架上的活动促销微服务,设置在活动促销微服务上的监听模块、消息处理模块、规则引擎模块、规则校验模块、校验结果处理模块、规则储存模块以及与消息处理模块相连接的外部直接调用规则校验框架。其中,行为监听模块设置在活动促销微服务上的用于收集用户产生行为信息,消息处理模块与行为监听模块相连接,规则引擎模块与消息处理模块相连接,规则校验模块与规则引擎模块相连接,规则校验结果处理模块与该规则引擎模块相连接,规则储存模块与规则校验模块相连接。其中,行为监听模块、消息处理模块、规则引擎模块、规则校验模块、校验结果处理模块以及规则储存模块均采用java语言进行编写。微服务是一种整体架构,其中的大型、复杂的软件应用程序或者网站由一个或多个更小的服务组成。每个微服务仅负责完成一项代表一种小业务能力的任务,活动促销微服务只负责处理此业务相关的逻辑,提供接口和方法给其他微服务调用。所述行为监听模块是利用metaq消息中间件完成对用户产生行为的监控,在用户产生行为时metaq消息中间件将会根据该行为信息发送给行为监听模块相应的消息,而行为监听模块将会完成对metaq消息中间件发送的消息以及外部直接调用规则框架发送的消息进行监听收集,并将收集到的消息发送给消息处理模块进行。所述消息处理模块的数量有若干个,不同的消息处理模块将会从行为监听模块接收到不同的消息,且各个消息处理模块从行为监听模块中接收到的消息将与该消息处理模块的处理类型相匹配;消息处理模块将根据接收到的消息来从ssm框架中获取对应类型的活动,并对对应类型的活动的相关状态进行校验,只有在需要校验的活动可用时才会调用规则引擎模块进行下一步的处理。所述规则引擎模块是根据消息处理模块的调用来完成对组合规则、校验结果累计以及阶梯校验规则进行最后的结果计算,具体每条规则的校验是交给规则校验模块处理,而规则校验模块处理后的信息将会反馈回规则引擎模块进行最后的结果计算。所述规则校验模块负责对规则引擎模块计算后的单个规则进行一一的校验,校验完毕后得到的校验结果再返回规则引擎模块;具体的校验过程为:(1)规则校验模块从规则储存模块中获取规则数据;(2)根据获取的规则数据利用java反射调用引擎模块计算后的单个规则,并依次对引擎模块计算后的所有单个规则进行一一校验,在校验过程中,同一个规则组之间的不同规则为且的关系,而多个规则组之间则为或的关系;(3)得到最终的校验结果,完成校验的过程。所述规则储存模块中的活动规则均储存在mysql数据库中,且活动规则又包括规则表和活动与规则关联表;其中,规则表是将所有活动促销微服务中存在的规则存于一个table中得到的,而活动与规则关联表则是用于存储每个活动管理的具体规则、该具体规则所在的规则组、具体满足该具体规则所需的值以及达到该规则的奖励倍数。所述规则校验结果处理模块的作用是根据规则校验模块的校验结果来进行结果的处理,具体的处理方式包括根据规则发送发放奖励信息到活动促销微服务以及将校验结果返回给活动促销微服务并进行展示。。如上所述,便可很好的实现本发明。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1