1.本技术涉及数据处理技术领域,尤其涉及一种规则引擎生成方法、装置、设备及可读存储介质。
背景技术:2.规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。规则引擎可以接受数据输入,解释业务规则,并根据规则做出业务决策。目前,规则引擎的一种实现方式为:在规则引擎服务器上预先设置与业务对应的业务规则;业务规则为一系列与业务决策对应的业务逻辑的组合。在规则引擎系统接收业务规则中的业务逻辑对应的输入参数后,调用业务规则来对输入参数进行逻辑判断,从而获得业务决策。
3.随着业务的发展,业务规则的规模将不可避免地增大。然而,在现有的业务处理方式中,人们通常只能利用固定不变的业务规则来对业务信息进行逻辑处理,因此现有的规则引擎基于不同的业务决策需要根据不同业务需求定制个性化不同的业务规则,使得规则引擎的通用性受到限制。
4.综上所述可以看出,如何提高业务规则的灵活性和多样性,以动态地满足用户持续变化的业务需求是目前亟待解决的问题。
技术实现要素:5.有鉴于此,本技术提供了一种规则引擎生成方法、装置、设备及可读存储介质,旨在提高业务规则的灵活性和多样性,以动态地满足用户持续变化的业务需求。
6.第一方面,本技术提供了一种规则引擎生成方法,包括:
7.获取业务规则集;
8.从所述业务规则集中选择一条或者多条业务规则;
9.将所述一条或者多条业务规则分别封装为规则组件;
10.根据所述一条或者多条业务规则封装得到的一条或者多条规则组件生成规则引擎,所述规则引擎与被选中的所述一条或者多条业务规则相匹配。
11.可选地,所述根据所述多条业务规则封装得到的一条或者多条规则组件生成规则引擎包括:
12.根据所述一条或者多条规则组件的数据信息生成所述规则组件对应的可执行文件,所述组件的数据信息包括组件的属性信息;
13.接收拖拽指令和/或点选指令;
14.根据所述拖拽指令和/或所述点选指令,将所述规则组件对应的可执行文件加载至组件可视化平台,使得所述组件可视化平台运行所述可执行文件,得到所述规则引擎。
15.可选地,所述根据所述多条业务规则封装得到的一条或者多条规则组件生成规则引擎包括:
16.获取预设语义规则;
17.基于所述预设语义规则,调整所述多条业务规则对应的一条或者多条规则组件,确定差异化业务规则;
18.基于所述差异化业务规则生成规则引擎。
19.可选地,所述将所述一条或者多条业务规则分别封装为规则组件之后,所述方法还包括:
20.基于所述差异化业务规则的定义,对所述差异化业务规则的定义进行检查;所述检查包括条件恒为真或假、自我矛盾、冗余和未完全覆盖;
21.确定所述差异化业务规则通过所述检查。
22.可选地,所述将所述一条或者多条业务规则分别封装为规则组件之后,所述方法还包括:
23.模拟运行所述差异化业务规则,并对所述差异化业务规则进行正确性验证和/或有效性验证;
24.确定所述差异化业务规则通过所述正确性验证和/或所述有效性验证。
25.第二方面,本技术提供了一种规则引擎生成装置,所述装置包括:
26.获取模块,用于获取业务规则集;
27.选择模块,用于从所述业务规则集中选择一条或者多条业务规则;
28.封装模块,用于将所述一条或者多条业务规则分别封装为规则组件;
29.生成模块,用于根据所述一条或者多条业务规则封装得到的一条或者多条规则组件生成规则引擎,所述规则引擎与被选中的所述一条或者多条业务规则相匹配。
30.可选地,所述生成模块包括:
31.第一生成单元,用于根据所述一条或者多条规则组件的数据信息生成所述规则组件对应的可执行文件,所述组件的数据信息包括组件的属性信息;
32.接收单元,用于接收拖拽指令和/或点选指令;
33.加载单元,用于根据所述拖拽指令和/或所述点选指令,将所述规则组件对应的可执行文件加载至组件可视化平台,使得所述组件可视化平台运行所述可执行文件,得到所述规则引擎。
34.可选地,所述生成模块包括:
35.获取单元,用于获取预设语义规则;
36.调整单元,用于基于所述预设语义规则,调整所述多条业务规则对应的一条或者多条规则组件,确定差异化业务规则;
37.第二生成单元,用于基于所述差异化业务规则生成规则引擎。
38.可选地,所述装置还包括:
39.检查模块,用于基于所述差异化业务规则的定义,对所述差异化业务规则的定义进行检查;所述检查包括条件恒为真或假、自我矛盾、冗余和未完全覆盖;
40.确定所述差异化业务规则通过所述检查。
41.可选地,所述装置还包括:
42.验证模块,用于模拟运行所述差异化业务规则,并对所述差异化业务规则进行正确性验证和/或有效性验证;
43.确定所述差异化业务规则通过所述正确性验证和/或所述有效性验证。
44.第三方面,本技术实施例提供了一种设备,包括:处理器、存储器、系统总线;
45.所述处理器以及所述存储器通过所述系统总线相连;
46.所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行权利要求1至5任一项所述的规则引擎设计方法的任一实现方式。
47.第四方面,本技术实施例提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行权利要求1至5任一项所述的规则引擎设计方法的任一实现方式。
48.本技术实施例提供了一种规则引擎生成方法。在执行所述方法时,先获取业务规则集,后从所述业务规则集中选择一条或者多条业务规则,然后将所述一条或者多条业务规则分别封装为规则组件,最后根据所述一条或者多条业务规则封装得到的一条或者多条规则组件生成规则引擎,所述规则引擎与被选中的所述一条或者多条业务规则相匹配,以将业务规则分离。这样,通过将业务规则分离出来的方式,使得业务规则能够灵活配置,达到了将中台复用业务规则与差异化业务规则分离后的业务规则灵活配置的效果。如此,可以提高业务规则的灵活性和多样性,以动态地满足用户持续变化的业务需求。
附图说明
49.为更清楚地说明本实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
50.图1为本技术实施例提供的一种规则引擎生成方法的一种方法流程图;
51.图2为本技术实施例提供的s104一种可选的实现方式流程图;
52.图3为本技术实施例提供的s104另一种可选的实现方式流程图;
53.图4为本技术实施例提供的一种规则引擎生成装置的一种结构示意图。
具体实施方式
54.本发明提供的一种规则引擎生成方法、装置、设备及可读存储介质可用于规则引擎技术领域,上述仅为示例,并不对本发明提供的一种规则引擎生成方法、装置、设备及可读存储介质的应用领域进行限定。
55.在本技术实施例中,“作为示例”或者“例如”等词用于表示作例子、例证或说明。本技术实施例中被描述为“作为示例”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“作为示例”或者“例如”等词旨在以具体方式呈现相关概念。
56.正如前文所述,随着业务的发展,业务规则的规模将不可避免地增大。然而,在现有的业务规则定义中,通常只能利用固定不变的业务规则来对业务信息进行逻辑处理,因此现有的规则引擎只能处理对应业务规则的业务决策,不能处理不同业务需求的业务决策,若想要处理不同的业务决策,需要开放人员重新开发代码,使得现有的规则引擎的通用
性受到限制。例如在不同计费规则下,对于计费小数点后小数位数的需要不同,因此需要根据不同业务需求定制个性化不同的业务规则,但是现有的规则引擎的业务规则只能就一种需求进行业务规则的定义,因此现有的规则引擎通用性受到限制,普适性差。
57.发明人经过研究发现,可以将规则引擎中随着时间、空间动态易变的业务规则部分分离出来,并使用预定义的语义模块将业务规则编写为业务决策,由用户或开发者在需要时进行配置、管理,使得业务规则的变更不需要修改代码即可使用,做到最大程度的灵活、通用和适用。
58.显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
59.参见图1,图1为本技术实施例提供的一种规则引擎生成方法的一种方法流程图。结合图1所示,本技术实施例提供的医疗实体识别模型的训练方法,可以包括:
60.s101:获取业务规则集。
61.在本实施例中,首先获取业务规则集。其中,业务规则是指对业务定义和约束的描述,用于维持业务结构或控制和影响业务的行为。业务规则可以从宏观层面上理解,包括业务流程、业务条线等,微观理解为具体数据项的加工逻辑,例如:a指标是由b指标加c指标运算得出。业务规则实质上也可以理解为一组条件和在此条件下的操作,是一组准确凝练的语句,用于约束及控制企业的结构、运作和战略,是应用程序中的一段业务逻辑。例如:a=b+c可以是一组业务规则,其中获取b、获取c以及获取符号+也可以是一组业务规则,当规则引擎接受数据输入后,通过解释业务规则,并根据规则执行相应的业务逻辑。该业务逻辑通常由业务人员、企业的管理人员和程序开发人员共同开发和修改。业务规则集即一条或者多条业务规则的集合。所述业务规则集包括多个规则,业务规则由业务人员创建、实时更新和调试,业务规则之间的复杂逻辑关系由规则引擎处理。。
62.s102,从所述业务规则集中选择一条或者多条业务规则。
63.在本实施例中,从所述业务规则集中选择一条或者多条业务规则,具体地,可以根据业务决策需求,选择差异化的业务规则。例如,在不同计费规则下,对于计费小数点后小数位数的需要不同,也可以称做数据调尾,基于不同的省间差异,在业务规则集中选择调尾的业务规则,对于具体选择业务规则的数量,本技术中对此不做限定。
64.s103,将所述一条或者多条业务规则分别封装为规则组件。
65.在本实施例中,可以将一条或者多条业务规则中的每条业务规则分别封装为规则组件。具体地,可以基于业务规则技术,将业务规则通过技术化、工程化的手段,将业务规则封装为规则组件。规则组件可以是自动化处理的计算机程序,也可以是嵌入在应用程序中的组件。
66.业务规则技术就是将业务规则通过技术化、工程化的的手段,进行实现的技术。其基本思想是将系统处理的业务逻辑从程序代码中抽取出来转变为简单的业务规则,以结构化的业务规则数据来表示业务行为,并采用类自然语言来描述,集中存储在规则库中。
67.可选地,将所述一条或者多条业务规则分别封装为规则组件之后,还可以基于规则组件的定义,对规则组件的定义进行检查。其中,上述对规则组件进行的检查可以包括条件恒为真或假检查、自我矛盾检查、冗余检查和未完全覆盖检查中的任意一种或多种。其
中,条件恒为真或假检查是指规则组件程序永远为真或永远为假,若永远为真或永远为假就会变成死循环。自我矛盾检查是指检查规则组件内部代码是否存在自我矛盾。冗余检查是指根据规则组件数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输或者保存后可能出现的错误。未完全覆盖检查是指检查规则组件的代码是否完全覆盖实现规则的数据,若实现规则的数据未完全覆盖,则实现不了该组件的功能。
68.如果上述检查通过,则返回检查通过结果,如果未通过,则返回检查未通过原因。
69.可选地,将一条或者多条业务规则分别封装为规则组件之后,还可以模拟运行规则组件,并对规则组件进行正确性验证和/或有效性验证。其中,正确性验证是指验证规则组件的代码是否正确,有效性验证是指验证规则组件代码是否有效。
70.如果上述检查通过,则返回检查通过结果,如果未通过,则返回检查未通过原因。
71.s104,根据所述一条或者多条业务规则封装得到的一条或者多条规则组件生成规则引擎,所述规则引擎与被选中的所述一条或者多条业务规则相匹配。
72.在本实施例中,根据所述一条或者多条业务规则封装得到的一条或者多条规则组件生成规则引擎,所述规则引擎与被选中的所述一条或者多条业务规则相匹配。具体的,规则引擎可以包括多条业务规则封装得到的一条或者多条规则组件、可以理解的是,所述规则引擎的任务是把当前提交给引擎的数据对象与加载在引擎中的业务规则进行测试和比对,激活符合当前数据状态下的业务规则,根据业务规则中声明的执行逻辑,触发应用程序中对应的操作。
73.可选地,所述生成的规则引擎可以对于正在执行的业务规则进行查看、暂停、中止取消和设置优先级。
74.可选地,所述生成的规则引擎可以进行业务规则的查询、添加、删除、修改以及规则冲突检测,以及业务规则的生命周期管理。
75.规则引擎主要包括以下三部分:rulebase(规则集)、workingmemory(工作存储器)和inferenceengine(推理引擎);所述推理引擎具体包括patternmatcher(匹配器)、agenda(议程)和executionengine(执行引擎);所述规则集存放于规则集容器,用于存放从规则库中提取的对应当前问题的一组规则;这些规则将按照某种数据结构组织,当工作区中的数据发生改变后,引擎需要迅速根据工作区中的对象现状,调整规则执行队列中的规则;工作存储器,即规则引擎的综合数据库,也称为事实库;用于存放规则系统运行时所需要的各种信息;其中的信息用来与规则集容器中的规则进行匹配;匹配器,是规则引擎工作的上下文环境,用来关联规则集容器和工作存储器;将规则集容器中的所有规则与工作存储器中的事实进行模式匹配,匹配成功的规则将被激活,并与前面推理得到的所有激活规则构成规则冲突集;议程,议程中存放的是根据需要进行过排序的规则冲突集。对匹配生成的规则冲突集进行排序的过程称为冲突消解;然后议程中首条规则的结论或动作部分将会执行,这可能会产生新的事实(fact),即对业务的真实陈述,常常与重要的业务术语关联。事实也称为不变量,是反应数据实体及其属性的不可改变的真实情况,从而改变工作存储器的内容;整个过程将一直循环下去,最终得到执行结果。
76.本技术实施例提供了一种规则引擎生成方法。在执行所述方法时,先获取业务规则集,后从所述业务规则集中选择一条或者多条业务规则,然后将所述一条或者多条业务规则分别封装为规则组件,最后根据所述一条或者多条业务规则封装得到的一条或者多条
规则组件生成规则引擎,所述规则引擎与被选中的所述一条或者多条业务规则相匹配,以将差异化的业务规则分离。这样,通过将差异化的业务规则分离出来的方式,使得业务规则能够灵活配置,达到了将中台复用业务规则与差异化业务规则分离后的业务规则灵活配置的效果。如此,可以提高业务规则的灵活性和多样性,以动态地满足用户持续变化的业务需求。
77.在本技术实施例中,上述图1所述的步骤104存在多种可能的实现方式,下面分别进行介绍。需要说明的是,下文介绍中给出的实现方式仅作为示例性的说明,并不代表本技术实施例的全部实现方式。
78.参见图2,图2为本技术实施例提供的步骤104根据所述多条业务规则封装得到的一条或者多条规则组件生成规则引擎一种可选的实现方式流程图。
79.s1041,根据所述一条或者多条规则组件的数据信息生成所述规则组件对应的可执行文件,所述组件的数据信息包括组件的属性信息。
80.在本实施例中,根据所述一条或者多条规则组件的数据信息生成所述规则组件对应的可执行文件,所述组件的数据信息包括组件的属性信息,属性信息包括组件的类型等。开发人员可以根据业务需求和ui页面需求修改组件的属性信息,根据修改后的数据信息生成该组件对应的可执行文件。例如,符号组件的默认属性信息包括符号的大小以及在页面上的位置信息。若组件默认的属性信息不符合ui页面需求,则开发人员可以修改该组件的属性信息,例如,在符号负号(-)组件的默认属性信息中,字体默认为黑色,而ui页面需求为符号字体为红色。
81.s1042,接收拖拽指令和/或点选指令;
82.在本实施例中,开发人员或业务人员通过ui页面进行拖拽和/或点选操作,接收开发人员或业务人员的拖拽指令和/或点选指令,选择规则组件对应的可执行文件,并对规则组件对应的可执行文件进行编辑或者配置,由此,可以使得开发人员可以在组件可视化平台的前端页面上根据ui页面需求实时调整组件的属性信息,简化了开发流程,提高了开发效率,同时降低了开发人员的协作沟通成本。
83.s1043,根据所述拖拽指令和/或所述点选指令,将所述规则组件对应的可执行文件加载至组件可视化平台,使得所述组件可视化平台运行所述可执行文件,得到所述规则引擎。
84.在本实施例中,通过根据所述拖拽指令和/或所述点选指令,将所述规则组件对应的可执行文件加载至组件可视化平台,使得所述组件可视化平台运行所述可执行文件,得到所述规则引擎;通过组件可视化平台以可视化的方式呈现给用户,业务人员通过鼠标拖拽等方式,使用规则组件完成业务规则的定义,由此,可以使得开发人员和业务人员可以在组件可视化平台的前端页面上根据ui页面需求实时调整组件的属性信息,在线灵活配置业务流和业务规则,实现系统业务可视化和业务逻辑可动态扩展以及中台不僵化目标。
85.参见图3,图3为本技术实施例提供的步骤104根据所述多条业务规则封装得到的一条或者多条规则组件生成规则引擎一种可选的实现方式流程图。
86.s104a,获取预设语义规则;
87.s104b,基于所述预设语义规则,调整所述多条业务规则对应的一条或者多条规则组件,确定差异化业务规则;
88.在本实施例中,基于所述预设语义规则,调整所述多条业务规则对应的一条或者多条规则组件,使用预定义的语义模块利用一条或者多条规则组件进行配置,将差异化业务规则编写为业务决策,由用户或开发者在需要时进行配置、管理。
89.s104c,基于所述差异化业务规则生成规则引擎。
90.在本实施例中,通过将差异化业务规则抽象剥离,实现中台复用业务能力与差异化业务分离后的能力沉淀,从而有效保障中台业务能力。
91.以上为本技术实施例提供规则引擎生成方法的一些具体实现方式,基于此,本技术还提供了对应的装置。下面将从功能模块化的角度对本技术实施例提供的装置进行介绍。
92.参见图4所示的规则引擎生成装置400的结构示意图,该装置400包括获取模块401、选择模块402、封装模块403和生成模块404。
93.获取模块401,用于获取业务规则集;
94.选择模块402,用于从所述业务规则集中选择一条或者多条业务规则;
95.封装模块403,用于将所述一条或者多条业务规则分别封装为规则组件;
96.生成模块404,用于根据所述一条或者多条业务规则封装得到的一条或者多条规则组件生成规则引擎,所述规则引擎与被选中的所述一条或者多条业务规则相匹配。
97.可选地,所述生成模块包括:
98.第一生成单元,用于根据所述一条或者多条规则组件的数据信息生成所述规则组件对应的可执行文件,所述组件的数据信息包括组件的属性信息;
99.接收单元,用于接收拖拽指令和/或点选指令;
100.加载单元,用于根据所述拖拽指令和/或所述点选指令,将所述规则组件对应的可执行文件加载至组件可视化平台,使得所述组件可视化平台运行所述可执行文件,得到所述规则引擎。
101.可选地,所述生成模块包括:
102.获取单元,用于获取预设语义规则;
103.调整单元,用于基于所述预设语义规则,调整所述多条业务规则对应的一条或者多条规则组件,确定差异化业务规则;
104.第二生成单元,用于基于所述差异化业务规则生成规则引擎。
105.可选地,所述装置还包括:
106.检查模块,用于基于所述差异化业务规则的定义,对所述差异化业务规则的定义进行检查;所述检查包括条件恒为真或假、自我矛盾、冗余和未完全覆盖;
107.确定所述差异化业务规则通过所述检查。
108.可选地,所述装置还包括:
109.验证模块,用于模拟运行所述差异化业务规则,并对所述差异化业务规则进行正确性验证和/或有效性验证;
110.确定所述差异化业务规则通过所述正确性验证和/或所述有效性验证。
111.本技术实施例还提供了一种电子设备,包括:处理器、存储器、系统总线;
112.所述处理器以及所述存储器通过所述系统总线相连;
113.所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令
当被所述处理器执行时使所述处理器执行上述规则引擎生成方法的任一实现方式。
114.本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行上述的规则引擎生成方法的任一实现方式。
115.本技术实施例中提到的“第一”、“第二”(若存在)等名称中的“第一”、“第二”只是用来做名字标识,并不代表顺序上的第一、第二。
116.通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加通用硬件平台的方式来实现。基于这样的理解,本技术的技术方案可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如只读存储器(英文:read-only memory,rom)/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如路由器等网络通信设备)执行本技术各个实施例或者实施例的某些部分所述的方法。
117.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
118.以上所述仅是本技术示例性的实施方式,并非用于限定本技术的保护范围。