掌桥专利:专业的专利平台
掌桥专利
首页

一种基于规则引擎的故障判定与实现方法和系统

文献发布时间:2023-06-19 09:30:39


一种基于规则引擎的故障判定与实现方法和系统

技术领域

本发明涉及云计算领域,特别是涉及一种基于规则引擎的故障判定与实现方法和系统。

背景技术

业务规则技术的基本原理是用一个或者多个规则引擎替换以程序代码“固化”在系统中的业务逻辑,被替换的业务逻辑存储在规则库中,规则库中的规则可以通过规则管理工具实现定制、修改、管理和部署,这就大大减少了因为程序修改而产生的风险和工作量,而且新策略的开发周期也极大地缩短,延长了故障管理系统的生命期和稳定性,提高了网络故障管理系统的灵活性。

当前在云计算领域中大多使用一些开源的技术框架如K8s等集群管理的方法,这些平台能满足一般管理要求和自动化故障排查,缺点是需要投入大量的精力学习开源框架,虽然API功能丰富但大部分是不必要的,造成资源浪费,在开发过程中会存在未知风险。

因此提供一种能够在进行实时检测和处理的同时,保障平台服务的稳定运行的故障管理判定和实现方法或系统是本领域亟待解决的一个技术难题。

发明内容

本发明的目的是提供一种能够在进行实时检测和处理的同时,保障平台服务的稳定运行的基于规则引擎的故障判定与实现方法和系统。

为实现上述目的,本发明提供了如下方案:

一种基于规则引擎的故障判定与实现方法,包括:

获取规则命令;

调用规则库中存储的规则数据对象,并确定所述规则库中是否存在与所述规则命令相对应的规则数据对象;

若存在,则根据与所述规则命令相对应的规则数据对象调用规则引擎;

若不存在,则依据所述规则指令建立规则数据对象,并根据所建立的规则数据对象调用所述规则引擎。

优选的,所述若存在,则根据与所述规则命令相对应的规则数据对象调用规则引擎,具体包括:

获取设定规则参数;

根据所述设定规则参数判断所述规则命令是否有效;

若有效,则根据与所述规则命令相对应的规则数据对象调用所述规则引擎;

若无效,则生成故障提示信息。

优选的,采用面向对象的建模方法依据所述规则指令建立规则数据对象;所述规则数据对象包括条件对象和动作对象。

优选的,所述获取规则命令之前还包括:

采用应用程序接口触发或建立规则命令。

对应于上述提供的基于规则引擎的故障判定与实现方法,本发明还对应提供了两种基于规则引擎的故障判定与实现系统。

其中一种基于规则引擎的故障判定与实现系统,包括:

规则命令获取模块,用于获取规则命令;

规则数据对象确定模块,用于调用规则库中存储的规则数据对象,并确定所述规则库中是否存在与所述规则命令相对应的规则数据对象;

第一规则引擎调用模块,用于当所述规则库中存在与所述规则命令相对应的规则数据对象时,根据与所述规则命令相对应的规则数据对象调用规则引擎;

第二规则引擎调用模块,用于当所述规则库中不存在与所述规则命令相对应的规则数据对象时,依据所述规则指令建立规则数据对象,并根据所建立的规则数据对象调用所述规则引擎。

优选的,所述第一规则引擎调用模块具体包括:

设定规则参数获取单元,用于获取设定规则参数;

有效性判定单元,用于根据所述设定规则参数判断所述规则命令是否有效;

规则引擎调用单元,用于当所述规则命令有效时,根据与所述规则命令相对应的规则数据对象调用所述规则引擎;

故障提示单元,用于当所述规则命令无效时,生成故障提示信息。

优选的,所述第二规则引擎调用模块包括:

规则数据对象建立单元,用于采用面向对象的建模方法依据所述规则指令建立规则数据对象;所述规则数据对象包括条件对象和动作对象。

优选的,还包括:

规则命令触发/建立模块,用于采用应用程序接口触发或建立规则命令。

另一种基于规则引擎的故障判定与实现系统,包括:

应用程序接口,用于触发或建立规则命令;

规则库,用于存储规则数据对象;

规则管理系统,分别与所述应用程序接口和所述规则库进行数据交互,用于根据所述规则命令和所述规则数据对象调用规则引擎或生成故障报警信息;其中调用规则引擎或生成故障报警信息所采用的方法为上述的基于规则引擎的故障判定与实现方法。

优选的,所述规则管理系统包括:

告警数据库,用于存储故障报警信息;

