业务规则引擎的实现方法及系统与流程

文档序号:11199002阅读:5288来源:国知局
业务规则引擎的实现方法及系统与流程

本发明涉及计算机技术领域,特别涉及一种业务规则引擎的实现方法及系统。



背景技术:

业务规则引擎是一项在线运行业务规则的服务。通过将业务规则执行代码与业务流程管理系统的其他代码分开,使业务人员通过规则编辑器灵活编辑、调整业务规则逻辑。

然而,目前的业务规则引擎通常是使用开源的drools工具而实现的。drools工具是基于java程序运行的,而由于java程序自身的并发处理限制,在一定的javaweb服务器资源下,业务规则引擎对多进程的响应时间较长,大大影响了业务规则引擎的处理效率。



技术实现要素:

为了解决相关技术中实现业务规则引擎多进程的响应时间较长的技术问题,本发明提供了一种业务规则引擎的实现方法及系统。

本发明实施例提供了一种业务规则引擎的实现方法,包括:

监听专用web平台的运行,确定新收事件;

针对业务规则库中的每一个业务规则,对所述新收事件与所述业务规则中的规则条件进行匹配运算,确定与所述新收事件匹配的规则条件;

对所述规则条件对应的规则动作进行多进程执行。

另外,本发明实施例提供了一种业务规则引擎的实现系统,包括:

新收事件确定模块,用于监听专用web平台的运行,确定新收事件;

规则条件确定模块,用于针对业务规则库中的每一个业务规则,对所述新收事件与所述业务规则中的规则条件进行匹配运算,确定与所述新收事件匹配的规则条件;

动作执行模块,用于对所述规则条件对应的规则动作进行多进程执行。

此外,本发明实施例还提供了一种系统,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为执行:

监听专用web平台的运行,确定新收事件;

针对业务规则库中的每一个业务规则,对所述新收事件与所述业务规则中的规则条件进行匹配运算,确定与所述新收事件匹配的规则条件;

对所述规则条件对应的规则动作进行多进程执行。

本发明的实施例提供的技术方案可以包括以下有益效果:

在业务规则引擎的实现过程中,监听专用web平台的运行,确定新收事件,针对业务规则库中的每一个业务规则,对所述新收事件与所述业务规则中的规则条件进行匹配运算,确定与所述新收事件匹配的规则条件,对所述规则条件对应的规则动作进行多进程执行,从而通过专用web平台实现业务规则引擎中的多进程执行,减短了多进程的响应时间,大大影响了业务规则引擎的处理效率。

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

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1是根据一示例性实施例示出的一种业务规则引擎的实现方法流程图。

图2是根据图1对应实施例示出的另一种业务规则引擎的实现方法流程图。

图3是根据图2对应实施例示出的另一种业务规则引擎的实现方法流程图。

图4是图1对应实施例示出的分布式分配方法中步骤s130的一种具体实现流程图。

图5是图4对应实施例示出的分布式分配方法中步骤s132的一种具体实现流程图。

图6是根据一示例性实施例示出的一种业务规则引擎的实现系统框图。

图7是根据图6对应实施例示出的另一种业务规则引擎的实现系统框图。

图8是根据图7对应实施例示出的另一种业务规则引擎的实现系统框图。

图9是图6对应实施例示出的业务规则引擎的实现系统中动作执行模块130的框图。

图10是图9对应实施例示出的业务规则引擎的实现系统中函数对象执行子模块132的框图。

图11是根据一示例性实施例示出的一种系统的结构框图。

具体实施方式

这里将详细地对示例性实施例执行说明,其示例表示在附图中。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

图1是根据一示例性实施例示出的一种业务规则引擎的实现方法流程图。如图1所示,该业务规则引擎的实现方法可以包括以下步骤。

在步骤s110中,监听专用web平台的运行,确定新收事件。

专用web平台是进行web开发的专业平台。通过专用web平台,实现软件的二次开发。

专用web平台采用非编码的方式或者是极少编码的方式,实现资源的共享,从而节约开发成本、提高开发效率、缩短开发周期。

在一具体的示例性实施例中,专用web平台为openresty平台。openresty平台是一个基于nginx与lua的高性能web平台,其内部集成了大量精良的lua库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态web应用、web服务和动态网关。

