论文部分内容阅读
为了适应开放、动态和多变的Internet环境,网构软件成为了旨在实现网络环境下计算资源共享和集成的一种新型软件形态。在网构软件开放协同模型中,软件系统的各软件实体以软件服务的形式存在于网络节点之上,通过独立的集成机制实现协同。由于各软件服务的分散交互所带来的复杂性导致了系统可靠性和可用性的降低,因此针对网构软件系统存在的故障隐患,如何实现软件服务运行过程的故障检测与定位,以支持后续的故障恢复过程,从而提高系统的自治愈能力成为近年来的重要研究问题。本文主要围绕软件服务的故障检测与诊断问题,分别针对服务行为模型的构建、基于模型的故障检测与诊断、故障路径检测与定位、基于日志分析的故障诊断等方面进行了研究。其中主要工作和创新性贡献如下:
1.提出了基于动态描述逻辑(DDL)的故障检测与诊断方法。该方法根据服务流描述利用DDL为流程行为建模,并将服务流运行信息转化为DDL公式序列的表示形式,继而在DDL逻辑推理基础上执行相应的故障检测与诊断算法,通过诊断推理返回故障相关信息。为了提高实时诊断的效率,进一步给出了基于DDL的增量式诊断算法。
2.提出了基于扩展有限状态自动机(EFSM)的分布式故障路径检测与定位方法。利用EFSM在细粒度层次上为服务系统中各构件服务建立行为模型,根据监测到的运行事件序列,检测和定位各构件服务行为模型中的执行路径,当检测到故障发生时,利用变迁同步操作对局部路径进行聚合以获得系统全局故障路径,相应的故障路径信息可为后续的故障恢复过程提供支持。
3.提出了一种基于融合贝叶斯网(CBN)的故障诊断方法。该方法解决了满足同分布假设的异构日志数据的学习和分析问题,首先根据估算得到的不同日志文件结构元素的相似度构建CBN模型的基本结构,然后利用基于相似性的贝叶斯学习算法计算CBN中的概率,最后根据所构建的CBN模型得到测试日志数据对应的可能故障的极大后验假设,从而实现了基于异构日志分析的故障诊断。
4.提出了动态环境下基于可变窗口的故障诊断方法。针对动态变化的数据集,在时间窗口基础上采用增量式方法实时更新CBN模型,考虑到时间窗口设置的不合理将会导致更新效率的降低,提出了基于更新代价对时间窗口进行动态设置,并给出了基于可变窗口的CBN模型动态更新算法,在此基础上利用实时更新的CBN模型对测试日志数据进行分类,有效地提高了动态环境下诊断结果的准确率。
上述工作分别从理论和应用角度对网构软件系统的故障检测与诊断问题进行了深入研究。为了实现高效的故障检测与诊断,本文借鉴逻辑推理和机器学习的相关方法和技术,提出了网构软件自治管理器eHealer系统的设计与实现方案,重点针对eHealer的故障检测与诊断功能,给出了基于模型诊断模块和基于知识诊断模块的结构设计与功能实现。在此基础上,实现了可视化的故障管理子系统,为用户提供了一个可视化的故障检测和诊断工具,以辅助用户实时发现和恢复被监控对象服务系统的运行故障。