CN107133039A - 规则引擎的构建方法和装置 - Google Patents
规则引擎的构建方法和装置 Download PDFInfo
- Publication number
- CN107133039A CN107133039A CN201710296285.1A CN201710296285A CN107133039A CN 107133039 A CN107133039 A CN 107133039A CN 201710296285 A CN201710296285 A CN 201710296285A CN 107133039 A CN107133039 A CN 107133039A
- Authority
- CN
- China
- Prior art keywords
- rule
- script file
- regulation engine
- test
- pushed
- 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
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
-
- 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/34—Graphical or visual programming
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种规则引擎的构建方法和装置。其中,该方法包括:根据预设的规则修改模板确定规则引擎的规则;对规则进行预编译和测试,测试通过后根据规则生成脚本文件;将脚本文件推送至预设服务器中供规则引擎的调用终端调用。本发明解决了现有技术中规则引擎开发成本高、学习成本高以及重量级的技术问题。
Description
技术领域
本发明涉及计算机互联网领域,具体而言,涉及一种规则引擎的构建方法和装置。
背景技术
规则引擎是为了响应和处理复杂多变的业务规则而设计的核心技术组件,规则引擎的使用场景包括但不限于以下两种场景:第一种场景,大批量的灵活逻辑条件判断,例如风控系统里设置各种阈值的组合和分支条件if else等。第二种场景,经常变动的数据计算方式,比如针对销售团队的阶梯绩效提成的计算处理。通过引入规则引擎,将复杂多变的部分,通过灵活配置的方式动态定义和调整,从而保证了IT系统能及时支撑业务需要的变化。
现在常见的业务规则引擎主要有:Jess、JRules、Drools等,从开发成本和价格上来说,现有的规则引擎的开发成本均较高,并且除了Drools为开源免费之外,其他规则引擎须经商业授权付费方可使用,并且价格高昂的。从规则描述语言Rule Language来说,各个规则引擎都有自己的一套Rule Language,使用一个规则引擎需要掌握相应的RuleLanguage,想用好Rule Language需要更深入的学习。例如Drools,Drools支持使用Java、Groovy来定义规则,方法是在XML中嵌入Java、Groovy代码,在一定程度上能够降低Java开发人员的学习成本,但由于是基于XML实现的,在Java开发人员看来,代码格式依然怪异,而且也必须要学习这套XML的定义规则;Drools同时也支持Excel定义规则,可是从Excel中读取规则非常耗时,其示例代码中的Excel规则读取耗时约13484毫秒,预解析成drl文件读取耗时依然需要大于7579毫秒的时间。从量级来说,虽然现有的规则引擎功能很强大,但是同时也比较重量级。
基于规则引擎价格高昂、开源规则引擎比较重量级且学习曲线较高,因此并非适用于所有业务系统,商业化规则引擎性能高、易用性好、功能强大同时也比较重量级,当然更重要的是价格高昂,非一般项目可以担负;开源免费的规则引擎效率较低,使用不是特别友好,也比较重量级,并且现有的规则引擎对于开发人员和业务人员有较高的学习曲线,总体来说是用这些规则引擎都有较高的成本投入,不利其于在技术团队全面推广,一旦技术人员发生变动,需要再次投入规则引擎学习成本。
因此技术界一直在探索和尝试价格低廉、易学习且比较轻量级的实现方式,有的直接硬编码在程序中,有的实现了动态改变但不方便管理,始终没有形成一个成型成功的解决方案和产品。
针对上述现有技术中规则引擎开发成本高、学习成本高以及重量级的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种规则引擎的构建方法和装置,以至少解决现有技术中规则引擎开发成本高、学习成本高以及重量级的技术问题。
根据本发明实施例的一个方面,提供了一种规则引擎的构建方法,包括:根据预设的规则修改模板确定规则引擎的规则;对规则进行预编译和测试,测试通过后根据规则生成脚本文件;将脚本文件推送至预设服务器中供规则引擎的调用终端调用。
进一步地,将脚本文件推送至预设位置供规则引擎的调用终端调用,包括:按照规则的生效时间将脚本文件推送至Zookeeper集群;通过Zookeeper集群的Zookeeper watch将脚本文件推送至预设服务器中。
进一步地,测试通过后根据规则生成脚本文件之后,方法还包括:将脚本文件推送至第一预设位置供版本管理仓库调用,版本管理仓库包括至少如下之一:SVN、Git、CVS;和/或将脚本文件推送至第二预设位置供消息中间件调用,消息中间件包括至少如下之一:ActiveMQ、RabbitMQ、RocketMQ、Kafka。
进一步地,测试通过后根据规则生成脚本文件之后,还包括:将脚本文件存储至数据库中。
进一步地,规则修改模板为可视化规则修改模板。
进一步地,脚本文件为XML和/或Groovy格式的脚本文件。
根据本发明实施例的另一方面,还提供了一种规则引擎的构建装置,包括:确定模块,用于根据预设的规则修改模板确定规则引擎的规则;测试模块,用于对规则进行预编译和测试,测试通过后根据规则生成脚本文件;推送模块,用于将脚本文件推送至预设服务器中供规则引擎的调用终端调用。
进一步地,推送模块包括:第一推送模块,用于按照规则的生效时间将脚本文件推送至Zookeeper集群;第二推送模块,用于通过Zookeeper集群的Zookeeper watch将脚本文件推送至预设服务器中。
进一步地,规则修改模板为可视化规则修改模板。
进一步地,脚本文件为XML和/或Groovy格式的脚本文件。
在本发明实施例中,通过根据预设的规则修改模板确定规则引擎的规则;对规则进行预编译和测试,测试通过后根据规则生成脚本文件;将脚本文件推送至预设服务器中供规则引擎的调用终端调用,达到了构建一个开发成本低、学习成本低以及轻量级的规则引擎的目的,从而实现了易学习、易用且灵活的技术效果,进而解决了现有技术中规则引擎开发成本高、学习成本高以及重量级的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种规则引擎的构建方法的示意图;
图2是根据本发明实施例的一种可选的规则引擎的构建方法的示意图;
图3是根据本发明实施例的一种可选的规则引擎的构建方法的示意图;以及
图4是根据本发明实施例的一种规则引擎的构建装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种规则引擎的构建方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的规则引擎的构建方法,如图1所示,该方法包括如下步骤:
步骤S102,根据预设的规则修改模板确定规则引擎的规则。
具体的,通过开放预设的规则修改模板,相关的业务人员就不需要学习编码知识,可以节省学习成本,无论时系统研发还是后期业务人员修改规则,都比较友好,简单易用;并且由于规则修改模板是可以预设的,因此可以根据业务的需要任意扩展规则修改模板,当业务变动有新的规则需求时,视情况自主扩展功能,且扩展非常方便;相较于JRule是商业授权,自己无法修改,以及Drools需要先读懂别人的源代码才能修改,还需要承担很大的修改风险(如因修改导致其他功能损坏、Drools官方有修正错误或安全问题的新版本时,难以升级等),本发明构建的规则引擎更加灵活可控。
可选的,预设的规则修改模板可以设置为贴近实际业务规则定义,以使完全不用另外学习任何概念和语言。
步骤S104,对规则进行预编译和测试,测试通过后根据规则生成脚本文件。
具体的,通过预编译和测试,可以尽早发现有问题的规则。
步骤S106,将脚本文件推送至预设服务器中供规则引擎的调用终端调用。
具体的,通过将根据规则生成的脚本文件集中在预设服务器上,可以方便进行集中管理,而不用考虑使用规则的系统部署在哪里,可选的,可以设置统一的管理入口,以便于维护,并且可以提供极其友好的可视化界面;其中,预设服务器也可以命名为脚本文件存储服务器。
在本发明实施例中,通过根据预设的规则修改模板确定规则引擎的规则;对规则进行预编译和测试,测试通过后根据规则生成脚本文件;将脚本文件推送至预设服务器中供规则引擎的调用终端调用,达到了构建一个开发成本低、学习成本低以及轻量级的规则引擎的目的,从而实现了易学习、易用且灵活的技术效果,进而解决了现有技术中规则引擎开发成本高、学习成本高以及重量级的技术问题。
在一种可选的实施例中,调用终端在启动时首先初始化规则引擎以及规则引擎的规则对象,通过对预设服务器进行监控,如果监控到脚本文件发生变化,则重新加载规则对象,在脚本文件为Groovy的情况下,对Groovy脚本引擎初始化,之后对业务规则进行组装,执行并产生结果;其中,Groovy是用于Java虚拟机的一种敏捷的动态语言,它是一种成熟的面向对象编程语言,既可以用于面向对象编程,又可以用作纯粹的脚本语言,使用该种语言不必编写过多的代码,同时又具有闭包和动态语言中的其他特性。
此处需要说明的是,调用终端在调用规则的时候,可以通过jar引用,也可以通过RPC(远程过程调用协议)/HTTP(超文本传输协议)远程调用,其中,JAR(Java Archive,Java归档文件)是一种文件格式,它允许将许多文件组合成一个压缩文件。
在一种可选的实施例中,步骤S106中将脚本文件推送至预设位置供规则引擎的调用终端调用,包括:
步骤S202,按照规则的生效时间将脚本文件推送至Zookeeper集群。
具体的,可以设定规则的生效时间,以定时推送更新,调用终端调用后则实时生效,其中,ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务。
此处需要说明的是,Zookeeper集群可以实现脚本文件的分布式部署,但是本发明实施例中,如果没有集群分布条件的话,也可以采用集中部署的方式,也就是说本发明的规则引擎可以选择集中部署、分布式集群部署等等,灵活多变。
步骤S204,通过Zookeeper集群的Zookeeper watch将脚本文件推送至预设服务器中。
具体的,Zookeeper watch的定义如下:在Zookeeper中,watch是一个一次性触发器,会在被设置watch的数据发生变化的时候,发送给设置watch的客户端。
在一种可选的实施例中,步骤S104中测试通过后根据规则生成脚本文件之后,方法还包括:将脚本文件推送至第一预设位置供版本管理仓库调用,版本管理仓库包括至少如下之一:SVN、Git、CVS;和/或将脚本文件推送至第二预设位置供消息中间件调用,消息中间件包括至少如下之一:ActiveMQ、RabbitMQ、RocketMQ、Kafka。
其中,SVN是Subversion的简称,是一个开放源代码的版本控制系统;Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目,CVS是一个C/S系统,也是一个常用的代码版本控制软件,主要在开源软件管理中使用。ActiveMQ是Apache出品,最流行的、能力强劲的开源消息总线;RabbitMQ是一个在AMQP基础上完成的,可复用的企业消息系统;RocketMQ是一个纯java的开源消息中间件;Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。
在一种可选的实施例中,除了使用Zookeeper进行监控以及推送的方式外,还可以采用其他文件共享方式,如Disconfig[https://github.com/knightliao/disconf]、configcenter[https://github.com/Baidu-ecom/configcenter]方式等。
在一种可选的实施例中,步骤S102中测试通过后根据规则生成脚本文件之后,还包括:步骤S302,将脚本文件存储至数据库中。
在一种可选的实施例中,规则修改模板为可视化规则修改模板。
具体的,通过将规则修改模板可视化,更有利于相关人员直接在规则修改模板上进行编辑,生成规则引擎的规则。可视化规则修改模板可以提供最贴合业务的自然语言模版定义方法,业务人员可以进行完全可视化操作,不用了解模版背后的实现方式就可以通过模版修改规则,将使用规则引擎的门槛进一步降低。
可选的,图2给出了可以进行编辑的关于销售人员业务考核规则的规则修改模板,如图2所示,图2中生效时间即为修改保存后规则的生效时间,系统将按指定时间推送并生效新规则;预览表示可以预编译并检测规则定义是否正确有效,并回显给操作者;表示保存会先校验是否通过检测,通过的将修改完成的规则记录入库,以及推送脚步。
在一种可选的实施例中,脚本文件为XML(可扩展标记语言)和/或Groovy格式的脚本文件。
具体的,对于Java开发人员来说,学习Groovy仅需要一天,如果仅用来支撑规则引擎的话学习时间甚至不超过1小时,因此Groovy学习对于Java开发人员来说没有难度,学习成本趋近于零,因此可以降低学习曲线。并且,根据规则修改模板确定的规则保存以后,可以通过转换引擎将之转换成Groovy代码,直接执行在Java系统内,可以与Java代码间无障碍调用,且性能不会降低。
可选的,图2中的规则修改模板经过转换后可以得到如下代码片段:
从图2中的规则修改模板可以看出,对业务人员来说,界面非常友好,从上述生成的源代码可以看出,上述代码对Java研发人员来说基本没有障碍。并且源代码生成以后不需要编译,规则调用终端只需要取得规则名称(数据库、配置等多种持久化方式),通过调用BaseRule提供的call方法即可得到经过规则运算的结果。
在一种可选的实施例中,本发明的规则引擎可以为基于Spring动态语言支持用Groovy实现的分布式规则引擎。
在一种可选的实施例中,如图3所示,可以将规则引擎划分为引擎发布管理系统和规则文件推送平台,其中,引擎发布管理系统主要实现通过模板(此处的模板即规则修改模板)修改规则,将修改后的规则进行预编译以及测试,测试通过后可以生成Groovy脚本文件,如果测试不通过可以继续通过模板修改规则,可以将通过测试的规则存储在数据库中,并推送到Zookeeper集群中;规则文件推送平台主要实现通过Zookeeper watch将脚本文件推送至预设服务器中,图3中显示为通过Zookeeper watch推送XML和/或Groovy格式的脚本文件,将其存储在本地。规则调用终端可以基于Spring启动,初始化规则引擎以及规则对象,同时监控本地XML和/或Groovy格式的脚本文件是否发生变化,在发生变化的情况下重新加载规则对象,并初始化Groovy脚本引擎,调用业务规则后组装业务规则,执行并返回结果。
实施例2
根据本发明实施例,提供了一种规则引擎的构建装置的产品实施例,图4是根据本发明实施例的规则引擎的构建装置,如图4所示,该装置包括确定模块、测试模块和推送模块,其中,确定模块,用于根据预设的规则修改模板确定规则引擎的规则;测试模块,用于对规则进行预编译和测试,测试通过后根据规则生成脚本文件;推送模块,用于将脚本文件推送至预设服务器中供规则引擎的调用终端调用。
在本发明实施例中,通过确定模块根据预设的规则修改模板确定规则引擎的规则,由测试模块对规则进行预编译和测试,测试通过后根据规则生成脚本文件,最后由推送模块将脚本文件推送至预设服务器中供规则引擎的调用终端调用,达到了构建一个开发成本低、学习成本低以及轻量级的规则引擎的目的,从而实现了易学习、易用且灵活的技术效果,进而解决了现有技术中规则引擎开发成本高、学习成本高以及重量级的技术问题。
此处需要说明的是,上述确定模块、测试模块和推送模块对应于实施例1中的步骤S102至步骤S106,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。
在一种可选的实施例中,推送模块包括第一推送模块和第二推送模块,其中,第一推送模块,用于按照规则的生效时间将脚本文件推送至Zookeeper集群;第二推送模块,用于通过Zookeeper集群的Zookeeper watch将脚本文件推送至预设服务器中。
在一种可选的实施例中,装置还包括第一推动模块和/或第二推送模块,其中,第一推动模块用于在测试模块测试通过后根据规则生成脚本文件之后,将脚本文件推送至第一预设位置供版本管理仓库调用,版本管理仓库包括至少如下之一:SVN、Git、CVS;第一推动模块用于在测试模块测试通过后根据规则生成脚本文件之后,将脚本文件推送至第二预设位置供消息中间件调用,消息中间件包括至少如下之一:ActiveMQ、RabbitMQ、RocketMQ、Kafka。
此处需要说明的是,上述第一推送模块和第二推送模块对应于实施例1中的步骤S202至步骤S204,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。
在一种可选的实施例中,装置还包括存储模块,用于在测试模块测试通过后根据规则生成脚本文件之后,将脚本文件存储至数据库中。
此处需要说明的是,上述存储模块对应于实施例1中的步骤S302,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。
在一种可选的实施例中,规则修改模板为可视化规则修改模板。
在一种可选的实施例中,脚本文件为XML和/或Groovy格式的脚本文件。
实施例3
根据本发明实施例,提供了一种存储介质的产品实施例,该存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述规则引擎的构建方法。
实施例4
根据本发明实施例,提供了一种处理器的产品实施例,该处理器用于运行程序,其中,程序运行时执行上述规则引擎的构建方法。
实施例5
根据本发明实施例,提供了一种终端的产品实施例,该终端包括确定模块、测试模块、推送模块和处理器,其中,确定模块,用于根据预设的规则修改模板确定规则引擎的规则;测试模块,用于对规则进行预编译和测试,测试通过后根据规则生成脚本文件;推送模块,用于将脚本文件推送至预设服务器中供规则引擎的调用终端调用;处理器,处理器运行程序,其中,程序运行时对于从确定模块、测试模块和推送模块输出的数据执行如下处理步骤:第一步骤,根据预设的规则修改模板确定规则引擎的规则,第二步骤,对规则进行预编译和测试,测试通过后根据规则生成脚本文件,以及第三步骤,将脚本文件推送至预设服务器中供规则引擎的调用终端调用。
实施例6
根据本发明实施例,提供了一种终端的产品实施例,该终端包括确定模块、测试模块、推送模块和存储介质,其中,确定模块,用于根据预设的规则修改模板确定规则引擎的规则;测试模块,用于对规则进行预编译和测试,测试通过后根据规则生成脚本文件;推送模块,用于将脚本文件推送至预设服务器中供规则引擎的调用终端调用;存储介质,用于存储程序,其中,程序在运行时对于从确定模块、测试模块和推送模块输出的数据执行如下处理步骤:第一步骤,根据预设的规则修改模板确定规则引擎的规则,第二步骤,对规则进行预编译和测试,测试通过后根据规则生成脚本文件,以及第三步骤,将脚本文件推送至预设服务器中供规则引擎的调用终端调用。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种规则引擎的构建方法,其特征在于,包括:
根据预设的规则修改模板确定所述规则引擎的规则;
对所述规则进行预编译和测试,测试通过后根据所述规则生成脚本文件;
将所述脚本文件推送至预设服务器中供所述规则引擎的调用终端调用。
2.根据权利要求1所述的方法,其特征在于,将所述脚本文件推送至预设服务器中供所述规则引擎的调用终端调用,包括:
按照所述规则的生效时间将所述脚本文件推送至Zookeeper集群;
通过所述Zookeeper集群的Zookeeper watch将所述脚本文件推送至所述预设服务器中。
3.根据权利要求1所述的方法,其特征在于,测试通过后根据所述规则生成脚本文件之后,所述方法还包括:
将所述脚本文件推送至第一预设位置供版本管理仓库调用,所述版本管理仓库包括至少如下之一:SVN、Git、CVS;和/或
将所述脚本文件推送至第二预设位置供消息中间件调用,所述消息中间件包括至少如下之一:ActiveMQ、RabbitMQ、RocketMQ、Kafka。
4.根据权利要求1所述的方法,其特征在于,测试通过后根据所述规则生成脚本文件之后,还包括:
将所述脚本文件存储至数据库中。
5.根据权利要求1-4中任意一项所述的方法,其特征在于,所述规则修改模板为可视化规则修改模板。
6.根据权利要求1-4中任意一项所述的方法,其特征在于,所述脚本文件为XML和/或Groovy格式的脚本文件。
7.一种规则引擎的构建装置,其特征在于,包括:
确定模块,用于根据预设的规则修改模板确定所述规则引擎的规则;
测试模块,用于对所述规则进行预编译和测试,测试通过后根据所述规则生成脚本文件;
推送模块,用于将所述脚本文件推送至预设服务器中供所述规则引擎的调用终端调用。
8.根据权利要求7所述的装置,其特征在于,所述推送模块包括:
第一推送模块,用于按照所述规则的生效时间将所述脚本文件推送至Zookeeper集群;
第二推送模块,用于通过所述Zookeeper集群的Zookeeper watch将所述脚本文件推送至所述预设服务器中。
9.根据权利要求7-8中任意一项所述的装置,其特征在于,所述规则修改模板为可视化规则修改模板。
10.根据权利要求7-8中任意一项所述的装置,其特征在于,所述脚本文件为XML和/或Groovy格式的脚本文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710296285.1A CN107133039A (zh) | 2017-04-28 | 2017-04-28 | 规则引擎的构建方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710296285.1A CN107133039A (zh) | 2017-04-28 | 2017-04-28 | 规则引擎的构建方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107133039A true CN107133039A (zh) | 2017-09-05 |
Family
ID=59715262
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710296285.1A Pending CN107133039A (zh) | 2017-04-28 | 2017-04-28 | 规则引擎的构建方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107133039A (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107632842A (zh) * | 2017-09-26 | 2018-01-26 | 携程旅游信息技术(上海)有限公司 | 规则配置和发布方法、系统、设备及存储介质 |
CN108198081A (zh) * | 2017-12-29 | 2018-06-22 | 上海栈略数据技术有限公司 | 一种可配置的保险风控规则引擎系统及流程方法 |
CN108363775A (zh) * | 2018-02-09 | 2018-08-03 | 上海宝尊电子商务有限公司 | 基于规则引擎的高扩展性线上预览环境方法 |
CN108647049A (zh) * | 2018-03-18 | 2018-10-12 | 平安科技(深圳)有限公司 | 基于规则引擎的可配置化系统、方法、设备和存储介质 |
CN109582289A (zh) * | 2017-09-28 | 2019-04-05 | 阿里巴巴集团控股有限公司 | 规则引擎中规则流的处理方法、系统、存储介质和处理器 |
CN109636317A (zh) * | 2018-11-23 | 2019-04-16 | 山东中创软件工程股份有限公司 | 业务控制方法、装置、系统及存储介质 |
CN109710468A (zh) * | 2018-08-03 | 2019-05-03 | 北京马上慧科技术有限公司 | 一种基于blaze规则的引擎模拟测试系统 |
CN109783151A (zh) * | 2017-11-10 | 2019-05-21 | 北京京东尚科信息技术有限公司 | 规则变更的方法和装置 |
CN109783071A (zh) * | 2019-01-21 | 2019-05-21 | 浪潮软件集团有限公司 | 基于Drools规则引擎的政务规则设计方法及系统 |
CN109814864A (zh) * | 2019-01-02 | 2019-05-28 | 北京永洪商智科技有限公司 | 一种数据可视化方法、可视化系统、网页浏览系统和设备 |
CN110059920A (zh) * | 2019-03-08 | 2019-07-26 | 阿里巴巴集团控股有限公司 | 风险决策方法及装置 |
CN110442424A (zh) * | 2019-07-12 | 2019-11-12 | 苏州浪潮智能科技有限公司 | 一种实现虚拟机管理平台动态配置规则的方法和装置 |
CN111198863A (zh) * | 2019-12-27 | 2020-05-26 | 天阳宏业科技股份有限公司 | 一种规则引擎及其实现方法 |
CN111399818A (zh) * | 2020-03-17 | 2020-07-10 | 深圳市卡牛科技有限公司 | 推荐引擎设计方法、装置、服务器及存储介质 |
CN111538483A (zh) * | 2020-03-25 | 2020-08-14 | 平安科技(深圳)有限公司 | 一种数据处理方法、设备、服务器及可读存储介质 |
CN114546473A (zh) * | 2022-02-23 | 2022-05-27 | 北京金堤科技有限公司 | 自动化集成部署服务的方法和装置、以及电子设备和存储介质 |
CN115963810A (zh) * | 2023-01-03 | 2023-04-14 | 重庆长安汽车股份有限公司 | 基于远程控制车辆的自动化测试方法、装置、设备及介质 |
CN117763396A (zh) * | 2023-12-28 | 2024-03-26 | 利维智能(深圳)有限公司 | 一种基于规则引擎的故障识别诊断方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5555346A (en) * | 1991-10-04 | 1996-09-10 | Beyond Corporated | Event-driven rule-based messaging system |
US20050183025A1 (en) * | 2004-02-12 | 2005-08-18 | Janaki Kumar | Rule previewing |
CN105117938A (zh) * | 2015-08-19 | 2015-12-02 | 江苏农牧人电子商务股份有限公司 | 一种基于模型视图控制器的电商构架请求数据分析方法 |
CN106126215A (zh) * | 2016-06-17 | 2016-11-16 | 深圳市麦斯杰网络有限公司 | 业务规则脚本生成方法及装置 |
CN106131213A (zh) * | 2016-08-17 | 2016-11-16 | 深圳市金证科技股份有限公司 | 一种服务管理方法和系统 |
-
2017
- 2017-04-28 CN CN201710296285.1A patent/CN107133039A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5555346A (en) * | 1991-10-04 | 1996-09-10 | Beyond Corporated | Event-driven rule-based messaging system |
US20050183025A1 (en) * | 2004-02-12 | 2005-08-18 | Janaki Kumar | Rule previewing |
CN105117938A (zh) * | 2015-08-19 | 2015-12-02 | 江苏农牧人电子商务股份有限公司 | 一种基于模型视图控制器的电商构架请求数据分析方法 |
CN106126215A (zh) * | 2016-06-17 | 2016-11-16 | 深圳市麦斯杰网络有限公司 | 业务规则脚本生成方法及装置 |
CN106131213A (zh) * | 2016-08-17 | 2016-11-16 | 深圳市金证科技股份有限公司 | 一种服务管理方法和系统 |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107632842B (zh) * | 2017-09-26 | 2020-06-30 | 携程旅游信息技术(上海)有限公司 | 规则配置和发布方法、系统、设备及存储介质 |
CN107632842A (zh) * | 2017-09-26 | 2018-01-26 | 携程旅游信息技术(上海)有限公司 | 规则配置和发布方法、系统、设备及存储介质 |
CN109582289A (zh) * | 2017-09-28 | 2019-04-05 | 阿里巴巴集团控股有限公司 | 规则引擎中规则流的处理方法、系统、存储介质和处理器 |
CN109582289B (zh) * | 2017-09-28 | 2022-04-08 | 阿里巴巴集团控股有限公司 | 规则引擎中规则流的处理方法、系统、存储介质和处理器 |
CN109783151A (zh) * | 2017-11-10 | 2019-05-21 | 北京京东尚科信息技术有限公司 | 规则变更的方法和装置 |
CN109783151B (zh) * | 2017-11-10 | 2022-07-05 | 北京京东尚科信息技术有限公司 | 规则变更的方法和装置 |
CN108198081A (zh) * | 2017-12-29 | 2018-06-22 | 上海栈略数据技术有限公司 | 一种可配置的保险风控规则引擎系统及流程方法 |
CN108363775A (zh) * | 2018-02-09 | 2018-08-03 | 上海宝尊电子商务有限公司 | 基于规则引擎的高扩展性线上预览环境方法 |
CN108647049A (zh) * | 2018-03-18 | 2018-10-12 | 平安科技(深圳)有限公司 | 基于规则引擎的可配置化系统、方法、设备和存储介质 |
CN108647049B (zh) * | 2018-03-18 | 2023-01-31 | 平安科技(深圳)有限公司 | 基于规则引擎的可配置化系统、方法、设备和存储介质 |
CN109710468A (zh) * | 2018-08-03 | 2019-05-03 | 北京马上慧科技术有限公司 | 一种基于blaze规则的引擎模拟测试系统 |
CN109636317B (zh) * | 2018-11-23 | 2023-06-30 | 山东中创软件工程股份有限公司 | 业务控制方法、装置、系统及存储介质 |
CN109636317A (zh) * | 2018-11-23 | 2019-04-16 | 山东中创软件工程股份有限公司 | 业务控制方法、装置、系统及存储介质 |
CN109814864A (zh) * | 2019-01-02 | 2019-05-28 | 北京永洪商智科技有限公司 | 一种数据可视化方法、可视化系统、网页浏览系统和设备 |
CN109783071B (zh) * | 2019-01-21 | 2022-03-29 | 浪潮软件股份有限公司 | 基于Drools规则引擎的政务规则设计方法及系统 |
CN109783071A (zh) * | 2019-01-21 | 2019-05-21 | 浪潮软件集团有限公司 | 基于Drools规则引擎的政务规则设计方法及系统 |
CN110059920A (zh) * | 2019-03-08 | 2019-07-26 | 阿里巴巴集团控股有限公司 | 风险决策方法及装置 |
CN110059920B (zh) * | 2019-03-08 | 2021-08-06 | 创新先进技术有限公司 | 风险决策方法及装置 |
CN110442424A (zh) * | 2019-07-12 | 2019-11-12 | 苏州浪潮智能科技有限公司 | 一种实现虚拟机管理平台动态配置规则的方法和装置 |
CN111198863A (zh) * | 2019-12-27 | 2020-05-26 | 天阳宏业科技股份有限公司 | 一种规则引擎及其实现方法 |
CN111399818A (zh) * | 2020-03-17 | 2020-07-10 | 深圳市卡牛科技有限公司 | 推荐引擎设计方法、装置、服务器及存储介质 |
CN111399818B (zh) * | 2020-03-17 | 2023-10-20 | 深圳市卡牛科技有限公司 | 推荐引擎设计方法、装置、服务器及存储介质 |
CN111538483A (zh) * | 2020-03-25 | 2020-08-14 | 平安科技(深圳)有限公司 | 一种数据处理方法、设备、服务器及可读存储介质 |
CN111538483B (zh) * | 2020-03-25 | 2024-05-28 | 平安科技(深圳)有限公司 | 一种数据处理方法、设备、服务器及可读存储介质 |
CN114546473A (zh) * | 2022-02-23 | 2022-05-27 | 北京金堤科技有限公司 | 自动化集成部署服务的方法和装置、以及电子设备和存储介质 |
CN115963810A (zh) * | 2023-01-03 | 2023-04-14 | 重庆长安汽车股份有限公司 | 基于远程控制车辆的自动化测试方法、装置、设备及介质 |
CN117763396A (zh) * | 2023-12-28 | 2024-03-26 | 利维智能(深圳)有限公司 | 一种基于规则引擎的故障识别诊断方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107133039A (zh) | 规则引擎的构建方法和装置 | |
Trakadas et al. | An artificial intelligence-based collaboration approach in industrial iot manufacturing: Key concepts, architectural extensions and potential applications | |
US10324773B2 (en) | Processing events generated by internet of things (IoT) | |
US10756991B2 (en) | Simplified entity engagement automation | |
US11475364B2 (en) | Systems and methods for analyzing a list of items using machine learning models | |
US9729592B2 (en) | System and method for distributed virtual assistant platforms | |
CN106067080B (zh) | 提供可配置工作流能力 | |
Sharma et al. | Enhancing the food locations in an artificial bee colony algorithm | |
Kale | Guide to cloud computing for business and technology managers: from distributed computing to cloudware applications | |
CN108304201A (zh) | 对象更新方法、装置及设备 | |
CN107317724A (zh) | 基于云计算技术的数据采集系统及方法 | |
CN108415710A (zh) | 在智能对话开发平台上发布、调用api的方法和系统 | |
CN109101309A (zh) | 用于更新用户界面方法和装置 | |
Kumar et al. | A rule-based recommendation system for selection of software development life cycle models | |
CN111651989B (zh) | 命名实体识别方法和装置、存储介质及电子装置 | |
WO2015039105A1 (en) | System and method for distributed virtual assistant platforms | |
Yrjölä et al. | Artificial intelligence in the telecommunication sector: Exploratory analysis of 6G’s potential for organizational agility | |
Lézoray et al. | A design process enabling adaptation in pervasive heterogeneous contexts | |
US20230259800A1 (en) | Generative models based assistant for design and creativity | |
CN112612481B (zh) | 一种智能中台的系统架构 | |
CN111176622B (zh) | 对解决方案的语音技能进行统一管理的实现方法、管理系统及管理方法 | |
Ritter et al. | Business network reconstruction using datalog | |
Ying et al. | Design and Development of Financial applications using ontology-based Multi-Agent Systems | |
US20230196203A1 (en) | Agnostic machine learning training integrations | |
Ouyang et al. | 6G Network Business Support System |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170905 |