CN106101090A - 用于规则引擎的操作方法以及规则引擎系统 - Google Patents
用于规则引擎的操作方法以及规则引擎系统 Download PDFInfo
- Publication number
- CN106101090A CN106101090A CN201610395778.6A CN201610395778A CN106101090A CN 106101090 A CN106101090 A CN 106101090A CN 201610395778 A CN201610395778 A CN 201610395778A CN 106101090 A CN106101090 A CN 106101090A
- Authority
- CN
- China
- Prior art keywords
- rule
- data
- server
- service device
- rules engine
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
- G06F9/548—Object oriented; Remote method invocation [RMI]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/541—Client-server
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/544—Remote
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了用于规则引擎的操作方法以及规则引擎系统。用于规则引擎的操作方法包括:规则引擎服务器接收规则引擎客户端发送的调用请求;规则引擎服务器根据所述调用请求获取规则数据,对所获取的规则数据进行相应处理,并将处理的结果返回所述规则引擎客户端,其中,所述规则数据集中缓存于所述规则引擎服务器的本地缓存。实施本发明,能够提高规则数据的处理效率,而且方便线性扩展规则引擎客户端和服务器来提升规则引擎的处理能力。
Description
技术领域
本发明涉及网络技术,具体而言,涉及用于规则引擎的操作方法以及规则引擎系统。
背景技术
现有的规则批处理一般使用spark技术进行处理,由于spark每个job都是运行在一个独立的java jvm中,由于规则校验的对规则数据处理的效率要求较高,需要将规则进行缓存,规则校验时从缓存中获取规则定义信息,而现有的规则被缓存在每个spark jobjvm中,那么每个job启动时都需从规则库中重复地进行规则加载,且占用每个job jvm的内存使用,从而整体上影响规则批处理的效率。
发明内容
为解决上述技术问题,本发明提供了用于规则引擎的操作方法以及规则引擎系统,通过规则引擎客户端发起调用请求,通过规则引擎服务器根据调用请求调用集中缓存在服务器本地缓存(工作内存)中的规则数据进行处理,显著改善了规则数据调用处理的处理效率,而且支持客户端-服务器架构的调用,改善了规则引擎系统与WEB界面可集成性。
根据本发明实施方式的第一方面,提供了一种用于规则引擎的操作方法,所述方法包括:规则引擎服务器接收规则引擎客户端发送的调用请求;规则引擎服务器根据所述调用请求获取规则数据,对所获取的规则数据进行相应处理,并将处理的结果返回所述规则引擎客户端,其中,所述规则数据集中缓存于所述规则引擎服务器的本地缓存。
在本发明的一些实施方式中,所述规则数据中的每个规则对应一个多叉树。
在本发明的一些实施方式中,每个规则节点包括该规则节点对应的比较器、数据项名称以及被比较的数据。
在本发明的一些实施方式中,所述每个规则节点还包括:数据加载器、数据项ID、数据类型、操作符、父节点ID、子节点ID、子节点列表。
在本发明的一些实施方式中,所述对所获取的规则数据进行相应处理包括:采用先根遍历算法对所获取的规则数据进行校验处理。
在本发明的一些实施方式中,所述规则引擎服务器与所述规则引擎客户端是基于Hessian RPC调用通讯技术进行通讯。
在本发明的一些实施方式中,所述规则引擎服务器包括以分布式形式部署的服务器。
在本发明的一些实施方式中,所述方法还包括:所述规则引擎服务器将该规则引擎服务器的地址信息存入第一服务器以便所述规则引擎客户端从所述第一服务器获取所述规则引擎服务器的地址信息。
在本发明的一些实施方式中,所述方法还包括:所述规则引擎服务器的地址信息变更时,将变更后的地址信息存入所述第一服务器以便所述规则引擎客户端从所述第一服务器获取所述规则引擎服务器的变更后的地址信息。
在本发明的一些实施方式中,所述规则引擎服务器与所述第一服务器之间保持心跳检测。
在本发明的一些实施方式中,所述方法还包括:规则引擎客户端通过相应的接口进行调用请求处理,其中,所述调用请求包括下述的一种或多种:添加规则、更新规则、查询规则、添加规则组、添加规则到规则组、从规则组中删除规则、根据数据类型获取操作符列表、获取所有的数据类型及每个数据类型支持的操作符列表、根据规则组ID查询该规则组内包含的规则列表、查询所有的规则组、校验指定规则组下规则、判断输入数据是否满足指定规则、对输入的规则依次进行校验和获取指定规则数据项列表。
在本发明的一些实施方式中,所述方法还包括:所述规则引擎服务器在接收到所述规则引擎客户端涉及规则变更的调用请求之后,将规则变更的事件发送到第二服务器以便所述第二服务器将所述规则变更的事件通知以分布式形式部署的服务器中的其他规则引擎服务器。
根据本发明实施方式的第二方面,提供了一种规则引擎系统,所述系统包括:规则引擎客户端,用于发送调用请求;规则引擎服务器,用于接收所述规则引擎客户端发送的调用请求,根据所述调用请求获取规则数据,对所获取的规则数据进行相应处理,并将处理的结果返回所述规则引擎客户端,其中,所述规则数据集中缓存于所述规则引擎服务器的本地缓存。
在本发明的一些实施方式中,所述规则数据中的每个规则对应一个多叉树。
在本发明的一些实施方式中,每个规则节点包括该规则节点对应的比较器、数据项名称以及被比较的数据。
在本发明的一些实施方式中,所述每个规则节点还包括:数据加载器、数据项ID、数据类型、操作符、父节点ID、子节点ID、子节点列表。
在本发明的一些实施方式中,所述规则引擎服务器对所获取的规则数据进行相应处理包括:采用先根遍历算法对所获取的规则数据进行校验处理
在本发明的一些实施方式中,所述规则引擎服务器与所述规则引擎客户端是基于Hessian RPC调用通讯技术进行通讯。
在本发明的一些实施方式中,所述规则引擎服务器包括以分布式形式部署的服务器。
在本发明的一些实施方式中,所述系统还包括第一服务器,所述规则引擎服务器,还用于将该规则引擎服务器的地址信息存入所述第一服务器以便所述规则引擎客户端从所述第一服务器获取所述规则引擎服务器的地址信息。
在本发明的一些实施方式中,所述规则引擎服务器,还用于:所述规则引擎服务器的地址信息变更时,将变更后的地址信息存入所述第一服务器以便所述规则引擎客户端从所述第一服务器获取所述规则引擎服务器的变更后的地址信息。
在本发明的一些实施方式中,所述规则引擎服务器与所述第一服务器之间保持心跳检测。
在本发明的一些实施方式中,所述规则引擎客户端通过相应的接口进行调用请求处理,其中,所述调用请求包括下述的一种或多种:添加规则、更新规则、查询规则、添加规则组、添加规则到规则组、从规则组中删除规则、根据数据类型获取操作符列表、获取所有的数据类型及每个数据类型支持的操作符列表、根据规则组ID查询该规则组内包含的规则列表、查询所有的规则组、校验指定规则组下规则、判断输入数据是否满足指定规则、对输入的规则依次进行校验和获取指定规则数据项列表。
在本发明的一些实施方式中,所述系统还包括:第二服务器,所述规则引擎服务器,还用于:在接收到所述规则引擎客户端涉及规则变更的调用请求之后,将规则变更的事件发送到所述第二服务器以便所述第二服务器将所述规则变更的事件通知以分布式形式部署的服务器中的其他规则引擎服务器。
本发明提供的用于规则引擎的操作方法和规则引擎系统,通过C/S设计架构,客户端和服务器均可以通过线性扩展来提升规则引擎的处理能够,而且规则引擎服务器不占用作为调用方的规则引擎客户端的处理资源,服务器一端升级部署的灵活性较强;而且,通过将规则数据直接集中缓存于规则引擎服务器的本地内存,从而在规则校验等获取规则数据的处理中,直接从本地内存中获取规则数据,与现有将规则缓存在每个spark job jvm的方案相比,显著提高了规则数据的获取效率。
附图说明
图1是根据本发明一种实施方式的用于规则引擎的操作方法的流程示意图。
图2是根据本发明一种实施方式的规则引擎的架构示意图。
图3是根据本发明一种实施方式的规则引擎的内部功能模块示意图。
图4是根据本发明一种实施方式的规则定义的示意图。
图5是根据本发明一种实施方式的规则匹配校验处理流程示意图。
图6是根据本发明一种实施方式的规则引擎规则库数据模型的示意图。
图7是根据本发明一种实施方式的示例性的规则配置。
图8是根据本发明一种实施方式的示例性的规则节点配置。
图9是根据本发明一种实施方式的示例性的数据项信息表配置。
图10是根据本发明一种实施方式的规则引擎客户端和服务器以及Zookeeper服务器之间关联关系示意图。
图11是根据本发明一种实施方式的规则引擎服务器地址的存储模型示意图。
图12是根据本发明一种实施方式的规则引擎系统的结构示意图。
图13是根据本发明另一种实施方式的规则引擎系统的结构示意图。
具体实施方式
以下结合附图和具体实施方式对本发明的各个方面进行详细阐述。其中,众所周知的模块、单元及其相互之间的连接、链接、通信或操作没有示出或未作详细说明。并且,所描述的特征、架构或功能可在一个或一个以上实施方式中以任何方式组合。本领域技术人员应当理解,下述的各种实施方式只用于举例说明,而非用于限制本发明的保护范围。还可以容易理解,本文所述和附图所示的各实施方式中的模块或单元或处理方式可以按各种不同配置进行组合和设计。
图1是根据本发明一种实施方式的用于规则引擎的操作方法的流程示意图;图2是根据本发明一种实施方式的规则引擎的架构示意图。
如图1所示,本发明的用于规则引擎的操作方法可包括步骤S11和S12,下面结合具体的实施例描述各个步骤。
在步骤S11中,规则引擎服务器接收规则引擎客户端发送的调用请求,该调用请求可以是通过规则引擎客户端的相应接口发送的请求,其中,规则引擎客户端的个数可以是一个,如图2所示的规则引擎客户端,也可以是多个,例如,大于或等于2个。在一些实施例中,客户端通过规则引擎提供的客户端Jar包调用应用程序接口(ApplicationProgramming Interface,API),通过远程过程调用(Remote Procedure Call,RPC)协议调用规则引擎服务器,例如,可以基于Hessian RPC调用通信技术进行调用,也可以根据应用需要采用其他RPC调用技术进行调用。步骤S11中的调用请求可包括,但不限于,下述的一种或多种:添加规则、更新规则、查询规则、添加规则组、添加规则到规则组、从规则组中删除规则、根据数据类型获取操作符列表、获取所有的数据类型及每个数据类型支持的操作符列表、根据规则组ID查询该规则组内包含的规则列表、查询所有的规则组、校验指定规则组下规则、判断输入数据是否满足指定规则、对输入的规则依次进行校验和获取指定规则数据项列表。
在步骤S12中,规则引擎服务器根据所接收的调用请求获取相应的规则数据,对所获取的规则数据进行相应的处理,并将处理的结果返回给发送请求的规则引擎客户端,其中,所述规则数据集中缓存于规则引擎服务器的本地缓存,即规则引擎服务器的工作内存。本发明的规则数据可包括规则、规则节点等数据,其中,可采用多叉树的结构表达每个规则的存储结构,每个规则对应一个多叉树,每个规则的规则树可缓存在服务器的工作内存中,从而提高规则数据的获取速度,改善校验等调用处理的效率。每个规则节点主要可包括该规则节点对应的比较器、数据项名称以及被比较的数据三个部分,这三部分数据可缓存于规则引擎服务器的工作内存,以便在校验等调用处理中快速获取,提高校验处理的效率。规则引擎服务器可以部署有一个或多个,例如,大于或等于2个。在部署有多个规则引擎服务器的实施方式中,规则引擎服务器可以是分布式形式部署的规则引擎服务器,如图2所示的规则引擎服务器。规则引擎服务器对所获取的规则数据进行相应处理,相应处理随着调用请求的不同而不同,对于不同的调用请求进行不同的处理。本发明的调用请求可包括涉及规则数据的各种不同处理,例如,校验规则、添加规则、更新规则、查询规则、添加规则组、将规则添加到规则组、将规则从规则组中删除等。
现有的大部分规则引擎不支持C/S架构的设计和开发,一般是规则调用客户端和服务器打包在一起部署。与现有技术形成鲜明对比的是,本发明通过采用C/S架构,通过规则引擎客户端Jar包提供的API访问规则引擎服务器,好处就是每个客户端启动时无需加载数据,规则数据统一存储在服务器一侧。规则引擎服务器一侧不会占用调用方的处理资源,而采用RPC调用技术以保持较高的客户端-服务端调用效率,而且服务器一端的升级部署与客户端无关,因此能够显著改善客户端和服务器所构成的系统的整体的可扩展性。
而且,本发明的规则引擎客户端、规则引擎服务端均可以进行通过线性扩展来提升规则引擎的处理能力。通过增加规则引擎的服务器可以线性地增加规则引擎服务端的处理能力,没有增加服务器的数量的性能瓶颈风险。随着规则引擎的服务器数量的增加,其处理能力也将线性地得到扩展。
现有的规则数据处理中,规则执行时,被实时地进行解析和匹配,规则调用客户端、服务端被部署在同一台机器上面,规则执行时,需实时地从存储介质中去获取规则定义信息,或者被缓存在每台机器的内存中。例如,一个积分处理系统每天晚上大约有1000万多条流水信息通过批处理、或者联机对规则引擎进行规则校验调用,每次调用都会触发几条、几十条的规则校验需求,对规则校验的效率要求比较高。对于批处理规则校验调用的场景,批处理当前使用spark技术进行处理,由于spark每个job都是运行在一个独立的java jvm中,规则校验时从缓存中获取规则定义信息,如果规则被缓存在每个spark job jvm中,那么每个job启动时都需从规则库中重复地进行规则加载,且占用每个job jvm的内存使用,从而整体上影响综合积分系统批处理的效率。本发明的规则数据集中缓存于规则引擎服务器的本地缓存(即工作内存),与现有的将规则缓存在每个spark job jvm的方式相比,无需在每个job启动时从规则库中重复地进行规则加载,因此能够提高规则数据的读取效率。从而能够实现较高的规则校验要求。
上面描述了规则引擎客户端和规则引擎服务器之间的调用处理,下面将结合具体的规则引擎架构描述用于规则引擎的操作方法。
图3是根据本发明一种实施方式的规则引擎的内部功能模块示意图;图4是根据本发明一种实施方式的规则定义的示意图;图5是根据本发明一种实施方式的规则匹配校验处理流程示意图。
如图3所示,规则引擎功能包括设计态功能及运行态功能,设计态功能主要包括规则、规则节点、规则数据项定义功能,并将规则的定义信息存储在规则库持久化数据库中,规则引擎服务器启动时,从规则库数据库中,查找规则及规则节点的定义信息,创建规则树对象等信息,并将规则树等信息,存放于工作内存中,以被规则校验等运行态功能所使用。规则引擎运行态功能主要包含规则查找、基于工作内存中的规则树定义信息对输入的数据进行规则校验等。
下面对图3所示的各个模块进行具体的说明。
执行引擎,能够根据输入条件,查找满足条件的规则或规则列表,对每条规则进行规则验证,返回每条规则的规则验证结果信息,如果规则验证成功,返回规则匹配成功的路径;如果规则匹配失败,返回导致规则匹配失败的原因信息;如果规则匹配过程中产生了异常,返回规则匹配的异常信息。
规则查找,能够根据规则ID、规则组ID,规则列表查找条件,查找对应的规则或规则列表信息。
规则解析,解析规则对应的规则树信息,按照规则树先根遍历算法对规则树进行遍历,并对遍历到的规则树节点进行验证。
规则验证,接收用户规则验证请求,根据本地缓存的规则树定义及每个节点的校验规则,根据多叉树先根遍历算法,对规则树的规则节点进行遍历,对遍历到的规则节点,根据本地缓存(工作内存)中规则节点的校验器、被比较值等信息,对遍历到规则节点对基于输入的数据进行规则校验。规则节点校验时,如果操作符为IN或NOT IN,被校验的节点的取值范围较大,数据量较大,根据存放的列表数据存储位置配置信息,需到数据库中或缓存实时查询对应的取值范围。
规则组装,从持久化的规则库中,查询规则、规则节点、规则组、数据项、数据类型操作符等信息,构建每个规则对应的规则树信息,并将规则对应的规则树缓存于工作内存中。
工作内存,即本地缓存,系统启动时进行初始化,主要缓存了以下信息:规则组定义及规则组与规则间的映射关系、规则组中每个规则的优先级;规则及规则树定义信息,包括规则ID,规则树中每个节点校验规则及校验器,每个节点对应的数据名称(用以从请求数据上下文中获取对应的校验数据),被比较值取值,如果为IN或NOT IN比较器,被比较值的存储位置信息(本地缓存、数据库、分布式缓存);系统启动时,根据规则树种每个节点的数据类型、数据操作符初始化对应的节点校验器;数据类型及与操作符间映射关系,及每个数据类型和操作符对应的校验器、被比较值数据加载器信息;数据项统一定义,方便基于数据项ID查找对应的数据项定义信息。
议程管理器,对规则组下的规则列表按照指定的顺序进行验证,并判断是否对规则组或规则列表内的所有规则进行规则校验。
规则组定义及查询,提供规则组定义及查询接口。
规则定义及查询,提供规则及规则对应的规则树定义及查询接口。
数据类型及操作符定义,规则引擎默认支持的数据类型列表及每个数据类型支持的操作符列表,可以根据业务需求,灵活的定制新的数据类型及其对应校验操作符需求。String:==、!=、in、not in、between and、each week(周几)、each month(每月几号)、month end(月末)、law holiday(法定节假日)、weekend(周末)、birthday(生日当日)、birthday month(生日当月)BigDecimal:==、!=、>、>=、<、<=、between and Integer:==、!=、>、>=、<、<=、between and。应用可以根据自身的需要,灵活添加相应的数据类型及操作符,封装数据类型及对应的操作符相应的规则校验及被比较值工作内存加载处理逻辑,从而支持新的规则校验逻辑。
数据项定义,提供了数据项的统一的访问接口,根据数据项ID查询对应的定义信息。
查询和存储引擎,提供了统一的规则访问接口,主要提供了以下的规则访问操作:规则组定义;规则定义;数据类型及操作符查询接口;数据结构定义及查询接口;数据项统一查询接口;如果操作符为IN或NOT IN操作符,数据量较大,统一的数据访问接口用以访问此类数据的取值范围。
上面对规则引擎的各个功能模块进行了具体的说明,下面将规则数据的数据结构以及服务器缓存对象的设计进行具体的说明。
本发明的规则数据中的每个规则对应一个多叉树,每个规则可以属于一个规则组。每个规则节点可包括该规则节点对应的比较器、数据项名称以及被比较的数据三个主要部分,除此之外,每个规则节点还可包括:数据加载器、数据项ID、数据类型、操作符、父节点ID、子节点ID、子节点列表等信息。比较器决定了规则节点的校验逻辑,比较器是由该规则节点的数据类型及其操作符来决定的。每一种类型的比较器由一个被缓存的对象进行处理,数据加载器决定了被比较数据的内存存在形态,如果Bigdecimal类型的数据进行“==”操作符比较,那么被比较的数据就被转化为BigDecimal类型的数据。规则引擎服务器启动时,将从规则数据库中查找每个规则的定义信息并创建规则多叉树信息,缓存于本地缓存中,以提高规则校验执行时的校验效率。
图4示出了一种规则定义的例子。比较的数据存在一个map数据的上下文中,每个规则节点的三部分数据(包括:规则节点对应的比较器、数据项名称和被比较的数据)被缓存在内存中。其中,数据项名称,通过该数据项名称从请求数据map上下文中获取比较数据,如图4中的NAME、AGE等信息。规则节点的比较器,通过规则节点的数据类型及其操作符信息获取比较器换换对象,每个规则节点也缓存了被比较数据的信息。
本发明提供的规则引擎的相关数据配置方式,可以由使用人员根据自身的需求,灵活地添加规则引擎支持的数据类型及其操作符,并提供数据类型及其操作符对应的数据校验、被比较数据初始化处理逻辑。只需要初始化到规则引擎的数据类型、操作符配置表中即可。
本发明的规则数据处理相关的流程可包括:规则创建、修改规则、创建规则组、将规则添加到规则组、将规则从规则组中删除等。其中,规则创建可包括:创建规则基本信息;创建规则的数据结构;解析树节点列表,添加数据结构对应的数据项清单;添加规则数据规则节点列表;将规则添加到指定的规则组中。
本发明的规则引擎工作内存缓存初始化。工作内存初始化可包括数据项、数据结构初始化;数据类型、操作符初始化;规则及规则节点树初始化;规则组及规则与规则组关联关系初始化,其整流处理流程可以如下:a1,初始化数据项定义信息;a2,初始化操作类型、操作符及对应的校验器信息;a3,初始化数据结构信息;a4,初始化规则及规则数据定义信息,初始化每个节点的校验器、被比较值(被比较数据)初始化;a5,初始化规则及与规则组间的映射关系。其中,规则及规则树初始化流程如下:b1,查找规则树根节点并创建根节点;b2,依次将每个节点插入到树中;b3,获取节点的数据类型、操作符信息;b4,根据节点的数据类型、操作符信息初始化校验器信息;b5,根据节点的数据类型、操作符信息初始化被比较值、数据位置等信息;重复b2至b5直至树初始化完毕;b6,关联规则对应的数据结构、规则组信息。
如上所述,规则引擎客户端的调用请求可包括规则校验的调用请求,规则引擎服务器对根据规则校验的调用请求所获取的规则数据的相应处理可包括:采用先根遍历算法对所获取的规则数据进行校验处理。在一种具体的实施例中,采用先跟遍历算法对规则数据进行校验的具体流程可以如图5所示。步骤S501,全局规则校验;S502,判断校验结果是成功还是失败,若失败,则执行步骤S503,返回校验失败信息;若成功,则执行步骤S504,根据输入条件(规则组ID、规则ID)等信息查询待校验的规则列表;步骤S505,查询除满足输入条件的规则列表;步骤S506,对筛选出的规则列表进行校验;步骤S507,按照先根遍历算法遍历规则树的节点;S508,对于树中的每一个节点,执行下述操作:从输入的请求数据中获取比较数据,从规则节点中获取对应节点的校验器,将比较数据、待比较数据、数据位置(IN类操作)一并提交给校验器进行校验;S509,判断校验结果是成功还是失败,若失败,则执行步骤S510,校验此节点的兄弟节点,如果没有其他兄弟节点信息,则返回校验失败信息;若成功,则执行步骤S511,按照先根遍历算法开始遍历当前节点的孩子节点(子节点),如果没有孩子节点,则表明已经找到满足条件的规则路径,此规则树校验成功。
本发明的规则校验设计,在规则引擎服务器启动时,基于规则库中的规则定义创建每个规则对应的规则树,并初始化每个规则节点的校验器、被比较对象、比较数据名称等信息,并将这些信息缓存于内存中,规则校验执行时,直接从本地内存中获取每个规则的定义信息,并从内存中获取每个规则节点对应的比较器,调用校验器指定的校验接口进行规则节点校验,校验的数据处理效率较高。
如上所述,本发明的规则引擎客户端通过相应的接口进行调用请求处理,其中调用请求可包括下述的一种或多种:添加规则;更新规则;根据规则ID查询规则;添加规则组;添加规则到规则组;将规则从规则组中删除;根据数据类型获取操作符列表;获取所有的数据类型及每个数据类型支持的操作符列表;根据规则组ID查询该规则组内包含的规则列表信息;查询所有的规则组信息;校验指定规则下的规则,判断输入数据是否满足指定的规则;如果设置不按规则的优先级进行规则校验,则依次对规则组内的规则进行校验,返回每条规则的规则校验结果信息;按照规则优先级依次校验指定规则组下所有规则,直至找到满足匹配条件的规则,返回能够匹配的优先级最高的规则或满足匹配条件的规则列表;对输入的规则ID列表依次进行校验,返回每条规则的校验结果信息;根据规则数据结果ID,校验相对应的规则是否满足匹配条件;获取指定规则数据项列表。下面的表1列出了上述的各个接口的名称、描述、输入参数以及输出参数。
表1
图6是根据本发明一种实施方式的规则引擎规则库数据模型的示意图。
下面以表格的形式分别对规则表(Rule)、规则节点表(Rule_Node)、规则节点取值范围(Rule_Node_Value)、规则组表(Rule_Group)、数据类型及其操作符配置表(Data_Type_Operator)、数据项信息表(Data_Item)、数据结构数据项信息映射表(DS_Item_Rel)以及规则数据结构表(Rule_DS),分别对应表2、表3、表4、表5、表6、表7、表8和表9进行说明。
表2规则表(Rule)
一种示例性的规则配置可以如图7所示。
表3规则节点表(Rule_Node)
表4规则节点取值范围表(Rule_Node_Value)
列英文名 | 列中文名 | 备注 |
RULE_ID | 规则Id | 主键 |
RULE_NODE_ID | 规则节点Id | 主键 |
VALUE | 规则节点对应的一个列表取值 | 主键 |
VALUE_DESC | 规则节点取值描述 |
示例性的配置可以如图8所示。
表5规则组表(Rule_Group)
列英文名 | 列中文名 | 备注 |
RULE_GROUP_ID | 规则组Id | 主键 |
RULE_GROUP_NAME | 规则组名称 | |
BUSINESS_KEY | 规则组对应的业务描述 | |
PRIORITY_ENABLED | 规则组内的规则是否具有优先级 |
表6数据类型及其操作符配置表(Data_Type_Operator)
表7数据项信息表(Data_Item)
列英文名 | 列中文名 | 备注 |
DATA_ITEM_ID | 数据项Id | 主键 |
DATA_NAME | 数据项名称 | |
DATA_TYPE | 对应的Java数据类型名称 | |
DATA_DESC | 数据项描述 |
表7的示例性配置可以如图9所示。
表8数据结构数据项信息映射表(DS_Item_Rel)
列英文名 | 列中文名 | 备注 |
DS_ID | 数据结构Id | 主键 |
DATA_ITEM_ID | 数据项Id | 主键 |
表9规则数据结构表(Rule_DS)
列英文名 | 列中文名 | 备注 |
DS_ID | 数据结构Id | 主键 |
DS_NAME | 数据结构名称 |
本发明的规则引擎设计可以由使用人员根据自身的需求,灵活地添加规则引擎支持的数据类型及其操作符,并提供数据类型及其操作符对应的数据校验、被比较数据初始化处理逻辑。只要初始化规则引擎的数据类型、操作符配置表即可。而且,本发明提供的规则定义存储模型及更新方案,可以由使用人员方便、灵活、动态地修改规则的定义信息,增加新的规则校验节点或者修改已有的规则校验节点定义信息。
在本发明的一些实施方式中,用于规则引擎的操作方法还可包括:规则引擎服务器将该规则引擎服务器的地址信息存入第一服务器(例如,Zookeeper服务器)以便规则引擎客户端从第一服务器获取规则引擎服务器的地址信息,规则引擎客户端、规则引擎服务器以及Zookeeper服务器之间的关系可以如图10所示,其中,规则引擎服务器与第一服务器之间保持心跳检测,以便第一服务器可以检测规则引擎服务器的工作状态,例如,是否可用或是否宕机等。如图10所示,规则引擎服务器与Zookeeper服务器之间的交互可包括:规则引擎服务器在启动时,将规则引擎的IP地址、端口号等信息注册到Zookeeper服务器,Zookeeper服务器和规则引擎服务器之间进行心跳检测;Zookeeper服务器和规则引擎客户端之间的交互可包括:规则引擎服务器地址变化时,规则引擎服务器地址信息本地缓存同步,地址信息一致性同步;规则引擎客户端和服务地址本地文件之间的交互可包括:规则引擎客户端启动时,从本地持久化文件加载到地址缓存,将更新后的地址信息更新至本地文件。
规则引擎服务器启动时,将自身的地址信息注册到Zookeeper服务器,规则引擎客户端调用时,从Zookeeper服务器获取规则引擎服务器的地址列表信息,并将地址列表信息缓存于客户端本地内存中,以提高获取地址的效率。规则引擎服务器的地址信息变更时,规则引擎服务器会将变更后的地址信息存入Zookeeper服务器以便规则引擎客户端从Zookeeper服务器获取规则引擎服务器的变更后的地址信息。
下面对规则引擎服务器、规则引擎客户端以及Zookeeper服务器之间的信息交互进行具体的说明。规则引擎服务器启动时,将自身的地址信息(ip地址、端口号)注册到内部服务注册zookeeper上面。Zookeeper服务器和规则引擎服务器之间将保持心跳,以探测规则引擎服务器是否可用。规则引擎客户端启动时,将检查指定的本地地址缓存持久化目录中是否存在服务器地址持久化文件,如果存在地址持久化文件,将从本地地址持久化文件中加载到地址信息缓存中,并将加载的地址状态设为不同步。Zookeeper服务器监测到规则引擎服务器启动、停止等事件时,将捕获到的地址变化事件通知规则引擎客户端,注册监听相应组件地址变化的客户端捕获到地址变化后,将从zookeeper获取变化后的规则引擎服务端地址列表,并刷新本地地址缓存信息,将地址信息设置为同步状态,并将更新后的地址信息持久化至本地缓存文件中。客户端调用寻址时,判断本地缓存的服务器的地址信息是否为同步状态,如为同步状态,将采用相应的寻址算法从有效的地址列表中选择一个有效的地址返回给调用客户端。如果组件的地址状态为未同步,并且zookeeper服务器状态为可连接状态,将调用zookeeper的API获取服务器的地址列表信息,并将获取到的地址列表信息刷新本地缓存,且更新至本地缓存持久化文件中。根据调度算法从地址列表中获取一个有效的地址返回给客户端。如果地址状态为未同步,且zookeeper服务器状态为未连接状态,将从本地缓存的址列表中获取一个地址,返回给客户端。本发明通过zookeeper服务器与规则引擎服务器之间的心跳检测以及地址获取设计,在规则引擎服务器宕机后,能够继续提供寻址服务,保持高可用性。
在本发明的一些实施例中,规则引擎服务器地址在Zookeeper服务器的存储模型可以如图11所示。根节点为/comps,第二层节点为注册的各个规则引擎集群Id,第三层每个规则引擎下面servers节点,即规则引擎集群对应的服务器列表信息,servers节点下面为每个组件动态注册的服务地址列表信息。
本地持久化文件的存储结构可以如下:
在本发明的一些实施方式中,用于规则引擎的操作方法还可包括:规则引擎服务器在接收到所述规则引擎客户端涉及规则变更的调用请求之后,将规则变更的事件发送到第二服务器(例如,Kafka服务器)以便所述第二服务器将所述规则变更的事件通知以分布式形式部署的服务器中的其他规则引擎服务器。涉及规则变更的调用请求可包括,但不限于:添加规则、更新规则、添加规则组、添加规则到规则组、将规则从规则组中删除等。规则引擎服务器接收到规则引擎客户端创建、更新规则等调用请求之后,将向Kafka服务器发送规则刷新时间,每个规则引擎的服务器均订阅了规则变更通知事件。每个服务器接收到规则刷新事件后,将根据规则更新时间相应的内容,刷新本地内存中相应的规则定义信息,以保持本地内存中规则信息的一致性。
配置文件可包括下述属性:server.address;uri;invoke.type;client.loglevel;rpc.cached;seek-type;rule-comp;connect-timeout;read-timeout;retry-times;reload-timeout;reload-max-threads;zk.connectStr;zk.sessiantimeout。接下来对各个属性进行具体说明。
server.address,规则引擎服务器Ip地址、端口号列表信息,在客户端静态寻址中会使用此地址列表信息。
Uri,规则引擎服务器URI地址信息。
invoke.type,local表示调用本地的负载均衡服务器,即客户端和服务端在一个部署包内,基于接口进行调用;rpc表示客户端和服务端基于RPC通讯协议进行远程调用。
client.loglevel,客户端关键日志的日志打印级别,如RPC调用耗时等信息。
rpc.cached,RPC调用客户调用对象是否需要进行缓存。
seek-type,Local表示通过配置文件中的地址列表信息进行RPC调用寻址
Remote表示通过Zookeeper进行RPC调用动态寻址。
rule-comp,如果寻址为动态寻址,动态寻址的规则引擎服务器集群Id。
connect-timeout,RPC调用连接超时配置。
read-timeout,Read超时时间配置。
retry-times,RPC调用尝试次数配置。
reload-timeout,规则本地缓存刷新超时时间配置。
Reload-max-threads,规则刷新调用最大线程个数配置。
zk.connectStr,Zookeeper服务器地址配置。
Zk.sessionTimeout,Zookeeper超时时间配置。
本发明采用Spring来管理对象及对象间的关联关系。
本发明的客户端规则校验调用中,RuleClient为规则引擎客户端对象,不能每次访问都访问该对象,如果在Spring环境中进行调用,需注册为spring bean,启动时进行初始化及创建。如果在spark环境中,则启动job的过程中需进行创建,调用的过程中直接使用创建好的RuleClient的对象,而不能每次调用都创建该对象。
以上结合具体的实施例描述了本发明的用于规则引擎的操作方法,下面将对应用上述方法的规则引擎系统进行具体的描述。
图12是根据本发明一种实施方式的规则引擎系统的结构示意图;图13是根据本发明另一种实施方式的规则引擎系统的结构示意图。
如图12所示,本发明的规则引擎系统可包括规则引擎客户端11和规则引擎服务器12,其中,规则引擎客户端和规则引擎服务器的个数可以是1个或多个,例如,大于或等于2个。在规则引擎服务器的个数为多个的实施方式中,规则引擎服务器可以分布式的形式进行部署。
在本发明的另外一些实施方式中,规则引擎系统还可包括用于保存规则引擎服务器12的地址信息的第一服务器,例如,Zookeeper服务器,如图10所示。
在本发明的另外一些实施方式中,规则引擎系统除了可包括上述实施方式中的Zookeeper服务器之外,还可包括用于规则变更通知的第二服务器,例如,Kafka服务器,如图13所示。在另一些实施方式中,规则引擎系统还可以只包括第二服务器,而不包括第一服务器,而采用本领域已知的其他合适的技术实现规则引擎服务器的地址信息的保存。
本发明的规则引擎系统的功能性架构描述可参考图3的相关描述,另外关于规则数据的其他方面的描述可参见上述方法部分的相关描述。
本发明的规则引擎客户端11可通过相应的接口相规则引擎服务器12发送调用请求,例如,端通过规则引擎提供的客户端Jar包调用应用程序接口,通过远程过程调用(Remote Procedure Call,RPC)协议调用规则引擎服务器,例如,可以基于Hessian RPC调用通信技术进行调用,也可以根据应用需要采用其他RPC调用技术进行调用。调用请求可包括,但不限于,下述的一种或多种:添加规则、更新规则、查询规则、添加规则组、添加规则到规则组、从规则组中删除规则、根据数据类型获取操作符列表、获取所有的数据类型及每个数据类型支持的操作符列表、根据规则组ID查询该规则组内包含的规则列表、查询所有的规则组、校验指定规则组下规则、判断输入数据是否满足指定规则、对输入的规则依次进行校验和获取指定规则数据项列表。
规则引擎服务器12根据所接收的调用请求获取相应的规则数据,对所获取的规则数据进行相应的处理,并将处理的结果返回给发送请求的规则引擎客户端,其中,所述规则数据集中缓存于规则引擎服务器的本地缓存,即规则引擎服务器的工作内存。本发明的规则数据可包括规则、规则节点等数据,其中,可采用多叉树的结构表达每个规则的存储结构,每个规则对应一个多叉树,每个规则的规则树可缓存在服务器的工作内存中,从而提高规则数据的获取速度,改善校验等调用处理的效率。每个规则节点主要可包括该规则节点对应的比较器、数据项名称以及被比较的数据三个部分,这三部分数据可缓存于规则引擎服务器的工作内存,以便在校验等调用处理中快速获取,提高校验处理的效率。规则引擎服务器可以部署有一个或多个,例如,大于或等于2个。规则引擎服务器对所获取的规则数据进行相应处理,相应处理随着调用请求的不同而不同,对于不同的调用请求进行不同的处理。本发明的调用请求可包括涉及规则数据的各种不同处理,例如,校验规则、添加规则、更新规则、查询规则、添加规则组、将规则添加到规则组、将规则从规则组中删除等。
现有的大部分规则引擎不支持C/S架构的设计和开发,一般是规则调用客户端和服务器打包在一起部署。与现有技术形成鲜明对比的是,本发明通过采用C/S架构,通过规则引擎客户端Jar包提供的API访问规则引擎服务器,好处就是每个客户端启动时无需加载数据,规则数据统一存储在服务器一侧。规则引擎服务器一侧不会占用调用方的处理资源,而采用RPC调用技术以保持较高的客户端-服务端调用效率,而且服务器一端的升级部署与客户端无关,因此能够显著改善客户端和服务器所构成的系统的整体的可扩展性。
而且,本发明的规则引擎客户端、规则引擎服务端均可以进行通过线性扩展来提升规则引擎的处理能力。通过增加规则引擎的服务器可以线性地增加规则引擎服务端的处理能力,没有增加服务器的数量的性能瓶颈风险。随着规则引擎的服务器数量的增加,其处理能力也将线性地得到扩展。
本发明的规则数据集中缓存于规则引擎服务器的本地缓存(即工作内存),与现有的将规则缓存在每个spark job jvm的方式相比,无需在每个job启动时从规则库中重复地进行规则加载,因此能够提高规则数据的读取效率,从而能够实现较高的规则校验要求。
如上所述,规则引擎客户端的调用请求可包括规则校验的调用请求等。在调用请求为规则校验请求的实施方式中,规则引擎服务器12对根据调用请求所获取的规则数据进行相应处理可包括:根据先根遍历算法对所获取的规则数据进行校验处理,其中具体的校验处理过程可参考上述对于图5的描述。
如上所述,本发明的规则引擎系统还可包括第一服务器,例如,Zookeeper服务器13,如图10所示。规则引擎服务器12将该规则引擎服务器的地址信息存入第一服务器(例如,Zookeeper服务器13)以便规则引擎客户端11从第一服务器获取规则引擎服务器12的地址信息,在规则引擎服务器的个数为多个的情形下,规则引擎客户端获取的地址信息为这些规则引擎服务器的地址信息列表。规则引擎服务器与第一服务器之间保持心跳检测,以便第一服务器可以检测规则引擎服务器的工作状态,例如,是否可用或是否宕机等。在一种具体的实施方式中,规则引擎服务器启动时,将自身的地址信息注册到Zookeeper服务器,规则引擎客户端调用时,从Zookeeper服务器获取规则引擎服务器的地址列表信息,并将地址列表信息缓存于客户端本地内存中,以提高获取地址的效率。规则引擎服务器的地址信息变更时,规则引擎服务器会将变更后的地址信息存入Zookeeper服务器以便规则引擎客户端从Zookeeper服务器获取规则引擎服务器的变更后的地址信息。
本发明的规则引擎系统还可包括第二服务器,例如,Kafka服务器14,如图13所示。规则引擎服务器12在接收到规则引擎客户端12涉及规则变更的调用请求之后,将规则变更的事件发送到第二服务器(例如,Kafka服务器14)以便所述第二服务器将所述规则变更的事件通知以分布式形式部署的服务器中的其他规则引擎服务器。涉及规则变更的调用请求可包括,但不限于:添加规则、更新规则、添加规则组、添加规则到规则组、将规则从规则组中删除等。规则引擎服务器接收到规则引擎客户端创建、更新规则等调用请求之后,将向Kafka服务器发送规则刷新时间,每个规则引擎的服务器均订阅了规则变更通知事件。每个服务器接收到规则刷新事件后,将根据规则更新时间相应的内容,刷新本地内存中相应的规则定义信息,以保持本地内存中规则信息的一致性。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件结合硬件平台的方式来实现。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,智能手机或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本发明说明书中使用的术语和措辞仅仅为了举例说明,并不意味构成限定。本领域技术人员应当理解,在不脱离所公开的实施方式的基本原理的前提下,对上述实施方式中的各细节可进行各种变化。因此,本发明的范围只由权利要求确定,在权利要求中,除非另有说明,所有的术语应按最宽泛合理的意思进行理解。
Claims (24)
1.一种用于规则引擎的操作方法,其特征在于,所述方法包括:
规则引擎服务器接收规则引擎客户端发送的调用请求;
规则引擎服务器根据所述调用请求获取规则数据,对所获取的规则数据进行相应处理,并将处理的结果返回所述规则引擎客户端,其中,所述规则数据集中缓存于所述规则引擎服务器的本地缓存。
2.根据权利要求1所述的方法,其特征在于,所述规则数据中的每个规则对应一个多叉树。
3.根据权利要求2所述的方法,其特征在于,每个规则节点包括该规则节点对应的比较器、数据项名称以及被比较的数据。
4.根据权利要求3所述的方法,其特征在于,所述每个规则节点还包括:数据加载器、数据项ID、数据类型、操作符、父节点ID、子节点ID、子节点列表。
5.根据权利要求1至3中任一项所述的方法,其特征在于,所述对所获取的规则数据进行相应处理包括:
采用先根遍历算法对所获取的规则数据进行校验处理。
6.根据权利要求1所述的方法,其特征在于,所述规则引擎服务器与所述规则引擎客户端是基于Hessian RPC调用通讯技术进行通讯。
7.根据权利要求1所述的方法,其特征在于,所述规则引擎服务器包括以分布式形式部署的服务器。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述规则引擎服务器将该规则引擎服务器的地址信息存入第一服务器以便所述规则引擎客户端从所述第一服务器获取所述规则引擎服务器的地址信息。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
所述规则引擎服务器的地址信息变更时,将变更后的地址信息存入所述第一服务器以便所述规则引擎客户端从所述第一服务器获取所述规则引擎服务器的变更后的地址信息。
10.根据权利要求8所述的方法,其特征在于,所述规则引擎服务器与所述第一服务器之间保持心跳检测。
11.根据权利要求7所述的方法,其特征在于,所述方法还包括:
规则引擎客户端通过相应的接口进行调用请求处理,其中,所述调用请求包括下述的一种或多种:添加规则、更新规则、查询规则、添加规则组、添加规则到规则组、从规则组中删除规则、根据数据类型获取操作符列表、获取所有的数据类型及每个数据类型支持的操作符列表、根据规则组ID查询该规则组内包含的规则列表、查询所有的规则组、校验指定规则组下规则、判断输入数据是否满足指定规则、对输入的规则依次进行校验和获取指定规则数据项列表。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
所述规则引擎服务器在接收到所述规则引擎客户端涉及规则变更的调用请求之后,将规则变更的事件发送到第二服务器以便所述第二服务器将所述规则变更的事件通知以分布式形式部署的服务器中的其他规则引擎服务器。
13.一种规则引擎系统,其特征在于,所述系统包括:
规则引擎客户端,用于发送调用请求;
规则引擎服务器,用于接收所述规则引擎客户端发送的调用请求,根据所述调用请求获取规则数据,对所获取的规则数据进行相应处理,并将处理的结果返回所述规则引擎客户端,其中,所述规则数据集中缓存于所述规则引擎服务器的本地缓存。
14.根据权利要求13所述的系统,其特征在于,所述规则数据中的每个规则对应一个多叉树。
15.根据权利要求14所述的系统,其特征在于,每个规则节点包括该规则节点对应的比较器、数据项名称以及被比较的数据。
16.根据权利要求15所述的系统,其特征在于,所述每个规则节点还包括:数据加载器、数据项ID、数据类型、操作符、父节点ID、子节点ID、子节点列表。
17.根据权利要求13至15中任一项所述的系统,其特征在于,所述规则引擎服务器对所获取的规则数据进行相应处理包括:
采用先根遍历算法对所获取的规则数据进行校验处理。
18.根据权利要求13所述的系统,其特征在于,所述规则引擎服务器与所述规则引擎客户端是基于Hessian RPC调用通讯技术进行通讯。
19.根据权利要求13所述的系统,其特征在于,所述规则引擎服务器包括以分布式形式部署的服务器。
20.根据权利要求13所述的系统,其特征在于,所述系统还包括第一服务器,所述规则引擎服务器,还用于将该规则引擎服务器的地址信息存入所述第一服务器以便所述规则引擎客户端从所述第一服务器获取所述规则引擎服务器的地址信息。
21.根据权利要求20所述的系统,其特征在于,所述规则引擎服务器,还用于:所述规则引擎服务器的地址信息变更时,将变更后的地址信息存入所述第一服务器以便所述规则引擎客户端从所述第一服务器获取所述规则引擎服务器的变更后的地址信息。
22.根据权利要求20所述的系统,其特征在于,所述规则引擎服务器与所述第一服务器之间保持心跳检测。
23.根据权利要求19所述的系统,其特征在于,所述规则引擎客户端通过相应的接口进行调用请求处理,其中,所述调用请求包括下述的一种或多种:添加规则、更新规则、查询规则、添加规则组、添加规则到规则组、从规则组中删除规则、根据数据类型获取操作符列表、获取所有的数据类型及每个数据类型支持的操作符列表、根据规则组ID查询该规则组内包含的规则列表、查询所有的规则组、校验指定规则组下规则、判断输入数据是否满足指定规则、对输入的规则依次进行校验和获取指定规则数据项列表。
24.根据权利要求23所述的系统,其特征在于,所述系统还包括:第二服务器,所述规则引擎服务器,还用于:在接收到所述规则引擎客户端涉及规则变更的调用请求之后,将规则变更的事件发送到所述第二服务器以便所述第二服务器将所述规则变更的事件通知以分布式形式部署的服务器中的其他规则引擎服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610395778.6A CN106101090A (zh) | 2016-06-07 | 2016-06-07 | 用于规则引擎的操作方法以及规则引擎系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610395778.6A CN106101090A (zh) | 2016-06-07 | 2016-06-07 | 用于规则引擎的操作方法以及规则引擎系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106101090A true CN106101090A (zh) | 2016-11-09 |
Family
ID=57447156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610395778.6A Pending CN106101090A (zh) | 2016-06-07 | 2016-06-07 | 用于规则引擎的操作方法以及规则引擎系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106101090A (zh) |
Cited By (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106709026A (zh) * | 2016-12-28 | 2017-05-24 | 深圳市华傲数据技术有限公司 | 数据处理方法及系统 |
CN107315611A (zh) * | 2017-06-26 | 2017-11-03 | 郑州云海信息技术有限公司 | 一种应用系统规则管理方法及装置 |
CN107729388A (zh) * | 2017-09-19 | 2018-02-23 | 杭州安恒信息技术有限公司 | 一种基于XML协议的app服务器实现方法 |
CN108287708A (zh) * | 2017-12-22 | 2018-07-17 | 深圳市云智融科技有限公司 | 一种数据处理方法、装置、服务器及计算机可读存储介质 |
CN108334576A (zh) * | 2018-01-24 | 2018-07-27 | 深圳市金政软件技术有限公司 | 一种数据展现系统及其数据展示方法 |
CN108376064A (zh) * | 2016-11-24 | 2018-08-07 | 阿里巴巴集团控股有限公司 | 规则引擎系统及规则引擎的相关方法 |
CN108427733A (zh) * | 2018-02-28 | 2018-08-21 | 网易(杭州)网络有限公司 | 审核规则的设置方法、装置和系统、设备、存储介质 |
CN108512909A (zh) * | 2018-03-14 | 2018-09-07 | 日照职业技术学院 | 一种基于物联网的计算机远程控制系统 |
CN108647049A (zh) * | 2018-03-18 | 2018-10-12 | 平安科技(深圳)有限公司 | 基于规则引擎的可配置化系统、方法、设备和存储介质 |
CN108830706A (zh) * | 2018-05-31 | 2018-11-16 | 阿里巴巴集团控股有限公司 | 数据处理方法及装置和电子设备 |
CN109213546A (zh) * | 2017-06-30 | 2019-01-15 | 武汉斗鱼网络科技有限公司 | 用于windows客户端程序的登录处理方法和装置 |
CN109542935A (zh) * | 2018-10-11 | 2019-03-29 | 平安科技(深圳)有限公司 | 一种规则引擎的执行方法、存储介质和服务器 |
CN109582289A (zh) * | 2017-09-28 | 2019-04-05 | 阿里巴巴集团控股有限公司 | 规则引擎中规则流的处理方法、系统、存储介质和处理器 |
CN109656688A (zh) * | 2018-12-07 | 2019-04-19 | 北京京东金融科技控股有限公司 | 一种实现分布式业务规则的方法、系统和服务器 |
CN109710884A (zh) * | 2018-12-28 | 2019-05-03 | 北京国舜科技股份有限公司 | 一种支持多种复杂计算方式的实时指标配置方法及系统 |
CN109858906A (zh) * | 2018-12-30 | 2019-06-07 | 贝壳技术有限公司 | 一种规则的动态扩展方法及系统 |
CN110059920A (zh) * | 2019-03-08 | 2019-07-26 | 阿里巴巴集团控股有限公司 | 风险决策方法及装置 |
CN110515937A (zh) * | 2019-09-02 | 2019-11-29 | 中国农业银行股份有限公司 | 一种数据校验方法及装置 |
CN110704049A (zh) * | 2019-10-09 | 2020-01-17 | 紫光云技术有限公司 | 一种简单易用的规则引擎条件配置方法 |
CN110941420A (zh) * | 2019-11-22 | 2020-03-31 | 绿漫科技有限公司 | 一种基于Actor模型的规则引擎系统及其方法 |
CN110971572A (zh) * | 2018-09-29 | 2020-04-07 | 北京华为数字技术有限公司 | 鉴权方法、服务器及客户端 |
CN111080309A (zh) * | 2019-12-25 | 2020-04-28 | 支付宝(杭州)信息技术有限公司 | 针对多个对象或多个模型的数据处理方法、装置及设备 |
CN111414441A (zh) * | 2019-01-04 | 2020-07-14 | 阿里巴巴集团控股有限公司 | 地图数据检查系统和方法、检查规则配置系统和方法 |
CN111488179A (zh) * | 2019-01-28 | 2020-08-04 | 上海哔哩哔哩科技有限公司 | 规则系统及其构建方法以及业务系统及其应用方法 |
CN111767157A (zh) * | 2019-08-07 | 2020-10-13 | 北京京东尚科信息技术有限公司 | 基于服务网格的请求处理方法和装置 |
CN111861382A (zh) * | 2020-06-28 | 2020-10-30 | 微民保险代理有限公司 | 业务资格认证方法、装置、系统、计算机设备和存储介质 |
WO2021059051A1 (en) * | 2019-09-24 | 2021-04-01 | International Business Machines Corporation | Processing data of a database system |
CN112799647A (zh) * | 2021-04-12 | 2021-05-14 | 四川新网银行股份有限公司 | 一种面向业务人员的规则引擎适配器装置的识别方法 |
CN112860398A (zh) * | 2021-02-02 | 2021-05-28 | 广州市网星信息技术有限公司 | 基于规则引擎的数据处理方法、装置、设备及介质 |
CN113065656A (zh) * | 2021-03-26 | 2021-07-02 | 龙马智芯(珠海横琴)科技有限公司 | 一种规则引擎配置方法、装置、服务器及可读存储介质 |
CN113641708A (zh) * | 2021-08-11 | 2021-11-12 | 华院计算技术(上海)股份有限公司 | 规则引擎的优化方法、数据匹配方法及装置、存储介质、终端 |
CN113852638A (zh) * | 2021-09-28 | 2021-12-28 | 深信服科技股份有限公司 | 一种攻击检测方法、装置、设备及存储介质 |
CN114222004A (zh) * | 2021-12-14 | 2022-03-22 | 平安壹钱包电子商务有限公司 | 业务数据分发执行方法、装置、计算机设备及存储介质 |
CN115185616A (zh) * | 2022-09-14 | 2022-10-14 | 深圳依时货拉拉科技有限公司 | 业务规则引擎及业务规则引擎的处理方法 |
US11989661B1 (en) * | 2023-07-24 | 2024-05-21 | Morgan Stanley Services Group Inc. | Dynamic rules for rules engines |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101989939A (zh) * | 2009-07-31 | 2011-03-23 | 同方威视技术股份有限公司 | 实时数据提供方法、服务器和网络 |
CN102043702A (zh) * | 2009-10-16 | 2011-05-04 | 阿里巴巴集团控股有限公司 | 监控事件的方法、规则引擎装置和规则引擎系统 |
CN102681854A (zh) * | 2012-05-18 | 2012-09-19 | 华为技术有限公司 | 业务执行方法、服务器和计算机系统 |
CN103986748A (zh) * | 2014-04-22 | 2014-08-13 | 世纪禾光科技发展(北京)有限公司 | 实现服务化的方法和装置 |
WO2015076793A1 (en) * | 2013-11-20 | 2015-05-28 | Hewlett-Packard Development Company, L.P. | Determining an action in response to an event |
CN105468735A (zh) * | 2015-11-23 | 2016-04-06 | 武汉虹旭信息技术有限责任公司 | 基于移动互联网海量信息的流式预处理系统及其方法 |
-
2016
- 2016-06-07 CN CN201610395778.6A patent/CN106101090A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101989939A (zh) * | 2009-07-31 | 2011-03-23 | 同方威视技术股份有限公司 | 实时数据提供方法、服务器和网络 |
CN102043702A (zh) * | 2009-10-16 | 2011-05-04 | 阿里巴巴集团控股有限公司 | 监控事件的方法、规则引擎装置和规则引擎系统 |
CN102681854A (zh) * | 2012-05-18 | 2012-09-19 | 华为技术有限公司 | 业务执行方法、服务器和计算机系统 |
WO2015076793A1 (en) * | 2013-11-20 | 2015-05-28 | Hewlett-Packard Development Company, L.P. | Determining an action in response to an event |
CN103986748A (zh) * | 2014-04-22 | 2014-08-13 | 世纪禾光科技发展(北京)有限公司 | 实现服务化的方法和装置 |
CN105468735A (zh) * | 2015-11-23 | 2016-04-06 | 武汉虹旭信息技术有限责任公司 | 基于移动互联网海量信息的流式预处理系统及其方法 |
Cited By (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108376064A (zh) * | 2016-11-24 | 2018-08-07 | 阿里巴巴集团控股有限公司 | 规则引擎系统及规则引擎的相关方法 |
CN106709026A (zh) * | 2016-12-28 | 2017-05-24 | 深圳市华傲数据技术有限公司 | 数据处理方法及系统 |
CN107315611A (zh) * | 2017-06-26 | 2017-11-03 | 郑州云海信息技术有限公司 | 一种应用系统规则管理方法及装置 |
CN109213546A (zh) * | 2017-06-30 | 2019-01-15 | 武汉斗鱼网络科技有限公司 | 用于windows客户端程序的登录处理方法和装置 |
CN107729388A (zh) * | 2017-09-19 | 2018-02-23 | 杭州安恒信息技术有限公司 | 一种基于XML协议的app服务器实现方法 |
CN107729388B (zh) * | 2017-09-19 | 2020-04-28 | 杭州安恒信息技术股份有限公司 | 一种基于XML协议的app服务器实现方法 |
CN109582289B (zh) * | 2017-09-28 | 2022-04-08 | 阿里巴巴集团控股有限公司 | 规则引擎中规则流的处理方法、系统、存储介质和处理器 |
CN109582289A (zh) * | 2017-09-28 | 2019-04-05 | 阿里巴巴集团控股有限公司 | 规则引擎中规则流的处理方法、系统、存储介质和处理器 |
CN108287708A (zh) * | 2017-12-22 | 2018-07-17 | 深圳市云智融科技有限公司 | 一种数据处理方法、装置、服务器及计算机可读存储介质 |
CN108334576A (zh) * | 2018-01-24 | 2018-07-27 | 深圳市金政软件技术有限公司 | 一种数据展现系统及其数据展示方法 |
CN108427733A (zh) * | 2018-02-28 | 2018-08-21 | 网易(杭州)网络有限公司 | 审核规则的设置方法、装置和系统、设备、存储介质 |
CN108427733B (zh) * | 2018-02-28 | 2021-08-10 | 网易(杭州)网络有限公司 | 审核规则的设置方法、装置和系统、设备、存储介质 |
CN108512909A (zh) * | 2018-03-14 | 2018-09-07 | 日照职业技术学院 | 一种基于物联网的计算机远程控制系统 |
CN108647049B (zh) * | 2018-03-18 | 2023-01-31 | 平安科技(深圳)有限公司 | 基于规则引擎的可配置化系统、方法、设备和存储介质 |
CN108647049A (zh) * | 2018-03-18 | 2018-10-12 | 平安科技(深圳)有限公司 | 基于规则引擎的可配置化系统、方法、设备和存储介质 |
CN108830706A (zh) * | 2018-05-31 | 2018-11-16 | 阿里巴巴集团控股有限公司 | 数据处理方法及装置和电子设备 |
CN110971572A (zh) * | 2018-09-29 | 2020-04-07 | 北京华为数字技术有限公司 | 鉴权方法、服务器及客户端 |
CN109542935A (zh) * | 2018-10-11 | 2019-03-29 | 平安科技(深圳)有限公司 | 一种规则引擎的执行方法、存储介质和服务器 |
CN109656688B (zh) * | 2018-12-07 | 2021-03-30 | 京东数字科技控股有限公司 | 一种实现分布式业务规则的方法、系统和服务器 |
CN109656688A (zh) * | 2018-12-07 | 2019-04-19 | 北京京东金融科技控股有限公司 | 一种实现分布式业务规则的方法、系统和服务器 |
CN109710884B (zh) * | 2018-12-28 | 2021-03-02 | 北京国舜科技股份有限公司 | 一种支持多种复杂计算方式的实时指标配置方法及系统 |
CN109710884A (zh) * | 2018-12-28 | 2019-05-03 | 北京国舜科技股份有限公司 | 一种支持多种复杂计算方式的实时指标配置方法及系统 |
CN109858906A (zh) * | 2018-12-30 | 2019-06-07 | 贝壳技术有限公司 | 一种规则的动态扩展方法及系统 |
CN111414441B (zh) * | 2019-01-04 | 2023-05-26 | 阿里巴巴集团控股有限公司 | 地图数据检查系统和方法、检查规则配置系统和方法 |
CN111414441A (zh) * | 2019-01-04 | 2020-07-14 | 阿里巴巴集团控股有限公司 | 地图数据检查系统和方法、检查规则配置系统和方法 |
CN111488179A (zh) * | 2019-01-28 | 2020-08-04 | 上海哔哩哔哩科技有限公司 | 规则系统及其构建方法以及业务系统及其应用方法 |
CN110059920A (zh) * | 2019-03-08 | 2019-07-26 | 阿里巴巴集团控股有限公司 | 风险决策方法及装置 |
CN110059920B (zh) * | 2019-03-08 | 2021-08-06 | 创新先进技术有限公司 | 风险决策方法及装置 |
CN111767157A (zh) * | 2019-08-07 | 2020-10-13 | 北京京东尚科信息技术有限公司 | 基于服务网格的请求处理方法和装置 |
CN111767157B (zh) * | 2019-08-07 | 2024-05-17 | 北京京东尚科信息技术有限公司 | 基于服务网格的请求处理方法和装置 |
CN110515937A (zh) * | 2019-09-02 | 2019-11-29 | 中国农业银行股份有限公司 | 一种数据校验方法及装置 |
WO2021059051A1 (en) * | 2019-09-24 | 2021-04-01 | International Business Machines Corporation | Processing data of a database system |
US11429611B2 (en) | 2019-09-24 | 2022-08-30 | International Business Machines Corporation | Processing data of a database system |
CN110704049A (zh) * | 2019-10-09 | 2020-01-17 | 紫光云技术有限公司 | 一种简单易用的规则引擎条件配置方法 |
CN110941420A (zh) * | 2019-11-22 | 2020-03-31 | 绿漫科技有限公司 | 一种基于Actor模型的规则引擎系统及其方法 |
CN111080309A (zh) * | 2019-12-25 | 2020-04-28 | 支付宝(杭州)信息技术有限公司 | 针对多个对象或多个模型的数据处理方法、装置及设备 |
CN111861382A (zh) * | 2020-06-28 | 2020-10-30 | 微民保险代理有限公司 | 业务资格认证方法、装置、系统、计算机设备和存储介质 |
CN111861382B (zh) * | 2020-06-28 | 2024-04-09 | 微民保险代理有限公司 | 业务资格认证方法、装置、系统、计算机设备和存储介质 |
CN112860398A (zh) * | 2021-02-02 | 2021-05-28 | 广州市网星信息技术有限公司 | 基于规则引擎的数据处理方法、装置、设备及介质 |
CN113065656A (zh) * | 2021-03-26 | 2021-07-02 | 龙马智芯(珠海横琴)科技有限公司 | 一种规则引擎配置方法、装置、服务器及可读存储介质 |
CN112799647B (zh) * | 2021-04-12 | 2021-11-23 | 四川新网银行股份有限公司 | 一种面向业务人员的规则引擎适配器装置的识别方法 |
CN112799647A (zh) * | 2021-04-12 | 2021-05-14 | 四川新网银行股份有限公司 | 一种面向业务人员的规则引擎适配器装置的识别方法 |
CN113641708B (zh) * | 2021-08-11 | 2022-07-26 | 华院计算技术(上海)股份有限公司 | 规则引擎的优化方法、数据匹配方法及装置、存储介质、终端 |
CN113641708A (zh) * | 2021-08-11 | 2021-11-12 | 华院计算技术(上海)股份有限公司 | 规则引擎的优化方法、数据匹配方法及装置、存储介质、终端 |
CN113852638A (zh) * | 2021-09-28 | 2021-12-28 | 深信服科技股份有限公司 | 一种攻击检测方法、装置、设备及存储介质 |
CN113852638B (zh) * | 2021-09-28 | 2024-02-27 | 深信服科技股份有限公司 | 一种攻击检测方法、装置、设备及存储介质 |
CN114222004A (zh) * | 2021-12-14 | 2022-03-22 | 平安壹钱包电子商务有限公司 | 业务数据分发执行方法、装置、计算机设备及存储介质 |
CN115185616A (zh) * | 2022-09-14 | 2022-10-14 | 深圳依时货拉拉科技有限公司 | 业务规则引擎及业务规则引擎的处理方法 |
CN115185616B (zh) * | 2022-09-14 | 2022-12-13 | 深圳依时货拉拉科技有限公司 | 业务规则引擎装置及业务规则引擎的处理方法 |
US11989661B1 (en) * | 2023-07-24 | 2024-05-21 | Morgan Stanley Services Group Inc. | Dynamic rules for rules engines |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106101090A (zh) | 用于规则引擎的操作方法以及规则引擎系统 | |
CN101009516B (zh) | 一种进行数据同步的方法、系统及装置 | |
CN102184227B (zh) | 一种面向web服务的通用爬虫引擎系统及其工作方法 | |
CN100428228C (zh) | 为移动应用缓存数据的系统和方法 | |
CN103297475A (zh) | Mock服务系统及Mock服务的处理方法 | |
US6785674B2 (en) | System and method for structuring data in a computer system | |
US7523130B1 (en) | Storing and retrieving objects on a computer network in a distributed database | |
US8688708B2 (en) | Storing and retrieving objects on a computer network in a distributed database | |
CN106649630A (zh) | 数据查询方法及装置 | |
US9477772B2 (en) | Storing and retrieving objects on a computer network in a distributed database | |
US9413702B2 (en) | Method and apparatus for distributing published messages | |
WO2012072879A1 (en) | Method and apparatus for updating a partitioned index | |
CN107590072A (zh) | 一种应用开发和测试的方法和装置 | |
CN109002484A (zh) | 一种用于顺序消费数据的方法及系统 | |
CN103345521A (zh) | 一种在哈希表数据库中处理键值的方法和装置 | |
CN108241725B (zh) | 一种数据热度统计系统和方法 | |
CN102034144B (zh) | 用于确定群组在场的系统和方法 | |
US20180089241A1 (en) | Context enhanced indexing | |
CN108573014A (zh) | 一种文件同步方法、装置、电子设备及可读存储介质 | |
US11036797B2 (en) | Efficient storage and utilization of a hierarchical data set | |
CN108282525A (zh) | 基于对等网络的视频资源管理系统和方法 | |
US20080208920A1 (en) | Efficient detection of deleted objects against a stateless content directory service | |
US20080086483A1 (en) | File service system in personal area network | |
US10606805B2 (en) | Object-level image query and retrieval | |
CN105227386A (zh) | 用于分群体统计在线用户数的方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161109 |
|
RJ01 | Rejection of invention patent application after publication |