CN112559358B - 一种面向策略选择的自适应运行的可靠性预计方法 - Google Patents
一种面向策略选择的自适应运行的可靠性预计方法 Download PDFInfo
- Publication number
- CN112559358B CN112559358B CN202011522785.0A CN202011522785A CN112559358B CN 112559358 B CN112559358 B CN 112559358B CN 202011522785 A CN202011522785 A CN 202011522785A CN 112559358 B CN112559358 B CN 112559358B
- Authority
- CN
- China
- Prior art keywords
- component
- model
- reliability
- adaptive
- state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/02—Reliability analysis or reliability optimisation; Failure analysis, e.g. worst case scenario performance, failure mode and effects analysis [FMEA]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种面向策略选择的自适应运行的可靠性预计方法,包括构造当前阶段的运行时模型,基于适应策略与当前阶段的运行时模型构造面向可靠性预计的运行时模型,对面向可靠性预计的运行时模型进行可靠性信息扩展,得到面向预计的可靠性扩展模型,扩展的内容包括组件的可靠度与组件间的转移概率,将面向预计的可靠性扩展模型转换为马尔科夫分析模型,基于马尔科夫分析模型对不同适应策略执行后自适应软件的整体可靠性水平进行预测,并根据预测结果选择适应策略等步骤,可以实现直接、快速获得具有因果联系的运行模型,最终根据预测结果选择适应策略。
Description
技术领域
本发明涉及控制领域,涉及模型构造领域,具体涉及一种面向策略选择的自适应运行的可靠性预计方法。
背景技术
自适应调整是一种通过调整自身结构和行为来响应运行环境变化的方式。在软件工程领域,实现软件自适应最常用的方法是以体系结构为中心的软件自适应。为了能够保证自适应调整在适应后依然能够提供高质量的服务,一种有效的方法是在模型层分析适应策略导致的适应变更对自适应整体可靠性水平产生的影响。在运行环境实际发生变更前,即未触发适应策略前,在模型层,对自适应调整在适应策略驱动下进行适应后的整体可靠性水平进行预测,并以可靠性预计的结果作为策略选择的依据。
然而,现有可靠性预计方法是在设计阶段基于体系结构的可靠性预计方法,并不针对运行时的软件进行可靠性预计,且因为设计阶段的体系结构与实际运行之间不存在因果关联关系,因此不能真实反映实际运行时的状态和体系结构中的关联关系,故无法解决实际运行过程中的可靠性预计问题。
发明内容
本发明的目的在于克服现有技术的不足,提供一种面向策略选择的自适应运行的可靠性预计方法,可以实现直接、快速获得具有因果联系的运行模型,最终根据预测结果选择适应策略。
本发明提供了一种面向策略选择的自适应运行的可靠性预计方法,其特征在于,包括如下步骤:
(1)构造当前阶段的运行时模型RCIM;
(2)基于适应策略与所述当前阶段的运行时模型构造面向可靠性预计的运行时模型RMRP;
(3)对面向可靠性预计的运行时模型进行可靠性信息扩展,得到面向预计的可靠性扩展模型,扩展的内容包括组件的可靠度与组件间的转移概率;
(4)将面向预计的可靠性扩展模型转换为马尔科夫分析模型;
(5)基于马尔科夫分析模型对不同适应策略执行后自适应运行的整体可靠性水平进行预测,并根据预测结果选择适应策略。
其中,所述步骤(1)中以体系结构为中心进行自适应运行时模型构建。
其中,所述步骤(1)中是基于运行时体系结构模型,通过开展当前适应阶段内运行时模型构造方法,得到当前适应阶段内的运行时模型,包括:
1)通过Rainbow框架直接获得当前适应阶段的运行时体系结构模型,该模型侧重于描述当前时刻系统组成结构和配置;
2)通过监控器对被控对象进行实时的监控,收集被控对象的各类信息,完成组件动态调用信息的提取,实现运行时模型的构造,该模型除了能够描述静态结构外,还能够描述动态行为。
其中,所述步骤(2)中适应策略从备选策略集合中进行选取。
其中,所述步骤(2)中通过得到的运行时模型RCIM和适应策略为基础,将适应策略施加在运行时模型RCIM上驱动其发生变化,并推测出面向可靠性预计的运行时模型RMRP。
其中,所述步骤(4)中将面向预计的可靠性扩展模型转换为马尔科夫分析模型包括:(1) 模型层的转换:源模型为通过向RMRP中添加组件可靠度信息和组件间转移概率而获得的PRMRE,目标模型为马尔科夫模型;(2)模型组成元素的转换:将PRMRE的组件转换为马尔科夫模型的状态;(3)模型元素标记的转换,将PRMRE组件间的调用转换为马尔科夫模型状态间的转移。
其中,所述步骤(4)中还包括对马尔科夫分析模型中并发状态的处理:采用包节点的方式来解决马尔科夫分析模型中存在并发状态,其中包节点指的是将马尔科夫分析模型中的并发状态进行打包形成一个整体状态进行分析,其中假设一个PRMRE有n≥1个组件组成,其中n-2个组件存在并发转移关系,可靠度
其中,所述步骤(5)具体为:
设置每个适应阶段中的自适应方式是由n个组件{C1,C2,...Cn}组成,其中C1是程序执行的入口,Cn是终止的出口;
则该自适应方式在每个适应阶段内的马尔科夫链状态空间可以描述为{S1,S2,...Sn},状态转移矩阵M为:
其中,pij表示组件i到组件j的转移概率,Ri表示组件i的可靠度,Ripij表示组件i被成功调用后再调用组件j的概率;为了使该状态转移矩阵能够描述自适应软件的可靠性,对其进行如下扩展:加入一个吸收态S,表示组件发生调用不失效的状态;和另一个吸收态F,表示组件发生调用时产生了失效状态;对于吸收态S,只能由终止组件Cn转移得到;对于吸收态F,则通过自适应软件的任意一个组件转移得到,扩展了吸收态S和F的马尔科夫链的状态空间描述为 {S,F,S1,S2,...Sn},其状态转移矩阵ME为:
通过该矩阵可以得出如下结论,矩阵ME是矩阵M增加了第一列和第二列得到的,第一列表示自适应软件中每个组件的状态转移到吸收态S的概率,第二列则表示每个组件的状态转移到吸收态F的概率。
其中,所述步骤(5)具体还包括:为了对状态转移矩阵ME进行计算,假设存在一个矩阵 T,该矩阵中的元素Tij表示组件i经过k步骤转移到组件j的概率,则单位矩阵I中的I(i,j)表示组件i经过0步转移到组件j的概率;M中的M(i,j)表示组件i经过1步转移到组件j的概率;M2中的M2(i,j)表示组件i经过2步转移到组件j的概率,以此类推,则Mk(i,j)表示组件i经过k步转移到组件j的概率,Mk(1,n)表示自适应方式中的组件1,经过k步转移到组件n的概率;
现将矩阵T中的元素相加,可得:其中, I+M+M2+M3+......为等比数列,通过等比数列求和公式推导可得:T=(I-M)-1;此外,假设E为矩阵(I-M)中删除第一列和第n行之后的矩阵,通过逆矩阵推导,可得自适应软件的整体可靠度为:
该式中的M表示pij,即组件i经过一步转移到组件j的概率,Rn表示组件的可靠度。
本发明的面向策略选择的自适应运行的可靠性预计方法,可以实现:
由于运行时模型构造的基础是建立在Java反射机制的基础上,因此适用的对象是基于Java 开发的自适应软件。此外,由于该方法是在以体系结构为中心的自适应背景下提出的,因此需要借助Rainbow的运行时模型快照机制得到需要监控的对象,即自适应软件中与Rainbow框架生成的运行时模型中组件相对应的EJB组件。Rainbow是由美国卡内基梅陇软件工程研究所设计实现的一个开源Java扩展框架,通过该框架,可以直接获得与自适应软件具有因果联系的运行时模型。
附图说明
图1为自适应运行时可靠性预计方法示意图;
图2为基于模型转换的运行时可靠性预计过程图;
图3为面向可靠性预计的运行时模型的元模型图;
图4为面向可靠性预计的运行时模型示意图;
图5为面向可靠性预计的运行时模型的构造过程;
图6为添加组件操作下顺序转移模式的变更规则;
图7为添加组件操作下条件转移模式的变更规则;
图8为添加组件操作下并发转移模式的变更规则;
图9为删除组件操作下条件转移模式的变更规则;
图10为删除组件操作下并发转移模式的变更规则;
图11为替换组件操作下条件转移模式的变更规则;
图12为替换组件操作下并发转移模式的变更规则;
图13为改变消息调用方式操作下并发转移模式的变更规则;
图14为改变消息调用方式操作下条件转移模式的变更规则;
图15为PRMRE的元模型;
图16为顺序转移模式下的时序图;
图17为并发转移模式下的时序图;
图18为条件转移模式下的时序图;
图19为面向预计的运行时可靠性扩展模型示意图;
图20为马尔科夫分析模型的元模型;
图21为马尔科夫分析模型示例;
图22为对马尔科夫模型中并发状态处理的示例。
具体实施方式
下面详细说明本发明的具体实施,有必要在此指出的是,以下实施只是用于本发明的进一步说明,不能理解为对本发明保护范围的限制,该领域技术熟练人员根据上述本发明内容对本发明做出的一些非本质的改进和调整,仍然属于本发明的保护范围。
由于运行时模型构造的基础是建立在Java反射机制的基础上,因此本方法适用的对象是基于 Java开发的自适应软件。此外,由于该方法是在以体系结构为中心的软件自适应背景下提出的,因此需要借助Rainbow的运行时模型快照机制得到需要监控的对象,即自适应软件中与Rainbow框架生成的运行时模型中组件相对应的EJB组件。Rainbow是由美国卡内基梅陇软件工程研究所设计实现的一个开源Java扩展框架,通过该框架,可以直接获得与自适应软件具有因果联系的运行时模型。
在以体系结构为中心的软件自适应中,整个适应过程可以描述为:当适应被触发时,适应策略会驱动运行时模型发生变化,变更后的运行时模型通过与系统的因果联系将模型层的改变映射到软件层,最终完成自适应的整个适应过程。可以看出,在每次进行适应时,适应策略都会改变运行时模型的组成元素即组件、以及组件和组件间的相互关系,而软件体系结构中组件的可靠性水平以及组件间的相互关系直接决定了的整体可靠性水平。
面向策略选择的自适应运行时可靠性预计关心的是执行适应策略后自适应整体可靠性水平如何,具体而言,关心的是自适应在执行策略后的整体可靠性水平与运行时模型中组件的可靠性水平的关系,以及自适应整体可靠性水平是如何受运行时模型组件和组件间相互关系影响的。
面向策略选择的自适应软件运行时可靠性预计是指在当前适应阶段内,通过一定的手段和方法得到下一个适应阶段内的运行时模型,并通过下一个适应阶段内运行时模型中的组件可靠性水平以及组件间的相互关系,来预测自适应的整体可靠性水平,最终以可靠性水平最高为策略选择的依据。
基于此,本发明提供了一种面向策略选择的自适应运行的可靠性预计方法,下面,具体进行介绍,其包括如下步骤:
步骤一:构造当前阶段的运行时模型,如图1所示为以体系结构为中心进行适应的自适应的方法,图中的横轴代表整个自适应调整过程的运行时间,其中包含开始时刻T0、适应触发的时刻T1、适应触发的时刻T2、适应触发的时刻T3、适应触发的时刻T4、终止运行的时刻Tn,以及T2时刻后T3时刻前的任意一个时刻Ta,Ta可以无限接近T3时刻,但永远不会与T3时刻重合。上述时刻将整个适应过程划分为三个适应阶段,这里关注当前适应阶段COA2和下一个适应阶段COA3。
假设在一个适应阶段内,运行时体系结构的组成元素保持不变。
整个可靠性预计方法可以描述为:当自适应方式在进入COA内且在Ta时刻前,通过模型构造的方式得到COA2内的运行时模型。同时,根据备选适应策略集合,考虑将策略作用在COA2的运行时模型上,驱动COA2的运行时模型进行变更,得到COA3的运行时模型,需要注意的是,在图中将COA3的运行时模型以虚框表示,这也意味着COA3的运行时模型是在COA2运行时模型的基础上推测得到的。在得到COA3的运行时模型之后,便可以利用该模型中组件的可靠性水平以及组件间的相互关系对COA3的自适应软件整体可靠性水平进行预计。由于本适应策略触发的时刻会有多个备选策略的存在,因此在得到可靠性预计结果后,还需要根据预计结果对策略进行选择,选择可靠性水平最高的策略驱动自适应软件进行适应。需要注意的是,整个方法开展的时间是T2时刻后至Ta时刻前。
在具体进行运行时可靠性预计时,选用可靠度R作为运行时可靠性预计的参数。
步骤二:基于适应策略与当前阶段的运行时模型构造面向可靠性预计的运行时模型。该过程描述如下:首先在运行阶段构造面向可靠性预计的运行时模型,之后通过可靠性信息扩展,向该面向可靠性预计的运行时模型中加入组件的可靠度和组件间的转移概率,得到面向预计的运行时可靠性扩展模型,之后通过模型转化,将面向预计的运行时可靠性扩展模型转换为马尔科夫分析模型,并通过分析模型完成对可靠性预计。整个过程中涉及的三个模型为:
1)面向可靠性预计的运行时模型(Runtime Model For ReliabilityPrediction,RMRP);
2)面向预计的运行时可靠性扩展模型(Predictive Runtime Model withReliability Extensions,PRMRE);
3)马尔科夫分析模型。
具体的,将给出面向可靠性预计的运行时模型RMRP的元模型及形式化描述,并给出RMRP的构造流程。
RMRP是一个面向可靠性预计的运行时模型,在整个预计过程中,RMRP要为最终的马尔科夫分析模型提供必要的信息,这些信息主要包括:
1)自适应软件的结构组成,即自适应软件是由哪些组件组成的;
2)组件间的调用关系;
3)组件间的调用次数和转移模式。组件间转移概率的确定受组件间的调用次数和转移模式的影响,因此调用次数和转移模式也是RMRP所必须要描述的。
如图3的所示的元模型,元模型为具体模型的构建提供了一个框架,是对具体模型的进一步定义和抽象,这一元模型主要反映了运行时组件调用图是由什么构成的,要描述哪些内容。
对于RMRP中的组件转移模式,为了能够支持后续的可靠性分析,RMRP需要描述组件间的调用次数和转移模式。组件在实际执行过程中除了相互调用外,还存在一定的结构关系(如C语言中顺序结构、分支结构、循环结构等),将多个组件在实际执行过程中发生调用时的结构关系定义为转移模式。其中,组件转移模式指的是多个组件在实际执行中发生调用时的结构关系,对RMRP中的组件转移模式进行分析:
如下表所示,表1为面向可靠性预计的运行时模型组件转移模式图形化表示:
表1
对于顺序结构,可以理解为组件在调用过程中按顺序依次向下运行,将这种顺序结构下的转移模式定义为顺序转移模式。
对于分支结构,可能存在的组件转移模式为并发转移模式、条件转移模式。以组件A、B、C来说明这两种转移模式的区别。对于并发转移模式可以理解为组件A在调用组件B的同时调用了组件 C;对于条件转移模式可以理解为组件A先调用了组件B,在B执行结束后将控制权返还给A,或,组件A先调用了组件C,在C执行结束后将控制权返A。
对于循环结构,可以将其理解为一种特殊的判定动作,这里不再过多的讨论,因此循环结构下组件的转移模式也为条件转移模式。
综上所述,在RMRP中,组件的转移模式包括顺序转移模式、条件转移模式和并发转移模式三种,表1基于UML活动图对分支节点的描述给出了这三种转移模式的表示方法。
基于RMRP的元模型和组件转移模式,因此给出如图4所示的RMRP的示意图。
RMRP的构造流程如图5所示,RMRP的构造流程主要为以下三步:构造当前适应阶段内的运行时模型、确定环境实际发生变化时要启动的适应策略、在当前适应阶段内运行时运行时模型和适应策略的基础上得到RMRP。
1、第一步,构造当前适应阶段内的运行时模型
这一步是基于运行时体系结构模型,通过开展当前适应阶段内运行时模型构造方法的研究,得到当前适应阶段内的运行时模型(Runtime Component Interaction Model,RCIM)。
1)通过Rainbow框架直接获得当前适应阶段的运行时体系结构模型,该模型侧重于描述当前时刻系统组成结构和配置;
2)通过监控器对被控对象进行实时的监控,收集被控对象的各类信息,完成组件动态调用信息的提取,实现运行时模型的构造,该模型除了能够描述静态结构外,还能够描述动态行为。
2、第二步,确定适应策略
由于可靠性预计是在不同适应策略的驱动下进行适应后的整体可靠性水平进行预测。因此本步骤的适应策略是从备选策略集合中进行选取。
3、第三步,在RCIM和适应策略的基础上得到RMRP
本步骤是通过前两步所得的RCIM和适应策略为基础,将适应策略施加在RCIM上驱动其发生变化,并推测出RMRP模型。策略驱动RCIM发生变化主要包括三个方面,第一是RCIM结构及行为的变化,例如添加、删除组件、组件间的调用关系由同步调用变为异步调用等等;第二是组件的转移模式发生变更,如从顺序转移模式变为并发转移模式;第三是组件的调用次数变更。
1)对于RCIM结构及行为的变化,可以利用基于扩展的UML多视图的方法来进行变更建模。
2)对于组件转移模式的变更,指的是RCIM在策略驱动进行变更的过程中,组件的转移模式也会发生变化,这一变化通常是由适应策略决定并实现的。
下面给出组件转移模式变更的一系列规则,并通过形式化的规则描述方式来提升建模过程的准确性。
RCIM中组件转移模式的变更规则称为“动作-转移模式变更规则”。
具体而言,当执行适应策略的某一操作时,组件间的转移模式由源模式变为目标模式。此规则简称为ATMC(Action-Transition Mode Change)规则。
适应策略的操作包括添加、删除、替换组件以及改变消息的调用方式。源模式表示施加策略前体系结构组件间的转移模式,目标模式表示施加策略后体系结构组件间的转移模式。
为了能够使建模的过程更加准确,将利用形式化的方式对转移模式的变更进行描述。
组件结构变更策略下组件转移模式变更规则包含的具体操作为添加新的组件、删除原有的组件和替换组件三类。
图6对添加组件操作下顺序转移模式的变更进行了说明,添加组件操作可以使得顺序转移模式变更为并发转移模式或条件转移模式。当执行添加组件操作时,顺序转移模式可以变更为并发转移模式或条件转移模式。
图7对添加组件操作下条件转移模式的变更进行了说明,添加组件操作可以使得条件转移模式变更为并发转移模式或保持不变。当执行添加组件操作时,条件转移模式可以变更为并发转移模式或保持不变。
图8对添加组件操作下并发转移模式的变更进行了说明,添加组件操作可以使得并发转移模式变更为条件转移模式或保持不变。当执行添加组件操作时,并发转移模式可以变更为条件转移模式或保持不变。
图9对删除组件操作下条件转移模式的变更进行了说明,删除组件操作可以使得条件转移模式变更为顺序转移模式或并发转移模式或保持不变。当执行删除组件操作时,条件转移模式可以变更为顺序转移模式或并发转移模式或保持不变。
图10对删除组件操作下并发转移模式的变更进行了说明,删除组件操作可以使得并发转移模式变更为顺序转移模式或条件转移模式或保持不变。当执行删除组件操作时,并发转移模式可以变更为顺序转移模式或条件转移模式或保持不变。
图11对替换组件操作下条件转移模式的变更进行了说明,替换组件操作可以使得条件转移模式变更为并发转移模式或保持不变。当执行替换组件操作时,条件转移模式可以变更为并发转移模式或保持不变。
图12对替换组件操作下并发转移模式的变更进行了说明,替换组件操作可以使得并发转移模式变更为条件转移模式或保持不变。当执行替换组件操作时,并发转移模式可以变更为条件转移模式或保持不变。
连接件参数指的是消息调用方式类参数,其具体操作为变更消息调用方式。消息调用方式类参数的改变可以在不改变体系结构的组成和结构的情况下改变体系结构组件间的转移模式。
图13对改变消息调用方式操作下并发转移模式的变更进行了说明,改变消息调用方式这一操作可以使并发转移模式变为条件转移模式。当执行改变消息调用方式操作时,并发转移模式可以变更为条件转移模式。
图14给出了改变消息调用方式操作下条件转移模式的变更,改变消息调用方式这一操作可以使条件转移模式变为并发转移模式。当执行改变消息调用方式操作时,条件转移模式可以变更为并发转移模式。
通过在施加适应策略后组件转移模式变更的9种规则,在构造RMRP时,可以在适应策略具体要求的前提下,根据上述9种规则,对RCIM中节点间的转移模式进行标注。
RMRP中条件转移模式下的组件调用次数推测方法中,组件的转移概率与组件间的调用次数和转移模式相关,在组件的三种转移模式中,只有条件转移模式下需要依靠组件间的调用次数来计算转移概率,对于顺序转移模式和并发转移模式则可以认为与组件间的调用次数无关。
通过适应变更建模,RCIM模型已经发生了改变,执行适应策略后的RCIM组件分为两类,第一类是对RCIM施加适应策略保留下来的组件,称这类组件为保留组件,第二类是执行适应策略后新增加的组件,称这类组件为新增组件。
此外,还需要介绍组件负载保护和过载失效两个概念。组件的负载保护指的是组件在执行过程中的一段时间内被调用的最高次数限制。例如一个组件在1分钟内最多被其他组件调用100次。组件过载失效指的是组件在执行过程中在一段时间内的调用次数超过了规定的上限。
为了避免组件过载失效,每个组件在执行过程中均遵守负载保护的规定,并通过组件的规格说明向调用它的组件发布此信息。
分析对象是RMRP中那些添加或替换了新的组件的且转移模式为条件转移的分支。下面,将分情况对这些对象进行讨论。
1.执行组件添加操作且为条件转移模式的分支
此种情况下可直接从新增组件的规格说明中得到组件的负载上限值(Load limitnumber,LLN),并将其作为组件间的调用次数。此外,保留类组件间的调用次数保持不变,依然沿用RCIM中的组件调用次数。
2.执行组件替换操作且为条件转移模式的分支
此种情形与情形1类似,也是通过替换组件的规格说明中得到新替换组件的负载上限值LLN作为组件间的调用次数,其他保留组件的调用次数保持不变。
3.执行组件删除操作且为条件转移模式的分支
此种情形直接沿用RCIM中组件调用次数作为保留组件间的调用次数。
4.执行改变消息调用方式操作且为条件转移模式的分支
此种情形与第三种情形类似,也是直接沿用RCIM中组件调用次数作为保留组件的调用次数。在得到RMRP的组件调用次数后,便可以在RCIM模型的边上标注出调用次数,至此,便完成了由 RCIM和适应策略构造RMRP的整个过程。
步骤三:对面向可靠性预计的运行时模型进行可靠性信息扩展,得到面向预计的可靠性扩展模型,扩展的内容包括组件的可靠度与组件间的转移概率,下面进行具体的介绍:
PRMRE是通过向RMRP中添加组件可靠度信息和组件间转移概率而获得,因此PRMRE要能够描述每个组件的可靠度以及组件间的转移概率。可以看出,PRMRE也是一个由节点和边构成的模型,其中节点代表组件,节点的属性用来描述所对应组件的可靠度;边代表组件间的调用关系,边上的权值表示组件间的转移概率,PRMRE的元模型如图15所示。
PRMRE的组件转移概率确定方法中,将基于UML时序图,给出RMRP中顺序转移模式、条件转移模式、并发转移模式对应的转移概率确定方法。在对组件的转移概率进行讨论前,首先需要明确的两点内容是:第一,本部分将在管道过滤器风格的体系结构背景下展开讨论。第二,由于RMRP 是在运行阶段构造的,因此组件间的调用是实际发生的,即RMRP中组件的调用关系是确定性的。
1、顺序转移模式下组件间的转移概率
顺序转移模式下的时序图如图16所示,该转移模式下,组件C1向组件C2发起调用操作,消息名称为call,消息类型为同步调用,即C1向C2发送消息后处于等待状态,在该状态下C1不会执行其他操作,也不会向其他组件发送消息,直到C2返回消息return,在C1收到C2的return 消息后,C1将控制权转交给C2。之后C2向C3发起调用操作,消息名称为call,消息类型为同步调用,C2向C3发送消息后同样处于等待状态,直到C3向C2返回消息return。可以看出,顺序转移模式下,发起调用的组件在收到被调用组件的返回消息return后都将控制权转交给被调用组件,并按照此规则依次执行下去,直到转移模式发生变化。在顺序转移模式下,每一个具有控制权的调用组件向被调用组件发起调用的操作都可以看作是概率为1的确定事件。综上所述,可以得出以下结论:在顺序转移模式下RCIM组件间的转移概率为1。
2、并发转移模式下组件间的转移概率
并发转移模式下的时序图如图17所示,从图中可以看到,组件C1在其生命线的同一位置点分别向组件C2和C3发起调用操作,消息名称为“invoke”,消息类型为异步调用。C2,C3以并发的形式在其生命线上执行,在执行完毕后分别调用组件C4,之后C4向C5发起同步调用,消息名称为“call”且该消息的约束为“all message received”,这一约束表示当且仅当C2与C3完成并发执行后,C4才能开始执行。通过上述过程可以看出,只有当C2与C3都执行且执行完成后,一个并发过程才算完成,这也意味着每个并发的分支都必须为真,否则这种关系将不成立。基于上述分析可以得到以下结论:在并发转移模式下PRMRE组件间的转移概率为1。
3、条件转移模式下组件间的转移概率
条件转移模式下的时序图如图18所示,从图中可以看到,组件C1在其生命线的同一位置点分别向组件C2、C3、C4发起调用操作,消息名称为call,消息类型为同步调用,消息的约束为 {condition==Cn},n∈{2,3,4}。其中,发起调用的组件C1的调用操作是确定行为,C2,C3,C4 向C1的返回操作return在约束条件下也变为确定行为。例如,在约束条件{condition==C2}下,表C1向C2发起调用操作,C2将返回值return返回给C1,此后,C1将控制权转交给C2,C2向 C5发起用操作,消息名称为call,消息类型为同步调用,C5将返回值return返回给C2,C2将控制权转交给C5,至此约束条件{condition==C2}下C1调用C2的操作执行完毕。同理,C1在约束条件{condition==C3}下调用C3以及C1在约束条件{condition==C4}调用C4的过程也可以有类似的描述。假设约束条件{condition==C2}、{condition==C3}、{condition==C4}发生的概率分别为a、 b、c,则可以认为C1分别以a、b、c的概率向C2,C3,C4发生转移,且a+b+c=1。该式中,TNij表示组件i调用组件j的调用次数,表示组件i在所有约束条件下调用了k个被调用组件的总调用次数。综上所述可以得出以下结论:条件转移模式下组件的转移概率确定方法如下式所示,且所有分支的转移概率之和为1:
基于前面给出的组件转移概率确定方法,便可以确定PRMRE中组件间的转移概率。进一步,通过向RMRP中添加可靠性信息,可以将图4中的RMRP扩展为图19所示的PRMRE。
步骤四:将面向预计的可靠性扩展模型转换为马尔科夫分析模型;一个马尔科夫分析模型由状态和状态间的转移组成,状态的类型包含瞬时态和吸收态,其中吸收态又分为吸收态S,表示马尔科夫模型完成所有的状态转移进入的终止状态;吸收态F,表示状态发生转移时进入的失效状态。马尔科夫模型在进行状态转移过程中,单个状态的失效可以影响转移行为,因此马尔科夫模型还需要描述状态的可靠度和状态间的转移概率,具体而言,可靠度以状态的属性表示,状态间的转移概率以状态转移的属性表示。马尔科夫分析模型的元模型如图20所示:
由PRMRE到马尔科夫分析模型的转换规则:由PRMRE到马尔科夫分析模型的模型转换可以分为三个层次。首先是模型层的转换,源模型为PRMRE,目标模型为马尔科夫模型;其次是模型组成元素的转换,将PRMRE的组件转换为马尔科夫模型的状态;最后是模型元素标记的转换,将PRMRE组件间的调用转换为马尔科夫模型状态间的转移。根据上述转换,可将图19中的PRMRE转换成图21 中的马尔科夫模型。
马尔科夫分析模型中并发状态的处理:PRMRE模型中的组件可能存在并发转移模式,这也就意味着通过模型转换得到的马尔科夫模型中也存在并发状态。但是,由于马尔科夫模型自身的性质,其并不支持并发状态。因此,需要对存在并发状态的马尔科夫分析模型进行进一步的处理。采用包节点的方式来解决马尔科夫分析模型中存在并发状态这一问题。包节点指的是将马尔科夫分析模型中的并发状态进行打包形成一个整体状态进行分析。如图22所示,该图中,将状态C、D打包成为package状态进行分析,在对带有包状态的马尔科夫模型进行分析时,需要考虑包节点的整体可靠度。该包节点中由两条分支BCE和BDE组成,因此该包节点的可靠度是上述两条分支的乘积,由于每一个分支中组件间的转移概率都为1(一定发生)且每一个分支都会发生,因此包节点的可靠度也等于节点内所有组件的可靠度乘积。具体而言,假设一个PRMRE 有n≥1个组件组成,其中n-2个组件存在并发转移关系,可靠度
步骤五:基于马尔科夫分析模型对不同适应策略执行后自适应的整体可靠性水平进行预测,并根据预测结果选择适应策略。
每个适应阶段中的自适应软件是由n个组件{C1,C2,...Cn}组成,其中C1是程序执行的入口, Cn是终止的出口。
则该自适应软件在每个适应阶段内的马尔科夫链状态空间可以描述为{S1,S2,...Sn},状态转移矩阵M为:
其中,pij表示组件i到组件j的转移概率,Ri表示组件i的可靠度,Ripij表示组件i被成功调用后再调用组件j的概率。为了使该状态转移矩阵能够描述自适应软件的可靠性,现对其进行如下扩展:加入一个吸收态S,表示组件发生调用不失效的状态;和另一个吸收态F,表示组件发生调用时产生了失效状态。对于吸收态S,只能由终止组件Cn转移得到;对于吸收态F,则可以通过自适应软件的任意一个组件转移得到。因此,扩展了吸收态S和F的马尔科夫链的状态空间可以描述为{S,F,S1,S2,...Sn},其状态转移矩阵ME为:
通过该矩阵可以得出如下结论,矩阵ME是矩阵M增加了第一列和第二列得到的,第一列表示自适应软件中每个组件的状态转移到吸收态S的概率,第二列则表示每个组件的状态转移到吸收态F的概率。
为了对该矩阵进行计算,现在假设存在一个矩阵T,该矩阵中的元素Tij表示组件i经过k步骤转移到组件j的概率。则:单位矩阵I中的I(i,j)表示组件i经过0步转移到组件j的概率;M中的M(i,j)表示组件i经过1步转移到组件j的概率;M2中的M2(i,j)表示组件i经过2步转移到组件j的概率…以此类推,则Mk(i,j)表示组件i进过k步转移到组件j的概率。因此,Mk(1,n)表示自适应软件的组件由组件1,经过k步转移到组件n的概率。
现将矩阵T中的元素相加,可得:其中, I+M+M2+M3+......为等比数列,通过等比数列求和公式推导可得:T=(I-M)-1。此外,假设E为矩阵(I-M)中删除第一列和第n行之后的矩阵,通过逆矩阵推导,可得自适应软件的整体可靠度为:
该式中的M表示pij,即组件i经过一步转移到组件j的概率,Rn表示组件的可靠度。本发明中认为组件的可靠度是已知的,可通过经验数据获得。
尽管为了说明的目的,已描述了本发明的示例性实施方式,但是本领域的技术人员将理解,不脱离所附权利要求中公开的发明的范围和精神的情况下,可以在形式和细节上进行各种修改、添加和替换等的改变,而所有这些改变都应属于本发明所附权利要求的保护范围,并且本发明要求保护的产品各个部分和方法中的各个步骤,可以以任意组合的形式组合在一起。因此,对本发明中所公开的实施方式的描述并非为了限制本发明的范围,而是用于描述本发明。相应地,本发明的范围不受以上实施方式的限制,而是由权利要求或其等同物进行限定。
Claims (9)
1.一种面向策略选择的自适应运行的可靠性预计方法,其特征在于,包括如下步骤:
(1)构造当前阶段的运行时模型RCIM;
(2)基于适应策略与所述当前阶段的运行时模型构造面向可靠性预计的运行时模型RMRP;
(3)对面向可靠性预计的运行时模型进行可靠性信息扩展,得到面向预计的可靠性扩展模型,扩展的内容包括组件的可靠度与组件间的转移概率;
(4)将面向预计的可靠性扩展模型转换为马尔科夫分析模型;
(5)基于马尔科夫分析模型对不同适应策略执行后自适应运行的整体可靠性水平进行预测,并根据预测结果选择适应策略。
2.如权利要求1所述的方法,其特征在于:所述步骤(1)中以体系结构为中心进行自适应运行时模型构建。
3.如权利要求1所述的方法,其特征在于:所述步骤(1)中是基于运行时体系结构模型,通过开展当前适应阶段内运行时模型构造方法,得到当前适应阶段内的运行时模型,包括:
1)通过Rainbow框架直接获得当前适应阶段的运行时体系结构模型,该模型侧重于描述当前时刻系统组成结构和配置;
2)通过监控器对被控对象进行实时的监控,收集被控对象的各类信息,完成组件动态调用信息的提取,实现运行时模型的构造,该模型除了能够描述静态结构外,还能够描述动态行为。
4.如权利要求1所述的方法,其特征在于:所述步骤(2)中适应策略从备选策略集合中进行选取。
5.如权利要求1所述的方法,其特征在于:所述步骤(2)中通过得到的运行时模型RCIM和适应策略为基础,将适应策略施加在运行时模型RCIM上驱动其发生变化,并推测出面向可靠性预计的运行时模型RMRP。
6.如权利要求1所述的方法,其特征在于:所述步骤(4)中将面向预计的可靠性扩展模型转换为马尔科夫分析模型包括:(1)模型层的转换:源模型为通过向RMRP中添加组件可靠度信息和组件间转移概率而获得的面向预计的运行时可靠性扩展模型PRMRE,目标模型为马尔科夫模型;(2)模型组成元素的转换:将面向预计的运行时可靠性扩展模型PRMRE的组件转换为马尔科夫模型的状态;(3)模型元素标记的转换,将面向预计的运行时可靠性扩展模型PRMRE组件间的调用转换为马尔科夫模型状态间的转移。
8.如权利要求1所述的方法,其特征在于:所述步骤(5)具体为:
设置每个适应阶段中的自适应方式是由n个组件{C1,C2,...Cn}组成,其中C1是程序执行的入口,Cn是终止的出口;
则该自适应方式在每个适应阶段内的马尔科夫链状态空间可以描述为{S1,S2,...Sn},状态转移矩阵M为:
其中,pij表示组件i到组件j的转移概率,Ri表示组件i的可靠度,Ripij表示组件i被成功调用后再调用组件j的概率;为了使该状态转移矩阵能够描述自适应软件的可靠性,对其进行如下扩展:加入一个吸收态S,表示组件发生调用不失效的状态;和另一个吸收态F,表示组件发生调用时产生了失效状态;对于吸收态S,只能由终止组件Cn转移得到;对于吸收态F,则通过自适应软件的任意一个组件转移得到,扩展了吸收态S和F的马尔科夫链的状态空间描述为{S,F,S1,S2,...Sn},其状态转移矩阵ME为:
通过该矩阵可以得出如下结论,矩阵ME是矩阵M增加了第一列和第二列得到的,第一列表示自适应软件中每个组件的状态转移到吸收态S的概率,第二列则表示每个组件的状态转移到吸收态F的概率。
9.如权利要求8所述的方法,其特征在于:所述步骤(5)具体还包括:为了对状态转移矩阵ME进行计算,假设存在一个矩阵T,该矩阵中的元素Tij表示组件i经过k步骤转移到组件j的概率,则单位矩阵I中的I(i,j)表示组件i经过0步转移到组件j的概率;M中的M(i,j)表示组件i经过1步转移到组件j的概率;M2中的M2(i,j)表示组件i经过2步转移到组件j的概率,以此类推,则Mk(i,j)表示组件i经过k步转移到组件j的概率,Mk(1,n)表示自适应方式中的组件1,经过k步转移到组件n的概率;
现将矩阵T中的元素相加,可得:其中,I+M+M2+M3+......为等比数列,通过等比数列求和公式推导可得:T=(I-M)-1;此外,假设E为矩阵(I-M)中删除第一列和第n行之后的矩阵,通过逆矩阵推导,可得自适应软件的整体可靠度为:
该式中的M表示pij,即组件i经过一步转移到组件j的概率,Rn表示组件的可靠度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011522785.0A CN112559358B (zh) | 2020-12-21 | 2020-12-21 | 一种面向策略选择的自适应运行的可靠性预计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011522785.0A CN112559358B (zh) | 2020-12-21 | 2020-12-21 | 一种面向策略选择的自适应运行的可靠性预计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112559358A CN112559358A (zh) | 2021-03-26 |
CN112559358B true CN112559358B (zh) | 2022-04-12 |
Family
ID=75031155
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011522785.0A Active CN112559358B (zh) | 2020-12-21 | 2020-12-21 | 一种面向策略选择的自适应运行的可靠性预计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112559358B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488880A (zh) * | 2008-01-16 | 2009-07-22 | 北京航空航天大学 | 一种提高服务组合可信性的自适应维护方法 |
CN104375842A (zh) * | 2014-12-05 | 2015-02-25 | 中国人民解放军理工大学 | 一种自适应软件uml建模及其形式化验证方法 |
CN105005509A (zh) * | 2015-07-07 | 2015-10-28 | 北京大学 | 一种基于运行时模型的云计算容错机制配置方法 |
CN108304679A (zh) * | 2018-03-07 | 2018-07-20 | 西北工业大学 | 一种自适应可靠性分析方法 |
CN109063264A (zh) * | 2018-07-03 | 2018-12-21 | 中国人民解放军陆军勤务学院 | 一种多阶段任务系统可靠性建模与分析方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100218171A1 (en) * | 2009-02-26 | 2010-08-26 | Computer Measurement Laboratory, Inc. | Computer bus monitoring for the adaptive control of executing software processes |
-
2020
- 2020-12-21 CN CN202011522785.0A patent/CN112559358B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488880A (zh) * | 2008-01-16 | 2009-07-22 | 北京航空航天大学 | 一种提高服务组合可信性的自适应维护方法 |
CN104375842A (zh) * | 2014-12-05 | 2015-02-25 | 中国人民解放军理工大学 | 一种自适应软件uml建模及其形式化验证方法 |
CN105005509A (zh) * | 2015-07-07 | 2015-10-28 | 北京大学 | 一种基于运行时模型的云计算容错机制配置方法 |
CN108304679A (zh) * | 2018-03-07 | 2018-07-20 | 西北工业大学 | 一种自适应可靠性分析方法 |
CN109063264A (zh) * | 2018-07-03 | 2018-12-21 | 中国人民解放军陆军勤务学院 | 一种多阶段任务系统可靠性建模与分析方法 |
Non-Patent Citations (1)
Title |
---|
软件可靠性预计方法研究及实现;丛珉等;《北京航空航天大学学报》;20020228;第28卷(第01期);34-38 * |
Also Published As
Publication number | Publication date |
---|---|
CN112559358A (zh) | 2021-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10659316B1 (en) | State machine controlled dynamic distributed computing | |
Wang et al. | An architecture-based software reliability model | |
US20210216444A1 (en) | Micro services tests prioritization | |
Andersson et al. | Reflecting on self-adaptive software systems | |
US7617230B2 (en) | Finding similarity among sets of coordinated tasks | |
US20070206611A1 (en) | Effective high availability cluster management and effective state propagation for failure recovery in high availability clusters | |
US8220001B2 (en) | Adaptive cluster timer manager | |
US20070083551A1 (en) | Extensible mechanism for object composition | |
CN110233802B (zh) | 一种构建一主链多侧链的区块链架构的方法 | |
CN110489086A (zh) | 流程执行控制方法、装置、计算机设备及存储介质 | |
Calinescu et al. | Using runtime quantitative verification to provide assurance evidence for self-adaptive software: advances, applications and research challenges | |
Rukoz et al. | Faceta*: Checkpointing for transactional composite web service execution based on petri-nets | |
Wu et al. | Microras: Automatic recovery in the absence of historical failure data for microservice systems | |
CN114756357A (zh) | 一种基于jvm的非阻塞分布式计划任务调度方法 | |
CN112559358B (zh) | 一种面向策略选择的自适应运行的可靠性预计方法 | |
JP2006285474A (ja) | 並列計算機及びその制御方法 | |
US20080021751A1 (en) | Method and system for transforming orders for executing them in standard workflow engines | |
Carpio et al. | Engineering a QoS provider mechanism for edge computing with deep reinforcement learning | |
Magdich et al. | A MARTE extension for global scheduling analysis of multiprocessor systems | |
Machado et al. | Enabling rollback support in IT change management systems | |
Rosa et al. | Lightweight formalisation of adaptive middleware | |
Hassine et al. | Abstract operational semantics for use case maps | |
Diaconescu et al. | A framework for using component redundancy for self-optimising and self-healing component based systems | |
Esfahani et al. | Utilizing architectural styles to enhance the adaptation support of middleware platforms | |
Ismail et al. | Analyzing fault-impact region of composite service for supporting fault handling process |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |