一种业务处理方法、装置及电子设备和存储介质与流程

文档序号:20009121发布日期:2020-02-22 03:53阅读:177来源:国知局
一种业务处理方法、装置及电子设备和存储介质与流程

本申请涉及业务处理技术领域,更具体地说,涉及一种业务处理方法、装置及一种电子设备和一种计算机可读存储介质。



背景技术:

在业务系统建设的过程中,业务规则复杂多变且不成熟,随着业务的发展和行业的成熟,或根据市场的需求,业务规则可能会经常变更。为了适应这些变化,往往通过修改代码的方式来实现更改。然而,这种方式开发成本较高,且会耗费一定的人力物力,开发效率低下。

因此,如何解决上述问题是本领域技术人员需要重点关注的。



技术实现要素:

本申请的目的在于提供一种业务处理方法、装置及一种电子设备和一种计算机可读存储介质,提高了开发的时效性。

为实现上述目的,本申请提供了一种业务处理方法,包括:

获取业务规则,并生成所述业务规则对应的规则脚本;

确定目标规则引擎,将所述规则脚本转换为所述目标规则引擎执行的目标脚本;

确定所述目标规则引擎对应的数据适配器,利用所述数据适配器将当前待处理业务数据转换为对应的目标业务数据;

调用所述目标规则引擎,以便所述目标规则引擎通过执行所述目标脚本对所述目标业务数据进行处理。

可选的,所述获取业务规则,并生成所述业务规则对应的规则脚本,包括:

接收通过前端配置页面录入的业务规则;

基于所述业务规则生成对应的规则脚本。

可选的,所述生成所述业务规则对应的规则脚本之后,还包括:

利用二叉树结构对所述规则脚本进行存储。

可选的,所述确定目标规则引擎,将所述规则脚本转换为所述目标规则引擎执行的目标脚本,包括:

确定目标规则引擎,并确定所述目标规则引擎所执行脚本的语法格式;

基于所述语法格式将所述规则脚本转换为所述目标脚本。

可选的,还包括:

将所有开源的第三方规则引擎抽象封装成统一接口;

相应的,所述调用所述目标规则引擎,包括:

通过所述统一接口调用所述目标规则引擎。

为实现上述目的,本申请提供了一种业务处理装置,包括:

规则获取模块,用于获取业务规则,并生成所述业务规则对应的规则脚本;

引擎确定模块,用于确定目标规则引擎,将所述规则脚本转换为所述目标规则引擎执行的目标脚本;

数据转换模块,用于确定所述目标规则引擎对应的数据适配器,利用所述数据适配器将当前待处理业务数据转换为对应的目标业务数据;

引擎调用模块,用于调用所述目标规则引擎,以便所述目标规则引擎通过执行所述目标脚本对所述目标业务数据进行处理。

可选的,所述规则获取模块,包括:

规则接收单元,用于接收通过前端配置页面录入的业务规则;

脚本生成单元,用于基于所述业务规则生成对应的规则脚本。

可选的,所述引擎确定模块,包括:

格式确定单元,用于确定目标规则引擎,并确定所述目标规则引擎所执行脚本的语法格式;

脚本转换单元,用于基于所述语法格式将所述规则脚本转换为所述目标脚本。

为实现上述目的,本申请提供了一种电子设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现前述公开的任一种业务处理方法的步骤。

为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述公开的任一种业务处理方法的步骤。

通过以上方案可知,本申请提供的一种业务处理方法,包括:获取业务规则,并生成所述业务规则对应的规则脚本;确定目标规则引擎,将所述规则脚本转换为所述目标规则引擎执行的目标脚本;确定所述目标规则引擎对应的数据适配器,利用所述数据适配器将当前待处理业务数据转换为对应的目标业务数据;调用所述目标规则引擎,以便所述目标规则引擎通过执行所述目标脚本对所述目标业务数据进行处理。由上可知,本申请在业务规则需要更改时获取业务规则,并生成对应的规则脚本,将规则脚本转换为能够被目标规则引擎执行的目标脚本,进一步将待处理的业务数据转换为能够被目标规则引擎处理的目标业务数据,从而目标规则引擎可执行目标脚本实现对目标业务数据的处理,无需用户修改底层代码,降低了开发成本,有效提高了开发效率。

本申请还公开了一种业务处理装置及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例公开的一种业务处理方法的流程图;

图2为本申请实施例公开的基于业务处理方法构建的一种具体的规则引擎框架的结构图;

图3为本申请实施例公开的一种业务处理装置的结构图;

