CN115469833A - 动态规则引擎的实现方法和装置、电子设备和存储介质 - Google Patents
动态规则引擎的实现方法和装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN115469833A CN115469833A CN202210909388.1A CN202210909388A CN115469833A CN 115469833 A CN115469833 A CN 115469833A CN 202210909388 A CN202210909388 A CN 202210909388A CN 115469833 A CN115469833 A CN 115469833A
- Authority
- CN
- China
- Prior art keywords
- rule
- information
- business
- service
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/4492—Inheritance
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供了一种动态规则引擎的实现方法和装置、电子设备和存储介质,其中,该方法包括:在接收到页面指示信息的情况下,获取报文信息,其中,报文信息中携带有当前业务数据的业务事件信息和业务状态信息,指示信息用于指示页面被执行了触发操作;根据业务事件信息和业务状态信息匹配到多个目标业务规则;利用目标机制构建目标业务规则的实体类对象;根据实体类对象调用对应的目标业务规则处理业务逻辑。通过本申请,解决了相关技术中存在的难以维护扩展、影响业务主流程管理的问题。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种动态规则引擎的实现方法和装置、电子设备和存储介质。
背景技术
当前,随着行业的业务越来越复杂,市场要求业务规则经常变化,IT系统必须依据业务规则的变化快速、低成本的更新。同时要求应用7×24小时不间断提供服务,业务规则的更新实现不影响服务提供。
现有技术方案是根据业务规则变化,将业务规则代码逻辑加入业务主流程,随系统发布版本一起发布更新。这种实现方案存在业务规则与应用耦合度、业务规则代码之间的耦合度高,难以维护扩展,业务代码管理混乱,影响业务主流程的缺点。
因此,相关技术中存在难以维护扩展、影响业务主流程管理的问题。
发明内容
本申请提供了一种动态规则引擎的实现方法和装置、电子设备和存储介质,以至少解决相关技术中存在难以维护扩展、影响业务主流程管理的问题。
根据本申请实施例的一个方面,提供了一种动态规则引擎的实现方法,该方法包括:
在接收到页面指示信息的情况下,获取报文信息,其中,所述报文信息中携带有当前业务数据的业务事件信息和业务状态信息,所述指示信息用于指示页面被执行了触发操作;
根据所述业务事件信息和所述业务状态信息匹配到多个目标业务规则;
利用目标机制构建所述目标业务规则的实体类对象;
根据所述实体类对象调用对应的所述目标业务规则处理业务逻辑。
根据本申请实施例的另一个方面,还提供了一种动态规则引擎的实现装置,该装置包括:
获取模块,用于在接收到页面指示信息的情况下,获取报文信息,其中,所述报文信息中携带有当前业务数据的业务事件信息和业务状态信息,所述指示信息用于指示页面被执行了触发操作;
匹配模块,用于根据所述业务事件信息和所述业务状态信息匹配到多个目标业务规则;
构建模块,用于利用目标机制构建所述目标业务规则的实体类对象;
处理模块,用于根据所述实体类对象调用对应的所述目标业务规则处理业务逻辑。
可选地,处理模块包括:
排列单元,用于根据预设优先级对所述实体类对象进行排列,得到排列结果;
处理单元,用于按照所述排列结果调用对应的所述目标业务规则,处理所述业务逻辑。
可选地,该装置还包括:
嵌入模块,用于在接收到页面指示信息之前,在所述页面的应用触发点处嵌入埋点信息;
确定模块,用于利用所述埋点信息确定所述页面是否被执行了触发操作。
可选地,获取模块包括:
确定单元,用于根据所述页面指示信息,确定策略配置信息,其中,所述策略配置信息包括所述业务事件信息和所述业务状态信息;
修改单元,用于根据所述策略配置信息,修改由所述策略配置信息生成的报文信息,使得修改后的报文信息与所述策略配置信息相匹配;
获取单元,用于获取所述修改后的报文信息。
可选地,该装置还包括:
修改模块,用于修改所述策略配置信息,使得所述目标业务规则完成线上更新或线下更新,实现动态规则引擎。
可选地,目标业务规则所属的规则类型包括:静态定义规则类型、动态编译规则类型、远程调用规则类型、数据库存储规则类型,匹配模块包括:
选取单元,用于从所述静态定义规则类型、所述动态编译规则类型、所述远程调用规则类型、所述数据库存储规则类型中选取任意一种规则类型作为选取所述目标业务规则的规则库;
匹配单元,用于从所述规则库中匹配出多个所述目标业务规则。
根据本申请实施例的又一个方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;其中,存储器,用于存储计算机程序;处理器,用于通过运行所述存储器上所存储的所述计算机程序来执行上述任一实施例中的方法步骤。
根据本申请实施例的又一个方面,还提供了一种计算机可读的存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一实施例中的方法步骤。
在本申请实施例中,采用嵌入式调用方式与应用核心代码完全解耦的方式,通过在接收到页面指示信息的情况下,获取报文信息,其中,报文信息中携带有当前业务数据的业务事件信息和业务状态信息,指示信息用于指示页面被执行了触发操作;根据业务事件信息和业务状态信息匹配到多个目标业务规则;利用目标机制构建目标业务规则的实体类对象;根据实体类对象调用对应的目标业务规则处理业务逻辑。由于本申请实施例将业务规则从应用程序代码中分离出来,在接收到页面指示信息后获取报文信息,选取与当前业务数据相对应的目标业务规则,然后利用目标机制构建目标业务规则的实体类对象,拼接生成规则责任链,进而进行规则链的调度执行,进行业务处理,这样就可以做到与业务主流程的核心模块解耦,有利于后期的扩展和维护,且大幅度降低学习成本和开发成本,极大提升敏捷开发能力,缩短了整个软件开发周期和需求响应时间,从而降低软件开发成本,产生较大的经济价值,进而解决了相关技术中存在的难以维护扩展、影响业务主流程管理的问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是根据本申请实施例的一种可选的动态规则引擎的实现方法的流程示意图;
图2是根据本申请实施例的一种可选的规则库之间实现热部署、可插拔的机制示意图;
图3是根据本申请实施例的一种可选的规则调度的整体流程示意图;
图4是根据本申请实施例的一种可选的动态规则引擎的实现装置的结构框图;
图5是根据本申请实施例的一种可选的电子设备的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
当前的业务规则随着市场的需求需要实时更新迭代,现有技术方案是根据业务规则变化,将业务规则代码逻辑加入业务主流程,随系统发布版本一起发布更新,但是这种方式存在以下缺陷:业务规则与应用耦合度高,难以维护扩展;业务规则与业务规则代码耦合高,难以维护扩展;业务规则更新需要发布应用,影响业务主流程;业务规则代码分散,管理混乱。为了解决上述问题,本申请实施例提出一种动态规则引擎的实现方法,如图1所示,该方法可以应用于后台服务器,该方法包括:
步骤S101,在接收到页面指示信息的情况下,获取报文信息,其中,报文信息中携带有当前业务数据的业务事件信息和业务状态信息,指示信息用于指示页面被执行了触发操作;
步骤S102,根据业务事件信息和业务状态信息匹配到多个目标业务规则;
步骤S103,利用目标机制构建目标业务规则的实体类对象;
步骤S104,根据实体类对象调用对应的目标业务规则处理业务逻辑。
可选地,本申请实施例的前端页面的应用页面的触发点处,比如一些控制按钮处可以嵌入地设置一些埋点信息,当然也可以在页面的任何位置嵌入埋点信息,只需要嵌入简单的几行调度代码,然后基于这个埋点信息可以实时监控到当前展示的页面是否被工作人员或其他用户点击,执行了触发操作,若确定页面被执行了触发操作,这时会基于当前的操作生成一个报文信息,其中,该报文信息中携带有当前被操作的业务数据的业务事件信息和业务状态信息,比如当前点击的业务事件是xxx套餐业务,办理的业务状态可以是办理前、办理中还是办理后等。可以知道的是,即使是同一个业务事件,如果对应不同的业务状态信息,那生成的报文信息也将是不同的。
然后前端会将生成的报文信息发送到后台服务器侧,后台服务器会基于当前得到的业务事件信息和业务状态信息从规则库中匹配到多个目标业务规则。举例说明,如果业务事件是xxx套餐业务,办理的业务状态可以是办理中,那匹配到的目标业务规则就可以包括:免费通话时长、免费短信条数、免费彩铃等。另外,这些目标业务规则可以是基于java编程语言编写的业务规则。
需要说明的是,依据业务事件信息和业务状态信息匹配到的多个目标业务规则一定是要满足当下的业务事件信息和业务状态信息的,否则就会提示报错,这项业务也就办理失败了。
在得到多个目标业务规则后,使用目标机制,比如java反射机制,从规则库中构造上述的目标业务规则实体类对象,然后基于这些实体类对象调用对应的目标业务规则执行业务逻辑的处理。
在本申请实施例中,采用嵌入式调用方式与应用核心代码完全解耦的方式,通过在接收到页面指示信息的情况下,获取报文信息,其中,报文信息中携带有当前业务数据的业务事件信息和业务状态信息,指示信息用于指示页面被执行了触发操作;根据业务事件信息和业务状态信息匹配到多个目标业务规则;利用目标机制构建目标业务规则的实体类对象;根据实体类对象调用对应的目标业务规则处理业务逻辑。由于本申请实施例将业务规则从应用程序代码中分离出来,在接收到页面指示信息后获取报文信息,选取与当前业务数据相对应的目标业务规则,然后利用目标机制构建目标业务规则的实体类对象,拼接生成规则责任链,进而进行规则链的调度执行,进行业务处理,这样就可以做到与业务主流程的核心模块解耦,有利于后期的扩展和维护,且大幅度降低学习成本和开发成本,极大提升敏捷开发能力,缩短了整个软件开发周期和需求响应时间,从而降低软件开发成本,产生较大的经济价值,进而解决了相关技术中存在的难以维护扩展、影响业务主流程管理的问题。
作为一种可选实施例,根据实体类对象调用对应的目标业务规则处理业务逻辑包括:
根据预设优先级对实体类对象进行排列,得到排列结果;
按照排列结果调用对应的目标业务规则,处理业务逻辑。
可选地,由于匹配得到的目标业务规则可能存在多个的情况,那对应生成的实体类对象也将是多个,所以本申请实施例可以根据当前场景预先设定好的优先级对多个实体类对象进行排列拼接,生成责任链,根据责任链中多个实体类对象的排列结果依次调用对应的目标业务规则,处理业务逻辑。
比如当前办理的业务场景是补卡办理,那在调用目标业务规则时首先进行逻辑执行的应该就是身份认证,所以身份认证这一目标业务规则对应的实体类对象将排列在最前面,然后在调度执行业务处理逻辑时,也是先执行调度身份认证实体类对象。
在本申请实施例中,责任链模式使得每个目标业务规则都做单一的事,规则与规则之间的代码也是完全解耦,做到互不影响。
作为一种可选实施例,获取报文信息包括:
根据页面指示信息,确定策略配置信息,其中,策略配置信息包括业务事件信息和业务状态信息;
根据策略配置信息,修改由策略配置信息生成的报文信息,使得修改后的报文信息与策略配置信息相匹配;
获取修改后的报文信息。
可选地,可以根据事件发生的业务事件信息和业务状态信息,支持业务动作、业务来源、业务对象类型、业务对象类型ID等多维策略,生成策略配置信息。
在确定页面被触发后,如果生成的策略配置信息与当前生成的报文信息不相匹配,可以根据java的引用传值方式,更改应用的核心对象结构,修改由策略配置信息生成的报文信息,使得修改后的报文信息与策略配置信息相匹配,进而前端将修改后的报文信息发送至后台服务器。
本申请实施例采用引用传值方式,修改应用的核心对象结构,以达到灵活多变的目的。
作为一种可选实施例,方法还包括:
修改策略配置信息,使得目标业务规则完成线上更新或线下更新,实现动态规则引擎。
可选地,在得到当下的策略配置信息后,还可以对策略配置动态更新,使得目标业务规则完成线上更新或线下更新,实现动态规则引擎。
作为一种可选实施例,目标业务规则所属的规则类型包括:静态定义规则类型、动态编译规则类型、远程调用规则类型、数据库存储规则类型,根据业务事件信息和业务状态信息匹配到多个目标业务规则包括:
从静态定义规则类型、动态编译规则类型、远程调用规则类型、数据库存储规则类型中选取任意一种规则类型作为选取目标业务规则的规则库;
从规则库中匹配出多个目标业务规则。
可选地,目标业务规则均为java规则,其所属的规则类型包括但不限于:静态定义规则类型、动态编译规则类型、远程调用规则类型、数据库存储规则类型,这4类作为规则库,然后从这4类规则库中选取任意一种作为选取目标业务规则的规则库,得到多个目标业务规则。
静态定义规则类型:继承规则引擎定义好的通用标准java接口用户按具体业务实现逻辑处理。静态java规则跟应用代码一样事先编译,随应用启动调用。
动态编译规则类型:继承标准动态java抽象类代码内容写在数据库字段中,由规则运行模块实时加载、编译和执行。动态java类只需一次编译即可,实现热部署和可插拔。
远程调用规则类型:继承外部java抽象类的外部java文件编译后可放在指定的远程服务器目录中,供应用服务远程调用,有效的跟应用隔离,实现业务规则热部署、可插拔。
数据库存储规则类型:在数据库中已存储有多种规则信息,可直接根据已存储的多种规则信息,查找是否有符合条件的候选规则信息作为参数加入匹配过程中,以提供丰富的参数供规则使用,实现规则的热部署、可插拔以及不需要开发人员参与的敏捷开发。
上述4类规则库之间实现热部署、可插拔的机制可参见图2所示。
作为一种可选实施例,如图3所示,图3是根据本申请实施例的一种可选的规则调度的整体流程示意图,具体步骤流程如下:
首先定义规则触发器嵌入应用的触点;规则调用中心根据多维策略,生成策略配置信息,将策略配置信息设置在数据库内,通过修改配置支持业务规则的动态上下线;再动态加载规则库实现规则实例化,并根据优先级拼接形成动态规则链,包含java规则1,java规则2等,基于动态规则链执行具体业务逻辑。
以物联网CRM(Customer Relationship Management,客户关系管理)项目订单业务为例,CRM项目订单,每月版本上线时需要更新业务规则。现在需要满足运营人员根据业务情况修改规则,审批通过后,可实时的更新到系统中,不必等待版本的更新而更新规则。
1.提前在触发点做好嵌入式埋点;
2.开发人员使用四种规则组件类中的一种,完成规则组件的编写,规则逻辑对业务数据进行修改(此时还不会触发执行),实现规则代码热部署、可插拔;
3.通过业务方审核后,运维人员可以配置规则引擎决策表,使规则上下线,实现数据处理逻辑的修改,完成规则更新。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM(Read-Only Memory,只读存储器)/RAM(Random Access Memory,随机存取存储器)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例的方法。
根据本申请实施例的另一个方面,还提供了一种用于实施上述动态规则引擎的实现方法的动态规则引擎的实现装置。图4是根据本申请实施例的一种可选的动态规则引擎的实现装置的结构框图,如图4所示,该装置可以包括:
获取模块401,用于在接收到页面指示信息的情况下,获取报文信息,其中,报文信息中携带有当前业务数据的业务事件信息和业务状态信息,指示信息用于指示页面被执行了触发操作;
匹配模块402,用于根据业务事件信息和业务状态信息匹配到多个目标业务规则;
构建模块403,用于利用目标机制构建目标业务规则的实体类对象;
处理模块404,用于根据实体类对象调用对应的目标业务规则处理业务逻辑。
需要说明的是,该实施例中的获取模块401可以用于执行上述步骤S101,该实施例中的匹配模块402可以用于执行上述步骤S102,该实施例中的构建模块403可以用于执行上述步骤S103,该实施例中的处理模块404可以用于执行上述步骤S104。
通过上述模块,将业务规则从应用程序代码中分离出来,在接收到页面指示信息后获取报文信息,选取与当前业务数据相对应的目标业务规则,然后利用目标机制构建目标业务规则的实体类对象,拼接生成规则责任链,进而进行规则链的调度执行,进行业务处理,这样就可以做到与业务主流程的核心模块解耦,有利于后期的扩展和维护,且大幅度降低学习成本和开发成本,极大提升敏捷开发能力,缩短了整个软件开发周期和需求响应时间,从而降低软件开发成本,产生较大的经济价值,进而解决了相关技术中存在的难以维护扩展、影响业务主流程管理的问题。
作为一种可选的实施例,处理模块包括:
排列单元,用于根据预设优先级对实体类对象进行排列,得到排列结果;
处理单元,用于按照排列结果调用对应的目标业务规则,处理业务逻辑。
作为一种可选的实施例,该装置还包括:
嵌入模块,用于在接收到页面指示信息之前,在页面的应用触发点处嵌入埋点信息;
确定模块,用于利用埋点信息确定页面是否被执行了触发操作。
作为一种可选的实施例,获取模块包括:
确定单元,用于根据页面指示信息,确定策略配置信息,其中,策略配置信息包括业务事件信息和业务状态信息;
修改单元,用于根据策略配置信息,修改由策略配置信息生成的报文信息,使得修改后的报文信息与策略配置信息相匹配;
获取单元,用于获取修改后的报文信息。
作为一种可选的实施例,该装置还包括:
修改模块,用于修改策略配置信息,使得目标业务规则完成线上更新或线下更新,实现动态规则引擎。
作为一种可选的实施例,目标业务规则所属的规则类型包括:静态定义规则类型、动态编译规则类型、远程调用规则类型、数据库存储规则类型,匹配模块包括:
选取单元,用于从静态定义规则类型、动态编译规则类型、远程调用规则类型、数据库存储规则类型中选取任意一种规则类型作为选取目标业务规则的规则库;
匹配单元,用于从规则库中匹配出多个目标业务规则。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。
根据本申请实施例的又一个方面,还提供了一种用于实施上述动态规则引擎的实现方法的电子设备,该电子设备可以是服务器、终端、或者其组合。
图5是根据本申请实施例的一种可选的电子设备的结构框图,如图5所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501、通信接口502和存储器503通过通信总线504完成相互间的通信,其中,
存储器503,用于存储计算机程序;
处理器501,用于执行存储器503上所存放的计算机程序时,实现如下步骤:
在接收到页面指示信息的情况下,获取报文信息,其中,报文信息中携带有当前业务数据的业务事件信息和业务状态信息,指示信息用于指示页面被执行了触发操作;
根据业务事件信息和业务状态信息匹配到多个目标业务规则;
利用目标机制构建目标业务规则的实体类对象;
根据实体类对象调用对应的目标业务规则处理业务逻辑。
可选地,在本实施例中,上述的通信总线可以是PCI(Peripheral ComponentInterconnect,外设部件互连标准)总线、或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括RAM,也可以包括非易失性存储器(non-volatile memory),例如,至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
作为一种示例,如图5所示,上述存储器503中可以但不限于包括上述动态规则引擎的实现装置中的获取模块401、匹配模块402、构建模块403、处理模块404。此外,还可以包括但不限于上述动态规则引擎的实现装置中的其他模块单元,本示例中不再赘述。
上述处理器可以是通用处理器,可以包含但不限于:CPU(Central ProcessingUnit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(DigitalSignal Processing,数字信号处理器)、ASIC(Application Specific IntegratedCircuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
此外,上述电子设备还包括:显示器,用于显示动态规则引擎的实现结果。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图5所示的结构仅为示意,实施上述动态规则引擎的实现方法的设备可以是终端设备,该终端设备可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图5其并不对上述电子设备的结构造成限定。例如,终端设备还可包括比图5中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图5所示的不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、ROM、RAM、磁盘或光盘等。
根据本申请实施例的又一个方面,还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行动态规则引擎的实现方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
在接收到页面指示信息的情况下,获取报文信息,其中,报文信息中携带有当前业务数据的业务事件信息和业务状态信息,指示信息用于指示页面被执行了触发操作;
根据业务事件信息和业务状态信息匹配到多个目标业务规则;
利用目标机制构建目标业务规则的实体类对象;
根据实体类对象调用对应的目标业务规则处理业务逻辑。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例中对此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、ROM、RAM、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
根据本申请实施例的又一个方面,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中;计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任一个实施例中的动态规则引擎的实现方法步骤。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例动态规则引擎的实现方法的全部或部分步骤。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例中所提供的方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种动态规则引擎的实现方法,其特征在于,所述方法包括:
在接收到页面指示信息的情况下,获取报文信息,其中,所述报文信息中携带有当前业务数据的业务事件信息和业务状态信息,所述指示信息用于指示页面被执行了触发操作;
根据所述业务事件信息和所述业务状态信息匹配到多个目标业务规则;
利用目标机制构建所述目标业务规则的实体类对象;
根据所述实体类对象调用对应的所述目标业务规则处理业务逻辑。
2.根据权利要求1所述的方法,其特征在于,所述根据所述实体类对象调用对应的所述目标业务规则处理业务逻辑包括:
根据预设优先级对所述实体类对象进行排列,得到排列结果;
按照所述排列结果调用对应的所述目标业务规则,处理所述业务逻辑。
3.根据权利要求1所述的方法,其特征在于,在接收到页面指示信息之前,所述方法还包括:
在所述页面的应用触发点处嵌入埋点信息;
利用所述埋点信息确定所述页面是否被执行了触发操作。
4.根据权利要求1至3任一所述的方法,其特征在于,所述获取报文信息包括:
根据所述页面指示信息,确定策略配置信息,其中,所述策略配置信息包括所述业务事件信息和所述业务状态信息;
根据所述策略配置信息,修改由所述策略配置信息生成的报文信息,使得修改后的报文信息与所述策略配置信息相匹配;
获取所述修改后的报文信息。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
修改所述策略配置信息,使得所述目标业务规则完成线上更新或线下更新,实现动态规则引擎。
6.根据权利要求1所述的方法,其特征在于,所述目标业务规则所属的规则类型包括:静态定义规则类型、动态编译规则类型、远程调用规则类型、数据库存储规则类型,所述根据所述业务事件信息和所述业务状态信息匹配到多个目标业务规则包括:
从所述静态定义规则类型、所述动态编译规则类型、所述远程调用规则类型、所述数据库存储规则类型中选取任意一种规则类型作为选取所述目标业务规则的规则库;
从所述规则库中匹配出多个所述目标业务规则。
7.一种动态规则引擎的实现装置,其特征在于,所述装置包括:
获取模块,用于在接收到页面指示信息的情况下,获取报文信息,其中,所述报文信息中携带有当前业务数据的业务事件信息和业务状态信息,所述指示信息用于指示页面被执行了触发操作;
匹配模块,用于根据所述业务事件信息和所述业务状态信息匹配到多个目标业务规则;
构建模块,用于利用目标机制构建所述目标业务规则的实体类对象;
处理模块,用于根据所述实体类对象调用对应的所述目标业务规则处理业务逻辑。
8.根据权利要求7所述的装置,其特征在于,所述处理模块包括:
排列单元,用于根据预设优先级对所述实体类对象进行排列,得到排列结果;
处理单元,用于按照所述排列结果调用对应的所述目标业务规则,处理所述业务逻辑。
9.一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口和所述存储器通过所述通信总线完成相互间的通信,其特征在于,
所述存储器,用于存储计算机程序;
所述处理器,用于通过运行所述存储器上所存储的所述计算机程序来执行权利要求1至6中任一项所述的方法步骤。
10.一种计算机可读的存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现权利要求1至6中任一项中所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210909388.1A CN115469833A (zh) | 2022-07-29 | 2022-07-29 | 动态规则引擎的实现方法和装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210909388.1A CN115469833A (zh) | 2022-07-29 | 2022-07-29 | 动态规则引擎的实现方法和装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115469833A true CN115469833A (zh) | 2022-12-13 |
Family
ID=84366582
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210909388.1A Pending CN115469833A (zh) | 2022-07-29 | 2022-07-29 | 动态规则引擎的实现方法和装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115469833A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115774707A (zh) * | 2023-02-15 | 2023-03-10 | 广州汇通国信科技有限公司 | 基于对象属性数据处理方法和装置、电子设备和存储介质 |
CN116521219A (zh) * | 2023-05-09 | 2023-08-01 | 中设数字技术有限公司 | 一种基于规则引擎的可视化配置方法及系统 |
CN117278620A (zh) * | 2023-09-21 | 2023-12-22 | 中科驭数(北京)科技有限公司 | Dpu的数据面转发规则的配置方法及系统 |
-
2022
- 2022-07-29 CN CN202210909388.1A patent/CN115469833A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115774707A (zh) * | 2023-02-15 | 2023-03-10 | 广州汇通国信科技有限公司 | 基于对象属性数据处理方法和装置、电子设备和存储介质 |
CN115774707B (zh) * | 2023-02-15 | 2023-05-12 | 广州汇通国信科技有限公司 | 基于对象属性数据处理方法和装置、电子设备和存储介质 |
CN116521219A (zh) * | 2023-05-09 | 2023-08-01 | 中设数字技术有限公司 | 一种基于规则引擎的可视化配置方法及系统 |
CN117278620A (zh) * | 2023-09-21 | 2023-12-22 | 中科驭数(北京)科技有限公司 | Dpu的数据面转发规则的配置方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115469833A (zh) | 动态规则引擎的实现方法和装置、电子设备和存储介质 | |
CN110162470B (zh) | 一种区块链的测试方法和装置 | |
CN112488855B (zh) | 一种基于规则模板的业务校验方法及设备 | |
CN107979508A (zh) | 微服务测试方法及装置 | |
CN107193607B (zh) | 用于更新代码文件的方法和装置、存储介质、处理器以及终端 | |
CN110569035A (zh) | 软件开发项目的代码编译方法、装置、设备和存储介质 | |
JP2019500680A (ja) | データ処理方法及び装置 | |
CN112631803A (zh) | 区块链的智能合约调用方法、装置、服务器和存储介质 | |
CN108920370B (zh) | 兼容性问题检测方法、装置及设备 | |
CN111899008B (zh) | 资源转移方法、装置、设备及系统 | |
CN112165507B (zh) | 单Web项目支持多服务架构的方法、装置、设备和介质 | |
CN111694638A (zh) | 规则包加载方法、规则包执行方法及终端设备 | |
CN112882732A (zh) | 一种软件开发工具包sdk中功能代码的更新方法和装置 | |
CN109885612B (zh) | 区块链智能合约的同步生效方法及装置 | |
CN112486518B (zh) | 共识算法装配方法及装置 | |
CN113760230A (zh) | 业务处理方法和装置 | |
CN112132530A (zh) | 可视化动态流程编排方法及系统 | |
CN108932146A (zh) | 页面显示方法、装置以及计算机可读存储介质 | |
CN110347735A (zh) | 配置化的数据转发异常补处理方法、装置及可读存储介质 | |
CN110111188B (zh) | 业务办理方法及设备 | |
CN111782518A (zh) | 测试方法、装置和电子设备 | |
US11669316B2 (en) | Web-based customer service via single-class rebuild | |
CN106528192A (zh) | 一种业务逻辑更新方法和装置 | |
CN114356346A (zh) | 应用程序部署方法、装置、存储介质以及电子设备 | |
CN108845953B (zh) | 接口测试的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |