首页 理论教育 基于模型的诊断方法在Web服务组合应用中的应用

基于模型的诊断方法在Web服务组合应用中的应用

时间:2026-01-26 理论教育 版权反馈
【摘要】:基于模型的诊断方法,利用已知的Web服务描述关于服务结构、功能和行为的信息去构建待诊断的Web服务进程模型或故障模型。基于模型的诊断方法不仅能够识别故障的组件,而且能够对故障的传播路径提供一种解释。2005年,Ardissono等[61]首次在Web服务组合中应用基于模型的诊断方法。Li等[115]在Ardissono等人研究工作的基础上提出一种基于有色Petri网的Web服务故障诊断方法。基于这个问题,他们提出了一种在知识不完备条件下的故障诊断方法。

目前,依据服务故障的特性,研究者们已经提出了许多服务故障的诊断框架[79-91]和检测、诊断及修复方法[76,92-114]。根据可获取的先验知识,针对Web服务的故障诊断方法主要包括两大类:基于模型的故障诊断方法和基于历史数据的故障诊断方法。

基于模型的诊断方法,利用已知的Web服务描述关于服务结构、功能和行为的信息去构建待诊断的Web服务进程模型或故障模型。这种方法提供了一种独立于进程的诊断推理过程,进而判断组合服务中哪些组件服务的不正确行为解释了给定的观察异常。基于模型的诊断方法不仅能够识别故障的组件,而且能够对故障的传播路径提供一种解释。

2005年,Ardissono等[61]首次在Web服务组合中应用基于模型的诊断方法。之后,不少研究者对Web服务故障诊断分门别类地进行研究,这些工作本质上都是基于模型的,有的使用自动机模型,有的使用Petri网,有的使用概率图模型。代表性的工作包括Ardissono等[61]的基于分层诊断模型的服务故障诊断方法及其改进,Li等[115]的基于有色Petri网的服务故障诊断方法,Yan等[116]的基于同步自动机的服务故障诊断方法,以及Mayer等[117]的知识不完备条件下的服务故障诊断方法。

例如,Ardissono等[118]提出了一个基于分层诊断模型的Web服务故障诊断方法。全局诊断器负责调用与故障引发相关的局部诊断器来诊断对应的服务内部是否发生故障或进一步推断发生故障的服务。当一个异常从某服务抛出,全局诊断器要求该服务对应的局部诊断器接收并解释该异常,局部诊断器分析异常并将其推测提供给全局诊断器。该推测可能是该服务内部行为故障或另一个服务发送给该服务一个异常的输入,也可能是对该服务输出值的预测。全局诊断器可根据这个预测要求该服务对应的局部诊断器验证预测是否发生或做进一步预测。2006年Ardissono等[119]在以上工作的基础上提出在检测出故障原因后如何调用相应的故障处理器对故障进行处理,以加强Web服务的故障管理能力。Bocconi等[120]对该诊断方法进行分析,判别给定信息集是否具有精确定位故障点及原因的能力。2008年Ardissono等[121]进一步改进了他们的服务故障诊断方法,提出一个通过诊断推理机制将处理器的执行与异常诊断器绑定,直接调用故障源处理器达到处理故障的目的。该方法的优点在于可将诊断任务分化,提高诊断的效率,并保证了Web服务的私有性,同时可分析出故障原因;缺点在于当服务粒度过大时,所有的Web服务都可能是故障起因,都需要进行局部诊断,导致诊断工作量过大,诊断效率降低。

Li等[115]在Ardissono等人研究工作的基础上提出一种基于有色Petri网的Web服务故障诊断方法。该方法利用本地诊断器转化服务模型和它的故障模型成为一个有色Petri网,然后应用Ardissono等[61]提出的3种依赖关系,关联每一个依赖关系与一个颜色繁殖函数以表示数据状态(故障、正常或未知)。根据给定的颜色繁殖函数,诊断服务迭代地计算诊断结果直至与给定的观察结果最终一致。该方法的优点在于将诊断任务交给每个服务对应的局部诊断器来进行,既保证了不同服务之间的私有化,又减少了全局诊断器的诊断压力,而且利用Petri网描述服务进程简明清楚,便于故障路径的回溯分析,易于对故障进行定位。然而,该方法的正确性取决于故障模型的完整性,因此当一个不可预知的故障发生时,该方法无法做出准确的诊断。而由于网络的动态性和不可预知性,故障往往是无法事先预知的。

