首页> 中国专利> 基于droos规则引擎实现调度规则可视化配置动态部署的方法

基于droos规则引擎实现调度规则可视化配置动态部署的方法

摘要

本发明公开了基于droos规则引擎实现调度规则可视化配置动态部署的方法,属于droos规则引擎技术领域,包括以下步骤:S1:建立规则库;S2:规则部署;S3:规则调用。本发明按微服务架构开发,各个部分之间模块解耦,不互相依赖,具有分布式部署能力、高并发处理能力以及代码结构简单的优点;支持将复杂的逻辑运算,转化为可视化的逻辑配置,通过从元素实体中选择元素进行重组,通过条件运算以及运算符号进行衔接,使规则配置更方便、更简单,将规则的配置从开发中完全分离出来,支持零代码开发,规则的配置以及发布再也不用进行代码编辑,进行简单的配置即可完成,规则变更只需要重新修改规则并进行发布即可生效,支持热部署,无需中断生产。

著录项

  • 公开/公告号CN114780587A

    专利类型发明专利

  • 公开/公告日2022-07-22

    原文格式PDF

  • 申请/专利权人 科大国创云网科技有限公司;

    申请/专利号CN202210315058.X

  • 发明设计人 许磊;陈高远;张俊林;

    申请日2022-03-28

  • 分类号G06F16/2455;G06F16/28;G06F16/25;G06F9/445;

  • 代理机构合肥昊晟德专利代理事务所(普通合伙);

  • 代理人何梓秋

  • 地址 230000 安徽省合肥市高新区文曲路355号办公楼4层

  • 入库时间 2023-06-19 16:04:54

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-07-22

    公开

    发明专利申请公布

说明书

技术领域

本发明涉及droos规则引擎技术领域,具体涉及基于droos规则引擎实现调度规则可视化配置动态部署的方法。

背景技术

随着业务的发展,系统越来越庞大,对规则的要求更复杂,变动更频繁。很多系统的业务规则存在硬编码,不便于理解和维护,不能随业务规则的变化,做到业务的快速支撑;部分系统已经实现了业务规则的可配置,但是存在规则重复配置、配置不一致的情况;缺乏对整个规则的集中管理,各系统对相同参数的取值可能不一致等问题。为此,提出基于droos规则引擎实现调度规则可视化配置动态部署的方法。

发明内容

本发明所要解决的技术问题在于:如何解决部分系统已经实现了业务规则的可配置,但是存在规则重复配置、配置不一致的情况;以及缺乏对整个规则的集中管理,各系统对相同参数的取值可能不一致等问题,提供了基于droos规则引擎实现调度规则可视化配置动态部署的方法,以规则引擎Drools为核心,通过规则元素的提炼与抽象、规则逻辑的拆解与配置,构建一个集规则可视化配置、规则集中管理、统一能力开放、规则热部署、规则支撑多样化为一体的规则平台。

本发明是通过以下技术方案解决上述技术问题的,本发明包括以下步骤:

S1:建立规则库

从应用系统获取规则基础数据,通过对基础数据的抽象与提炼配置成规则元素,利用规则元素配置成具体的规则,形成规则库;

S2:规则部署

通过规则语言算法,将从规则库中读取的规则内容转化为drools语言,写入规则文件,构建规则,最后再通过规则引擎将规则部署到规则容器中;

S3:规则调用

通过开放统一的规则平台API供应用系统调用规则容器中的规则。

更进一步地,在所述步骤S1中,通过对基础数据的抽象与提炼配置成规则元素的具体过程如下:

S11:根据业务信息抽象业务实体,例如:业务单实体、客户实体、产品实体、资源实体等;

S12:抽象业务实体的属性,例如:业务单实体属性:业务单编号、业务单类型、业务单状态、业务单标题、业务单优先级、业务单重要程度、业务单创建人等;

S13:为实体的属性指定取值范围,例如:业务单类型的取值范围来自静态字典数据——业务单类型,其取之范围为静态字典数据业务单类型配置的所有静态值;

S14:将实体属性配置成为规则元素。

更进一步地,在所述步骤S1中,利用规则元素配置成具体的规则的具体过程如下:

S15:配置规则条件:

a.选择规则业务实体,例如:业务单实体;

b.选择规则业务实体中的属性,例如:业务单类型;

c.选择实体属性的运算逻辑与取值,例如:==(取值运算符号>,<,>=等)生产任务单(业务单类型);

