论文部分内容阅读
面向服务框架(SOA)作为一种新型的软件模型,因其灵活性、良好的封装性以及高度的软件复用性而备受工业界以及学术界关注。在SOA框架中,多个异构的、可互操作的Web服务按照业务流程组合在一起,形成一个可以满足用户复杂需求的组合Web服务,从而可以以较低的开发成本开发出多样化的软件系统。虽然SOA框架有着广阔的应用前景,但是该技术在很多方面还面临着诸多问题与挑战。这些问题与挑战包括如何高效地选择并组合这些Web服务使之满足用户的需求?如何保证异构的组合Web服务的可靠性,即使出现运行异常也可以从中恢复?随着网络中Web服务数量的激增,这些问题日益突显而成为相关领域的研究热点。本文在前人工作的基础之上,对上述的两个问题进行了深入的探讨,并取得阶段性成果。本文设计了两种服务选择方法(这两种方法是项目组共同提出的),分别称为简单的基于不确定QoS的服务选择方法以及基于代表性QoS记录的服务选择方法。首先,这两种方法将现实世界中QoS数据的不确定性充分考虑在内,能够返回在QoS指标上更为稳定可靠的组合方案。其次,两种服务选择方法适用于不同的环境,简单的基于不确定QoS的服务选择方法可以求解出最优方案,但因其时间开销太大而不适合较大规模的问题求解。启发式的基于代表性QoS记录的服务选择方法利用一个分层评分的策略选择较为优化的组合方案,实验证明该方法可以以较小的代价(平均时间开销比前者低2个数量级)求解出接近最优的组合方案(平均求解准确度在95%以上)另外本文还提出了一种适用于SOA环境下的基于QoS的诊断方法。该方法利用了一个现有的分布式诊断框架并对其进行了必要的扩展。针对运行过程中发生的异常,该方法结合观察数据执行基于模型的错误诊断以定位错误的源头,从而为随后的异常处理过程提供依据,最终使得软件系统能够从异常中恢复。当诊断结果中包括多个解释时,该方法还可以对多个诊断解释进行概率分析,评估它们在重要程度上的区别,进而为下一步的异常处理提供更为多样化的支持。