图4为本申请实施例公开的一种电子设备的结构图;

图5为本申请实施例公开的另一种电子设备的结构图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在现有技术中,随着业务的发展和行业的成熟,或根据市场的需求,业务规则可能会经常变更。为了适应这些变化,往往通过修改代码的方式来实现更改。然而,这种方式开发成本较高,且会耗费一定的人力物力,开发效率低下。

因此,本申请实施例公开了一种业务处理方法,提高了开发的时效性。

参见图1所示,本申请实施例公开的一种业务处理方法包括:

s101:获取业务规则,并生成所述业务规则对应的规则脚本;

本申请实施例中,在业务规则需要进行更改时,获取业务规则,并根据业务规则生成对应的规则脚本。其中,业务规则是对业务定义和约束的描述,用于维持业务结构或控制影响业务的行为。

在具体实施中,上述获取业务规则时,可以接收用户通过前端配置页面录入的业务规则。也即,可以预先为用户提供用于配置的界面,用户通过在该界面输入业务规则实现对业务规则的变更。

需要说明的是,本申请实施例在生成业务规则对应的规则脚本之后,还可以利用二叉树结构对规则脚本进行存储。其中,规则脚本具体为规则引擎产品执行的脚本。二叉树为一种计算机数据结构,可以用于存储特定结构的数据。

s102:确定目标规则引擎,将所述规则脚本转换为所述目标规则引擎执行的目标脚本;

在本步骤中,确定目标规则引擎,所述目标规则引擎可以具体指用于执行上述规则脚本的规则引擎。其中,规则引擎为一种嵌入在计算机应用程序中的组件,实现了将业务决策从应用程序代码中分离出来。

由于每种规则引擎在运行规则时,对于规则的语法、格式都可能存在不同的要求,因此需要将规则脚本转换成能够被目标规则引擎所执行的目标脚本。具体地,上述将规则脚本转换为目标规则引擎执行的目标脚本的过程可以包括:确定所述目标规则引擎所执行脚本的语法格式;基于所述语法格式将所述规则脚本转换为所述目标脚本。也即,需要确定目标规则引擎所能够执行的脚本对应的语法和格式,并将规则脚本转换成符合上述语法和格式的目标脚本。

s103:确定所述目标规则引擎对应的数据适配器,利用所述数据适配器将当前待处理业务数据转换为对应的目标业务数据;

可以理解的是,不同的规则引擎在处理数据时对于数据的要求也可能有所不同,因此需要将待处理的业务数据转换成目标规则引擎能够处理的目标业务数据。本申请实施例中,为每种目标规则引擎提供其对应的数据适配器,该数据适配器能够将数据转换为对应目标规则引擎所能处理的数据格式的业务数据。

s104:调用所述目标规则引擎,以便所述目标规则引擎通过执行所述目标脚本对所述目标业务数据进行处理。

需要说明的是,目标规则引擎的调用需要规则脚本和数据,在上述步骤中,通过脚本的转换以及数据的转换,最终得到目标规则引擎所需的目标脚本及目标业务数据,从而可对目标规则引擎进行调用,目标规则引擎能够执行上述目标脚本,实现对目标业务数据的处理。

作为一种优选的实施方式,本申请实施例可以预先将所有开源的第三方规则引擎抽象封装成统一接口,上述第三方规则引擎可以包括但不限于jexl(javaexpressionlanguage,表达式语言引擎),groovy、drools(jbossrules,业务规则引擎)等。进而在需要调用规则引擎时,能够通过预先封装的统一接口对规则引擎进行调用。

通过以上方案可知,本申请提供的一种业务处理方法,包括:获取业务规则,并生成所述业务规则对应的规则脚本;确定目标规则引擎,将所述规则脚本转换为所述目标规则引擎执行的目标脚本;确定所述目标规则引擎对应的数据适配器,利用所述数据适配器将当前待处理业务数据转换为对应的目标业务数据;调用所述目标规则引擎,以便所述目标规则引擎通过执行所述目标脚本对所述目标业务数据进行处理。由上可知,本申请在业务规则需要更改时获取业务规则,并生成对应的规则脚本,将规则脚本转换为能够被目标规则引擎执行的目标脚本,进一步将待处理的业务数据转换为能够被目标规则引擎处理的目标业务数据,从而目标规则引擎可执行目标脚本实现对目标业务数据的处理,无需用户修改底层代码,降低了开发成本,有效提高了开发效率。

基于本申请实施例公开的业务处理方法,可以对应构建一种具体的规则引擎框架。具体地,规则引擎框架可以依据开源j2ee框架成熟的设计模式,采用的控制器+适配器模式来驱动,上述规则引擎框架主要可以包括六个模块,参见图2所示,包括:

