Page 16 - 《软件学报》2021年第5期
P. 16

1240                                     Journal of Software  软件学报 Vol.32, No.5,  May 2021

                                             …000001000000−10000000100000−100000…
                                               Fig.6    Performance change series
                                                    图 6   性能变化序列

                    随后,对于因果关系图中的每一条因果关系边,以边上两个性能指标节点的性能变化序列作为输入,计算两
                 个监控指标之间的皮尔森系数,即可得到性能指标之间的在性能变化上的关联程度.图 7 展示了一条因果关系
                 边上的两个性能指标根据性能上升下降的变化构建性能变化序列,并以性能变化序列之间的关联系数为因果
                 关系边赋予权重的整个过程.





















                                             Fig.7    Causality edge weight assignment
                                               图 7   因果关系边权重赋值过程

                 3.4   韧性风险影响链路输出
                    基于在第 3.2 节中的因果关系图,韧性风险影响链路将通过以下方法生成:将不满足服务韧性目标的服务
                 性能所对应的节点设为目标节点,在因果关系图中寻找所有直接或间接指向目标节点的性能节点,最后构建出
                 所有由这些节点组成,并最终指向目标节点的因果关系链路.与现有的使用因果关系图的根因诊断的研究相同,
                 本文以深度优先遍历的思路实现了路径构建算法,并最终将所有的因果关系链路作为结果输出.
                    由于在因果关系图中同时包含了有向边和无向边,在因果关系链路构建的过程中,需要对深度优先算法做
                 出相应的改动,将无向边当作两条方向相反的有向边处理.此外,在因果关系图中进行路径遍历,通常会返回一
                 条以上的因果关系链路.为了对这些因果关系链路进行排序,以第 3.3 节中设置的因果关系边权重为依据,本文
                 提出的分析方法对因果关系链路的构建算法进行了如下改进:当算法遍历到因果关系图中的某一个节点时,算
                 法将优先遍历与该节点相连的权重值较高的边.因此,算法在最后输出韧性风险影响链路的过程中将以可能性
                 从高到低的顺序依次输出可能的因果关系链路,图 8 为一个基于边权重的因果关系链路排序的样例.










                                       Fig.8    Sort causality chains by weight of causality edges
                                      图 8   根据因果关系边的权重实现因果关系链路的排序
   11   12   13   14   15   16   17   18   19   20   21