d.选择与下一个条件的关系,例如:并且(&&)、或者(||)等;

e.重复配置其他规则条件。

S16:配置规则结果:

a.选择规则结果实体,例如:业务单实体;

b.选择规则业务实体中的属性,例如:流程定义标识;

c.选择规则业务实体属性的取值,例如:==生产任务单流程(流程定义);

d.重复配置其他规则结果。

S17:配置规则执行策略(可选):

a.选择需要配置的规则策略,例如:规则优先级、是否循环执行、生效时间、失效时间等

b.选择或者输入规则策略的值;

S18:保存配置的规则,同时校验配置规则的完整性、是否冲突;

a.完整性校验:校验规则的名称、条件、结果是否全部配置,缺任意一个则不允许保存并给出提示;

b.是否冲突校验:校验规则的名称以及条件是否与已存在的规则重复,如规则名称或者条件重复则不允许保存并给出提示;

S19:规则发布之后立即生效。

更进一步地,在所述步骤S2中,通过规则语言算法,将从规则库中读取的规则内容转化为drools语言的具体过程如下:

S21:读取通过可视化配置存入数据库的规则条件、规则结果以及规则执行策略;

S22:将规则条件编码、规则结果编码、以及规则策略编码,按照规则语言的要求转华为具体的规则语言片段并进行拼接重组成符合drools语法的规则语言。

更进一步地,在所述步骤S2中,规则容器为内存。

更进一步地,在所述步骤S2中,构建规则的具体过程的具体过程如下:

S23:构建规则语言;

S24:将生成的drools语法的规则语言写成规则文件;

S25:通过drools规则引擎将规则加载到内存中。

本发明相比现有技术具有以下优点:该基于droos规则引擎实现调度规则可视化配置动态部署的方法,按微服务架构开发,各个部分之间模块解耦,不互相依赖,具有分布式部署能力、高并发处理能力以及代码结构简单的优点;支持将复杂的逻辑运算,转化为可视化的逻辑配置,通过从元素实体中选择元素进行重组,通过条件运算以及运算符号进行衔接,使规则配置更方便、更简单,将规则的配置从开发中完全分离出来,支持零代码开发,规则的配置以及发布再也不用进行代码编辑,进行简单的配置即可完成,规则变更只需要重新修改规则并进行发布即可生效,支持热部署,无需中断生产。

附图说明

图1是本发明实施例中规则语言示例图;

图2是本发明实施例中通过drools规则引擎将规则加载到内存的示意图;

图3是本发明实施例中规则配置与使用的流程示意图;

图4是本发明实施例中构建规则逻辑的流程示意图;

图5是本发明实施例三中的应用实例示意图。

具体实施方式

下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。

本实施例提供一种技术方案:基于droos规则引擎实现调度规则可视化配置动态部署的方法,包括以下步骤:

S1:建立规则库

从应用系统获取规则基础数据,通过对基础数据的抽象与提炼配置成规则元素,利用规则元素配置成具体的规则,形成规则库;

S2:规则部署

通过规则语言算法,将从规则库中读取的规则内容转化为drools语言,写入规则文件,构建规则,最后再通过规则引擎将规则部署到规则容器中;

S3:规则调用

通过开放统一的规则平台API供应用系统调用规则容器中的规则。

在本实施例中,参照图5中的应用实例,在所述步骤S1中,通过对基础数据的抽象与提炼配置成规则元素的具体过程如下:

1、根据业务信息抽象业务实体及属性:

1)、业务单实体属性:业务单类型、区域、环节标识、流程定义标识、SLA、环节参与者;

2)、客户实体属性:客户等级;

3)、电路实体属性:专业类型、电路编码;

2、实体属性取值范围:

1)、业务单类型:客户保障;

2)、区域:江苏省;

3)、客户等级:集团级;

4)、环节标识:施工处理环节;

5)、专业类型:传输专业;

6)、电路编码:南京苏州ETN1740NP;

7)、流程定义标识:客户保障流程;

8)、SLA:240分钟、480分钟;

9)、环节参与者:桂泽齐、季生肖

3、规则元素:

1)、条件元素:业务单类型、区域、客户等级、环节标识、专业类型、电路编码

2)、结果元素:流程定义标识、SLA、环节参与者;

在本实施例中,在所述步骤S1中,利用规则元素配置成具体的规则的具体过程如下:

1、配置规则一:

1)、选择规则条件业务实体:业务单实体,选择实体属性业务单类型==客户保障,并且区域==江苏省;

2)、选择规则结果业务实体:业务单实体,选择属性流程标识==客户保障流程;

2、配置规则二:

1)、选择业务单实体,选择实体属性业务单类型==客户保障,并且环节标识==施工处理环节;并且客户信息实体属性客户等级==集团级;并且电路信息实体属性专业类型==传输,并且电路编码=南京苏州ETN1740NP;

2)、选择规则结果业务实体:业务单实体,SLA==240分钟,并且环节参与者==桂泽齐;

3、发布规则一、规则二。

在本实施例中,在所述步骤S2中,通过规则语言算法,将从规则库中读取的规则内容转化为drools语言的具体过程如下:

1、读取通过可视化配置存入数据库的规则条件、规则结果以及规则执行策略;

2、将规则条件编码、规则结果编码、以及规则策略编码,按照规则语言的要求转化为具体的规则语言片段并进行拼接重组成符合drools语法的规则语言,如图1所示。

在本实施例中,在所述步骤S2中,规则容器为内存。

在本实施例中,在所述步骤S2中,构建规则的具体过程的具体过程如下:

1、构建规则语言;

2、将生成的drools语法的规则语言写成规则文件;

3、通过drools规则引擎将规则加载到内存中,如图2所示。

实施例二

如图3所示,为本实施例中规则配置与使用的流程示意图,本发明从应用系统获取规则基础数据,通过对基础数据的抽象与提炼配置成规则元素,利用规则元素配置成具体的规则,形成规则库。通过规则语言算法,将从规则库中读取的规则内容转化为drools语言,写入规则文件,最后再通过规则引擎将规则部署到内存中。通过开放统一的API供应用系统调用,本发明开放了统一的API,应用系统可以根据自己的需求提供规则参数,获取指定的规则结果。

如图4所示,为本实施例中构建规则逻辑的流程示意图,本发明通过对实际业务逻辑的提炼与抽象,将复杂抽象的逻辑转化为可视化的配置。通过从规则基础数据中提炼规则元素条件实体与规则元素结果实体,将业务中涉及到的元素属性抽象封装成具体的对象,如业务单、客户、产品、设备等;选择对象之后,可以从对象中选择需要的属性,如业务单中的区域、业务单类型、流程环节信息等,通过逻辑运算符号指定这些属性的取值范围,例如业务单类型==施工调度,同时多个条件之间进行并且与或者的关系运算,运算的结果从规则结果实体中的元素中选取,支持单个或者多个。

实施例三

如图5所示,为本实施例中的应用实例示意图,本发明基于Drools规则引擎减少了硬编码业务规则的成本和风险,支持规则可视化配置、动态修改业务规则、快速响应需求变更,同时支持热部署(在不重启服务的情况下可随时对业务规则进行扩展和维护)。

如图5所示,当系统接收到业务单之后,会对业务单的参数进行解析,将本发明需要的参数进行抽取并存放到缓存里。通过本发明开发的API调用本发明的方法,执行具体的规则逻辑,通过已经配置好的规则逻辑获取到本业务相关的规则数据进行使用,如图3所示,此业务识别出了两个规则,一个是流程识别规则,一个是参与人识别规则。当业务逻辑变更时,只需要修改规则配置并重新发布,再接收到新的业务单时,就会匹配到修改之后的规则逻辑,无需中断生产服务,规则发布之后立即生效。如图5所示,当参与人识别规则变更且发布之后,后续的业务单识别到的参与人即为规则变更之后的参与人。

综上所述,上述实施例的基于droos规则引擎实现调度规则可视化配置动态部署的方法,通过可视化配置的界面,将应用系统的数据结构维护从数据库客户端移到页面前端;通过界面化的方式,维护数据库的表以及字段;可以根据实际业务需求配置字段的取值范围,可以指定字段取自某个表的某个字段,支持配置限制条件;从元数据管理中选择需要的字段,重组成新的规则元素实体,分为条件规则元素与结果动作单项,并将规则元素转化为drools规则语言;同时支持自定义新增规则元素,同时指定自定义规则的取值范围;在规则元素配置的规则条件实体与规则结果实体的基础上,将规则条件按照一定的逻辑进行组合,通过元素符号组合在一起,形成一个完整的规则(规则配置);将配置好的规则通过规则语言算法,转化为drools语言并加载到内存中方便规则调用(规则部署)。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号