0引言
1相关工作
2异常行为可信性
2.1组件级可信性
所谓异常行为可信性是指异常行为对组件、系统产生负面影响的可信程度。异常行为可信度越高,其对组件、系统产生的消极作用越大,反之则越小。为了全面地对异常行为可信性进行分析,首先从组件级的角度进行考虑。组件Ci(1<i<M,M表示系统中组件个数)在某时刻的内部结构如图1所示,其中空心小圆圈表示不含异常行为的节点,黑色实心小圆圈表示含有异常的节点,intf(i)表示该时刻组件内部错误率,ep(i)表示该时刻组件内部错误传播概率[11]。
为了形象地表示组件内部各个节点之间的相互关系,将图1简化为图2所示,其中Li(0<i<11)表示未含异常的节点,Vj(0<j<5)表示含有异常的节点。
在组件Ci中,只有含有异常的节点会影响组件的正常运转。因此,用P(ai)(0<i<N,N表示异常节点个数)来表示异常节点对组件产生的消极作用,P(ai)值越大表示该异常节点对组件产生的消极作用越大,反之则表示该异常节点对组件产生的消极作用越小。经大量试验表明,P(ai)不仅与错误率intf、错误传播概率ep有关,而且与该节点在组件内所处的位置密切相关。一个节点的度越大表示该节点与其他节点联系的机会越多。试验结果表明,异常节点在组件内度越大其异常行为对组件产生的消极作用越大。为了准确描述异常节点在组件内所处的位置关系,将组件内部节点的调用关系用矩阵表示,如果组件内部有N个节点,则矩阵大小为N×N,如下所示:
当节点ai与节点aj之间有调用关系时,aij=1;否则,aij=0。用O(ai)(1<i<N)表示异常节点ai的度,则有:
所有异常节点的度之和为:
则有
例如,在图2中异常节点V1、V2、V3、V4对组件产生的消极作用P(V1)、P(V2)、P(V3)、P(V4)分别为1/3、1/6、1/6/、1/3。
2.2系统级可信性
在某时刻 络化软件系统含有M个组件,每一个组件由若干个类构成,类的实现中包含了各种功能的函数。函数间的调用、类与类之间的相互关联、组件之间的消息传递均用有向边表示,组件、类及函数为不同粒度的节点。前面从组件级的角度对异常行为进行了分析,但还不能准确反映异常节点给系统带来的消极影响。下面从系统级的角度考虑异常行为可信性。某时刻组件间的调用关系用图3表示,图3中忽略了组件内部节点之间的关系,只考虑各组件之间的互相调用,其中Ci为组件,S为系统,黑色实心节点表示该组件含有异常行为,空心节点表示该组件正常。
经过实验证明,异常节点的可信度不仅与其在组件中所处的位置有关,而且与该组件在系统中所处的位置密切相关。一个组件在系统内部越活跃,则其对系统的稳定性和可信性影响越大。组件活跃程度由其与其他组件之间的调用频度决定,用P(Cj)表示组件Cj的活跃频度,则P(Cj)与组件的度成正比。为了准确描述组件的活跃频度,将组件之间的调用关系用矩阵表示,如果某时刻系统内部有M个组件,则矩阵大小为M×M。
当节点Ci与节点Cj之间有调用关系时,Cij=1;否则,Cij=0。用O(Cj)(1≤j≤M)表示含有异常的组件Cj的度,则有:
所有含有异常的组件的度之和:
为了更准确描述异常行为对系统产生的影响,不仅要考虑组件内部异常节点的可信性,还要考虑每个组件在系统中的活跃频度,只有将两者结合起来综合考虑才能更准确地刻画异常行为对系统产生的消极作用。因此将异常节点对系统产生的消极作用如下公式(9)表示:
R(Vi)=∑Ni=1aiN∑Ni=1O(ai)* ∑Mj=1ajM∑Mj=1O(Cj)(9)
其中R(Vi)表示异常节点Vi对系统产生的消极作用,R(Vi)的值越大说明该异常节点对系统产生的消极影响越大,则该异常节点的异常行为可信度越高。
3实验分析
实验基于MATLAB9.0平台,通过前期工作开发的监测工具收集 络化软件系统运行时产生的行为日志,从中提取行为规律,构建行为模型。模型中包含10个组件,将组件进行排序处理,其中存在异常行为的组件及各组件中异常节点的可信度如表1所示。 包含有异常节点组件的相应活跃度如表2所示。实验采用的数据包括10 000条行为日志记录,实验结果为100次运行的平均值。
为了合理地分析系统中异常行为的可信性,首先从组件级角度对异常节点的可信度进行考虑。相应的实验结果如图4所示。
对组件内异常行为可信度及相应组件在系统中的活跃度进行综合考虑,得出异常节点对系统产生的消极影响,如图6所示。从图6中可以看到,对系统造成较大影响的异常节点主要存在于组件C6及组件C9中,其中对系统威胁最大的异常节点是组件C9中的V7节点。从图6中反应的各异常行为的可信度与图4中反应的各异常行为的可信度相差较大,但又有局部类似的性质。这是因为图4只是在局部展示了异常行为的一些特性,而图6则合理地表现了异常行为对系统造成影响的可信性,现实运行的程序也证实了图6中各数据的合理性。
4结论
参考文献
[1] 徐忠胜,沈苏彬. 一种云计算资源的多目标优化的调度方法[J].微型机与应用,2015,34(13):1720.
[2] 王红春. 络化软件多粒度动态特性分析[D]. 武汉:武汉大学, 2010.
[3] 马于涛, 何克清, 李兵,等. 络化软件的复杂 络特性实证[J]. 软件学 , 2011,22(3):381407.
[4] 王怀民,唐扬斌,尹刚,等. 互联 软件的可信机理[J]. 中国科学:信息科学,2006,10(10):11561169.
[5] 周娜琴. 基于构件的软件可靠性分析[D]. 长沙:湖南师范大学, 2008.
[6] 王远, 吕建, 徐锋,等. 一个适用于 构软件的信任度量及演化模型[J]. 软件学 , 2006,17(4):682690.
[7] MEI H, HUANG G, ZHAO H, et al. A software architecture centric engineering approach for internetware[J]. Science in China, 2006, 49(6):702730.
[8] 梅宏, 陈锋, 冯耀东,等. ABC:基于体系结构、面向构件的软件开发方法[J]. 软件学 , 2003,14(4):721732.
[9] 徐锋, 吕建, 郑玮,等. 一个软件服务协同中信任评估模型的设计[J]. 软件学 , 2003,14(6):10431051.
[10] CHIDAMBER S R, KEMERER C F. A metrics suite for object oriented design[J]. Software Engineering IEEE Transactions on, 1994, 20(6):476493.
[11] 彭成, 杨路明, 满君丰. 络化软件异常行为传播研究[J]. 电子学 , 2013(10):20742081.
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!