openresty平台为开源的专用web平台,参考https://openresty.org/cn/getting-started.html学习如何从最简单的helloworld开始使用openresty开发http业务,或前往https://openresty.org/cn/download.html直接获取openresty的源代码包开始体验。

openresty是国内注册商标,注册人为章亦春,商标专用期为2016年4月7日至2026年4月6日。

事件可以为专用web平台接收到的执行指令,也可以为其它类型的操作指示。

专用web平台中,根据新收事件,当存在规则条件满足该新收事件时,执行对应的规则动作。

在一具体的示例性实施例中,通过监听openresty平台中的消息总线,确定openresty平台中新接收的事件。

在步骤s120中,针对业务规则库中的每一个业务规则,对新收事件与业务规则中的规则条件进行匹配运算,确定与新收事件匹配的规则条件。

业务规则库是预先构建的,业务规则库中存储了多种业务规则。

业务规则是与业务相关的操作规范、管理章程、规章制度、行业标准等。业务规则描述了业务过程中重要的且值得记录的对象、关系和活动。其中包括业务操作中的流程、规范与策略。业务规则保证了业务能满足其目标和义务。

业务规则包括规则条件与规则动作等。

规则条件是规则动作触发执行的条件。

业务规则中,规则条件是与规则动作相对应的。当业务规则中的规则条件满足时,则触发执行相应的规则动作。

在步骤s130中,对规则条件对应的规则动作进行多进程执行。

openresty平台中,基于lua(一种脚本语言)实现规则动作的多进程执行。lua能提供了10k以上的多进程执行,而java能够提供的最大多进程数为500,从而通过lua大大提高了业务规则引擎的处理能力。

通过如上所述的方法,在openresty平台中,基于lua实现业务规则引擎中的多进程执行,减短了多进程的响应时间,大大影响了业务规则引擎的处理效率。

图2是根据一示例性实施例示出的一种业务规则引擎的实现方法流程图。如图2所示,在图1对应实施例中的步骤s120之前,该业务规则引擎的实现方法还可以包括以下步骤。

在步骤s210中,接收业务规则的界面化编辑。

界面化编辑是在终端显示界面进行的业务规则编辑。

在用户层面,其可通过界面中预置的按钮及输入框,接收输入的相关编辑内容。

在步骤s220中,根据界面化编辑,生成业务规则对应的业务规则代码。

可以理解的是,界面化编辑是面向对象的。

根据面向对象的界面化编辑,利用程序语言将编辑内容映射成相应的业务规则代码。

通过界面化编辑,使业务规则的创建者或维护者无需了解程序语言,就能实现业务规则代码的生成,大大降低了业务规则引擎的使用门槛。

在一具体的示例性实施例中,业务规则代码是业务规则对应的lua语言代码。

在步骤s230中,将业务规则代码以业务规则为标识存储于业务规则库中。

利用如上所述的方法,通过界面化编辑进行业务规则的创建并存储于业务规则库,大大降低了业务规则引擎的创建及使用门槛,提高了业务规则引擎的使用效率。

图3是根据一示例性实施例示出的一种业务规则引擎的实现方法流程图。如图3所示,在图2对应实施例中的步骤s230之前,该业务规则引擎的实现方法还可以包括以下步骤。

在步骤s310中,接收业务规则库中的更新指令。

可以理解的是,根据实际需要对业务规则库中的业务规则进行更新,从而更好的满足业务需求。

输入更新指令的方式有多种,例如通过界面化编辑输入相应的更新指令,又例如,通过对业务规则对应的代码进行编辑触发输入相应的更新指令。

在步骤s320中,根据规则更新,对相应的业务规则进行代码更新。

利用如上所述的方法,通过接收更新指令对相应的业务规则进行更新,从而使业务规则更加适应实际业务需求,大大提高了业务规则引擎的处理效率。

图4是根据一示例性实施例示出的对步骤s130进一步的细节的描述。该步骤s130可以包括以下步骤。

在步骤s131中,针对每一个与新收事件匹配的规则条件,将规则条件对应的业务规则解析生成对应的函数对象,并存储于内存中。

解析是对业务规则进行语法分析。

函数对象是类对象,表现出一个函数的特征。

函数对象可以定义跨越多次调用的可持久的部分(类似静态局部变量),同时又能从对象的外面进行初始化和检查(和静态局部变量不同),从而通过将业务规则解析生成函数对象,更方便地执行业务规则。

