Page 61 - 《软件学报》2021年第7期
P. 61
王璐 等:基于事件关系保障识别质量的自适应分析方法 1979
self-adaptive software. The uncertainty of the runtime environment brings two challenges to this problem. On the one hand, the analysis
method usually recognizes the events by pre-establishing the mapping relationships between the environment state and the events.
However, due to the complexity of the operating environment and the unknown changes, it is impossible to establish comprehensive and
correct mapping relationships based on experience before the system is running, which affect the accuracy of event recognition; On the
other hand, the changing operating environment makes it impossible to accurately predict when and which event will occur. If the current
way is used to obtain the environmental status using constant sensing period and recognize events, then the recognition efficiency cannot
be guaranteed. However, it is still blank about how to deal with these urgent challenges. Therefore, this study proposes a self-adaptation
analysis method for recognition of quality assurance using event relationships (SAFER). SAFER uses sequential pattern mining algorithm,
fuzzy fault tree (FFT), and Bayesian network (BN) to extract and model the causalities between events. This study uses the event causal
relationships and mapping relationships to recognize events through the BN forward reasoning, which can ensure the accuracy of
recognition compared with the traditional analysis methods that only rely on mapping relationships. Moreover, this study establishes the
elitist set of monitoring objects through the BN backward reasoning, then modifies the sensing period of monitoring objects in elitist set
dynamically in order to obtain the environmental status as soon as possible after the abnormal events occurred, so as to ensure the
efficiency of recognition. The experimental results show that SAFER can effectively improve the accuracy and efficiency of the analysis
process, and support long-term stable operation of self-adaptive software.
Key words: self-adaptive software; quality assurance; self-adaptation analysis method; event recognition; Bayesian network
近年来,随着软件运行环境的日益复杂,自适应软件已广泛应用于航天器控制、远程医疗、电子商务等需
[1]
长期稳定运行的领域中,为众多领域系统提供着适应运行环境的能力 .自适应软件是一类特殊的软件系统,通
[2]
过自适应过程实现对系统参数、行为或结构的动态调整,从而适应变化的运行环境 .自适应过程包括监测环境
状态的感知过程(monitor)、识别异常事件的分析过程(analyze)、产生调整策略的决策过程(plan)与调整软件系
[1]
统的执行过程(execute) .分析过程在自适应过程中处于承上启下的位置,其识别的异常事件(以下简称事件)是
触发后续决策与执行过程实现系统调整的依据.但是由于分析过程发生在软件运行阶段,产生的实时识别结果
[3]
无法在软件运行前经过严格且完整的测试与验证 .如果识别结果存在错误或未能及时产生识别结果,均会导
致系统行为退化,甚至会将系统引入到错误的状态中 [46] .例如,2015 年 9 月,亚马逊 AMS 平台 DynamoDB 由于
网络中断引发超时事件,并级联导致了更大面积的断网,产生恶性循环导致故障持续时间长达 5 个小时,对软件
质量和用户服务产生了恶劣影响.若在最初服务超时事件发生之后能够及时且准确地识别并处理该事件,或许
能够避免后续更大问题的发生.
因此,为确保自适应软件长期且稳定地运行,分析过程需在实现事件识别功能的同时保障识别质量.分析过
程通过自适应分析方法实现事件识别功能.自适应分析方法以感知过程输出的环境状态数据为输入,识别其中
[2]
发生的事件(如软件服务资源异常、应用失效和网络拥塞等),并将事件信息输出给决策过程 .而分析过程的识
[7]
别质量则主要通过识别准确性与识别效率进行衡量 .识别准确性是指正确识别出系统中发生的事件,并且不
能误报未发生的事件,用于衡量分析过程产生正确识别结果的能力.识别效率是指从发生事件到识别出事件的
时间差,时间差越小,则识别效率越高,用于衡量分析过程及时产生识别结果的能力.
目前,绝大多数自适应软件均运行在开放环境中,存在着环境状态复杂多变、未知环境变化频发等不确定
性,对建立一种能够保障识别质量的自适应分析方法带来了两方面的挑战.其一,通常自适应分析方法需预先定
[8]
义状态数据与事件的映射关系,然后通过匹配状态数据与映射关系以识别事件 .但是,由于运行环境的多变性,
部分环境状态信息须在软件运行后才能被完全确定,因此映射关系的定义不一定完全正确.并且,由于可能发生
未知的环境变化以及人类认知的局限性,领域专家也难以在系统运行前定义出完备的映射关系.因此,如果按照
传统思路,仅依赖映射关系建立分析方法,则无法完全保证识别的准确性.其二,由于环境的动态性,何种事件何
[9]
时会发生已无法在软件运行前被有效预测 ,自适应分析方法只能在软件运行过程中根据状态数据动态判断
事件发生的情况.因此,如果采用传统思路建立分析方法,定期地获取状态数据再进行事件识别,则无法保障在
事件发生后能够立刻获得相关状态数据,进而导致识别效率较低.
然而,目前两类主要的自适应分析方法,即基于规则推理和基于本体推理的方法,基本上都需要预先建立映
射关系 [1012] ,并未考虑如何在不确定环境下保障识别质量.自适应领域仅存在较少研究,考虑将环境状态数据与