基于诊断和修复事件日志的模型的制作方法

文档序号:6650901阅读:150来源:国知局
专利名称:基于诊断和修复事件日志的模型的制作方法
技术领域
本发明涉及用于隔离例如NMR装置之类的软件控制装置中的硬件或用户错误的系统和相关的方法。
背景技术
包含多种组件的软件系统经常使用日志数据库来跟踪系统和组件的运行以达到诊断的目的。“事件日志”可以用于按时间顺序来储存由系统中不同的软件组件产生的事件。软件组件可以产生事件以响应其内部状态和来自例如其他软件模块、硬件、或用户的激励的某些结合。
日志事件典型的属于三类中的一种当错误被发现或异常的和不期望的事情发生时产生的“错误事件”;“作为表明系统方面运行正常的信息产生的成功事件”;以及作为表明某些信息事情发生的信息产生的“信息事件”。
还可以为事件分配一个严重等级。例如,不同的错误事件可以具有不同的严重等级。成功事件和信息事件通常表明具有比错误事件更低的严重级别。
事件日志也会随着具有不同的访问级别而中止。例如,只有系统管理员可以访问某些安全日志(“内部事件日志”)或者部分的日志或事件(例如安全入侵等等),然而软件组件用户可以访问多种日志(“用户事件日志”)或关于各自软件组件运行的日志部分。
对于用户,用户事件日志示出了内部事件日志的过滤版本。内部事件日志的过滤的目的是为了避免给用户示出不相关的或者多余的信息。用户事件日志只示出特定的危险程度等级的事件(该等级是可配置的等级)。事件在用户事件日志里显示直到用户应答它们。只要用户事件日志包含至少一个未应答的事件,用户界面就会示出一个特殊的图标。用户事件日志以反向的时间顺序示出过滤的事件,以便最近的一次显示在列表的顶端。使用一个单独的用户界面,用户可以观看全部的用户事件日志,即还包括应答的事件的用户日志。当接收到成功事件的时可以自动应答在用户事件日志中的事件。
内部事件日志(为系统人员)和用户事件日志(为用户)都是为帮助诊断系统中的问题而提供。
然而,这种日志文件的问题是,用户事件日志示出太多的事件或者不是最相关的事件。引起用户注意的每个重大问题可能产生多于一个的事件。因为事件是按时间顺序地示出,所以最重要的事件并不是必然的处在顶端。
此外,在这种系统中,为每个事件示出的说明文本描述了问题的成因,但是事件成因文本是静态的并且不会被其它事件影响。一些事件可能具有不同的成因。因为说明是静态的,所以其必然或者是描述全部的可能性,或者忽略的一些或全部成因。这点尤其是当在用户事件日志中出现多个事件时,由于冲突、冗余或者不充分的信息导致混淆。
为每个事件所示的说明文本可以描述相应的、解决这个问题的修复行为。问题是,事件行为文本是静态的并且不受其它事件的影响。对于某些事件而言,由于适当的修复行为依赖于附加的信息而无法指定单个修复行为。由于说明是静态的,因而它必须描述所有的可能性,或者省略一些或全部的修复行为。尤其是当在用户事件日志中出现多个事件时,由于冲突、冗余、或者不充分的信息这也可能是混淆的。
自动执行修复行为的软件很缺乏。一些问题可以用软件程序来修复。如果可以自动发现诊断、或者当用户应答时可能允许运行,就可以自动地执行这种修复行为。
需要通过试图分析多个事件来诊断的软件。一些问题只能通过考虑多于一个的事件或者附加的信息才能得到最后诊断。
内部事件日志不总是包含用于最后诊断的足够信息。如果其它信息源也可以用于诊断目的的话,这可以是有用的。这种信息源可以是日志文件、数据或者程序模块状态信息。
在一些情况下,可以通过调用测试函数来自动采集最后诊断所需的附加信息。这种可能性目前不存在。技术问题就是找出应当何时调用这种测试函数。由于性能原因,例如为每个所接收的事件都执行这些函数是不合理的。
用于最后诊断所必需的信息不可能总是不受来自用户的干预而自动地采集。一些事情仅仅可以或者最容易由用户来检查。如果诊断软件提示或者接收人工测试结果,那么可以改善系统的诊断能力。
在现代微软公司的产品中的一些向导程序(Wizard)是有效诊断工具的实例。通过一系列用于采集信息和导向追踪问题成因的对话来引导用户。
众所周知,在事件日志中事件是通过严重性来分类的,并且最严重的事件表示在列表的顶端。通常根据需要可以应答事件并且随后将其移动到历史列表以便后续分析。