前端配置模块:业务人员可以通过前端配置页面实现业务规则的配置,业务规则配置好后会产生一个规则定义;

规则脚本结构化模块:规则定义是一个规则的描述,规则定义产生后需要持久化存储以便系统复用。本申请实施例使用二叉树结构来存储规则定义,基于二叉树结构存储的规则定义不具备特有的语法特征。结构化规则脚本可以通过规则脚本适配器来转化为某种规则引擎产品能运行的规则脚本;

规则脚本适配器:由于不同的规则引擎产品运行的规则脚本在格式、语法上要求不同,所以每种规则引擎产品都需要对应的规则脚本适配器,将结构化的规则脚本适配为该规则引擎可以运行的规则脚本;

数据适配器:规则引擎的运行需要两个因素,即规则脚本和业务数据。规则脚本用于描述规则如何执行,不同的业务数据运行会产生不同的结果。由于不同的规则引擎产品在运行规则时,对业务数据在格式语法上有不同的要求,所以每种规则引擎产品都需要对应的数据适配器。将普通业务数据转化为该规则引擎产品能够识别的业务数据;

规则引擎调度器:管理规则引擎运行的调度中心,可以将结构化的规则脚本发送至给规则脚本适配器和数据适配器进行处理,接收处理后的结果,即规则引擎可执行的规则脚本和业务数据,并将处理得到的规则脚本和业务数据发送至具体的规则引擎产品去执行,进而获取执行结果。

封装模块:本申请实施例对现存的多种开源的规则引擎产品进行抽象并封装统一的接口,通过接口可以使用不同的第三方规则引擎产品。

本申请实施例提供的基于开源规则引擎产品的规则引擎框架,属于一个半成品软件,可以方便地与商业信息系统集成,支持跨系统、跨语言、跨平台使用。基于上述实施例提供的规则引擎框架,能够对业务规则进行统一的管理和运行,同时,开发者可以进行定制化的开发,在业务模式发生改变时,业务人员可通过前端页面修改业务规则来实现适配,通过简单的规则配置即可完成灵活多变的规则计算,从而可以解决商业系统中复杂的业务逻辑硬编码到程序代码中带来不便的问题。

可以理解的是,本申请实施例提供的规则引擎框架具备高扩展性、高可用性和高可靠性。高扩展性具体体现在:封装模块中封装的第三方规则引擎产品可扩展:可使用多个引擎的不同特性,适应复杂的应用场景;规则脚本适配器可扩展:由于不同第三方规则引擎的脚本语言不一致,需要根据不同的引擎扩展对应所需的规则脚本适配器,在前端界面接收到规则脚本之后,将其存储为基于二叉树的结构化脚本,再根据规则引擎的不同将该结构化脚本转换为目标规则引擎可执行的脚本;同理,数据适配器也可进行扩展。高可用性具体体现在:在封装第三方规则引擎时,可为其接口编写同步和异步功能,能够实现多个规则引擎的同步和异步调用,支持单个业务以及批量业务的执行;可支持回调方式,在业务处理完之后能够自动返回处理结果;对于规则脚本会自动缓存,对于后续过程出现的相同脚本可直接复用缓存中的脚本,无需重复创建,避免了资源的浪费和性能的下降,提高了执行效率。高可靠性具体体现在:上述规则引擎框架依据开源j2ee框架成熟的设计模式,采用控制器+适配器模式进行驱动,并内置可调整参数线程池,内置缓存,支持业务的同/异步和批量执行,各个模块职责明确,具备可追溯、可灵活调整的特性。

下面对本申请实施例提供的一种业务处理装置进行介绍,下文描述的一种业务处理装置与上文描述的一种业务处理方法可以相互参照。

参见图3所示,本申请实施例提供的一种业务处理装置包括:

规则获取模块201,用于获取业务规则,并生成所述业务规则对应的规则脚本;

引擎确定模块202,用于确定目标规则引擎,将所述规则脚本转换为所述目标规则引擎执行的目标脚本;

数据转换模块203,用于确定所述目标规则引擎对应的数据适配器,利用所述数据适配器将当前待处理业务数据转换为对应的目标业务数据;

引擎调用模块204,用于调用所述目标规则引擎,以便所述目标规则引擎通过执行所述目标脚本对所述目标业务数据进行处理。

关于上述模块201至204的具体实施过程可参考前述实施例公开的相应内容,在此不再进行赘述。

