论文部分内容阅读
随着软件日益大型化、复杂化,软件衰退正在成为威胁软件系统健康的新趋势。软件衰退指随着时间的推移,受运行环境的变化或隐蔽的缺陷的影响,软件会像人一样慢慢衰老,其工作状态发生变化,尤其是各种能力逐渐下降的一种现象。衰退是软件运行生命周期的必然趋势,为了减小其带来更大损失,有必要对它实施对抗,即进行软件抗衰。软件衰退具有的偶发性、不确定性和环境依赖性等特点,使其难以被发现,造成严重的损失。因此,软件抗衰重在主动、自适应地发现衰退及其源头,这也是本文的工作重点。现有软件抗衰方法本质上可以分为两类:基于模型的和基于度量的方法。基于模型的方法预防效率虽高,却忽略软件的实际运行状态,难以发现未知的衰退。现有基于度量的抗衰方法能针对软件行为特征发现特定衰退模式,但易忽略混合的、动态多变的衰退模式,产生较高的伪否定率。上述方法均依赖于完备的衰退样本集,但完备衰退样本的获取需漫长的周期、并付出沉重的代价,这限制了它们应对未知软件衰退的能力。计算机免疫系统(Artificial Immune System,AIS)是借鉴机体免疫自适应保护人体健康的机理而构建的,它的目标是抵抗系统内外部侵害、保护系统健康。衰退是一种典型的健康问题(即医学家常说的―亚健康‖),且AIS的适应性、动态性、多样性和不依赖异常样本等优势,能在一定程度上弥补现有软件抗衰方法应对未知软件衰退的不足。因此,本文借鉴机体免疫的相关机理,提出了软件系统抗衰的计算机免疫模型。具体工作如下:(1)构建软件抗衰的计算机免疫模型:该模型由软件衰退感知的计算机先天免疫系统和软件衰退识别与评价的计算机适应性免疫系统组成。其中,计算机先天免疫系统的关键组件是人工抗原提呈细胞(Antigen Presenting Cell,APC),而适应性免疫系统的关键组件是人工淋巴细胞,二者互相协作,构成了更完整的自适应抗衰系统。在分布式/集群环境中,各节点的免疫抗衰系统还可分享记忆淋巴细胞,实现群体软件抗衰。(2)构建软件衰退感知的计算机先天免疫系统:针对衰退的偶发性强和环境依赖性特点,借鉴机体APC从人体―内环境‖的变化中自适应感知危险的原理,构建人工APC模型。该模型从系统环境细微的变化(以数字微分的形式表达)及变化间的相互关系中,自适应提取衰退敏感的危险信号。人工APC识别、融合这些危险信号,提炼出系统整体的健康状态,找出可能衰退的应用软件,为进一步识别和确认提供有力帮助和指导。人工APC还能通过演化,动态选择适应当前环境的危险信号,具备适应软件衰退的动态多变性的能力。(3)构建软件衰退识别和评估的人工淋巴细胞模型:借鉴淋巴细胞的特异性识别能力,及其浓度反应机体受感染程度的思想,提出基于人工淋巴细胞的软件衰退识别和评价方法。在先天免疫子系统的指导下,人工淋巴细胞无需异常样本,就能识别具体应用软件的衰退行为特征,确认其是否衰退,并记忆识别的衰退特征。成功识别软件衰退的人工淋巴细胞的浓度会升高,反之则衰减。对人工淋巴细胞群体浓度的衡量,能实现软件衰退程度的动态评估。该模型与先天免疫子系统的协作,降低了应对未知的衰退的伪否定率,并能识别发生衰退的具体应用软件。(4)软件抗衰实例验证:本文重点验证方法的可行性。本文设计实现了软件系统抗衰的计算机免疫模型的原型系统,并对选取的典型软件衰退实例进行了验证实验。三个场景的实验结果表明,原型系统能够发现系统中隐蔽的软件衰退,且具有较低的伪肯定、伪否定率。并且,数字微分机制给出了危险信号提取的一般性方法,能适应被监测系统环境的动态变化,生成适合的危险信号。人工APC种群通过演化,自适应地挑选出能反应当前应用软件衰退的有效危险信号组合,降低发现选取的软件衰退实例的误报率。本文借鉴机体免疫自适应保护人体健康的机理,提出了软件系统抗衰的计算机免疫模型。通过构建人工APC,从系统细微的变化(以数字微分的形式表达)及变化间的相互耦合关系中,自适应地感知可能的软件衰退。在此基础上,本文引入了淋巴细胞的特异性识别能力及其浓度反映受感染程度的思想,识别未知的衰退特征,并评价衰退程度。相比于其他软件抗衰方法,该模型考虑上下文环境的动态变化,仅需正常样本,就能自适应感知、识别未知衰退,并记忆其特征,提高了应对未知的、不确定的软件衰退的效率。同时,该模型应用于分布式/集群环境中时,可通过分享淋巴细胞的记忆成果,实现群体抗衰。