在步骤s132中,对内存中的函数对象进行多进程执行。

由于函数对象存储于内存中,在专用web平台的运行中执行业务规则时,无需频繁地访问磁盘,避免引起磁盘的性能瓶颈,大大提高了利用专用web平实现业务规则引擎的开发效率。

图5根据一示例性实施例示出的对图4中步骤s132进一步的细节描述。业务规则配置有优先级,该步骤s132可以包括以下步骤。

在步骤s1321中,获取内存中每一个函数对象对应的优先级。

优先级是业务规则的执行优先顺序。

业务规则配置有优先级时,在业务规则被解析成函数对象后,该业务规则对应的函数对象将配置相应的优先级。

例如,业务规则a配置的优先级为1,业务规则b配置的优先级为1。将业务规则a解析成函数对象a1、a2、a3,将业务规则b解析成函数对象b1、b2,则函数对象a1、a2、a3对应的优先级为1,而函数对象b1、b2对应的优先级为2。

在步骤s1322中,按照优先级的顺序,进行函数对象的多进程执行。

例如,业务规则a配置的优先级为1,业务规则b配置的优先级为1。将业务规则a解析成函数对象a1、a2、a3,将业务规则b解析成函数对象b1、b2,则函数对象a1、a2、a3对应的优先级为1,而函数对象b1、b2对应的优先级为2。对函数对象a1、a2、a3和函数对象b1、b2执行时,根据优先级顺序,在执行完函数对象a1、a2、a3后,再执行函数对象b1、b2。

利用如上所述的方法,通过获取各函数对象的优先级,并根据优先级顺序进行函数对象的多进程执行,从而更灵活地进行业务规则处理,大大提高了实现业务规则引擎的开发性能。

下述为本发明系统实施例,可以用于执行上述业务规则引擎的实现方法实施例。对于本发明系统实施例中未披露的细节,请参照本发明业务规则引擎的实现方法实施例。

图6是根据一示例性实施例示出的一种业务规则引擎的实现系统框图,该系统包括但不限于:新收事件确定模块110、规则条件确定模块120及动作执行模块130。

新收事件确定模块110,用于监听专用web平台的运行,确定新收事件;

规则条件确定模块120,用于针对业务规则库中的每一个业务规则,对所述新收事件与所述业务规则中的规则条件进行匹配运算,确定与所述新收事件匹配的规则条件;

动作执行模块130,用于对所述规则条件对应的规则动作进行多进程执行。

上述系统中各个模块的功能和作用的实现过程具体详见上述业务规则引擎的实现方法中对应步骤的实现过程,在此不再赘述。

图7是根据图6对应实施例示出的一种业务规则引擎的实现系统框图,该系统还包括但不限于:编辑接收模块210、代码生成模块220及规则存储模块230。

编辑接收模块210,用于接收业务规则的界面化编辑;

代码生成模块220,用于根据所述界面化编辑,生成所述业务规则对应的业务规则代码;

规则存储模块230,用于将所述业务规则代码以所述业务规则为标识存储于所述业务规则库中。

图8是根据图7对应实施例示出的一种业务规则引擎的实现系统框图,该系统还包括但不限于:更新指令接收模块310及规则更新模块320。

更新指令接收模块310,用于接收所述业务规则库中的更新指令;

规则更新模块320,用于根据所述更新指令,对相应的业务规则进行更新。

可选的,如图9所示,图6中的动作执行模块130包括但不限于:规则解析子模块131和函数对象执行子模块132。

规则解析子模块131,用于针对每一个与所述新收事件匹配的规则条件,将所述规则条件对应的业务规则解析生成对应的函数对象,并存储于内存中;

函数对象执行子模块132,用于对所述内存中的函数对象进行多进程执行。

可选的,如图10所示,图9中的函数对象执行子模块132包括但不限于:优先级获取单元1321和函数对象执行单元1322。

优先级获取单元1321,用于获取所述内存中每一个函数对象对应的优先级;

函数对象执行单元1322,用于按照所述优先级的顺序,进行函数对象的多进程执行。

图11是根据一示例性实施例示出的一种系统100的框图。参考图11,系统100可以包括以下一个或者多个组件:处理组件101,存储器102,电源组件103,多媒体组件104,音频组件105,传感器组件107以及通信组件108。其中,上述组件并不全是必须的,系统100可以根据自身功能需求增加其他组件或减少某些组件,本实施例不作限定。

