● 摘要
对所有主要的公司和大型分布式系统来说,信息技术的灵活性至关重要,信息技术已经成为一个关键的业务价值使能器。同时,流程和系统正变得越来越复杂,已经超越了各个系统独立的处理本身业务的阶段,所有那些单个的系统将变成一个大的分布式系统,大型分布式系统的灵活性最为关键,而面向服务的架构SOA技术符合了灵活性的需求,它是一种帮助系统在增长的同时保持可扩展性和灵活性的方法,有助于解决由大型分布式系统带来的异质的问题。
在面向服务的架构SOA得到了越来越广泛应用的今天,提高SOA架构下软件的质量也变得越来越重要,可靠性一直是保证软件质量的关键技术,因此研究出一种针对SOA架构的软件系统的可靠性评估方法既是保证信息技术不断发展的新时期软件系统可靠性的必要手段,也是使SOA架构软件系统得到更好的应用的必要方法。
传统的软件可靠性评估方法都是基于软件操作剖面的,针对软件不同的操作模式,构建不同操作模式下的使用剖面,通过收集软件在投入使用后或在测试阶段的失效数据,根据相应的可靠性模型,评估软件的可靠性。然而对于SOA架构的软件系统来说,由于处理的业务繁琐,服务多,完成服务的软件多,软件系统的操作模式复杂,服务存在动态组合和服务流程的特点,很难构造相应的剖面,可靠性评估过程复杂且并不能准确评估。
针对以上问题,本文研究并提出了一种针对SOA架构的软件系统进行可靠性评估的方法,并进行了实例验证,对提出的方法对工程实践上的价值做了相应说明:
(1)针对SOA架构的软件系统,提出了一种针对“服务-软件”的建模方法。将软件系统中的抽象服务,以及系统中用来实现各项服务的软件,表示成为模型中的节点;将服务和软件间的调用关系、相同配置地点下服务和服务间的逻辑交互关系、不同配置地点下服务和服务间的信息收发关系,表示成为模型中的有向连边。
(2)通过构建成的模型,借用网络理论中的度分布的概念,分析模型中每个软件节点度的分布,通过对模型的静态和动态分析,得到系统中关键软件节点,将系统中各软件分级管理,指导工程实践。
(3)对系统中各软件的可靠度做预计分析,在基于系统中软件可靠度数据的基础上,对系统模型进行蒙特卡洛仿真实验,统计实验结果,分析计算得到系统可靠度。