CN103699489B - 一种基于知识库的软件远程故障诊断与修复方法 - Google Patents

一种基于知识库的软件远程故障诊断与修复方法 Download PDF

Info

Publication number
CN103699489B
CN103699489B CN201410003287.3A CN201410003287A CN103699489B CN 103699489 B CN103699489 B CN 103699489B CN 201410003287 A CN201410003287 A CN 201410003287A CN 103699489 B CN103699489 B CN 103699489B
Authority
CN
China
Prior art keywords
fault
maintenance
fault diagnosis
software
client agent
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.)
Expired - Fee Related
Application number
CN201410003287.3A
Other languages
English (en)
Other versions
CN103699489A (zh
Inventor
毕学军
肖庆
王小振
杨朝红
金丽亚
刘娟
党朝发
唐世庆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Academy of Armored Forces Engineering of PLA
Original Assignee
Academy of Armored Forces Engineering of PLA
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Academy of Armored Forces Engineering of PLA filed Critical Academy of Armored Forces Engineering of PLA
Priority to CN201410003287.3A priority Critical patent/CN103699489B/zh
Publication of CN103699489A publication Critical patent/CN103699489A/zh
Application granted granted Critical
Publication of CN103699489B publication Critical patent/CN103699489B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

提供一种基于知识库的软件远程故障诊断与修复方法,包括:将被诊断软件系统中各软件构件的运行条件、依赖关系、故障表现特征和修复策略进行建模和入库以形成故障诊断与修复知识库,将该知识库存储在独立于被诊断软件系统的服务终端上;在被诊断软件系统中安装客户端代理程序,在服务终端上安装服务端程序,利用客户端代理程序实时获取被诊断软件系统的诊断信息并通过网络将其传递给服务端程序;服务端程序依据获取的诊断信息和该知识库,产生决策命令并将决策命令通过网络传递给客户端代理程序;客户端代理程序执行决策命令,实现软件故障的诊断与修复。采用本发明,实现软件故障的智能诊断与修复,提升软件故障诊断与修复的效率和自动化程度。

Description

一种基于知识库的软件远程故障诊断与修复方法
技术领域
本发明涉及软件故障诊断与修复领域,具体涉及一种基于知识库的软件远程故障诊断与修复方法。
背景技术
在工业过程中,硬件故障诊断的含义是根据特定传感器的测量值,确定引起系统异常或失效的原因、部位及严重程度。硬件故障诊断专家系统的功能是根据测量信息和计算机化的诊断知识,自动完成系统异常或失效的诊断。软件故障诊断还是一个较新的事物,软件故障同硬件故障在故障机理方面就具有较大的差异,这必然会导致两者的诊断方法会存在一定的差异。软件系统的数学模型是离散的,故障的形成无物理原因,失效的发展取决于输入值和运行状态的组合。软件输入值和运行状态的组合在合理范围内的微小变化可能引起输出的巨大变化,软件故障的出现通常无前兆,硬件系统在正常工作条件下其行为是渐变的,故障的形成和失效的发生一般都有物理原因,硬件故障的出现通常有前兆。软件故障难以定位,失效现象往往不在失效部件显现,硬件故障较易定位,失效部件的物理参数常常发生明显变化。如果发现一个软件出现了某个故障,那么该版本的所有软件都会可能发生该故障。
软件故障可分为因开发过程中引入的设计及编码缺陷造成的软件故障和因软件运行外部依赖环境配置不正确造成的软件故障。前类故障可视作由于软件的内在原因造成,后类故障可视作由于软件的外在原因造成。前类故障的修复需要修改软件的源程序并重新发布和安装新版软件,而后一类故障的修复并不需要修改源码,只是对配置文件、运行环境进行适当的调整。当前的大型软件系统特别是分布式软件系统广泛采用基于构件的体系结构,构件复用是一种产品复用,构件库中的构件作为产品都经过了严格的测试,许多构件甚至已在其它系统中历经了多年使用,因此构件出现内部故障的概率很小,在实际使用过程中出现的许多故障是由于构件的少装、多装、错装、错配、服务未启动等外在原因造成的。对于由外在原因引起的软件故障来说,它的诊断和修复主要依靠被诊断软件系统的外部依赖环境配置领域知识进行。
因此,在现有技术中,需要一种对于软件故障的有效、方便、准确的诊断和修复方法。
发明内容
有鉴于此,本发明的主要目的在于提供一种基于知识库的软件远程故障诊断与修复方法及系统,解决现有技术中存在的问题,能够实现软件故障的智能诊断与修复,提升软件故障诊断与修复的效率和自动化程度。
本发明人,通过创造性的劳动,设计了软件故障诊断知识库,即是将软件故障诊断领域的专家知识表示为计算机内部格式,加以合理的描述存储,以便于故障诊断时进行有效的检索和利用,从而提高软件故障诊断与修复的效率和自动化程度。基于知识库软件故障诊断的问题可以描述为以下四元式的形式:
P=(M,F,K,OBS)
式中,M为系统可观测到的症状集合,F为系统的故障集合,为系统症状集与故障之间的映射关系(即诊断知识),对于不同的系统K取决于被诊断软件系统的结构和行为,OBS为当前观察到的症状。
为实现发明目的,本发明的技术方案是这样实现的:
A、将被诊断软件系统中各软件构件的运行条件、依赖关系、故障表现特征和修复策略进行建模和入库以形成故障诊断与修复知识库,将故障诊断与修复知识库存储在独立于被诊断软件系统的服务终端上;
B、在被诊断软件系统中安装客户端代理程序,在服务终端上安装服务端程序,利用客户端代理程序实时获取被诊断软件系统的诊断信息并通过网络将诊断信息传递给服务端程序;
C、服务端程序依据获取的诊断信息和故障诊断与修复知识库,进行故障诊断与修复决策以产生决策命令并将决策命令通过网络传递给客户端代理程序;
D、客户端代理程序执行决策命令,实现软件故障的诊断与修复。
优选地,上述技术方案中,步骤A包括:
A1、将已解决故障的故障特征、故障原因、故障维修方法表示为计算机内部格式,形成故障案例库录入故障诊断与修复知识库中;
A2、将被诊断软件系统的软件故障领域专家经验知识以产生式规则的形式进行描述,形成故障诊断规则库录入故障诊断与修复知识库中。
优选地,上述技术方案中,步骤A1包括:
A1.1、采用数据库表作为案例的计算机内部存储格式,包括案例信息表、故障信息表、故障构件表、征兆信息表、案例解释表、维修步骤表和附件表;
A1.2、案例信息表由案例名称、案例编号和案例说明组成;
A1.3、故障信息表由故障编号、故障名称、故障类别和故障等级组成;
A1.4、故障构件表由序号、构件类型、构件名称、构件前缀和构件描述组成;
A1.5、征兆信息表由征兆描述、征兆类别、征兆值和征兆权重组成;
A1.6、案例解释表由故障现象、故障原因、解决措施和维修建议组成;
A1.7、维修步骤表由操作类别、操作序号、操作参数和操作时间组成;
A1.8、附件表由资源编号、资源类别和资源数据组成。
优选地,上述技术方案中,步骤A2包括:
A2.1、将被诊断软件系统的软件故障领域专家经验知识抽象为一系列的因果链;
A2.2、将因果链描述为直观的IF-THEN产生式形式。
优选地,上述技术方案中,服务端程序、客户端代理程序和故障诊断与修复知识库构成一软件故障诊断与修复系统,其中:
服务端程序用于完成被诊断软件系统软件构件的状态监控、诊断决策、维修决策、知识库管理以及人机交互功能;
客户端代理程序以开机自动运行的后台程序形式部署在被诊断软件系统的每台计算机上,用于完成本机软件构件的诊断信息收集和故障修复功能。
优选地,上述技术方案中,步骤B包括:
B1、客户端代理程序获取本机软件构件的安装部署信息,将安装部署信息保存为xml格式文件,然后通过TCP协议将包含安装部署信息的xml格式文件发送给服务端程序;
B2、客户端代理程序获取本机服务运行信息,将服务运行信息保存为xml格式文件,然后通过TCP协议将包含服务运行信息的xml格式文件发送给服务端程序;
B3、客户端代理程序获取本机进程运行信息,将进程运行信息保存为xml格式文件,然后通过TCP协议将包含进程运行信息的xml格式文件发送给服务端程序;
B4、客户端代理程序获取本机数据库信息,然后通过UDP协议将数据库信息发送给服务端程序;
B5、客户端代理程序获取本机CPU和内存使用信息,然后通过UDP协议将CPU和内存使用信息发送给服务端程序;
优选地,上述技术方案中,步骤C包括:
C1、在故障诊断与修复知识库中进行案例检索,判断是否存在匹配的案例,如果判断的结果为是,则基于故障诊断与修复知识库中的维修步骤表产生决策命令以进行故障修复,否则执行步骤C2;
C2、激活基于规则的软件故障诊断与修复。
优选地,上述技术方案中,步骤C1包括:
C1.1、等待用户输入待检故障的案例检索条件;
C1.2、计算用户输入的案例检索条件和故障诊断与修复知识库中所有案例的相似性;
C1.3、将相似性从高到低进行排序;
C1.4、判断是否存在相似性大于预先设定的输出阈值的案例,如果判断的结果为是,则执行步骤C1.5,否则返回案例匹配失败;
C1.5、依据与具有最大相似性的案例相对应的维修步骤表产生决策命令以进行故障修复。
优选地,上述技术方案中,步骤C1.5包括:
C1.5.1、创建基于案例的故障维修线程;
C1.5.2、将具有最大相似性的案例相对应的维修步骤表中与案例故障编号相关的维修步骤依据操作序号进行排序;
C1.5.3、依据排序而依次取出每个维修步骤的详细信息,并根据操作类别和操作参数产生决策命令,将决策命令通过网络发送至客户端代理程序,决策命令即相应的维修动作命令;
C1.5.4、使用维修步骤中的操作时间作为维修动作处理的最大等待时间,等待客户端代理程序返回维修结果;
C1.5.5、判断是否维修结果已获取或超时,如果判断的结果为是,则执行步骤C1.5.6,否则执行步骤C1.5.4;
C1.5.6、判断是否所有的维修步骤都已处理完成,如果判断的结果为是,则执行步骤C1.5.7,否则执行步骤C1.5.3;
C1.5.7、结束基于案例的故障维修线程。
优选地,上述技术方案中,步骤C2包括:
C2.1、进行基于规则的故障诊断;
C2.2、收集基于规则的故障诊断过程中产生的维修步骤;
C2.3、依据C2.2中的维修步骤产生决策命令以进行故障修复。
优选地,上述技术方案中,步骤C2.1包括:
C2.1.1、创建基于规则的故障诊断线程;
C2.1.2、载入软件故障诊断规则描述文件;
C2.1.3、依据规则描述文件创建并显示用户交互界面,并在用户交互界面上显示用户交互提示信息;
C2.1.4、等待用户输入交互信息;
C2.1.5、判断交互信息是否已经输入,如果判断的结果为是,则执行步骤C2.1.6,否者执行步骤C2.1.4;
C2.1.6、依据规则描述文件执行诊断操作,通过网络向客户端代理程序发送相应的诊断命令;
C2.1.7、等待客户端代理程序返回诊断结果;
C2.1.8、判断是否诊断结果已获取或超时,如果判断的结果为是,则执行步骤C2.1.9,否则执行步骤C2.1.7;
C2.1.9、依据诊断结果和规则描述文件产生维修步骤;
C2.1.10、判断是否还存在可执行的规则,如果判断的结果为是,则执行步骤C2.1.3,否则执行步骤C2.1.11;
C2.1.11、结束基于规则的故障诊断线程。
优选地,上述技术方案中,步骤C2.3包括:
C2.3.1、创建故障维修线程;
C2.3.2、取出C2.2中的维修步骤中的每个维修步骤的详细信息,并根据操作类别和操作参数通过网络向客户端代理程序发送决策命令,即,相应的维修动作命令;
C2.3.3、使用维修步骤中的操作时间作为维修动作处理的最大等待时间,等待客户端代理程序返回维修结果;
C2.3.4、判断是否维修结果已获取或超时,如果判断的结果为是,则执行步骤C2.3.5,否则执行步骤C2.3.3;
C2.3.5、判断是否所有的维修步骤都已处理完成,如果判断的结果为是,则执行步骤C2.3.6,否则执行步骤C2.3.2;
C2.3.6、结束故障维修线程。
本发明提供的基于知识库的软件故障诊断与修复方法及系统,通过将被诊断软件系统中各软件构件的运行条件、依赖关系、故障表现特征和修复策略进行建模和入库,形成故障诊断与修复知识库,将软件故障诊断与修复系统划分为服务端程序和客户端代理程序,客户端代理程序实时获取被诊断软件系统的诊断信息并通过网络传递给服务端程序,服务端程序依据获取的诊断信息和故障诊断与修复知识库进行故障诊断与修复决策,并将决策命令通过网络传递给客户端代理程序,客户端代理程序执行故障诊断与修复决策命令。如此,实现了软件故障的智能诊断与修复,大大提高了软件故障诊断与修复的效率和自动化程度。
附图说明
图1为本发明基于知识库的软件故障诊断与修复方法流程示意图;
图2为本发明中客户端代理程序获取诊断信息流程示意图;
图3为本发明中服务端程序故障诊断决策流程示意图;
图4为本发明中案例检索流程示意图;
图5为本发明中基于案例的故障修复流程示意图;
图6为本发明中基于规则的故障诊断流程示意图;
图7为本发明中基于规则的故障修复流程示意图。
具体实施方式
本发明的基本思想是:将被诊断软件系统中各软件构件的运行条件、依赖关系、故障表现特征和修复策略进行建模和入库,形成故障诊断与修复知识库,故障诊断与修复知识库包括案例库和规则库,该故障诊断与修复知识库存储在独立于被诊断软件系统的服务终端上;利用故障诊断与修复知识库、服务端程序和客户端代理程序构成软件故障诊断与修复系统,服务端程序安装在服务终端上而客户端代理程序安装在该被诊断软件系统中,服务端程序和客户端代理程序通过网络通信互相协作实现软件故障的诊断与修复;客户端代理程序实时获取被诊断软件系统的诊断信息并将其通过网络传递给服务端程序;服务端程序依据获取的诊断信息和故障诊断与修复知识库进行故障诊断与修复决策产生决策命令,并将该决策命令通过网络传递给客户端代理程序;客户端代理程序执行故障诊断与修复决策命令,实现软件故障的诊断与修复。
下面结合附图及具体实施例对本发明做进一步详细的说明。
图1为本发明基于知识库的软件故障诊断与修复方法的总体流程示意图,如图1所示,包括以下步骤:
步骤1、将被诊断软件系统中各软件构件的运行条件、依赖关系、故障表现特征和修复策略进行建模和入库以形成故障诊断与修复知识库,将故障诊断与修复知识库存储在独立于被诊断软件系统的服务终端上;
步骤2、在被诊断软件系统中安装客户端代理程序,在服务终端上安装服务端程序,利用客户端代理程序实时获取被诊断软件系统的诊断信息并通过网络将诊断信息传递给服务端程序;
步骤3、服务端程序依据获取的诊断信息和故障诊断与修复知识库,进行故障诊断与修复决策以产生决策命令并将决策命令通过网络传递给客户端代理程序;
步骤4、客户端代理程序执行决策命令,实现软件故障的诊断与修复。
步骤1具体包括以下步骤:
步骤1.1、将已解决故障的故障特征、故障原因、故障维修方法表示为计算机内部格式,形成故障案例库录入故障诊断与修复知识库中;
故障诊断与修复知识库中包含两类知识:采用案例表示的用户经验知识和采用规则表示的领域专家经验知识。基于案例的故障诊断借鉴人类处理问题的方式,运用以前积累的用户经验直接求解问题。首先总结已解决的故障形成案例并按照一定的格式存储于案例库,当有新的诊断任务时,检索案例库,若能匹配相关案例,则输出诊断结果,否则对该故障采取基于规则的诊断方法进行处理,通过基于规则的诊断方法得到的诊断结果经规范化处理后又可作为新的案例添加到案例库中。
步骤1.2、将被诊断软件系统的软件故障领域专家经验知识以产生式规则的形式进行描述,形成故障诊断规则库录入故障诊断与修复知识库中。
步骤1.1具体包括以下步骤:
步骤1.1.1、采用数据库表作为案例的计算机内部存储格式,包括案例信息表、故障信息表、故障构件表、征兆信息表、案例解释表、维修步骤表和附件表;
步骤1.1.2、案例信息表由案例名称、案例编号和案例说明组成;
步骤1.1.3、故障信息表由故障编号、故障名称、故障类别和故障等级组成;
步骤1.1.4、故障构件表由序号、构件类型、构件名称、构件前缀和构件描述组成;
步骤1.1.5、征兆信息表由征兆描述、征兆类别、征兆值和征兆权重组成;
步骤1.1.6、案例解释表由故障现象、故障原因、解决措施和维修建议组成;
步骤1.1.7、维修步骤表由操作类别、操作序号、操作参数和操作时间组成;
步骤1.1.8、附件表由资源编号、资源类别和资源数据组成。
步骤1.2具体包括以下步骤:
步骤1.2.1、将被诊断软件系统的软件故障领域专家经验知识抽象为一系列的因果链;
因果链是指有序的事件序列,因果链之中的任何一个事件都将引起下一事件的发生。软件故障诊断领域的因果链是由基本故障节点、基本故障的直接影响节点,以及后续的一系列间接影响节点组成的一条链。对应有关探寻故障原因的过程,成语“顺藤摸瓜”中的“藤”指的就是因果链,而“瓜”则指的是根本原因,即基本故障节点。以某格式化数据通信软件的故障诊断为例,其某一故障诊断因果链描述如下:
“Oracle监听服务没有正常启动”引起“数据库服务没有正常启动”;
“数据库服务没有正常启动”引起“格式化数据通信软件不能正常连接数据库”;
“格式化数据通信软件不能正常连接数据库”引起“格式化数据通信软件不能正常启动”。
步骤1.2.2、将因果链描述为直观的IF-THEN产生式形式。
产生式规则是一种被广泛使用的知识表示方法,主要用于描述有关问题的状态转移、性质变化以及因果关系等过程性知识。每一条产生式规则表示一个因果关系,用直观的IF-THEN方式可表达为:
IF<条件1>AND(OR)<条件2>AND(OR)<条件N>THEN<结论>
规则的前提部分对应因果关系的原因,既可以是单一原因,也可以是原因的组合形式,结论对应因果关系的结果。
优选地,服务端程序完成被诊断软件系统软件构件的状态监控、诊断决策、维修决策、知识库管理以及人机交互等功能。
为了尽量减少软件故障诊断系统对被测软件系统的影响,软件故障诊断服务端程序部署在一台独立于被测软件系统的计算机上,该计算机通过局域网接入被测软件系统网络。服务端程序完成的各项具体功能包括:
状态监控:服务端程序通过客户端代理程序收集被诊断软件系统每台计算机上的软件构件运行信息,分析被诊断软件系统中构件间的依赖关系,并将软件构件运行信息以图形和表格的形式实时进行显示。
诊断决策:服务端程序通过分析收集到的软件故障诊断信息,对被诊断软件系统的故障模式进行分类识别,并根据现有的知识和一定的推理机制推断出其故障所在。
维修决策:服务端程序根据故障诊断决策过程中分析得到的故障位置、可能的原因解释以及所需要的维修保障资源进行维修决策控制。
知识库管理:完成对故障诊断知识库的编辑、检索、更新、导入和导出等功能,包括案例库的管理和规则库的管理。
人机交互:提供案例录入编辑、规则录入编辑、依赖分析、被诊断软件系统状态监控、诊断和修复信息显示等功能的人机交互界面。
优选地,客户端代理程序以开机自动运行的后台程序形式部署在被诊断软件系统的每台计算机上,完成本机软件构件的诊断信息收集和故障修复功能。
客户端代理程序获取的诊断信息包括软件安装部署信息、服务程序运行信息、进程运行信息、数据库信息、CPU和内存使用信息以及其他各种资源使用信息等。客户端代理程序启动时创建一个网络监听运行线程,并在该线程中接收处理来自服务端程序的各种故障修复命令,包括:文件修复命令、服务修复命令、进程修复命令、构件修复命令、控件修复命令和系统重启命令等。
步骤2具体如图2,包括以下步骤:
步骤2.1、客户端代理程序获取本机软件构件的安装部署信息,将安装部署信息保存为xml格式文件,然后通过TCP协议将包含安装部署信息的xml格式文件发送给服务端程序;
客户端代理程序获取的本机软件构件安装部署信息由ip地址、机器名、是否为服务器和安装的软件构件信息组成,其中软件构件信息包括:构件名称、版本、制作时间、构件类型、作者、本机依赖的构件列表、网络依赖的构件列表、可能产生冲突的构件列表以及描述等。考虑到同一台计算机上可能安装的软件构件较多,本机软件构件安装部署信息获取后首先被保存为xml文件,然后通过TCP协议将该xml文件发送给服务端程序,服务端程序综合各客户端代理获取的本机软件构件安装部署信息,形成整个被诊断软件系统的软件构件安装部署信息和依赖模型。
步骤2.2、客户端代理程序获取本机服务运行信息,将服务运行信息保存为xml格式文件,然后通过TCP协议将包含服务运行信息的xml格式文件发送给服务端程序;
“服务”是一些运行在操作系统下用户环境以外的程序,它不同于一般的可执行程序,它不需要系统登录便可以运行,以完成某些特定功能。对于某些复杂软件系统来说,许多构件都以服务的形式运行,服务信息获取是诊断信息获取的重要内容之一。服务信息获取即服务信息的枚举,获取的服务信息包括:服务名称、显示名称、服务程序的路径、服务描述信息、服务类型、启动类型、出错控制、服务的当前运行状态等。服务的可能运行状态包括:“已停止”、“正在启动”、“正在停止”、“已启动”、“正在继续”、“正在暂停”、“暂停”等。考虑到同一台计算机上运行的服务程序较多,服务运行信息获取后首先被保存为xml文件,然后通过TCP协议将该xml文件发送给服务端程序。
步骤2.3、客户端代理程序获取本机进程运行信息,将进程运行信息保存为xml格式文件,然后通过TCP协议将包含进程运行信息的xml格式文件发送给服务端程序;
进程是计算机程序运行的基本单位,是操作系统中的一个核心概念,它是对正在运行程序的一个抽象,一个进程就是一个正在运行的程序。为了区分各个不同的进程,操作系统给每一个进程分配一个ID以便识别。进程信息获取就是通过一定的方法获得当前系统运行的所有进程的ID,进而根据进程ID获得和进程相关的其他信息,包括进程的CPU和内存占用率、进程加载的DLL模块、进程所创建的线程数以及进程所对应的映像名称等。考虑到同一台计算机上运行的进程较多,进程运行信息获取后首先被保存为xml文件,然后通过TCP协议将该xml文件发送给服务端程序。
步骤2.4、客户端代理程序获取本机数据库信息,然后通过UDP协议将数据库信息发送给服务端程序;
客户端代理程序获取的本机数据库信息包括:数据库的最大连接数、当前连接数、数据库空间使用情况、数据库各项配置参数以及执行指定SQL语句的结果等。获取到的数据库信息通过UDP协议发送给服务端程序。
步骤2.5、客户端代理程序获取本机CPU和内存使用信息,然后通过UDP协议将CPU和内存使用信息发送给服务端程序;
客户端代理程序获取的本机CPU和内存使用信息包括:总体CPU使用率、总体内存使用率、客户端代理CPU使用率和客户端代理内存使用率。获取到的CPU和内存使用信息通过UDP协议发送给服务端程序。
步骤3具体如图3,包括以下步骤:
步骤3.1、在所述故障诊断与修复知识库中进行案例检索,判断是否存在匹配的案例,如果判断的结果为是,则基于所述故障诊断与修复知识库中的维修步骤表产生所述决策命令以进行故障修复,否则执行步骤3.2;
步骤3.2、激活基于规则的软件故障诊断与修复。
步骤3.1具体如图4,包括以下步骤:
步骤3.1.1、等待用户输入待检故障的案例检索条件;
步骤3.1.2、计算案例检索条件用户输入值(即,用户输入的案例检索条件)和案例库中所有案例的相似性;
案例检索主要通过比较待检故障与案例之间的相似性来实现的,因此案例检索即故障条件(故障征兆)的相似性比较。假设待检故障的故障征兆向量为X,X=(x1,x2,...xn)t,其中x1,x2,...xn为各故障征兆分量,案例库第j个案例的故障征兆向量为Yj=(yj1,yj2,...yjn)t,则当待检故障和案例的征兆向量的元素数量相等时可采用如下公式计算相似性:
&delta; h ( A , B ) = 1 - &Sigma; i = 1 n w i | A ( x i ) - B ( x i ) | .
其中,wi为第i个征兆的权值,重要性越大其值越大,A(xi)、B(xi)分别为A、B的第i个征兆分量。当待检故障和案例的征兆向量的元素数量不等采用如下公式计算相似性:
&delta; h ( X , Y ) = 1 - &Sigma; i = 1 p = min ( n , m ) w i | X ( i ) - Y j ( i ) |
式中X(i)表示待检故障征兆向量的第i个元素,Yj(i)表示案例库第j个案例的征兆向量的第i个元素,n为向量X元素的个数,m为向量Y元素的个数,p=min(n,m)取n、m两者之最小值。在案例检索时可首先采用上述两个公式计算故障征兆向量X和案例征兆向量Y的相似性,只要其相似度大于某一设定阈值,则认为案例已匹配。
步骤3.1.3、将相似性从高到低进行排序;
步骤3.1.4、判断是否存在相似性大于输出阈值的案例,如果判断的结果为是,则执行步骤3.1.6,否则执行步骤3.1.5;
步骤3.1.5、返回案例匹配失败;
步骤3.1.6、案例匹配成功,依据具有最大相似性的案例的维修步骤表进行故障修复。
步骤3.1.6具体如图5,包括以下步骤:
步骤3.1.6.1、创建基于案例的故障维修线程;
步骤3.1.6.2、将案例库维修步骤表中与案例故障编号相关的维修步骤依据操作序号进行排序;
步骤3.1.6.3、依据顺序依次取出每个维修步骤的详细信息,并根据操作类别和操作参数通过网络向客户端代理程序发送相应的维修动作命令;
每个维修步骤的详细信息包括操作类别、操作参数、操作时间和相应的资源。维修步骤详细信息存放在案例库的维修步骤表和附件表中,维修步骤可根据被诊断软件系统的特点在服务端程序中进行增加和编辑。系统支持的基本维修步骤包括:文件拷贝、文件修改、停止服务、启动服务、重启服务、启动进程、停止进程、重启进程、构件卸载、构件安装、构件重装、控件注册、控件注消、SQL脚本执行和系统重启等。
步骤3.1.6.4、使用维修步骤中的操作时间作为维修动作处理的最大等待时间,等待客户端代理程序返回维修结果;
步骤3.1.6.5、判断是否维修结果已获取或超时,如果判断的结果为是,则执行步骤3.1.6.6,否则执行步骤3.1.6.4;
步骤3.1.6.6、判断是否所有的维修步骤都已处理完成,如果判断的结果为是,则执行步骤3.1.6.7,否则执行步骤3.1.6.3;
步骤3.1.6.7、结束基于案例的故障维修线程。
步骤3.2包括以下步骤:
步骤3.2.1、进行基于规则的故障诊断;
步骤3.2.2、收集基于规则的故障诊断过程中产生的维修步骤;
步骤3.2.3、依据维修步骤进行故障修复。
步骤3.2.1具体如图6,包括以下步骤:
步骤3.2.1.1、创建基于规则的故障诊断线程;
步骤3.2.1.2、载入软件故障诊断规则描述文件;
软件故障诊断规则的具体格式如下:
(defrule<规则名>[<说明>]
<模式1><模式2>…<模式i>;左部,等价于IF后的内容
=>
<行为1><行为2>…<行为j>);右部,等价于THEN后的内容
<规则名>用符号字段代替,如果输入的规则名与一个已存在的规则同名,则新的规则会代替旧的规则;<模式>用一个或多个约束代替。
步骤3.2.1.3、依据规则文件创建并显示用户交互界面,并在用户交互界面上显示用户交互提示信息;
步骤3.2.1.4、等待用户输入交互信息;
步骤3.2.1.5、判断交互信息是否已经输入,如果判断的结果为是,则执行步骤3.2.1.6,否者执行步骤3.2.1.4;
步骤3.2.1.6、依据规则文件执行诊断操作,通过网络向客户端代理程序发送相应的诊断命令;
依据规则文件执行诊断操作过程可分为4个循环的阶段:模式匹配、冲突消解、激活规则、动作。具体为:以用户提供的已知故障现象作为初始事实,搜索规则库中前件与之匹配的规则;激活匹配到的规则并执行规则后件中的诊断动作产生新的事实;基于新的事实重新寻匹配规则库并激活规则,如此反复直至搜寻完毕。所谓的冲突消解指的是:当某一时刻出现了激活多条规则时,选择优先级最高规则进行触发。
步骤3.2.1.7、等待客户端代理程序返回诊断结果;
步骤3.2.1.8、判断是否诊断结果已获取或超时,如果判断的结果为是,则执行步骤3.2.1.9,否则执行步骤3.2.1.7;
步骤3.2.1.9、依据诊断结果和规则文件产生维修步骤;
步骤3.2.1.10、判断是否还存在可执行的规则,如果判断的结果为是,则执行步骤3.2.1.3,否则执行步骤3.2.1.11;
步骤3.2.1.11、结束基于规则的故障诊断线程。
步骤3.2.3具体如图7,包括以下步骤:
步骤3.2.3.1、创建故障维修线程;
步骤3.2.3.2、取出每个维修步骤的详细信息,并根据操作类别和操作参数通过网络向客户端代理程序发送相应的维修动作命令;
步骤3.2.3.3、使用维修步骤中的操作时间作为维修动作处理的最大等待时间,等待客户端代理程序返回维修结果;
步骤3.2.3.4、判断是否维修结果已获取或超时,如果判断的结果为是,则执行步骤3.2.3.5,否则执行步骤3.2.3.3;
步骤3.2.3.5、判断是否所有的维修步骤都已处理完成,如果判断的结果为是,则执行步骤3.2.3.6,否则执行步骤3.2.3.2;
步骤3.2.3.6、结束故障维修线程。

Claims (9)

1.一种基于知识库的软件远程故障诊断与修复方法,其特征在于,该方法包括:
A、将被诊断软件系统中各软件构件的运行条件、依赖关系、故障表现特征和修复策略进行建模和入库以形成故障诊断与修复知识库,将所述故障诊断与修复知识库存储在独立于所述被诊断软件系统的服务终端上;
B、在所述被诊断软件系统中安装客户端代理程序,在所述服务终端上安装服务端程序,利用所述客户端代理程序实时获取所述被诊断软件系统的诊断信息并通过网络将所述诊断信息传递给所述服务端程序;
C、所述服务端程序依据获取的所述诊断信息和所述故障诊断与修复知识库,进行故障诊断与修复决策以产生决策命令并将所述决策命令通过网络传递给所述客户端代理程序;
D、所述客户端代理程序执行所述决策命令,实现软件故障的诊断与修复,
其中,所述步骤C包括:
C1、在所述故障诊断与修复知识库中进行案例检索,判断是否存在匹配的案例,如果判断的结果为是,则基于所述故障诊断与修复知识库中的维修步骤表产生所述决策命令以进行故障修复,否则执行步骤C2;
C2、激活基于规则的软件故障诊断与修复,
其中,所述步骤C1包括:
C1.1、等待用户输入待检故障的案例检索条件;
C1.2、计算用户输入的所述案例检索条件和所述故障诊断与修复知识库中所有案例的相似性;
C1.3、将所述相似性从高到低进行排序;
C1.4、判断是否存在相似性大于预先设定的输出阈值的案例,如果判断的结果为是,则执行步骤C1.5,否则返回案例匹配失败;
C1.5、依据与具有最大相似性的案例相对应的维修步骤表产生决策命令以进行故障修复,
其中,所述步骤C1.5包括:
C1.5.1、创建基于案例的故障修复线程;
C1.5.2、将具有最大相似性的案例相对应的所述维修步骤表中与案例故障编号相关的维修步骤依据操作序号进行排序;
C1.5.3、依据所述排序而依次取出每个维修步骤的详细信息,并根据操作类别和操作参数产生决策命令,将所述决策命令通过网络发送至所述客户端代理程序,所述决策命令即相应的维修动作命令;
C1.5.4、使用所述维修步骤中的操作时间作为维修动作处理的最大等待时间,等待所述客户端代理程序返回维修结果;
C1.5.5、判断是否已获取维修结果或超时,如果判断的结果为是,则执行步骤C1.5.6,否则执行步骤C1.5.4;
C1.5.6、判断是否所有的维修步骤都已处理完成,如果判断的结果为是,则执行步骤C1.5.7,否则执行步骤C1.5.3;
C1.5.7、结束所述基于案例的故障维修线程。
2.根据权利要求1所述的基于知识库的软件远程故障诊断与修复方法,其特征在于,所述步骤A包括:
A1、将已解决故障的故障特征、故障原因、故障维修方法表示为计算机内部格式,形成故障案例库录入所述故障诊断与修复知识库中;
A2、将所述被诊断软件系统的软件故障领域专家经验知识以产生式规则的形式进行描述,形成故障诊断规则库录入所述故障诊断与修复知识库中。
3.根据权利要求2所述的基于知识库的软件远程故障诊断与修复方法,其特征在于,所述步骤A1包括:
A1.1、采用数据库表作为案例的计算机内部存储格式,包括案例信息表、故障信息表、故障构件表、征兆信息表、案例解释表、维修步骤表和附件表;
A1.2、案例信息表由案例名称、案例编号和案例说明组成;
A1.3、故障信息表由故障编号、故障名称、故障类别和故障等级组成;
A1.4、故障构件表由序号、构件类型、构件名称、构件前缀和构件描述组成;
A1.5、征兆信息表由征兆描述、征兆类别、征兆值和征兆权重组成;
A1.6、案例解释表由故障现象、故障原因、解决措施和维修建议组成;
A1.7、维修步骤表由操作类别、操作序号、操作参数和操作时间组成;
A1.8、附件表由资源编号、资源类别和资源数据组成。
4.根据权利要求2所述的基于知识库的软件远程故障诊断与修复方法,其特征在于,所述步骤A2包括:
A2.1、将所述被诊断软件系统的软件故障领域专家经验知识抽象为一系列的因果链;
A2.2、将所述因果链描述为直观的IF-THEN产生式形式。
5.根据权利要求1所述的基于知识库的软件远程故障诊断与修复方法,其特征在于,所述服务端程序、所述客户端代理程序和所述故障诊断与修复知识库构成一软件故障诊断与修复系统,其中:
所述服务端程序用于完成所述被诊断软件系统软件构件的状态监控、诊断决策、维修决策、知识库管理以及人机交互功能;
所述客户端代理程序以开机自动运行的后台程序形式部署在被诊断软件系统的每台计算机上,用于完成本机软件构件的诊断信息收集和故障修复功能。
6.根据权利要求1所述的基于知识库的软件远程故障诊断与修复方法,其特征在于,所述步骤B包括:
B1、所述客户端代理程序获取本机软件构件的安装部署信息,将所述安装部署信息保存为xml格式文件,然后通过TCP协议将包含安装部署信息的xml格式文件发送给所述服务端程序;
B2、所述客户端代理程序获取本机服务运行信息,将所述服务运行信息保存为xml格式文件,然后通过TCP协议将包含服务运行信息的xml格式文件发送给所述服务端程序;
B3、所述客户端代理程序获取本机进程运行信息,将所述进程运行信息保存为xml格式文件,然后通过TCP协议将包含进程运行信息的xml格式文件发送给服务端程序;
B4、所述客户端代理程序获取本机数据库信息,然后通过UDP协议将所述数据库信息发送给所述服务端程序;
B5、所述客户端代理程序获取本机CPU和内存使用信息,然后通过UDP协议将所述CPU和内存使用信息发送给所述服务端程序。
7.根据权利要求1所述的基于知识库的软件远程故障诊断与修复方法,其特征在于,所述步骤C2包括:
C2.1、进行基于规则的故障诊断;
C2.2、收集所述基于规则的故障诊断(C2.1)过程中产生的维修步骤;
C2.3、依据C2.2中的所述维修步骤产生决策命令以进行故障修复。
8.根据权利要求7所述的基于知识库的软件远程故障诊断与修复方法,其特征在于,所述步骤C2.1包括:
C2.1.1、创建基于规则的故障诊断线程;
C2.1.2、载入软件故障诊断规则描述文件;
C2.1.3、依据所述规则描述文件创建并显示用户交互界面,并在所述用户交互界面上显示用户交互提示信息;
C2.1.4、等待用户输入交互信息;
C2.1.5、判断所述交互信息是否已经输入,如果判断的结果为是,则执行步骤C2.1.6,否者执行步骤C2.1.4;
C2.1.6、依据所述规则描述文件执行诊断操作,通过网络向所述客户端代理程序发送相应的诊断命令;
C2.1.7、等待所述客户端代理程序返回诊断结果;
C2.1.8、判断是否已获取所述诊断结果或超时,如果判断的结果为是,则执行步骤C2.1.9,否则执行步骤C2.1.7;
C2.1.9、依据所述诊断结果和所述规则描述文件产生维修步骤;
C2.1.10、判断是否还存在可执行的规则,如果判断的结果为是,则执行步骤C2.1.3,否则执行步骤C2.1.11;
C2.1.11、结束所述基于规则的故障诊断线程。
9.根据权利要求7所述的基于知识库的软件远程故障诊断与修复方法,其特征在于,所述步骤C2.3包括:
C2.3.1、创建故障维修线程;
C2.3.2、取出C2.2中的所述维修步骤中的每个维修步骤的详细信息,并根据操作类别和操作参数通过网络向所述客户端代理程序发送决策命令,即,相应的维修动作命令;
C2.3.3、使用所述维修步骤中的操作时间作为维修动作处理的最大等待时间,等待客户端代理程序返回维修结果;
C2.3.4、判断是否已获取维修结果或超时,如果判断的结果为是,则执行步骤C2.3.5,否则执行步骤C2.3.3;
C2.3.5、判断是否所有的维修步骤都已处理完成,如果判断的结果为是,则执行步骤C2.3.6,否则执行步骤C2.3.2;
C2.3.6、结束所述故障维修线程。
CN201410003287.3A 2014-01-03 2014-01-03 一种基于知识库的软件远程故障诊断与修复方法 Expired - Fee Related CN103699489B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410003287.3A CN103699489B (zh) 2014-01-03 2014-01-03 一种基于知识库的软件远程故障诊断与修复方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410003287.3A CN103699489B (zh) 2014-01-03 2014-01-03 一种基于知识库的软件远程故障诊断与修复方法

Publications (2)

Publication Number Publication Date
CN103699489A CN103699489A (zh) 2014-04-02
CN103699489B true CN103699489B (zh) 2016-05-11

Family

ID=50361025

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410003287.3A Expired - Fee Related CN103699489B (zh) 2014-01-03 2014-01-03 一种基于知识库的软件远程故障诊断与修复方法

Country Status (1)

Country Link
CN (1) CN103699489B (zh)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461760A (zh) * 2014-11-28 2015-03-25 北京奇虎科技有限公司 脚本下发的方法、装置及系统
CN105740140A (zh) * 2014-12-10 2016-07-06 中兴通讯股份有限公司 软件系统故障诊断方法、服务器及系统
US20160170395A1 (en) * 2014-12-15 2016-06-16 Ge Intelligent Platforms, Inc. Case management linkage of updates, evidence, and triggers
CN105527597A (zh) * 2015-11-28 2016-04-27 广西电网有限责任公司电力科学研究院 一种配变监测终端故障诊断处理系统及其诊断方法
CN105550100A (zh) * 2015-12-11 2016-05-04 国家电网公司 一种信息系统故障自动恢复的方法及系统
CN105389745A (zh) * 2015-12-15 2016-03-09 国网北京市电力公司 设备故障属性信息的获取方法和装置
US10366371B2 (en) * 2016-01-29 2019-07-30 The Boeing Company Method and apparatus for processing service requests
CN106357774A (zh) * 2016-09-22 2017-01-25 深圳市金立通信设备有限公司 一种信息推送方法及网络设备
CN106649065B (zh) * 2016-12-09 2019-07-23 华北理工大学 一种计算机系统与应用于该系统的故障计算机替换方法
CN106875018B (zh) * 2017-01-04 2021-03-30 北京百度网讯科技有限公司 一种超大规模机器自动化维修的方法和装置
CN107341550A (zh) * 2017-05-03 2017-11-10 北京海顿中科技术有限公司 故障/隐患知识库系统和建立方法
CN107644256A (zh) * 2017-09-14 2018-01-30 郑州云海信息技术有限公司 一种基于机器学习方式形成故障规则库的方法
CN107608813A (zh) * 2017-09-14 2018-01-19 郑州云海信息技术有限公司 一种基于linux操作系统信息自动分析故障的方法
CN107679583A (zh) * 2017-10-24 2018-02-09 四川长虹电器股份有限公司 基于大数据获取故障解决方案的方法
CN109948808A (zh) * 2017-11-15 2019-06-28 许继集团有限公司 变电站设备故障案例库的建库方法、故障诊断方法及系统
CN108763037A (zh) * 2018-06-07 2018-11-06 郑州云海信息技术有限公司 一种服务器监控管理方法及装置
CN109062746A (zh) * 2018-07-27 2018-12-21 郑州云海信息技术有限公司 一种服务器管理单元的故障自诊断方法、装置及存储介质
CN109118097B (zh) * 2018-08-21 2021-06-15 陈志诚 一种可靠性维修性保障性评估方法和装置
CN109471888B (zh) * 2018-11-15 2021-11-09 广东电网有限责任公司信息中心 一种快速过滤xml文件中无效信息的方法
CN109343514A (zh) * 2018-11-21 2019-02-15 杭州德馨汽车服务有限公司 人工智能型汽车空调的诊断系统
CN109726214A (zh) * 2018-12-26 2019-05-07 国电南瑞科技股份有限公司 一种设备故障处置辅助决策方法和系统
CN111385613B (zh) * 2018-12-29 2022-07-08 深圳Tcl数字技术有限公司 一种电视系统修复方法、存储介质及应用服务器
CN110162978A (zh) * 2019-05-16 2019-08-23 合肥优尔电子科技有限公司 一种终端安全风险评估管理方法、装置及系统
CN110135598A (zh) * 2019-05-16 2019-08-16 兰州交通大学 一种基于知识服务的高速铁路电务维护辅助系统
CN110262968A (zh) * 2019-06-10 2019-09-20 天翼电子商务有限公司 提升应用故障定位效率的方法、系统、介质、及电子设备
CN111475411A (zh) * 2020-04-01 2020-07-31 苏州浪潮智能科技有限公司 一种服务器问题检测方法、系统、终端及存储介质
CN111930095B (zh) * 2020-07-23 2021-12-07 航天科工空间工程发展有限公司 一种基于低轨卫星的故障诊断处置方法、计算设备及系统
CN112181805B (zh) * 2020-09-02 2024-05-17 上海赛可出行科技服务有限公司 一种移动应用远程诊断及热修复方法
CN113010368A (zh) * 2020-11-13 2021-06-22 北京沃东天骏信息技术有限公司 用于生成信息的方法和装置
CN112732520B (zh) * 2020-12-30 2024-04-12 中国人民解放军32181部队 一种装备运行监控软件的故障处理方法及系统
CN112926756A (zh) * 2021-04-15 2021-06-08 重庆中源绿蓝环境科技有限公司 一种中央空调设备ai维修知识库应用方法
CN113949571B (zh) * 2021-10-18 2023-12-22 安天科技集团股份有限公司 一种基于行为特征知识库的软件行为识别方法及系统
CN113836044B (zh) * 2021-11-26 2022-03-15 华中科技大学 一种软件故障采集和分析的方法及系统
CN115225370B (zh) * 2022-07-18 2023-11-10 北京天融信网络安全技术有限公司 一种规则库优化方法、装置、电子设备及存储介质
CN116910585B (zh) * 2023-09-15 2023-12-05 中国长江电力股份有限公司 基于相似故障案例集的生成水电设备故障诊断规则的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10149287A (ja) * 1996-09-17 1998-06-02 Toshiba Corp 情報処理装置、情報処理方法及び記録媒体
CN102622510A (zh) * 2012-01-31 2012-08-01 龚波 一种软件缺陷量化管理系统和方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10149287A (ja) * 1996-09-17 1998-06-02 Toshiba Corp 情報処理装置、情報処理方法及び記録媒体
CN102622510A (zh) * 2012-01-31 2012-08-01 龚波 一种软件缺陷量化管理系统和方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
信息化装备软件故障定位模型构建;张文阁等;《信息科学与控制工程》;20130831;第100-102页 *
软件系统的远程故障诊断与维护技术研究;张泳;《中国优秀硕士学位论文全文数据库 信息科技辑》;20111215;第I138-582页 *

Also Published As

Publication number Publication date
CN103699489A (zh) 2014-04-02

Similar Documents

Publication Publication Date Title
CN103699489B (zh) 一种基于知识库的软件远程故障诊断与修复方法
US11354219B2 (en) Machine defect prediction based on a signature
Lou et al. Software analytics for incident management of online services: An experience report
CN109271272B (zh) 基于非结构化日志的大数据组件故障辅助修复系统
Klein et al. Attribute-based architecture styles
US20200371857A1 (en) Methods and systems for autonomous cloud application operations
CN107533504A (zh) 用于软件分发的异常分析
CN101753382B (zh) 一种自适应网络故障监控定位安全模型的构建方法
WO2012104488A1 (en) Arrangement and method for model-based testing
CN105740140A (zh) 软件系统故障诊断方法、服务器及系统
CN110032463B (zh) 一种基于贝叶斯网络的系统故障定位方法和系统
CN112487592B (zh) 基于贝叶斯网络的任务可靠性建模分析方法
US11415975B2 (en) Deep causality learning for event diagnosis on industrial time-series data
CN112379325A (zh) 一种用于智能电表的故障诊断方法及系统
WO2022150012A1 (en) Method and system for fault detection and diagnostic for a building management system
CN112699048B (zh) 基于人工智能的程序故障处理方法、装置、设备及存储介质
Karray et al. Towards a self-healing approach to sustain web services reliability
CN114819925B (zh) 基于事件序列分析预测的工业物联网系统及其控制方法
Blanco-Muñoz et al. Towards higher-order mutant generation for WS-BPEL
CN113284599A (zh) 一种基于云边协同的智能药房自诊断和自修复系统及方法
Ma et al. Conceptually understanding uncertainty in self-healing cyber-physical systems
Last Data mining for software testing
Tadano et al. Automatic synthesis of SRN models from system operation templates for availability analysis
Liu et al. Verification for the predictability of decentralized discrete event systems with a polynomial complexity
Lamperti et al. Diagnosis of active systems by automata-based reasoning techniques

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160511

Termination date: 20170103