在上述实施例的基础上,作为一种优选实施方式,所述规则获取模块201,包括:

规则接收单元,用于接收通过前端配置页面录入的业务规则;

脚本生成单元,用于基于所述业务规则生成对应的规则脚本。

在上述实施例的基础上,作为一种优选实施方式,所述引擎确定模块202,包括:

格式确定单元,用于确定目标规则引擎,并确定所述目标规则引擎所执行脚本的语法格式;

脚本转换单元,用于基于所述语法格式将所述规则脚本转换为所述目标脚本。

在上述实施例的基础上,作为一种优选实施方式,所述业务处理装置,还包括:

脚本存储模块,用于利用二叉树结构对所述规则脚本进行存储。

在上述实施例的基础上,作为一种优选实施方式,所述业务处理装置,还包括:

接口封装模块,用于将所有开源的第三方规则引擎抽象封装成统一接口;

相应的,所述引擎调用模块,具体用于:通过所述统一接口调用所述目标规则引擎。

本申请还提供了一种电子设备,参见图4所示,本申请实施例提供的一种电子设备包括:

存储器100,用于存储计算机程序;

处理器200,用于执行所述计算机程序时可以实现前述任一种实施例公开的业务处理方法的步骤。

具体的,存储器100包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机可读指令,该内存储器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。处理器200在一些实施例中可以是一中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器或其他数据处理芯片,为电子设备提供计算和控制能力,执行所述存储器100中保存的计算机程序时,可以实现前述任一种实施例公开的业务处理方法的步骤。

在上述实施例的基础上,作为优选实施方式,参见图5所示,所述电子设备还包括:

输入接口300,与处理器200相连,用于获取外部导入的计算机程序、参数和指令,经处理器200控制保存至存储器100中。该输入接口300可以与输入装置相连,接收用户手动输入的参数或指令。该输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是键盘、触控板或鼠标等。

显示单元400,与处理器200相连,用于显示处理器200处理的数据以及用于显示可视化的用户界面。该显示单元400可以为led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。

网络端口500,与处理器200相连,用于与外部各终端设备进行通信连接。该通信连接所采用的通信技术可以为有线通信技术或无线通信技术,如移动高清链接技术(mhl)、通用串行总线(usb)、高清多媒体接口(hdmi)、无线保真技术(wifi)、蓝牙通信技术、低功耗蓝牙通信技术、基于ieee802.11s的通信技术等。

图5仅示出了具有组件100-500的电子设备,本领域技术人员可以理解的是,图5示出的结构并不构成对电子设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。

本申请还提供了一种计算机可读存储介质,该存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述任一种实施例公开的业务处理方法的步骤。

优选的,所述计算机可读存储介质中存储的计算机子程序被处理器执行时,具体可以实现以下步骤:

获取业务规则,并生成所述业务规则对应的规则脚本;确定目标规则引擎,将所述规则脚本转换为所述目标规则引擎执行的目标脚本;确定所述目标规则引擎对应的数据适配器,利用所述数据适配器将当前待处理业务数据转换为对应的目标业务数据;调用所述目标规则引擎,以便所述目标规则引擎通过执行所述目标脚本对所述目标业务数据进行处理。

优选的,所述计算机可读存储介质中存储的计算机子程序被处理器执行时,具体可以实现以下步骤:接收通过前端配置页面录入的业务规则;基于所述业务规则生成对应的规则脚本。

优选的,所述计算机可读存储介质中存储的计算机子程序被处理器执行时,具体可以实现以下步骤:所述生成所述业务规则对应的规则脚本之后,利用二叉树结构对所述规则脚本进行存储。

优选的,所述计算机可读存储介质中存储的计算机子程序被处理器执行时,具体可以实现以下步骤:确定目标规则引擎,并确定所述目标规则引擎所执行脚本的语法格式;基于所述语法格式将所述规则脚本转换为所述目标脚本。

优选的,所述计算机可读存储介质中存储的计算机子程序被处理器执行时,具体可以实现以下步骤:将所有开源的第三方规则引擎抽象封装成统一接口;相应的,所述调用所述目标规则引擎,包括:通过所述统一接口调用所述目标规则引擎。

本申请在业务规则需要更改时获取业务规则,并生成对应的规则脚本,将规则脚本转换为能够被目标规则引擎执行的目标脚本,进一步将待处理的业务数据转换为能够被目标规则引擎处理的目标业务数据,从而目标规则引擎可执行目标脚本实现对目标业务数据的处理,无需用户修改底层代码,降低了开发成本,有效提高了开发效率。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1