规则获取模块,用于获取与所述故障报警信息相对应的规则数据对象,并将所述规则数据对象存储在所述规则库中。

根据本发明提供的具体实施例,本发明公开了以下技术效果:

本发明提供的基于规则引擎的故障判定与实现方法和系统,通过调用规则库中存储的规则数据对象,并确定所述规则库中是否存在与所述规则命令相对应的规则数据对象;若存在,则根据与所述规则命令相对应的规则数据对象调用规则引擎;若不存在,则依据所述规则指令建立规则数据对象,并根据所建立的规则数据对象调用所述规则引擎,以能够在进行实时检测和处理的同时,保障平台服务的稳定运行。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的基于规则引擎的故障判定与实现方法流程图;

图2为本发明提供的其中一种基于规则引擎的故障判定与实现系统的结构示意图;

图3为本发明提供的另一种基于规则引擎的故障判定与实现系统的结构示意图;

图4为本发明实施例中提供的规则定制的处理流程图;

图5为本发明实施例中提供的规则引擎的调用流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的目的是提供一种能够在进行实时检测和处理的同时,保障平台服务的稳定运行的基于规则引擎的故障判定与实现方法和系统。

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

图1为本发明提供的基于规则引擎的故障判定与实现方法流程图,如图1所示,一种基于规则引擎的故障判定与实现方法,包括:

步骤100:获取规则命令。

步骤101:调用规则库中存储的规则数据对象,并确定规则库中是否存在与规则命令相对应的规则数据对象。

步骤102:若存在,则根据与规则命令相对应的规则数据对象调用规则引擎。该过程具体包括:

获取设定规则参数。

根据设定规则参数判断规则命令是否有效。

若有效,则根据与规则命令相对应的规则数据对象调用规则引擎。

若无效,则生成故障提示信息。

步骤103:若不存在,则依据规则指令建立规则数据对象,并根据所建立的规则数据对象调用规则引擎。其中,采用面向对象的建模方法依据规则指令建立规则数据对象。规则数据对象包括条件对象和动作对象。

在本发明中优选在获取规则命令之前采用应用程序接口触发或建立规则命令。

对应于上述提供的基于规则引擎的故障判定与实现方法,本发明还对应提供了两种基于规则引擎的故障判定与实现系统。

如图2所示,其中一种基于规则引擎的故障判定与实现系统,包括:

规则命令获取模块1,用于获取规则命令。

规则数据对象确定模块2,用于调用规则库中存储的规则数据对象,并确定规则库中是否存在与规则命令相对应的规则数据对象。

第一规则引擎调用模块3,用于当规则库中存在与规则命令相对应的规则数据对象时,根据与规则命令相对应的规则数据对象调用规则引擎。

第二规则引擎调用模块4,用于当规则库中不存在与规则命令相对应的规则数据对象时,依据规则指令建立规则数据对象,并根据所建立的规则数据对象调用规则引擎。

其中,上述第一规则引擎调用模块3具体包括:

设定规则参数获取单元,用于获取设定规则参数。

有效性判定单元,用于根据设定规则参数判断规则命令是否有效。

规则引擎调用单元,用于当规则命令有效时,根据与规则命令相对应的规则数据对象调用规则引擎。

故障提示单元,用于当规则命令无效时,生成故障提示信息。

上述第二规则引擎调用模块4包括:

规则数据对象建立单元,用于采用面向对象的建模方法依据规则指令建立规则数据对象。规则数据对象包括条件对象和动作对象。

优选的,本发明提供的基于规则引擎的故障判定与实现系统还包括:用于采用应用程序接口触发或建立规则命令的规则命令触发/建立模块。

如图3所示,本发明提供的另一种基于规则引擎的故障判定与实现系统,包括:

应用程序接口,用于触发或建立规则命令。

规则库,用于存储规则数据对象。

规则管理系统,分别与应用程序接口和规则库进行数据交互,用于根据规则命令和规则数据对象调用规则引擎或生成故障报警信息。其中调用规则引擎或生成故障报警信息所采用的方法为上述的基于规则引擎的故障判定与实现方法。

其中,上述规则管理系统包括:

告警数据库,用于存储故障报警信息。

规则获取模块,用于获取与故障报警信息相对应的规则数据对象,并将规则数据对象存储在规则库中。

下面提供一个具体实施案例进一步说明本发明的方案,本发明具体实施案例中以Java规则引擎为例进行阐述,在具体应用时,本发明的方案也适用于其他类型的规则引擎。

