论文部分内容阅读
随着Web服务技术的不断发展,大规模服务应用的成功部署,服务计算的动态性、开放性、自主性和社会性对如何保证服务应用软件的质量提出了诸多挑战。而对于开放环境下Web服务应用的最大挑战之一就是如何根据在服务运行期间观测到的症状或抛出的异常快速准确地找到问题服务,分析出故障发生的原因,进而帮助服务引擎快速排除故障恢复正常运行。在分析对比现有Web服务故障研究的基础上,本文围绕模型的不完备性、诊断的不确定性和复杂性等问题展开工作,具体包括:(1)提出一个开放环境下的Web服务诊断框架。该框架应用服务异常处理器去收集服务诊断信息,捕捉异常,选择恰当的诊断服务对故障服务进行诊断,并根据诊断结果从修复器中获得相应的修复策略保证服务的正常运行。(2)提出一种基于完备BPN模型的择优诊断方法。该方法通过Petri网形式化构建完备BPN模型,再使用历史数据计算行为故障概率优化诊断过程。实验对比分析表明该方法的诊断准确率和诊断效率均优于传统方法。(3)提出一种基于服务依赖图的统计诊断方法。通过构建描述行为依赖关系的轻量级服务依赖图模型,应用历史数据作为测试用例辅助诊断组合流程定义中的故障,根据故障类型确定故障原因。与传统的Web服务诊断方法相比,该方法的计算复杂度低,对各种规模和复杂度的Web服务都具有较高的诊断准确性。(4)提出一种基于服务执行矩阵的贝叶斯诊断方法。该方法使用历史数据构建服务执行矩阵,通过诊断推理方法获取诊断候选并利用贝叶斯公式计算候选故障概率确定系统故障。相比于传统基于模型的Web服务诊断方法,该方法不仅可以同时定位多个故障,而且能够随着历史数据的增加不断优化诊断结果。(5)提出一种基于隐马尔科夫模型的差异比较诊断方法。该方法通过加权方式结合多种诊断信息构建隐马尔科夫模型,应用其解码思想找出与异常执行序列最匹配的正常执行序列进而定位服务故障,可以解决系统模型不完备和历史数据中存在噪音数据这一实际问题。通过实验验证,该方法应用包含不同噪音比例的诊断信息进行诊断,其诊断准确性均高于传统的服务故障诊断方法。