处理组件101通常控制系统100的整体操作,诸如与显示,电话呼叫,数据通信,相机操作以及记录操作相关联的操作等。处理组件101可以包括一个或多个处理器109来执行指令,以完成上述操作的全部或部分步骤。此外,处理组件101可以包括一个或多个模块,便于处理组件101和其他组件之间的交互。例如,处理组件101可以包括多媒体模块,以方便多媒体组件104和处理组件101之间的交互。

存储器102被配置为存储各种类型的数据以支持在系统100的操作。这些数据的示例包括用于在系统100上操作的任何应用程序或方法的指令。存储器102可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如sram(staticrandomaccessmemory,静态随机存取存储器),eeprom(electricallyerasableprogrammableread-onlymemory,电可擦除可编程只读存储器),eprom(erasableprogrammablereadonlymemory,可擦除可编程只读存储器),prom(programmableread-onlymemory,可编程只读存储器),rom(read-onlymemory,只读存储器),磁存储器,快闪存储器,磁盘或光盘。存储器102中还存储有一个或多个模块,该一个或多个模块被配置成由该一个或多个处理器109执行,以完成图1、图2、图3、图4和图5任一所示方法中的全部或者部分步骤。

电源组件103为系统100的各种组件提供电力。电源组件103可以包括电源管理系统,一个或多个电源,及其他与为系统100生成、管理和分配电力相关联的组件。

多媒体组件104包括在所述系统100和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括lcd(liquidcrystaldisplay,液晶显示器)和tp(touchpanel,触摸面板)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。

音频组件105被配置为输出和/或输入音频信号。例如,音频组件105包括一个麦克风,当系统100处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器102或经由通信组件108发送。在一些实施例中,音频组件105还包括一个扬声器,用于输出音频信号。

传感器组件107包括一个或多个传感器,用于为系统100提供各个方面的状态评估。例如,传感器组件107可以检测到系统100的打开/关闭状态,组件的相对定位,传感器组件107还可以检测系统100或系统100一个组件的位置改变以及系统100的温度变化。在一些实施例中,该传感器组件107还可以包括磁传感器,压力传感器或温度传感器。

通信组件108被配置为便于系统100和其他设备之间有线或无线方式的通信。系统100可以接入基于通信标准的无线网络,如wifi(wireless-fidelity,无线网络),2g或3g,或它们的组合。在一个示例性实施例中,通信组件108经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件108还包括nfc(nearfieldcommunication,近场通信)模块,以促进短程通信。例如,在nfc模块可基于rfid(radiofrequencyidentification,射频识别)技术,irda(infrareddataassociation,红外数据协会)技术,uwb(ultra-wideband,超宽带)技术,bt(bluetooth,蓝牙)技术和其他技术来实现。

在示例性实施例中,系统100可以被一个或多个asic(applicationspecificintegratedcircuit,应用专用集成电路)、dsp(digitalsignalprocessing,数字信号处理器)、pld(programmablelogicdevice,可编程逻辑器件)、fpga(field-programmablegatearray,现场可编程门阵列)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。

该实施例中的系统的处理器执行操作的具体方式已经在有关该业务规则引擎的实现方法的实施例中执行了详细描述,此处将不再做详细阐述说明。

可选的,本发明还提供一种系统,执行图1、图2、图3、图4和图5任一所示的业务规则引擎的实现方法的全部或者部分步骤。所述系统包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为执行:

监听专用web平台的运行,确定新收事件;

针对业务规则库中的每一个业务规则,对所述新收事件与所述业务规则中的规则条件进行匹配运算,确定与所述新收事件匹配的规则条件;

对所述规则条件对应的规则动作进行多进程执行。

该实施例中的系统的处理器执行操作的具体方式已经在有关该业务规则引擎的实现方法的实施例中执行了详细描述,此处将不做详细阐述说明。

在示例性实施例中,还提供了一种存储介质,该存储介质为计算机可读存储介质,例如可以为包括指令的临时性和非临时性计算机可读存储介质。该存储介质例如包括指令的存储器102,上述指令可由系统100的处理器109执行以完成上述业务规则引擎的实现方法。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,本领域技术人员可以在不脱离其范围执行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

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