论文部分内容阅读
随着互联网的出现,计算机软件所面临的环境发生了变化,由静态、封闭转为动态、开放。为了适应这种变化,软件系统从集中式逐渐演化为分布式。另外,从20世纪90年代开始,基于组件的软件开发迅速发展并成为主流技术,基于组件的分布式软件(component-based distributed software,CBDS)得到广泛发展,这类软件广泛应用在应急反应、工业自动化、导航、卫生保健等各个领域。随着分布式软件系统的规模越来越大、功能越来越复杂,人们对其可靠性、可用性等性质提出了更高的期望和要求。 随着分布式软件和网络的快速发展,软件部署成为整个软件生命过程中的一个独立阶段。在普适、移动和分布式环境中,这种环境具有高度动态配置、未知的操作剖面和波动的执行环境,分布在这样环境下的软件的部署对系统性能有重要影响,并且部署在应急反应系统、导航、民用基础设施等领域的软件要执行关键任务,要满足严格的可靠性要求。为了使部署后的系统满足一定的可靠性要求,部署需要考虑多方面的信息,如待部署主机节点的可靠性、软件组件的可靠性、软件组件的互联性、主机节点的拓扑结构、硬件资源占用(如CPU、内存)、软件架构风格、软件组件复制等等。 本文首先分析软件部署方法和软件架构风格(software architectural styles),提出一种将基于组件的软件部署和 CS(client-server)、LCS(layered-client-server)架构风格结合的方法。该方法分析软件部署和架构风格对系统可靠性的影响。给出软件架构风格研究假设,在 CS风格中,软件组件分为服务组件和客户组件;在LCS风格中,软件组件分为服务组件、中间组件和客户组件。为了分析软件组件在不同主机节点上部署情况对软件组件失效率的影响,本文提出软件组件的调整前失效概率。为了分析同一架构风格中不同类型的软件组件对系统失效率的影响,本文提出软件组件的调整后失效概率和软件组件类型的影响因子。 由于系统运行环境内在动态性和不可预测性,使得影响系统部署的参数也不断发生变化,没有一种部署架构对整个系统运行期间来说都是最优化的,因此系统需要重部署来提高可靠性。然而,找到最大化可靠性的部署架构需要时间( m是主机节点数目, n是软件组件数目),是一个指数复杂性问题,需要设计近似算法来重部署系统。影响系统部署因素分为不确定的和确定性,很难用精确理论来描述所有的影响因素。因此,本文引入模糊理论来描述这些影响因素,并设计近似算法来重部署系统,从而提高系统可靠性。 当系统可靠性低于某一规定值时,通过系统重部署可提高系统可靠性。然而,系统重部署需要某些软件组件从一个主机节点迁移到其它主机节点,某些软件组件提供的服务将暂时不能用,而如果这些软件组件有副本,即使某个软件组件失效,其它的组件副本仍能继续提供服务,因此,通过软件组件复制来提高系统可靠性是另一个研究重点。由于额外的软件组件将消耗系统资源,需要在系统可用资源、服务的重要性和可靠性三者之间找到一个折中策略,Malek给出一个优化目标函数OF。在分析目标优化函数OF和贪婪算法的基础上,本文设计了启发式的贪婪复制算法,该算法根据单位带宽的优化值增量OB和单位内存的优化值增量OM来选择将被复制的软件组件,从而得到更高的优化值。虽然系统仍可以正常工作,但失效的软件组件会将故障传播给与其进行直接交互的其它软件组件。本文也对相关的主机节点失效和软件组件组件失效引起的故障传播进行了分析。 大多数架构层次可靠性方法都认为软件组件对系统可靠性的评估有重要影响,并且假设系统中的软件组件可靠性是已知的,或者软件组件提供服务的可靠性是已知的。软件组件的失效率受外部因素和内部因素的影响,随着系统运行时间的增加,这些影响因素的值将发生改变,那么软件组件的失效率也将随时间发生改变,因此软件组件的失效率是一个与时间相关的函数。Xie模型假设组件软件系统为由n个组件组成的串行系统,所有组件并行开发,独立测试,组件失效均为系统失效,并假设每个组件的失效过程可建模为 NHPP(non-homogeneous Poisson process)。这里,也采用Xie模型的假设,将部署阶段的软件组件失效行为建模为NHPP过程。此外Yacoub提出的ALRRA方法基于如下的假设:组件执行的频率越高,失效的可能性越大。本文将软件组件的失效率设为与软件组件执行频率相关的函数。在基础上,分析系统运行一段时间内,参数ρ、软件组件复制、系统重部署、软件组件间的交互频率矩阵类型对可靠性的影响。用连接器的方式建模集成架构风格,将集成架构风格中不同风格的软件组件用恰当的概率分布函数来建模,分析在同一时间下的软件组件可靠性、不同时间下的软件组件的可靠性和系统可靠性变化情况。