论文部分内容阅读
随着面向服务体系结构SOA(Society of Actuaries,SOA)技术的不断成熟,Web服务作为最适合实现SOA技术的方法得到广泛的应用。越来越多的场景将多个原子服务进行集成,构建Web服务组合以实现更加复杂的功能。然而,由于网络环境中原子服务异构分布式的特点,可能会给Web服务组合带来很多不可预知的问题。因此,为了保障Web服务组合的质量,如何高效评估验证Web服务组合的可靠性是一个重要的科学问题。本文围绕Web服务组合可靠性验证测试及相关可靠性关键技术展开研究。虽然以往的研究已经提出较多针对Web服务组合可靠性验证测试的方法,但是仍存在一些问题:1)由于原子服务的失效行为无法准确预估,不能确定其可靠性增长情况,若采用传统可靠性增长模型进行可靠性评估,失效强度、排错方法等武断的假设会影响原子服务可靠性评估的准确度;2)由于Web服务组合可靠性操作剖面难以获取,仅利用统计随机法进行可靠性测试,会出现一些调用率低却关键的原子服务测试覆盖率低的情况;3)由于Web服务组合中组合级别的历史失效数据不足,导致Web服务组合可靠性验证测试过程中所需要的测试用例数量大,以及可靠性验证测试准确度低的问题。通过对以上问题的研究分析,本文主要工作如下:1)研究并解决传统可靠性评估模型由于假设造成原子服务可靠性预测不准确的问题。本文从服务日志数据入手,提出了一种基于数据驱动的原子服务可靠性的评估方法。该方法完全针对已有数据特点做出评估,避免对原子服务的失效过程做出假设。首先,通过对原始日志中记录的大量原子服务调用和失效信息进行提取,分析建立原子服务历史可靠性时间序列。其次,针对可靠性时间序列周期长、数据随时间非线形波动的特点,提出利用经验模态分析(Empirical Mode Decomposition,EMD)的数据平稳化处理方法,将波动性较强的历史数据分解成平稳的数据分量,利用长短期记忆(Long Short-Term Memory,LSTM)神经网络模型对各分量数据进行预测,最后评估原子服务的可靠性。通过实验验证发现,本文提出的方法充分利用了原子服务的日志数据,与常用的基于数据驱动的模型相比,EMD-LSTM混合模型对原子服务可靠性预测值与实际值之间的评估结果拟合度较好,平均绝对误差平均下降85.0%,均方误差平均下降72.2%,对原子服务可靠性评估结果更准确。2)研究并解决由于操作剖面难以获得或获得不准确而引起的Web服务组合可靠性测试关键原子服务覆盖率低的问题。本文提出了一种针对Web服务组合的可靠性测试剖面生成方法。首先,利用马尔可夫决策过程对Web服务组合测试过程建模。其次,采用重要抽样法以原子服务质量属性(Quality of Service,QoS)为依据在操作剖面基础上构建可靠性测试剖面,然后利用最大似然法对操作剖面概率分布进行优化调整,求解测试剖面概率分布。最后,利用测试剖面生成测试用例对Web服务组合可靠性进行测试。通过实验验证发现,以本文所提出的测试剖面为依据生成测试用例,对Web服务组合进行可靠性测试时可以提高测试覆盖率,测试剖面对重要原子服务覆盖率达到23.4%,而操作剖面对重要原子服务的覆盖率仅为3.1%。收集测试结果并绘制盒形图,发现利用测试剖面进行可靠性测试的测试结果离散度更小,保证Web服务组合可靠性的测试质量。3)研究并解决Web服务组合可靠性验证测试中由于组合级别失效信息不足造成测试量大、验证测试准确度低的问题。本文提出了一种基于贝叶斯理论的Web服务组合可靠性验证测试的方法。首先,分析原子服务基本结构单元的可靠性,建立Web服务组合中结构和整体可靠性的量化关系,达到充分利用原子服务模块级失效信息的目的。其次,在贝叶斯理论的基础上开展Web服务组合失效概率分析,提出考虑结构风险的先验分布超参数求解方法。最后,计算满足验证要求的测试用例数量。通过实验验证发现,该方法可充分利用原子服务测试阶段的先验信息,符合Web服务组合的特点,在满足不同的可靠性验证要求的条件下,利用本研究所提出的贝叶斯决策法比经典泰勒法和无先验法所需的测试用例数量分别减少17.3%和30.1%,提升可靠性验证测试的准确性。