发明内容
本发明的目的是隔离出软件控制装置诸如NMR装置中的硬件或用户错误。本发明通过将诊断函数增加到用户事件日志中来达到这个目的并解决先前所述的问题。本发明能够替代内部事件日志和用户事件日志之间的过滤,或者能够除用户事件日志之外采用其。
如下执行信息源的分析搜索事件日志历史以寻找模型;此外,问题/测试给出用于扩展模型的进一步信息;此外,建议修复行为。
本发明可选实施方式根据实现方法增加了提问用户手动测试结果,或者接收手动测试结果的功能。本发明另一实施方式允许诊断函数自动地调用测试函数以采集最后诊断必需的更多信息。本发明另一实施方式是允许诊断函数自动调用修复行为来解决问题。
该方法有利地适用于广泛的技术装备。仅有的前提是系统软件生成事件并将事件存储在事件日志中。本发明尤其适用于医疗系统软件。它可以毫不费力地集成到现有软件中;所需软件小而且可以在分离地软件模块中实现。对用户接口的改变小并且隔离到事件日志。它由易于更新的模型的控制。由于无需对程序代码作出改变,因而将更新的模型分配到客户系统是可行的,包括当这些系统涉及医疗设备时。从远程位置更新模型使得可以快速和廉价地在全球分配改进措施是可行的。
即使利用不完整的模型该系统也是有用的,并且甚至能够利用空模型进行工作;然后诊断能力就会降低到就好像没有使用本发明的纯事件日志的状态。诊断质量可以通过扩展模型得到逐步地提高。随着系统使用的经验增加,可以扩展模型以改善诊断能力。


参考在附图中描述的各种实施方式和在下面更加详细的描述,更加详细地解释本发明。
图1是说明主要系统组件的框图;图2是示出模型(pattern)、成因和修复之间的关系的框图;图3是说明通过系统的事件流的框图;图4是说明涉及事件序列、诊断、测试和修复行为的概率的分配的框图;图5是说明利用可能的用户显示器和查询机制使用事件过滤器和诊断软件的框图;图6是说明本发明实施方式的流程图。
具体实施例方式
图1说明包含在本发明实施方式中的主要组件。系统包含硬件组件12和软件组件14两方面。涉及硬件12、软件14、和用户16的事件行为都存储在使用日志20中。在公知系统中,事件日志历史20部分地(过滤地)显示给用户16,但是在所附的过滤器中并几乎不存在任何智力,除了如果错误随后得到校正并且生成成功事件,那么先前的错误将不再显示。
下面,定义以下术语,并参照附图中的参考符号。


