CN110989990A - 一种业务规则引擎执行系统及方法 - Google Patents
一种业务规则引擎执行系统及方法 Download PDFInfo
- Publication number
- CN110989990A CN110989990A CN201911277736.2A CN201911277736A CN110989990A CN 110989990 A CN110989990 A CN 110989990A CN 201911277736 A CN201911277736 A CN 201911277736A CN 110989990 A CN110989990 A CN 110989990A
- Authority
- CN
- China
- Prior art keywords
- engine
- database
- rule
- mysql database
- execution
- 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
- G06F8/22—Procedural
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Strategic Management (AREA)
- Human Resources & Organizations (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Entrepreneurship & Innovation (AREA)
- Data Mining & Analysis (AREA)
- Economics (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种业务规则引擎执行系统及方法,系统包括SpringBoot架构和Mysql数据库,SpringBoot架构包括Drools规则引擎、Javascript引擎和数据库操作层,Drools规则引擎、Javascript引擎通过数据库操作层与Mysql数据库相连,以Mysql数据库存储对应的规则的脚本,在接收到请求时从Mysql数据库获取对应的规则脚本,并判断对应的规则属于Drools规则引擎还是Javascript引擎,然后进行对应的解释执行,返回对应的内容。本发明支持通过SpringCloud Feign方式调用,在改动业务规则和对应数据模型时对调用代码影响较小;且无需额外组件依赖。
Description
技术领域
本发明涉及一种业务系统,具体涉及一种业务规则引擎执行系统及方法。
背景技术
现代业务规则和流程复杂多变,为了缩短业务开发时间,需要将复杂多变的业务规则逻辑抽取出来,通过一个统一的脚本引擎进行解析,使业务实现和分支判断可以拆分,降低代码的耦合性,提升代码的可维护性和可读性。
现有技术有开源的规则引擎drools,其存在以下问题:
1、代码侵入行大,对数据模型的修改会导致接入当前规则的代码也需要修改;
2、部署复杂,且系统庞大,对服务器的配置要求较高;
3、仅支持drools规则脚本,学习成本和扩展性较低;
4、对SpringCloud体系下的调用没有额外支持,使用比较复杂。
发明内容
本发明的目的在于克服现有技术的不足,提供一种业务规则引擎执行系统及方法。
本发明的技术方案如下:
一种业务规则引擎执行系统,包括SpringBoot架构和Mysql数据库,所述SpringBoot架构与Mysql数据库相连,所述SpringBoot架构包括Drools规则引擎、Javascript引擎和数据库操作层,所述Drools规则引擎、Javascript引擎通过所述数据库操作层与所述Mysql数据库相连,以Mysql数据库存储对应的规则的脚本,在接收到请求时从Mysql数据库获取对应的规则脚本,并判断对应的规则属于Drools规则引擎还是Javascript引擎,然后进行对应的解释执行,返回对应的内容。
上述方案中,所述SpringBoot架构还包括Spring boot web层。
上述方案中,所述SpringBoot架构还包括日志模块。
上述方案中,所述Mysql数据库设有配置规则的接口。
上述方案中,该系统的业务服务调用使用json格式调用和返回。
上述方案中,该系统支持通过SpringCloud Feign方式进行调用。
一种业务规则引擎执行方法,包括以下步骤:
(1)外部调用输入;
(2)从数据库获取对应的规则;
(3)判断对应的规则属于Drools规则引擎还是Javascript引擎;
(4)Drools解释执行或Javascript解释执行;
(5)返回执行结果。
上述方案中,所述数据库为Mysql数据库。
相对于现有技术,本发明的有益效果在于:
1、支持通过SpringCloud Feign方式进行调用;
2、改动业务规则和对应数据模型时对调用代码影响最小;
3、支持通过javascript脚本方式编写规则,方便进行维护和开发;
4、无需额外组件依赖,降低机器配置要求。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的一种业务规则引擎执行系统的系统框图;
图2为本发明实施例二提供的一种业务规则引擎执行方法的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一
请参阅图1,本实施例提供一种业务规则引擎执行系统,包括SpringBoot架构和Mysql数据库,所述SpringBoot架构与Mysql数据库相连,所述SpringBoot架构包括Drools规则引擎、Javascript引擎、数据库操作层、Spring boot web层和日志模块,该系统基于SpringBoot架构整合Drools和Javascript两个引擎实现整体业务框架,所述Drools规则引擎、Javascript引擎通过所述数据库操作层与所述Mysql数据库相连。
原理:以Mysql数据库存储对应的规则的脚本,在接收到请求时从Mysql数据库获取对应的规则脚本,并判断对应的规则属于Drools规则引擎还是Javascript引擎,然后进行对应的解释执行,返回对应的内容。
所述Mysql数据库设有配置规则的接口。在用户配置规则时,数据库中对应规则的版本也会更新,在执行规则时进行判断在内存内解释后的版本是否和数据库中的版本一致达到提升性能和缓存版本实时更新。
该系统的业务服务调用使用json格式调用和返回,对调用方没有额外的依赖。规则的改动通过数据库中对应的版本控制,每次改动都会跳版本,保证使用的规则是最新的规则。
该系统支持通过SpringCloud Feign方式进行调用。接入Feign调用,Springcloud调用简单快捷。
实施例二
请参阅图2,本实施例一种业务规则引擎执行方法,包括以下步骤:
(1)外部调用输入;
(2)从数据库获取对应的规则;
(3)判断对应的规则属于Drools规则引擎还是Javascript引擎;
(4)Drools解释执行或Javascript解释执行;
(5)返回执行结果。
其中,所述数据库为Mysql数据库。
整体原理:以Mysql数据库存储对应的规则的脚本,在接收到请求时从Mysql数据库获取对应的规则脚本,并判断对应的规则属于Drools规则引擎还是Javascript引擎,然后进行对应的解释执行,返回对应的内容。
所述Mysql数据库设有配置规则的接口。在用户配置规则时,数据库中对应规则的版本也会更新,在执行规则时进行判断在内存内解释后的版本是否和数据库中的版本一致达到提升性能和缓存版本实时更新。
最终实现功能参考如下:业务服务调用不要额外的依赖,直接使用json格式调用即可,规则的改动通过数据库中对应的版本控制,每次改动都会跳版本,保证使用的规则是最新的规则。
其支持通过SpringCloud Feign方式进行调用。
综上所述,本发明具有以下关键技术点:
1、使用数据库存储规则脚本,根据规则代码进行查询后判断属于那种引擎,之后解释执行;
2、使用JSON调用和返回,对调用方没有额外的依赖;
3、接入Feign调用,Spring cloud调用简单快捷。
以上仅为本发明的较佳实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种业务规则引擎执行系统,其特征在于,包括SpringBoot架构和Mysql数据库,所述SpringBoot架构与Mysql数据库相连,所述SpringBoot架构包括Drools规则引擎、Javascript引擎和数据库操作层,所述Drools规则引擎、Javascript引擎通过所述数据库操作层与所述Mysql数据库相连,以Mysql数据库存储对应的规则的脚本,在接收到请求时从Mysql数据库获取对应的规则脚本,并判断对应的规则属于Drools规则引擎还是Javascript引擎,然后进行对应的解释执行,返回对应的内容。
2.根据权利要求1所述的一种业务规则引擎执行系统,其特征在于,所述SpringBoot架构还包括Spring boot web层。
3.根据权利要求1所述的一种业务规则引擎执行系统,其特征在于,所述SpringBoot架构还包括日志模块。
4.根据权利要求1所述的一种业务规则引擎执行系统,其特征在于,所述Mysql数据库设有配置规则的接口。
5.根据权利要求1所述的一种业务规则引擎执行系统,其特征在于,该系统的业务服务调用使用json格式调用和返回。
6.根据权利要求1所述的一种业务规则引擎执行系统,其特征在于,该系统支持通过SpringCloud Feign方式进行调用。
7.一种业务规则引擎执行方法,其特征在于,包括以下步骤:
(1)外部调用输入;
(2)从数据库获取对应的规则;
(3)判断对应的规则属于Drools规则引擎还是Javascript引擎;
(4)Drools解释执行或Javascript解释执行;
(5)返回执行结果。
8.根据权利要求7所述的一种业务规则引擎执行方法,其特征在于,所述数据库为Mysql数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911277736.2A CN110989990A (zh) | 2019-12-11 | 2019-12-11 | 一种业务规则引擎执行系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911277736.2A CN110989990A (zh) | 2019-12-11 | 2019-12-11 | 一种业务规则引擎执行系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110989990A true CN110989990A (zh) | 2020-04-10 |
Family
ID=70093068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911277736.2A Pending CN110989990A (zh) | 2019-12-11 | 2019-12-11 | 一种业务规则引擎执行系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110989990A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113505140A (zh) * | 2020-09-28 | 2021-10-15 | 西部证券股份有限公司 | 一种基于Drools规则引擎的估值计算方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102681854A (zh) * | 2012-05-18 | 2012-09-19 | 华为技术有限公司 | 业务执行方法、服务器和计算机系统 |
US20140257935A1 (en) * | 2011-09-12 | 2014-09-11 | Mediaspectrum, Inc. | System and method for media and commerce management |
US20160294929A1 (en) * | 2015-04-03 | 2016-10-06 | Oracle International Corporation | System and method for reusing javascript code available in a soa middleware environment from a process defined by a process execution language |
CN108363780A (zh) * | 2018-02-11 | 2018-08-03 | 悦锦软件系统(上海)有限公司 | 一种反洗钱的规则引擎及方法 |
CN110543296A (zh) * | 2019-08-26 | 2019-12-06 | 成都市知用科技有限公司 | 一种智慧校园微服务平台架构体系 |
-
2019
- 2019-12-11 CN CN201911277736.2A patent/CN110989990A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140257935A1 (en) * | 2011-09-12 | 2014-09-11 | Mediaspectrum, Inc. | System and method for media and commerce management |
CN102681854A (zh) * | 2012-05-18 | 2012-09-19 | 华为技术有限公司 | 业务执行方法、服务器和计算机系统 |
US20160294929A1 (en) * | 2015-04-03 | 2016-10-06 | Oracle International Corporation | System and method for reusing javascript code available in a soa middleware environment from a process defined by a process execution language |
CN108363780A (zh) * | 2018-02-11 | 2018-08-03 | 悦锦软件系统(上海)有限公司 | 一种反洗钱的规则引擎及方法 |
CN110543296A (zh) * | 2019-08-26 | 2019-12-06 | 成都市知用科技有限公司 | 一种智慧校园微服务平台架构体系 |
Non-Patent Citations (2)
Title |
---|
徐元春: "房屋缺陷管理系统自定义工作流技术研究与实现" * |
陈明 等: "基于Activiti和Drools的水产养殖自动决策流程管理系统" * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113505140A (zh) * | 2020-09-28 | 2021-10-15 | 西部证券股份有限公司 | 一种基于Drools规则引擎的估值计算方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107562556B (zh) | 故障的恢复方法、恢复装置及存储介质 | |
CN109325195A (zh) | 浏览器的渲染方法和系统、计算机设备、计算机存储介质 | |
CN104317591A (zh) | 一种基于OSGi的web界面框架系统及web业务处理方法 | |
CN104516885A (zh) | 浏览程序双内核组件的实现方法及装置 | |
CN114697232B (zh) | Skywalking探针的指标数据采集系统、方法及电子设备 | |
CN111324619B (zh) | 微服务系统中的对象更新方法、装置、设备和存储介质 | |
CN103634393A (zh) | Ivr及其实现方法 | |
CN110727482B (zh) | 一种界面的更新方法和装置 | |
CN111488182B (zh) | 系统配置方法、装置、设备和存储介质 | |
US11249793B2 (en) | Executing a pipeline command sequence designed for execution on a single node across a fleet of nodes | |
CN107193565B (zh) | 跨移动端开发原生app的方法 | |
CN113419969B (zh) | 基于浏览器插件的界面自动化成功率保障方法 | |
US20220300262A1 (en) | Method for constructing, running and implementing cross-platform application, terminal, server and system | |
CN110989990A (zh) | 一种业务规则引擎执行系统及方法 | |
CN113535587B (zh) | 目标应用检测方法、装置及计算机设备 | |
CN111159301A (zh) | 一种基于智能合约的数据创建方法、装置、设备及存储介质 | |
CN113179332B (zh) | 用于获取配置信息的方法、电子设备和存储介质 | |
CN115186214A (zh) | 页面配置方法、装置、计算机设备及计算机可读存储介质 | |
CN111447279B (zh) | 服务器及接口解析服务包生成方法 | |
CN112711602B (zh) | 一种存储过程的运行方法、装置,数据库系统及存储介质 | |
CN114020296A (zh) | 配置信息更新方法、装置、设备及可读存储介质 | |
CN112182083A (zh) | 文件生成方法、装置、设备及存储介质 | |
CN114064601A (zh) | 存储过程转换方法、装置、设备和存储介质 | |
CN110096292A (zh) | 一种自适应刷新服务器bios固件的方法及系统 | |
CN111611024B (zh) | 一种iOS组件化优化方法、系统及终端 |
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 |