规则引擎由基于规则的系统中的推理引擎发展而来。Java规则引擎将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。Java规则引擎接受数据输入,解释业务规则,并根据规则做出业务决策。

国产化设备种类繁多,各种软硬件之间还存在交叉使用的情况,如果在使用过程中发生异常情况,如何快速精准的定位出问题显得格外重要。

规则引擎主要是为应用程序提供调用规则的接口,基本的引擎接口是java类接口,规则引擎管理平台可以适配各种国产的软硬件架构和服务包括X86,龙芯,飞腾,申威,华芯,操作系统包括深度,银河麒麟,中标麒麟,UOS,用户可以根据自身特殊的业务逻辑。另外规则引擎支持将规则文件直接编译成可执行代码,加快规则的执行速度。它主要用于规则包的执行,负责接受应用程序对规则包的调用,执行规则包并且返回执行后的结果。

规则是有关业务的某个方面的精炼描述,也是一种约束,说明在指定情况下必须做什么和不得做什么。业务规则包含一组条件和在此条件下执行的操作或产生的作用,规则文件则是多个业务规则按照某种机制组成的规则集合。如一个关于服务器故障诊断的简单规则可以定义为:如果一个飞腾计算节点持续出现离线的情况发生,那么90%的可能是计算节点的网线接口出现故障。规则文件采用类似自然语言的句法drl格式语法,使得语言非常的轻量化,并且直观易懂:

Rule“problem1”//规则名

No-looptrue//定义规则是否递归执行

Salience2//规则的优先级

When

Predict('离线');//规则条件

Then

Problem('网线接口故障',90%);//规则结论

End

基于规则引擎的故障判定和实现方法就是为了快速定位这种复杂的业务逻辑而设计,规则引擎能够对故障实现高效地分析、过滤与整理,使之能够提供智能化的故障诊断能力,确保云平台故障的准确定位与及时排除。

本发明上述提供的规则引擎故障判定与实现系统,主要用于规则的定制、规则引擎调用等功能。当业务调用层制动了某种规则后,就可以进行规则的定制和规则引擎的调用了。

其规则定制的处理流程为:

首先触发建立规则命令,检查数据库里是否存在所需规则数据对象,若不存在规则管理系统必须先建立规则数据对象。若存在则按照规则案例系统引擎模型选择合适的规则数据对象,若找不到合适的规则对象,则需要新增则数据对象,新增规则数据对象存储则要涉及到对于规则的描述和建模,规则基本分成两部分,when(条件)部分和then(动作)部分,而Conditions无非就是一些事实对象,Actions是对事实对象的一些操作而已。因此针对规则的这个特点对规则存储涉及的数据采用面向对象的建模方法。最后按照图4流程判断其有效性。

规则引擎的调用流程是:首先规则管理系统指定数据传输类和规则文件,解析规则文件,若有错误则提示性返回,解析文件正确,则执行规则引擎,返回提示性信息(系统错误问题或者正确执行结果),结束规则引擎,该具体流程如图5。

其部署服务是可以根据需要灵活选择需要的机器类型,服务器以及支撑服务的资源信息,云平台会进行一系列自动化的部署,部署完成以后会有提示显示服务何时可以正常访问。故障判定与实现系统应该能够对故障告警实现高效地分析、过滤与整理,使之能够提供智能化的故障诊断能力,确保故障的准确定位与及时排除

在本发明中,以计算节点服务器断网为例说明所提供技术方案的故障处理效果。观察云平台计算节点变为离线状态,如出现离线信息,故障与实现系统将实时扑捉到此条信息,并调用规则引擎做出告警或者调用云平台故障迁移机制进行迁移,若调用迁移稍等大约半分钟时间后再观察此任务发现该服务已经迁移到了另外一台网络正常计算节点上,并且可以正常提供服务,实现了故障服务迁移和恢复。

综上,本发明提供的技术方案具有如下的优点:

1、申明式编程,规则引擎可以申明“做什么”而不是“怎么做”。

2、业务逻辑和数据分离,数据都是在业务对象中,业务逻辑则放在规则库中。这就从根本上打破了面向对象将数据和业务逻辑封装在一起的原则。

3、速度和可扩展性,规则引擎提供了非常高效的方式根据业务对象的数据匹配规则。

4.业务知识集中化,通过使用规则,可以创建出一个可运行的知识库。这就意味着对于业务规则可以具有良好的可阅读性。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

相关技术
  • 一种基于规则引擎的故障判定与实现方法和系统
  • 一种基于规则引擎的流程实现方法及系统
技术分类

06120112192308