一种“因果关系模型”(图2)用于将“根成因”26(成因1,成因2,成因3)与“(扩展的)与根成因相关的模型”24(模型1,模型2,模型3)相联系。为了隔离“根成因”26,将事件日志历史20匹配在模型24上。估计概率Pi-Pn并且询问用户16附加的问题,以便使搜索尽可能集中。提供基于问题和测试22、从硬件和用户接收的信息以便做出决定。最终,可以根据所接收的信息22,模型24、成因26和概率Pi-Pn建议“修复行为”28(修复1,修复2,修复3)。
优选地由是/否问题组成的询问用户的实例,可以包括“您将连接器A插入端口B了吗?”或者“您在调整期间将设备正确定位了吗?”。
可以执行的硬件测试(例如,除在美国专利申请No.2004/0153819中描述的测试模型之外),其包括软件测试程序1)是/否回答中的结果,或者2)提取除其它涉及并描述运行系统的日志文件之外的进一步信息。
在事件历史中的简单事件在与一些问题的响应耦合到一起时可以形成一个模型。例如,本地线圈错误模型可以与事件日志历史中各种各样不同的事件混合,例如,1)“不知道线圈”-软件层A中的错误事件;2)“无法测量”-在软件层B中的错误事件;3)“由NMR扫描仪终止的测量”-在(顶部)软件层C中的错误事件。在该实例中,将过滤的错误事件展示给用户“本地线圈错误-本地线圈无法探测”。可能的原因是本地线圈a)破损;b)连接不良;c)系统还不知道(供应商的新线圈)。
确定线圈是否连接、破损等等的可能测试可以是“电压测试”。问题可能包括1)“您插入线圈了吗?”(其会请求是/否的响应);2)“这是标准(商标X)线圈吗?”(“是”响应会调用修复行为“调用服务”,而“否”响应会调用修复行为“安装新线圈”)。
以下是更详细的描述。以下描述的本发明各种实施方式具有两部分数据模型和算法。数据模型存储特定用于某个系统的信息。另一方面,算法是一般的并在所有系统上一样地保留。
数据模型数据模型是具有四种主要结点类型的网络模型事件序列,测试,诊断,和修复行为。网络模型的边缘描述结点之间的依从性。相关依从性是事件-诊断依从性,测试-诊断依从性,和诊断-修复依从性。
事件序列结点表示其估计为真(1)或者假(0)的表达式。可用于本发明的特别适合的表达式类型是“正规表达式”。当且仅当内部事件日志中的事件序列可以匹配表达式的模型时正规表达式估计为真。正规表达式可以得到非常有效的估计。一旦接收到完成正规表达式的模型的第一事件,事件序列结点表达式就为真。一般地,将正规表达式公式化,以便当接收到例如成功事件的另一个事件时它再次估计为假。在本发明的实施方式中,可以扩展正规表达式以同时处理事件间的时间约束条件。
在本发明实施方式中,也可以在事件序列结点中估计其它信息源。这种信息源例如是系统维护的其它形式的日志文件、配置文件、和数据库。
测试结点代表可以执行的测试以采集提高决定性诊断概率的信息。可以说测试结点具有类所于事件序列结点的表达式,估计为真(1)或假(0)。“真”意味着测试是肯定的,“假”意味着测试是否定的。有两种主要类型的测试手动的和自动的。手动测试由提问用户、可以通过回答“是”或“否”的问题组成。根据语境,必须指定哪一个答案对应于肯定的测试结果。可以由系统本身在无需与用户交互的条件下执行自动测试。
在本发明实施方式中,可以将事件序列代码表达式和测试结点表达式估计为介于零和一之间的值,表示相信该表达式为“真”的程度。接近一的值是“几乎真的”,而接近零的值是“几乎假的”。该值可以解释为事件序列结点为真的概率。
诊断结点包含文本描述,其指定当诊断正确时出现什么问题。使用事件诊断和测试诊断依赖型来估计诊断是否正确。结果是介于零和一之间的值,其可以解释为诊断正确的概率。每个事件诊断和测试诊断的依赖性都具有加入估计的两个特性。第一个特性是依赖性的“极性”,也就是说,来自估计事件结点或测试结点的结果是否应当反转。第二个特性是依赖性的权值。在本发明(使用贝叶斯定理网络)的一些实施方案中,当诊断正确时权值可以解释为事件结点或测试结点估计为真(首次考虑极性)的概率。在这种情况下,权值必须在零和一之间。通常对于每个诊断存在多于一个的事件诊断和测试诊断依赖性。
修复结点表示相信来处理由诊断结点描述的问题的一种行为。由两种主要类型的修复结点,手动的和自动的。手动修复结点是规定如何改正问题的文本描述。自动修复结点表示可以由系统执行以自动改正问题的函数。该诊断-修复依赖性具有权值特性。在本发明一些实施方式中,权值可以解释为修复结点表示处理诊断所描述的问题的正确途径的概率。一个修复结点可以是对于多于一个的诊断的处理。
算法本发明的算法可以用如图6所说明的流程图来描述。在步骤S1中,算法等待(例如,循环或者同步)下一个事件或者直至用户改变手动测试结果。在步骤S2中,如果新事件导致任何事件序列代码改变值,或者如果手动测试结果改变了,那么执行下一步骤S3,否则算法返回步骤S1。
在步骤S3中,算法计算每个诊断正确的概率。对此特别适合的方法是贝叶斯定理网络模型。在步骤S4中,如果无法发现单个最后诊断,那么算法寻找对于诊断候选的未答复测试,否则,算法前进到步骤S7。
在步骤S5中,算法执行任何所选的自动测试,并且在步骤S6中,它为用户展示最有可能在诊断候选项之间进行区分的手动测试。
在步骤S7中,算法将可能带有其各自的概率的诊断候选项展示给用户。在步骤S8中,算法计算每个修复行为适用的概率。在步骤S9中,算法执行所有具有特定阈值之上的概率的自动修复行为。在步骤S10中,算法将可能带有其各自的概率的最可能的修复行为展示给用户。然后重复整个过程。
最好通过实例来说明上述发明的各种实施方式。
图3示出如何在系统中生成和处理事件的实例。软件模块14(m1,m2,m3,m5,m8)生成事件并按照时间顺序存储在内部事件日志20.1中。由于软件结构,单个问题会导致多个事件。例如,如果存在来源于硬件组件c1的问题(通过c5探测),那么这首先由软件模块m1探测到,生成事件e12。软件模块m2取决于来自m1的结果,如果有该问题则无法完成其工作;因此,模块m2生成事件e4。同样,软件模块m3取决于来自模块m2的结果,如果有该问题则生成事件e6。所有这些事件都存储在内部事件日志20.1中。
事件过滤器32在将事件提供给用户事件日志20.2之前过滤这些事件。如图3所举例说明的,过滤器32首先仅仅让错误事件通过。其次,由成功事件e5自动地确认错误事件e2。
图4示出所使用模型的实例。假设贝叶斯定理的网络实施方式中,例如图4说明当诊断d1正确时,事件序列en1具有0.7的发生概率。同样,当诊断d1正确时,事件序列en2具有0.8的发生概率。由于诊断d1是正确的,因而当测试肯定时测试t1具有概率0.9,而当测试否定时测试t2具有概率0.9。
同样的,当诊断d1正确时修复行为r1对应于0.8的概率。一些修复行为对于多于一个的诊断而言是通用的。这种共享修复行为在无法找到决定性诊断、但是候选诊断具有相同的修复行为的情况下尤为相关。
图5示出可以使用的可能的用户接口。除了用户事件日志20.2之外,示出了分离的诊断表36,其包含可以带有正确诊断的概率诊断消息d1,d2,以及可以提供以提高正确诊断的概率的手动测试t1,t2。测试t1,t2可以例如通过选择适当的选项来在表36中直接得到回答。当事件序列结点改变值时或者当手动测试得到回答时,可以更新诊断表36。
为了促进对本发明原理的理解,在附图中说明的优选实施方式中作出了参考标记,并且使用特定语言来描述这些实施方式。然而,无意通过这种特定语言限制本发明的范围,并且对本领域技术人员而言,本发明应当被构建以包含所有的实施方式。
可以根据功能块组件和各种处理步骤来描述本发明。这种功能块可以由任意数目的配置以执行特定功能的硬件和/或软件组件来实现。例如,本发明可以采用能够在一个或多个微处理器或其它控制设备的控制下执行各种功能的各种集成电路组件,例如存储元件、处理元件、逻辑元件、查找表等等。类似地,在利用软件编程或者软件组件来执行本发明元件之处,可以利用诸如C,C++,Java,汇编等等之类任何编程或脚本语言,利用合并数据结构、对象、处理、程序或其它编程元素所实现的各种算法,来实现本发明。此外,本发明可以采用用于电子设备配置、信号处理和/或控制、数据处理等等的任意种常规技术。
在此所示出和描述的特定实施方式是本发明的示意性实例,并不用于以任何方式限制本发明的范围。为了简洁起见,将不再详细地描述常规电子设备、控制系统、软件开发和系统的其它功能方面(以及系统个别操作组件的组件)。此外,在所示各个附图中所示地连接线,或连接器意图表示示意性功能关系和/或各种元件之间的物理或逻辑的耦合。应当注意的是,可以在实际设备中存在许多替换或附加的功能关系,物理连接或逻辑连接。此外,除了该元件特别地描述为“必须”或者“关键的”之外,没有项或者组件在本发明的实施中是必须的。在不脱离本发明精神和范围的前提下,各种修改和改进对本领域技术人员而言是显而易见的。
权利要求
1.一种使用记录的事件和因果关系模型来隔离出软件控制的装置中的硬件或用户错误的方法,所述因果关系将至少一个根成因与事件的至少一个与根成因相关的模型相联系,包含记录一系列事件;通过将事件与至少一个与根成因相关的模型相比较来估计一系列事件,从而产生匹配的模型;确定匹配的模型的最佳匹配;以及指定涉及错误的最佳匹配模型的根成因。
2.根据权利要求1所述的方法,其中,一个与根成因相关的模型包含由错误事件、信息事件、和成功事件组成的组的事件。
3.根据权利要求1所述的方法,还包含通过与用户交互获得用户提供的附加信息;以及在一个与根成因相关的模型中使用用户提供的附加信息。
4.根据权利要求1所述的方法,还包含通过测试带有测试程序的装置来获得测试提供的附加信息;以及在一个与根成因相关模型中利用该测试提供的附加信息。
5.根据权利要求4所述的方法,其中,一个与根成因相关的模型与多于一个根成因的概率因子相关。
6.根据权利要求1所述的方法,其中,因果关系模型附加地包含与至少一个根成因相关的至少一个修复行为,该方法还包括在隔离出错误之后为用户提供所选择的修复行为。
7.根据权利要求6所述的方法,其中,至少一个修复行为与多于一个根成因的概率因子相关。
8.根据权利要求6所述的方法,其中,至少一个根成因与多于一个修复行为的概率因子相关。
9.根据权利要求6所述的方法,还包含自动地执行所选择的修复行为。
10.根据权利要求6所述的方法,还包含提示用户以手动地执行所选择的修复行为。
11.根据权利要求1所述的方法,还包含使用贝叶斯定理网络以便确定概率因子的权值。
12.根据权利要求1所述的方法,还包含使用事件过滤器以过滤用于展示给用户的事件。
13.一种隔离出软件控制的装置中的硬件或用户错误的系统,包含装置的事件记录在其中的事件日志;包含对各种问题或状态可能的根成因的列表的表格;诊断模块,配置以实现因果关系模型,所述模型通过对一系列事件产生匹配的与根成因相关模型将来自表格的至少一个根成因与至少一个与根成因相关的事件模型相联系,确定匹配模型的最佳匹配,并指定涉及错误的最佳匹配模型的根成因。
14.根据权利要求13所述的系统,还包含作为部分诊断模块的贝叶斯定理网络,配置来确定概率因子的权值。
15.根据权利要求13所述的系统,其中,事件日志包含内部事件日志;以及用户事件日志;该系统还包含事件过滤器,过滤该内部事件日志以产生用户事件日志。
16.根据权利要求13所述的系统,还包含修复行为的表格,配置诊断模块以便将至少一个修复行为与至少一个根成因相联系。
17.根据权利要求16所述的系统,还包含自动修复模块,配置来执行修复行为。
全文摘要
一种用于隔离例如NMR装置之类的软件控制装置中的硬件或用户错误的系统和相关的方法。将诊断函数增加到事件日志中,其使用因果关系模型来分析事件日志。通过将事件与多个与根成因相关模型中的至少一个相比较来估计事件日志中的一系列事件,并且将这些模型的最佳匹配用于分配给错误的根成因。可以根据概率模型来联系各种修复行为。可以使用附加信息来修改或改善与成因和/或修复行为相关的各个概率。该附加信息可以使用其它自动诊断信息,或者可以向用户查询附加信息。
文档编号G06F11/00GK1763720SQ20051012496
公开日2006年4月26日 申请日期2005年9月30日 优先权日2004年9月30日
发明者托德·比约斯恩 申请人:西门子公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1