Yan等[116]将Web服务组合的业务流程转换为同步自动机,对Web服务组合进行形式化建模。对观察路径与系统路径这两个自动机进行同步,找出进程的执行轨迹,并根据规则“抛出异常的事件本身可能是故障”及“给出异常输入的事件可能是故障”来分析轨迹上的事件,找出可能的故障事件。该方法假设故障能够通过执行期间的观察和进程模型之间的不一致来表示,然而,不完整的进程模型可能导致该方法的诊断能力下降。(https://www.xing528.com)

Mayer等[117]指出,基于不一致性的诊断往往受到可获取的有限的知识(如不完备的行为描述)的限制。基于这个问题,他们提出了一种在知识不完备条件下的故障诊断方法。该方法在构建的诊断模型中预定义一个行为集合和一个条件集合。行为集合描述的是必须包含在行为关系中及必须被禁止的输入、输出集合,条件集合描述的是对活动行为具有决定性且不受其他活动影响的条件判定。根据预定义的行为与条件集合,使观察集在排除产生的故障集合后满足预定义的行为和条件集合,并利用唯一的符号来表示未知的值,继而进一步验证产生的故障集。该方法的好处就是对问题的约束条件较少,可同时对多个故障进行诊断;缺点是必须预定义符合正确执行过程和不满足正确性的行为及规则集合,而且该方法需要进程重复执行进而获得观察值,然而服务运行期间发生的故障往往是无法在一个小规模配置中再次重现的。

夏永霖[122]提出了一个基于贝叶斯网络的故障诊断方法,通过将Web服务组合模型转换为贝叶斯网络,利用Web服务信誉(技术人员依据经验给出)和对历史运行数据进行学习的方法分别对贝叶斯网络中服务节点的先验概率以及服务输出节点的条件概率进行赋值,然后根据给出的诊断算法找出故障原因。这种方法的优点是可快速诊断故障发生位置,即使是在模型不完备或存在不确定性的情况下;缺点是对服务信誉值和历史运行数据依赖较大且需要人工介入。

范贵生等[123]根据服务组合运行时可能出现的服务运行失败、组件运行故障和网络故障3种情况的分析,采用Petri网来描述服务组合的故障处理模型,根据服务组合的特点和需求对服务组合的执行过程进行建模以获得服务组合的故障模型;再采用CTL(Computation Tree Logic,计算树逻辑)描述故障模型的相关性质,然后根据服务组合故障分析算法判断服务组合的正确性、可靠性,通过分析反例得到故障点。这种方法的优点是通过仿真实例验证了故障处理框架及算法的有效性,不过其缺点在于仅可以对所考虑到的故障进行分析、处理,缺少对未知故障发生后的分析处理能力。

Wang等[124-127]提出了一个在网络企业级系统中集成监控、诊断与适应性服务的服务级管理的新方法。在此基础之上,探讨了两层贝叶斯网络模型优于3层贝叶斯网络模型的原因。附加的辅助层改变了上下层节点间的条件依赖关系,在两个模型中不同的概率参数集合和在3层模型中中间节点的存在使得模型更易于产生错误概率评估;而且两层贝叶斯网络模型复杂度低,易于建模。Wang等给出了一个基于贝叶斯网络模型的基本的Web服务诊断过程:首先预先设定相关节点为贝叶斯网络模型中的诊断目标,考虑一定时间内的相关数据记录,相关事件数据被从监控数据库中读取或直接从相应时间内的警告信息中获得,之后事件数据被放入贝叶斯网络模型中,相应的证据(观测到的或读取出的警告)也被放置进去,接着调用jointree推理算法对信任进行更新,最后可能的故障原因被输出。该诊断系统的发展是基于SMILE推理工程及jointree算法(诊断推理算法)的。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