楊卓群 金 芝
1(高可信軟件技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室(北京大學(xué)) 北京 100871) 2(中國(guó)科學(xué)院數(shù)學(xué)與系統(tǒng)科學(xué)研究院數(shù)學(xué)研究所 北京 100190) 3 (北京大學(xué)信息科學(xué)技術(shù)學(xué)院軟件研究所 北京 100871) (zhuoqun.y@hotmail.com)
隨著軟件系統(tǒng)越來(lái)越深入地嵌入到人類(lèi)社會(huì)和物理社會(huì)中,軟件在運(yùn)行時(shí)會(huì)與其他軟硬件系統(tǒng)、物理設(shè)備和用戶發(fā)生密切交互.來(lái)自交互環(huán)境和用戶對(duì)軟件期望的不確定性成為軟件系統(tǒng)開(kāi)發(fā)面臨的挑戰(zhàn).
不確定性(uncertainty)指一種具有不完善或未知信息和知識(shí)的狀況.在這一狀況下,事物的當(dāng)前狀態(tài)、未來(lái)的某一結(jié)果或者多個(gè)結(jié)果都無(wú)法被確切地描述出來(lái)[1].它出現(xiàn)在部分可觀測(cè)或者隨機(jī)的環(huán)境中,并且由相關(guān)知識(shí)的缺失所導(dǎo)致.
不確定性存在于對(duì)未來(lái)事件的預(yù)測(cè)以及對(duì)事物的度量過(guò)程中[2].處理不確定性的方式有多種,比如:貝葉斯學(xué)派通過(guò)概率對(duì)事件的發(fā)生情況進(jìn)行描述,以預(yù)測(cè)未來(lái)事件發(fā)生的可能性;模糊理論學(xué)派通過(guò)模糊邏輯對(duì)變量的度量結(jié)果進(jìn)行描述,以處理度量過(guò)程中的誤差[3].
軟件系統(tǒng)所面對(duì)的不確定性包括交互環(huán)境的變化難以準(zhǔn)確預(yù)測(cè),及其需求隨環(huán)境發(fā)生的改變無(wú)法預(yù)知[4].不確定性使軟件系統(tǒng)變得復(fù)雜.為應(yīng)對(duì)來(lái)自交互環(huán)境和需求的變化,軟件需要做出相應(yīng)調(diào)節(jié)以提供持續(xù)的服務(wù).此調(diào)節(jié)過(guò)程實(shí)際上是一種自適應(yīng)過(guò)程[5].為保證自適應(yīng)軟件系統(tǒng)能夠根據(jù)運(yùn)行時(shí)環(huán)境和需求的變化進(jìn)行自主調(diào)節(jié),需要構(gòu)建自適應(yīng)機(jī)制[6].
目前,關(guān)于自適應(yīng)軟件系統(tǒng)如何建模和決策以應(yīng)對(duì)不確定性的研究有:1) 在應(yīng)對(duì)環(huán)境不確定性方面,主要工作包括基于目標(biāo)模型刻畫(huà)環(huán)境對(duì)需求的影響[7]、通過(guò)追蹤性刻畫(huà)環(huán)境變化帶來(lái)的需求變化[8-10],基于組件結(jié)構(gòu)的自適應(yīng)決策[11-12]和基于概率計(jì)算的自適應(yīng)決策[13-15];2) 在應(yīng)對(duì)需求變化方面,相關(guān)工作包括運(yùn)行時(shí)的需求監(jiān)控[16]、需求彈性建模[17-18]、環(huán)境和需求的推理關(guān)系建模[19]、不確定性需求的管理[20-21]及針對(duì)需求滿足變化性的自適應(yīng)決策[22-24].
當(dāng)環(huán)境和需求均不確定時(shí),在自適應(yīng)過(guò)程中同時(shí)考慮兩者變化及軟件行為的調(diào)整非常必要.然而,現(xiàn)有工作缺乏對(duì)這一問(wèn)題的綜合考慮,有的僅關(guān)注如何建模環(huán)境和需求間的變化追蹤關(guān)系,有的僅考慮如何在變化的環(huán)境下調(diào)整軟件行為以滿足固定需求.它們均不能處理環(huán)境和需求自身均有變化的自適應(yīng)問(wèn)題.
本文的主要關(guān)注點(diǎn)為如何通過(guò)自適應(yīng)決策來(lái)應(yīng)對(duì)環(huán)境和需求的不確定性.首先,環(huán)境的變化會(huì)引起軟件質(zhì)量需求的變化.在用戶無(wú)法準(zhǔn)確表達(dá)質(zhì)量需求時(shí),就無(wú)法精確建立環(huán)境對(duì)需求的影響關(guān)系.比如:“電量充足的情況下,用戶希望能接收到更多的數(shù)據(jù)”,其中的“電量充足”和“更多的數(shù)據(jù)”都是無(wú)法準(zhǔn)確衡量的.這些無(wú)法準(zhǔn)確量化的表述,均適合通過(guò)模糊邏輯進(jìn)行刻畫(huà).另外,環(huán)境和需求的變化也會(huì)導(dǎo)致無(wú)法準(zhǔn)確描述它們和軟件行為間的關(guān)系[25].其次,需求的不確定性會(huì)導(dǎo)致自適應(yīng)決策目標(biāo)的變化.決策目標(biāo)固定時(shí),軟件系統(tǒng)可依據(jù)先驗(yàn)知識(shí)實(shí)現(xiàn)調(diào)節(jié).然而在決策目標(biāo)變化時(shí),基于先驗(yàn)知識(shí)的調(diào)節(jié)過(guò)程可能會(huì)失效,因?yàn)橄闰?yàn)知識(shí)無(wú)法覆蓋不可預(yù)知的變化.這2點(diǎn)都對(duì)自適應(yīng)決策過(guò)程帶來(lái)很大的挑戰(zhàn).
為通過(guò)自適應(yīng)決策應(yīng)對(duì)不確定性,軟件系統(tǒng)應(yīng)當(dāng)能夠感知環(huán)境和需求變化,并根據(jù)這些變化對(duì)自身行為進(jìn)行優(yōu)化調(diào)節(jié).從感知到調(diào)節(jié)的過(guò)程可通過(guò)控制方法實(shí)現(xiàn)[26],尤其是采用反饋回路構(gòu)建自適應(yīng)機(jī)制[27].
本文提出一種基于模糊控制的自適應(yīng)決策方法(fuzzy control based adaptation decision making, FADEM),通過(guò)控制機(jī)制和推理計(jì)算實(shí)現(xiàn)軟件系統(tǒng)的在線優(yōu)化決策,以應(yīng)對(duì)運(yùn)行時(shí)環(huán)境和需求的不確定性.主要工作包括3個(gè)方面:
1) 基于模糊邏輯建模并描述環(huán)境、需求和軟件行為中的變化要素及要素間的影響關(guān)系;
2) 根據(jù)影響關(guān)系構(gòu)建啟發(fā)式推理規(guī)則,基于模糊推理過(guò)程實(shí)現(xiàn)量化的推理計(jì)算;
3) 基于前饋-反饋控制結(jié)構(gòu)設(shè)計(jì)自適應(yīng)機(jī)制與算法,并結(jié)合MAPE-K結(jié)構(gòu)[28]設(shè)計(jì)軟件自適應(yīng)組件,用于實(shí)現(xiàn)自適應(yīng)過(guò)程.
本節(jié)主要介紹一個(gè)移動(dòng)端軟件系統(tǒng)的研究案例,用于說(shuō)明本文方法的可行性和有效性.
比特幣(bitcoin)[29]是近年來(lái)出現(xiàn)的一種電子貨幣,用作互聯(lián)網(wǎng)上的交易媒介.與傳統(tǒng)貨幣不同,比特幣依存于一種豐富、廣泛的互聯(lián)網(wǎng)生態(tài)系統(tǒng).比特幣的計(jì)算核心是一個(gè)全局的、公共的日志.由于日志數(shù)據(jù)是通過(guò)節(jié)點(diǎn)逐個(gè)傳遞的,因此被形象的稱為區(qū)塊鏈.區(qū)塊鏈記錄了所有用戶的比特幣交易記錄.
礦工(miner)是互聯(lián)網(wǎng)中共同維護(hù)區(qū)塊鏈的參與者,具有松散的、分布式的、去中心化的組織結(jié)構(gòu).礦工可以是服務(wù)提供商,也可以是自然人.他們?cè)诒镜孬@取并處理其他用戶的交易數(shù)據(jù),將結(jié)果在區(qū)塊鏈中傳播.礦工處理交易數(shù)據(jù)的過(guò)程叫做采礦,采礦的工具稱為比特幣采礦機(jī)(bitcoin-miner),它可以用于PC端,也可以用于移動(dòng)端.采礦模式概括為:礦工消耗本地的計(jì)算資源來(lái)維護(hù)區(qū)塊鏈,同時(shí)會(huì)得到相應(yīng)數(shù)量的比特幣作為獎(jiǎng)勵(lì).采礦機(jī)軟件系統(tǒng)的業(yè)務(wù)功能需求為:
1) 用戶需對(duì)個(gè)人賬戶進(jìn)行管理;
2) 系統(tǒng)需收集并處理區(qū)塊鏈中的交易記錄;
3) 系統(tǒng)需將本地交易記錄在網(wǎng)絡(luò)中廣播;
4) 用戶需獲得比特幣作為采礦的獎(jiǎng)勵(lì).
移動(dòng)終端的采礦機(jī)系統(tǒng)會(huì)受到一系列計(jì)算資源的制約,如帶寬、延遲、剩余電量和可用內(nèi)存等.用戶對(duì)系統(tǒng)還有質(zhì)量需求(quality requirements).
1) QR1:用戶希望系統(tǒng)的響應(yīng)速度更快;
2) QR2:用戶希望系統(tǒng)更加節(jié)能省電;
3) QR3:用戶希望系統(tǒng)處理的交易數(shù)據(jù)更多.
軟件開(kāi)發(fā)問(wèn)題就是要通過(guò)開(kāi)發(fā)軟件,使其與環(huán)境產(chǎn)生交互,以滿足需求.軟件(S)、軟件系統(tǒng)的交互環(huán)境(E)及軟件需求(R)之間存在關(guān)系[30]:
(1)
即軟件應(yīng)符合行為規(guī)約S,并通過(guò)和其交互環(huán)境E發(fā)生交互,使需求R得以滿足.這里,R不僅包含了功能需求還包括質(zhì)量需求.
由于軟件系統(tǒng)運(yùn)行過(guò)程中存在不確定性,即E和R均會(huì)發(fā)生變化,這就要求S必須也能隨之發(fā)生相應(yīng)變化,以保證軟件系統(tǒng)能滿足需求(式(1)).其中,關(guān)于變化的影響分為2個(gè)方面:
1) 環(huán)境變化會(huì)引起需求變化.這體現(xiàn)為在不同的環(huán)境中,用戶可能會(huì)對(duì)軟件有不同的期望.我們目前僅關(guān)注質(zhì)量需求變化的情況,即用戶偏好的變化.這種偏好可通過(guò)用戶對(duì)質(zhì)量需求的預(yù)期滿意度(desired satisfaction degree)來(lái)衡量.比如,對(duì)于比特幣采礦機(jī)而言,終端電量較低時(shí),用戶對(duì)于節(jié)能需求的偏好會(huì)更強(qiáng),即對(duì)此需求的預(yù)期滿意度就會(huì)增高,反之則降低.此外,預(yù)期滿意度也描述了用戶對(duì)質(zhì)量需求的接受程度,滿意度高則表示用戶對(duì)該需求的接受限制越高.當(dāng)環(huán)境不確定時(shí),質(zhì)量需求的偏好也是不確定的.如何描述環(huán)境和質(zhì)量需求,并建立兩者間變化的關(guān)聯(lián)是描述這一影響關(guān)系的關(guān)鍵點(diǎn).
2) 環(huán)境和需求的變化會(huì)引起軟件行為也隨之發(fā)生變化,即軟件根據(jù)環(huán)境和自身的變化,展現(xiàn)不同的行為,以保證當(dāng)前需求的滿足.質(zhì)量需求的實(shí)際滿足情況用其實(shí)際滿意度(actual satisfaction degree)來(lái)衡量.這一方面的關(guān)鍵點(diǎn)是如何根據(jù)環(huán)境和質(zhì)量需求來(lái)確定軟件行為,即如何建立自適應(yīng)機(jī)制,通過(guò)決策使質(zhì)量需求的實(shí)際滿意度能夠達(dá)到預(yù)期滿意度.
為刻畫(huà)上述2個(gè)方面的影響,首先需要建立質(zhì)量需求、環(huán)境和軟件行為間的影響關(guān)系,即建立質(zhì)量需求、環(huán)境和軟件行為中那些變化要素間的影響關(guān)系.這就需要一種能建模和描述變化要素的方法.
其次,對(duì)于軟件系統(tǒng),量化求解往往無(wú)法采用精確的系統(tǒng)方程實(shí)現(xiàn),而基于規(guī)則推理的方法能解決這一問(wèn)題.比如,模糊推理可用于不確定性的量化計(jì)算.因此,在缺少系統(tǒng)方程的情況下,構(gòu)建推理規(guī)則是支持決策求解的要點(diǎn).
再次,軟件在運(yùn)行時(shí)需要不斷感知環(huán)境和需求的變化,并基于這些變化對(duì)其行為進(jìn)行決策,軟件系統(tǒng)自身應(yīng)構(gòu)成封閉回路.故為實(shí)現(xiàn)自適應(yīng)過(guò)程,還需提供一種將軟件建模為回路的自適應(yīng)機(jī)制.
針對(duì)此3點(diǎn)問(wèn)題,F(xiàn)ADEM方法:1)通過(guò)模糊邏輯建模并描述變化不確定的質(zhì)量需求、環(huán)境和軟件行為,并建立變化要素間的影響關(guān)系(第3節(jié));2)基于變化要素間的影響關(guān)系,構(gòu)建啟發(fā)式推理規(guī)則,用于支持定量的推理計(jì)算(第4節(jié));3)基于前饋-反饋控制結(jié)構(gòu),構(gòu)建自適應(yīng)機(jī)制,并通過(guò)具體算法和組件實(shí)現(xiàn)在線的自適應(yīng)決策(第5節(jié)).
FADEM的框架可以通過(guò)圖1表示:系統(tǒng)由業(yè)務(wù)邏輯層和自適應(yīng)邏輯層2部分刻畫(huà),業(yè)務(wù)邏輯層包含軟件的功能結(jié)構(gòu)和交互環(huán)境,自適應(yīng)邏輯層包含實(shí)現(xiàn)自適應(yīng)決策所需要的自適應(yīng)機(jī)制、算法和組件;系統(tǒng)建模過(guò)程從業(yè)務(wù)邏輯層抽象構(gòu)建系統(tǒng)的需求模型、環(huán)境模型和配置模型,并進(jìn)一步由用戶和專家從模型中抽取出變化要素和要素間的影響關(guān)系;模糊控制器的構(gòu)建包括2個(gè)部分:隸屬函數(shù)根據(jù)變化要素的描述生成,推理規(guī)則根據(jù)影響關(guān)系的描述生成;模糊控制器構(gòu)成了自適應(yīng)邏輯層的求解單元.
Fig. 1 Framework of FADEM圖1 FADEM的框架
為描述質(zhì)量需求、環(huán)境和軟件行為之間的關(guān)系,需要對(duì)系統(tǒng)進(jìn)行建模.系統(tǒng)建模涉及3個(gè)方面:質(zhì)量需求建模、環(huán)境建模和軟件配置建模.本節(jié)首先介紹這3個(gè)方面的模型,然后進(jìn)一步闡述質(zhì)量需求、環(huán)境和軟件行為間的關(guān)系.
為描述質(zhì)量需求,首先應(yīng)進(jìn)行需求建模.目標(biāo)模型是用于刻畫(huà)軟件需求的常用模型,建模元素分別為:目標(biāo)描述軟件的功能需求、任務(wù)描述實(shí)現(xiàn)目標(biāo)所要執(zhí)行的動(dòng)作、軟目標(biāo)用于刻畫(huà)質(zhì)量需求、分解關(guān)系用于刻畫(huà)目標(biāo)間或目標(biāo)與任務(wù)間的精化關(guān)系、貢獻(xiàn)關(guān)系刻畫(huà)任務(wù)對(duì)于軟目標(biāo)的支持.
為描述需求滿足程度的彈性,Whittle等人[18]提出RELAX語(yǔ)言,對(duì)需求完成情況進(jìn)行放松.其形式為在需求前加入模糊關(guān)鍵詞,比如“盡可能滿足p”,其中p為與需求相關(guān)的原子命題.然而,RELAX只考慮了需求滿足情況的變化,并未關(guān)注需求本身是否會(huì)變化.因此不適用于處理需求自身變化的問(wèn)題.
FADEM用于解決質(zhì)量需求自身變化時(shí)的決策問(wèn)題.質(zhì)量需求的自身變化體現(xiàn)為其預(yù)期滿意度的變化,而其實(shí)際滿足情況則通過(guò)實(shí)際滿意度來(lái)刻畫(huà).自適應(yīng)決策目標(biāo)為每個(gè)質(zhì)量需求的預(yù)期滿意度和實(shí)際滿意度的差值盡可能接近于零.這種決策目標(biāo)應(yīng)在目標(biāo)模型中的每個(gè)軟目標(biāo)上進(jìn)行擴(kuò)展,以刻畫(huà)質(zhì)量需求變化.
擴(kuò)展過(guò)程首先通過(guò)目標(biāo)建模,識(shí)別出軟件所需滿足的軟目標(biāo)集合SG={sg1,sg2,…,sgn}和軟目標(biāo)滿意度集合SD={sd1,sd2,…,sdn}.滿意度的取值為[0,1]上的實(shí)數(shù).
為根據(jù)軟目標(biāo)滿意度的變化進(jìn)行決策,需要刻畫(huà)滿意度的變化性.軟目標(biāo)滿意度描述為四元組
sdvs d,doms d,LVs d,MFs d.
1)vs d是滿意度的清晰值(crisp value);
2)doms d是滿意度的定義域(domain),即[0,1];
軟目標(biāo)滿意度的取值空間表示為笛卡兒積:
對(duì)于軟件整體,其決策目標(biāo)應(yīng)權(quán)衡每個(gè)軟目標(biāo),從而使整體滿意度偏差達(dá)到最小,即:
(2)
其中,wi是sgi的權(quán)重.
整體決策目標(biāo)的含義是通過(guò)自適應(yīng)決策使實(shí)際滿意度更貼近預(yù)期滿意度.從這一角度出發(fā),考慮用戶需求的變化性和需求預(yù)期滿意度才具有意義.該決策目標(biāo)既使軟件的調(diào)節(jié)結(jié)果能更好地符合用戶期望,又在滿足需求的前提下,減小了系統(tǒng)開(kāi)銷(xiāo).
以比特幣采礦機(jī)為例,為能實(shí)現(xiàn)其業(yè)務(wù)需求,它應(yīng)支持用戶管理、交易數(shù)據(jù)收集、數(shù)據(jù)分析和報(bào)酬獲取的功能.為更靈活地滿足質(zhì)量需求,采礦機(jī)應(yīng)具有一定調(diào)整能力,比如,能對(duì)處理數(shù)據(jù)規(guī)模和時(shí)間進(jìn)行設(shè)置.此外,由于軟件所處的網(wǎng)絡(luò)環(huán)境是多變的,它需要支持不同的交易數(shù)據(jù)廣播方式,即廣播到主區(qū)塊或者廣播到鄰近節(jié)點(diǎn).通過(guò)對(duì)采礦機(jī)軟件目標(biāo)建模,可得到圖2所示的采礦機(jī)需求模型.其中,目標(biāo)集合{g1,g2,…,g15}表示軟件的功能需求,任務(wù)集合{t1,t2,…,t8}表示軟件為實(shí)現(xiàn)目標(biāo)所需要執(zhí)行的任務(wù).
Fig. 2 Requirements model of bitcoin-miner圖2 比特幣采礦機(jī)需求模型
軟目標(biāo)sg1,sg2,sg3分別建模采礦機(jī)質(zhì)量需求QR1,QR2,QR3.sg0是在3個(gè)軟目標(biāo)之上的總體軟目標(biāo).圓角矩形表示針對(duì)每個(gè)軟目標(biāo)擴(kuò)展出的相應(yīng)決策目標(biāo).
以sg1的滿意度sd1為例,當(dāng)用語(yǔ)言變量集合{低,中,高}對(duì)其進(jìn)行刻畫(huà)時(shí),它描述為
vs d1,[0,1],{低,中,高},MFs d1.
滿意度表達(dá)式中的隸屬函數(shù)集合MFs d應(yīng)通過(guò)用戶對(duì)質(zhì)量需求滿足程度的評(píng)估來(lái)構(gòu)建.構(gòu)建隸屬函數(shù)的過(guò)程就是確定隸屬函數(shù)參數(shù)的過(guò)程.函數(shù)參數(shù)可采用問(wèn)卷調(diào)研法(questionnaire survey)進(jìn)行抽取.常見(jiàn)的隸屬函數(shù)類(lèi)型包括三角型隸屬函數(shù)、梯形隸屬函數(shù)和高斯型隸屬函數(shù)等.對(duì)于不同類(lèi)型的隸屬函數(shù),需要抽取的參數(shù)是不同的,但抽取步驟是一致的.注意,不同軟目標(biāo)滿意度的隸屬函數(shù)類(lèi)型可以不同,并且針對(duì)不同的軟目標(biāo)滿意度需設(shè)計(jì)不同的問(wèn)卷.
以圖2中sg1的滿意度和三角型隸屬函數(shù)為例,該滿意度隸屬函數(shù)的抽取步驟如下:
1) 設(shè)計(jì)關(guān)于滿意度的調(diào)研問(wèn)題,如圖3(a)所示,調(diào)研問(wèn)題中應(yīng)給定滿意度取值范圍;
2) 設(shè)計(jì)評(píng)估表格,如圖3(b)所示.表格首行為描述滿意程度的語(yǔ)言變量;表格首列為用戶評(píng)估滿意度屬于某語(yǔ)言變量的邊界(上界和下界);
3) 用戶根據(jù)對(duì)質(zhì)量需求的評(píng)估填寫(xiě)表格,如圖3(b)所示中灰色部分,若認(rèn)為無(wú)邊界值則可設(shè)為缺??;
4) 根據(jù)每個(gè)語(yǔ)言變量對(duì)應(yīng)的邊界值確定隸屬函數(shù)曲線的拐點(diǎn),如圖3(c)所示.不同語(yǔ)言變量對(duì)應(yīng)的隸屬函數(shù)構(gòu)成的集合即為MFs d1.
Fig. 3 Elicitation of functions for satisfaction degrees of quick response requirement圖3 快速響應(yīng)需求的滿意度隸屬函數(shù)的抽取過(guò)程
環(huán)境變化由環(huán)境實(shí)體的變化所引起.從變化性的角度出發(fā),軟件運(yùn)行所依賴的環(huán)境實(shí)體可分為2類(lèi),即固定的環(huán)境實(shí)體和變化的環(huán)境實(shí)體.對(duì)于變化的環(huán)境實(shí)體,又可根據(jù)變化類(lèi)型進(jìn)一步分為取值變化的環(huán)境實(shí)體和狀態(tài)變化的環(huán)境實(shí)體.取值變化的環(huán)境實(shí)體的特點(diǎn)為其屬性變量是連續(xù)變化的數(shù)值,而狀態(tài)變化的環(huán)境實(shí)體的特點(diǎn)為其屬性狀態(tài)構(gòu)成一個(gè)有限集.
環(huán)境建模就是要對(duì)軟件運(yùn)行所依賴的環(huán)境實(shí)體進(jìn)行歸類(lèi),將每個(gè)環(huán)境實(shí)體劃分到固定的環(huán)境實(shí)體、取值變化的環(huán)境實(shí)體和狀態(tài)變化的環(huán)境實(shí)體3類(lèi)之一,進(jìn)而對(duì)于變化的環(huán)境實(shí)體識(shí)別出它們的屬性變量和屬性狀態(tài).
根據(jù)識(shí)別出的屬性變量和屬性狀態(tài),可得到環(huán)境變量的集合為E={e1,e2,…,en}.由于屬性狀態(tài)可看做是屬性變量在離散域中的特例,屬性變量和屬性狀態(tài)統(tǒng)一描述為四元組
eve,dome,LVe,MFe,
Fig. 4 Environment model of bitcoin-miner圖4 比特幣采礦機(jī)環(huán)境模型
其中,ve是環(huán)境變量的清晰值,dome是該變量的取值范圍,LVe是刻畫(huà)該變量程度的語(yǔ)言變量集合,MFe是隸屬函數(shù)集合.
環(huán)境變量的取值空間定義為笛卡兒積
以比特幣采礦機(jī)為例,由于軟件運(yùn)行依賴于互聯(lián)網(wǎng)、能量和計(jì)算設(shè)備,因此網(wǎng)絡(luò)、電池和硬盤(pán)均是影響軟件的環(huán)境實(shí)體.相應(yīng)地,帶寬和網(wǎng)絡(luò)延遲、剩余電量和可用內(nèi)存是這些環(huán)境實(shí)體的屬性.由于這些屬性取值都無(wú)法通過(guò)一個(gè)有限集刻畫(huà),相應(yīng)的實(shí)體都是取值變化類(lèi)型的.由于軟件運(yùn)行還需要依賴設(shè)備捕獲網(wǎng)絡(luò)信號(hào),故網(wǎng)絡(luò)設(shè)備也是影響軟件的環(huán)境實(shí)體.它的屬性狀態(tài)為設(shè)備的開(kāi)或關(guān).
以上建模結(jié)果可用圖4表示,它描述了環(huán)境實(shí)體的分類(lèi)及實(shí)體和屬性的關(guān)系.其中環(huán)境變量e1,e2,e3,e4的取值范圍是一個(gè)區(qū)間,表達(dá)了它們的潛在變化.該區(qū)間可通過(guò)對(duì)環(huán)境變量的監(jiān)測(cè)來(lái)確定.
以e3為例,當(dāng)環(huán)境變量取值用語(yǔ)言變量集合{低,中,高}刻畫(huà)時(shí),它描述為
ve3,[0mA,1000mA],{低,中,高},MFe3.
Fig. 6 Configuration model of bitcoin-miner圖6 比特幣采礦機(jī)配置模型
環(huán)境變量隸屬函數(shù)集合MFe可通過(guò)領(lǐng)域?qū)<覍?duì)環(huán)境變量的評(píng)估來(lái)構(gòu)建.采用問(wèn)卷法抽取環(huán)境變量隸屬函數(shù)的步驟與抽取軟目標(biāo)滿意度隸屬函數(shù)的過(guò)程是一致的.以三角型隸屬函數(shù)為例,圖5展示了從問(wèn)題到調(diào)研抽取出MFe3的過(guò)程.
Fig. 5 Elicitation of functions for dump energy圖5 剩余電量隸屬函數(shù)的抽取過(guò)程
軟件行為的變化體現(xiàn)在其任務(wù)的動(dòng)態(tài)調(diào)節(jié)中,包括任務(wù)參數(shù)的動(dòng)態(tài)調(diào)節(jié)和任務(wù)結(jié)構(gòu)的動(dòng)態(tài)調(diào)節(jié).
首先,可配置任務(wù)指在運(yùn)行時(shí)需要通過(guò)自適應(yīng)決策動(dòng)態(tài)調(diào)整的任務(wù),包括3種類(lèi)型:參數(shù)可配置任務(wù)、結(jié)構(gòu)可配置任務(wù)和混合配置任務(wù).參數(shù)可配置任務(wù)指執(zhí)行過(guò)程涉及參數(shù)(如時(shí)間、數(shù)據(jù)量等)動(dòng)態(tài)調(diào)節(jié)的任務(wù),這些需要?jiǎng)討B(tài)調(diào)節(jié)的參數(shù)統(tǒng)稱為配置參數(shù);結(jié)構(gòu)可配置任務(wù)指能夠?qū)崿F(xiàn)相同目標(biāo)需求的多個(gè)任務(wù);混合配置任務(wù)指該任務(wù)在結(jié)構(gòu)可調(diào)節(jié)的基礎(chǔ)上,還具有配置參數(shù).
配置參數(shù)集合為C={c1,c2,…,cn}.參數(shù)描述為四元組:
cvc,domc,LVc,MFc,
其中,vc是配置參數(shù)的清晰值,LVc是表示參數(shù)大小的語(yǔ)言變量集,domc是參數(shù)的配置范圍,隸屬函數(shù)集合MFc可通過(guò)專家對(duì)軟件行為評(píng)估來(lái)構(gòu)建.
配置參數(shù)的取值空間表示為
其次,可配置任務(wù)為實(shí)現(xiàn)軟件頂層目標(biāo)提供不同行為選項(xiàng).在軟件自適應(yīng)過(guò)程中,為保證軟件的穩(wěn)定性,應(yīng)使調(diào)節(jié)的配置規(guī)模減至最小.最小配置集指能夠?qū)崿F(xiàn)軟件頂層目標(biāo)所需要的最少配置參數(shù)的集合.最小配置集用于刻畫(huà)配置結(jié)構(gòu).在線自適應(yīng)決策就是要確定選用哪個(gè)最小配置集并確定該最小配置集中所有配置參數(shù)的取值.
為識(shí)別軟件的配置參數(shù)和可選的最小配置集,需對(duì)目標(biāo)模型中的任務(wù)節(jié)點(diǎn)進(jìn)行分析,抽取任務(wù)參數(shù)和結(jié)構(gòu)選項(xiàng),構(gòu)建軟件配置模型.軟件配置模型體現(xiàn)了軟件行為動(dòng)態(tài)調(diào)節(jié)的特點(diǎn).構(gòu)建原則為:從需求模型中識(shí)別可配置任務(wù),并抽取出這些任務(wù)所需要的配置參數(shù);最后根據(jù)目標(biāo)到任務(wù)的分解關(guān)系,將抽取出的配置參數(shù)劃分為不同的最小配置集.
以采礦機(jī)軟件為例,根據(jù)圖2的需求模型,t3和t4為參數(shù)可配置任務(wù);t7和t8為混合配置任務(wù),因?yàn)閠7和t8既包含配置參數(shù),又為實(shí)現(xiàn)g11提供不同任務(wù)選項(xiàng).通過(guò)抽取可配置任務(wù)的參數(shù),可得到圖6所示的配置模型,它在目標(biāo)模型的任務(wù)節(jié)點(diǎn)上添加了配置參數(shù)標(biāo)簽,即c1,c2,c3,c4.
根據(jù)需求模型中目標(biāo)到任務(wù)的分解關(guān)系,圖6中的{c1,c2,c3}和{c1,c2,c4}被識(shí)別為2個(gè)最小配置集.
以c1為例,當(dāng)參數(shù)取值用語(yǔ)言變量集合{小,中,大}進(jìn)行刻畫(huà)時(shí),它描述為
〈vc1,[200KB,500KB],{小,中,大},MFc1.
配置參數(shù)隸屬函數(shù)集合MFc可通過(guò)領(lǐng)域?qū)<覍?duì)軟件行為的評(píng)估來(lái)構(gòu)建.采用問(wèn)卷法抽取隸屬函數(shù)的步驟與抽取軟目標(biāo)滿意度隸屬函數(shù)的過(guò)程也一致.圖7展示了抽取三角型隸屬函數(shù)MFc1的過(guò)程.
Fig. 7 Elicitation of functions for data size圖7 數(shù)據(jù)量隸屬函數(shù)的抽取過(guò)程
為根據(jù)環(huán)境和質(zhì)量需求的變化獲得自適應(yīng)決策,需要建立環(huán)境、質(zhì)量需求和軟件行為之間的量化關(guān)系.實(shí)際上,這就是要刻畫(huà)環(huán)境變量、軟目標(biāo)滿意度和配置參數(shù)之間的量化關(guān)系.
根據(jù)第2節(jié)中關(guān)于變化性影響關(guān)系的討論,環(huán)境變量、軟目標(biāo)滿意度和配置參數(shù)之間的影響關(guān)系主要體現(xiàn)在期望(expect)、調(diào)節(jié)(adjust)和滿足(satisfy)3個(gè)方面,具體內(nèi)容如表1所示.
其中,期望影響關(guān)系表示為三元組:
rEXPE,SD,WEXP,
E為環(huán)境變量集合,SD為軟目標(biāo)滿意度集合.該關(guān)系中SD表現(xiàn)為軟目標(biāo)預(yù)期滿意度.權(quán)重矩陣WEXP由E中元素對(duì)SD中元素的影響權(quán)值組成.
期望影響關(guān)系的映射表示為
MEXPSpaceenv→SpacesatDegree.
權(quán)重矩陣WEXP由領(lǐng)域?qū)<液陀脩舾鶕?jù)環(huán)境對(duì)質(zhì)量需求的影響共同確定.WEXP中的權(quán)值取自[-a,a]上的實(shí)數(shù),正值表示環(huán)境變量與軟目標(biāo)預(yù)期滿意度之間正相關(guān),負(fù)值表示負(fù)相關(guān).權(quán)值的絕對(duì)值越大,表示環(huán)境變量的變化對(duì)軟目標(biāo)預(yù)期滿意度的變化影響越大,兩者關(guān)系越緊密.
Table 1 Influence Relations Between Environment Variables,Softgoal Satisfaction Degrees and Configuration Parameters表1 環(huán)境變量、軟目標(biāo)滿意度和配置參數(shù)間的影響關(guān)系
比如,以[-5,5]為權(quán)值區(qū)間,采礦機(jī)軟件的WEXP如表2所示.其中,剩余電量對(duì)節(jié)能需求預(yù)期滿意度的影響權(quán)值為-5,這表示剩余電量越低,用戶對(duì)節(jié)能需求的預(yù)期滿意度就會(huì)升高,意味著這種情景下用戶對(duì)該需求更加關(guān)注.
調(diào)節(jié)影響關(guān)系表示為三元組:
rADJE,C,WADJ,
E為環(huán)境變量集合,C為配置參數(shù)集合,權(quán)重矩陣WADJ由E中元素對(duì)C中元素的影響權(quán)值組成.
調(diào)節(jié)影響關(guān)系的映射表示為
MADJSpaceenv→Spaceconfig.
權(quán)重矩陣WADJ由領(lǐng)域?qū)<腋鶕?jù)環(huán)境對(duì)軟件行為影響的先驗(yàn)知識(shí)確定.WADJ可支持軟件基于領(lǐng)域知識(shí),根據(jù)環(huán)境變量求解所需的配置參數(shù).WADJ中的權(quán)值是取自[-a,a]上的實(shí)數(shù),正值表示環(huán)境變量與配置參數(shù)之間正相關(guān),負(fù)值表示負(fù)相關(guān).權(quán)值的絕對(duì)值越大,表示環(huán)境變量與配置參數(shù)間的關(guān)系越緊密.
Table 2 Weight Matrix of Expect-Relation表2 期望影響關(guān)系的權(quán)重矩陣
Fig. 8 Structure of fuzzy controller圖8 模糊控制器的結(jié)構(gòu)
比如,采礦機(jī)系統(tǒng)的WADJ描述如表3所示,其中,剩余電量對(duì)處理數(shù)據(jù)量的影響權(quán)值為3,表示剩余電量越高,處理的數(shù)據(jù)量就越大.這意味著電量充足的情況下,處理的事務(wù)數(shù)量會(huì)自主增多.
Table 3 Weight Matrix of Adjust-Relation表3 調(diào)節(jié)影響關(guān)系的權(quán)重矩陣
滿足影響關(guān)系表示為三元組:
rSATC,SD,WSAT,
C為配置參數(shù)集合,SD為軟目標(biāo)滿意度集合.該關(guān)系中SD表現(xiàn)為軟目標(biāo)實(shí)際滿意度.權(quán)重矩陣WSAT由C中元素對(duì)SD中元素的影響權(quán)值組成.
滿足影響關(guān)系的映射表示為
MSATSpaceconfig→SpacesatDegree.
權(quán)重矩陣WSAT由領(lǐng)域?qū)<液陀脩舾鶕?jù)軟件行為對(duì)質(zhì)量需求的影響共同確定.WSAT中的權(quán)值也是取自[-a,a]上的實(shí)數(shù),正值表示配置參數(shù)與軟目標(biāo)實(shí)際滿意度之間正相關(guān),負(fù)值表示負(fù)相關(guān).權(quán)值的絕對(duì)值越大,表示配置參數(shù)變化對(duì)軟目標(biāo)實(shí)際滿意度變化的影響越大,兩者關(guān)系越緊密.
比如,采礦機(jī)系統(tǒng)的WSAT如表4所示.其中,處理時(shí)間間隔對(duì)節(jié)能需求的影響權(quán)重為4,表示處理數(shù)據(jù)時(shí)間間隔越久,節(jié)能需求的實(shí)際滿意度越高.
Table 4 Weight Matrix of Satisfy-Relation表4 滿足影響關(guān)系的權(quán)重矩陣
FADEM用于無(wú)法獲得軟件系統(tǒng)方程情況下的自適應(yīng)優(yōu)化決策,通過(guò)推理實(shí)現(xiàn)變量的計(jì)算.本節(jié)首先介紹模糊控制器,然后對(duì)推理規(guī)則進(jìn)行描述,最后說(shuō)明如何通過(guò)影響關(guān)系權(quán)重矩陣生成這些規(guī)則.
模糊控制[32]是以模糊集理論、模糊語(yǔ)言變量和模糊邏輯推理為基礎(chǔ)的智能控制方法.它是從行為上模仿人的思維方式,對(duì)模糊現(xiàn)象進(jìn)行識(shí)別和判斷,并進(jìn)行決策的一種智能控制方法.模糊控制器用于實(shí)現(xiàn)模糊推理,其結(jié)構(gòu)如圖8所示.
一個(gè)模糊控制器由4個(gè)組件構(gòu)成:
1) 規(guī)則庫(kù)記錄了一系列啟發(fā)式推理規(guī)則,由操作人員或者領(lǐng)域?qū)<业闹R(shí)編寫(xiě)而成;
2) 模糊化組件將來(lái)自傳感器的實(shí)時(shí)信號(hào)通過(guò)隸屬函數(shù)模糊化,這一過(guò)程將清晰值轉(zhuǎn)變?yōu)槟:?,從而可利用推理?guī)則進(jìn)行比較和計(jì)算;
3) 推理機(jī)是模糊控制器的核心,利用推理規(guī)則對(duì)輸入的模糊量進(jìn)行推理,產(chǎn)生模糊值作為輸出;
4) 解模糊化組件將輸出的模糊值重新轉(zhuǎn)化為清晰值,作為控制量加入到系統(tǒng)的執(zhí)行器中.
此外,在模糊控制器中需要對(duì)輸入和輸出參量定義相應(yīng)的隸屬函數(shù),用于支持模糊化過(guò)程、推理計(jì)算過(guò)程以及解模糊化過(guò)程.
為實(shí)現(xiàn)推理計(jì)算,除了需要抽取變量的隸屬函數(shù),還需要構(gòu)造推理規(guī)則.為便于說(shuō)明,此處將3.4節(jié)中的3種影響關(guān)系和映射分別抽象記為
rRELV1,V2,WREL,
MREL
其中,V1和V2表示2組變量,WREL表示它們各分量之間的影響權(quán)重矩陣.對(duì)于映射MREL,V1和V2變量間推理規(guī)則的基本形式為
映射MREL的推理規(guī)則集為RREL=∪rulei.根據(jù)第3.4節(jié)的影響關(guān)系,RREL可泛化得到3類(lèi)規(guī)則集,即REXP,RSAT,RADJ.其中,REXP和RSAT與用戶需求相關(guān);RADJ與領(lǐng)域知識(shí)相關(guān).注意,實(shí)現(xiàn)相同目標(biāo)的不同配置參數(shù)是互斥的,所以RADJ和RSAT應(yīng)針對(duì)最小配置集進(jìn)行構(gòu)建.比如圖6中的c3和c4,它們是“或”關(guān)系,故不能出現(xiàn)在同一條推理規(guī)則中.
在推理規(guī)則中,IF子句的表達(dá)式可通過(guò)邏輯運(yùn)算轉(zhuǎn)換為析取范式,并分割為不同的合取范式,從而保證每個(gè)規(guī)則的前件都是合取范式.對(duì)于THEN子句,由于同類(lèi)變量之間是解耦的,所以THEN子句本身就是合取范式.故推理規(guī)則化簡(jiǎn)為
(3)
將式(3)中所有語(yǔ)言變量抽取出來(lái)構(gòu)成一個(gè)m+n維語(yǔ)言變量向量
(4)
其中,前m維取自推理規(guī)則前件,后n維取自推理規(guī)則后件.
算法1. 推理后件的語(yǔ)言變量向量生成.
③nv′←nv×WREL;
④NM′←NM×WREL;
⑤BM←[columnMax(NM′);columnMin(NM′)];
⑥ FOR 對(duì)nv′和BM的每列
⑦ 將BMi進(jìn)行ni等分;
算法1對(duì)構(gòu)建3類(lèi)規(guī)則集REXP,RADJ,RSAT均適用.比如以采礦機(jī)軟件的期望影響關(guān)系為例,令環(huán)境變量向量為(帶寬,延遲,電量,內(nèi)存)和滿意度向量為(快速響應(yīng)滿意度,節(jié)能滿意度,處理量大滿意度),每個(gè)變量的語(yǔ)言變量值均取自集合{低,中,高},引入雙射f將語(yǔ)言變量映射為數(shù)值,如f(低)=1,f(中)=2,f(高)=3.當(dāng)lvE=(中,中,高,低)時(shí),通過(guò)算法1可得出lvSD=(中,低,低).此條規(guī)則的語(yǔ)言變量向量為(中,中,高,低,中,低,低),含義為:
如果帶寬中等、且延遲中等、且電量高、且內(nèi)存低,那么,快速響應(yīng)的預(yù)期滿意度為中,且節(jié)能的預(yù)期滿意度為低,且處理量大的預(yù)期滿意度為低.
在規(guī)則應(yīng)用過(guò)程中,仍然引入雙射f,將語(yǔ)言變量按程度映射為索引整數(shù)值,比如f(低)=1,f(中)=2,f(高)=3.從而得到式(4)的數(shù)值向量:
推理時(shí)需要根據(jù)該數(shù)值向量匹配選擇相應(yīng)的隸屬函數(shù)進(jìn)行模糊化和解模糊化的計(jì)算,推理過(guò)程采用經(jīng)典的模糊集推理算法[33]實(shí)現(xiàn).
本節(jié)首先提出軟件自適應(yīng)過(guò)程所需具備的自適應(yīng)機(jī)制和在線決策步驟,然后介紹用于支持該機(jī)制的自適應(yīng)算法和組件結(jié)構(gòu).
軟件面向不確定性的自適應(yīng)決策是感知環(huán)境和質(zhì)量需求變化、分析質(zhì)量需求滿意度并根據(jù)優(yōu)化目標(biāo)求解決策配置的綜合過(guò)程.為實(shí)現(xiàn)這一過(guò)程,F(xiàn)ADEM框架為軟件系統(tǒng)提供了基于前饋-反饋結(jié)構(gòu)的自適應(yīng)機(jī)制,如圖9所示.圖9上半部分為該機(jī)制的框架;圖9下半部分描述了各組成部分的實(shí)現(xiàn)方式.
Fig. 9 Feedforward-feedback based adaptation mechanism圖9 基于前饋-反饋的自適應(yīng)機(jī)制
自適應(yīng)機(jī)制分為感知器、控制器和被控系統(tǒng)3個(gè)組成部分,其中:
1) 感知器由環(huán)境感知模塊和需求感知模塊構(gòu)成,分別用于感知環(huán)境變量和質(zhì)量需求預(yù)期滿意度的變化;
2) 控制器由前饋調(diào)節(jié)模塊和反饋調(diào)節(jié)模塊構(gòu)成,用于求解自適應(yīng)決策;其中,前饋調(diào)節(jié)模塊主要支持軟件及時(shí)粗調(diào)節(jié),根據(jù)環(huán)境變量求解配置參數(shù),以消除環(huán)境變化對(duì)質(zhì)量需求的影響;反饋控制模塊主要用于根據(jù)質(zhì)量需求滿意度的偏差,通過(guò)全局尋優(yōu)對(duì)配置參數(shù)進(jìn)行細(xì)致校正;
3) 被控系統(tǒng)表示自適應(yīng)軟件系統(tǒng),它接受獲得的配置參數(shù)并進(jìn)行在線部署.
基于此自適應(yīng)機(jī)制的決策過(guò)程在運(yùn)行時(shí)通過(guò)以下步驟實(shí)現(xiàn),這些步驟與圖9下半部分中的編號(hào)相對(duì)應(yīng).
1) 軟件通過(guò)傳感器或監(jiān)測(cè)器測(cè)量環(huán)境變量;
2) 根據(jù)環(huán)境變量,求解質(zhì)量需求預(yù)期滿意度.
3) 當(dāng)前配置下的質(zhì)量需求滿意度偏差符合給定閾值時(shí),無(wú)需調(diào)整配置;否則,根據(jù)環(huán)境變量對(duì)配置參數(shù)進(jìn)行前饋調(diào)節(jié).
① github.com/ZhuoqunYang/FuzzyControlForSAS
vC=RADJ(RADJ,vE,MFE∪MFC);
4) 求解前饋調(diào)節(jié)后的質(zhì)量需求實(shí)際滿意度.
5) 將實(shí)際滿意度進(jìn)行反饋,計(jì)算滿意度偏差.若偏差符合給定閾值,則將該配置作為決策配置;否則,基于遺傳算法對(duì)配置參數(shù)進(jìn)行優(yōu)化調(diào)節(jié).此步驟的優(yōu)化目標(biāo)為
FADEM框架提供了支持決策過(guò)程的算法,包括前饋調(diào)節(jié)算法(算法2)、反饋調(diào)節(jié)算法(算法3)和綜合自適應(yīng)算法(算法4).算法中輸入、輸出和中間變量命名與圖9下半部分中標(biāo)注的傳遞參數(shù)相一致,并以最小配置集為執(zhí)行單位.本文基于MATLAB給出了這些算法模塊的具體實(shí)現(xiàn),讀者可參考GitHub鏈接①進(jìn)一步了解.
前饋調(diào)節(jié)算法用于實(shí)現(xiàn)基于先驗(yàn)知識(shí)的決策,根據(jù)環(huán)境變量獲得新的配置參數(shù).當(dāng)軟件功能目標(biāo)有多種實(shí)現(xiàn)方式時(shí),需對(duì)每個(gè)最小配置集分別執(zhí)行算法2,并選擇能夠帶來(lái)最小滿意度偏差的配置集作為自適應(yīng)決策結(jié)果.
算法2. 前饋調(diào)節(jié)算法.
輸入:vE,RSAT,RADJ,MFE,MFSD,MFC;
①vC←RADJ(RADJ,vE,MFE∪MFC);
反饋算法用于實(shí)現(xiàn)基于優(yōu)化目標(biāo)的決策,通過(guò)遺傳算法,迭代求解最優(yōu)的配置參數(shù).它是在自變量定義域內(nèi)搜索全局最優(yōu)解的算法.
遺傳算法的求解過(guò)程為:將配置參數(shù)的取值范圍作為自變量定義域,將配置參數(shù)編碼為染色體;將初代染色體作為模糊控制器的輸入,求解每一個(gè)染色體帶來(lái)的需求滿意度偏差,滿意度偏差即為適應(yīng)度;對(duì)適應(yīng)度進(jìn)行排序,并對(duì)染色體進(jìn)行選擇、交叉、重構(gòu)和變異操作;將得到的新染色體作為下一輪的輸入,并計(jì)算適應(yīng)度;當(dāng)滿意度偏差收斂到閾值內(nèi)時(shí),得到最小偏差的染色體就對(duì)應(yīng)著求得的配置參數(shù).遺傳算法的求解規(guī)模與種群數(shù)量、遺傳迭代次數(shù)以及染色體的操作方式有關(guān).由于本文將遺傳算法與模糊控制相結(jié)合,適應(yīng)度需要通過(guò)模糊控制過(guò)程進(jìn)行計(jì)算,其求解規(guī)模又與模糊控制器的推理規(guī)則和隸屬函數(shù)的規(guī)模有關(guān).代碼細(xì)節(jié)可參考GitHub鏈接中的相應(yīng)文檔.
當(dāng)軟件功能目標(biāo)有多種實(shí)現(xiàn)方式時(shí),需對(duì)每個(gè)最小配置集分別執(zhí)行算法3,并選擇能帶來(lái)最小滿意度偏差的配置集作為決策結(jié)果.
算法3. 反饋調(diào)節(jié)算法.
①chrom←createPopulation(N,Spaceconfig);
②generation←0;
③ FOR ALLchr∈chrom
⑤ END FOR
⑥ WHILEgeneration ⑦ perform GA with new population; ⑨ END WHILE 綜合自適應(yīng)算法用于實(shí)現(xiàn)軟件運(yùn)行時(shí)整體的在線決策.首先,算法根據(jù)環(huán)境變化計(jì)算軟目標(biāo)預(yù)期滿意度(行①)并根據(jù)當(dāng)前配置計(jì)算實(shí)際滿意度(行②);若當(dāng)前滿意度偏差達(dá)到閾值要求,則不需要調(diào)節(jié)配置(行③④);否則,調(diào)用算法2求解所需配置(行⑤);若算法2求得的配置參數(shù)使?jié)M意度偏差達(dá)到閾值要求,則該配置即為決策配置(行⑥⑦);否則,調(diào)用算法3求解最優(yōu)配置參數(shù)(行⑧). 算法4. 綜合自適應(yīng)算法. ⑨ END IF ⑩ END IF FADEM框架從結(jié)構(gòu)層提出自適應(yīng)軟件系統(tǒng)應(yīng)具備的組件結(jié)構(gòu),如圖10所示.該組件結(jié)構(gòu)基于MAPE-K自主管理器[28]進(jìn)行設(shè)計(jì)和搭建,不同組件用于實(shí)現(xiàn)自適應(yīng)算法中的不同計(jì)算模塊.這些組件在前述GitHub鏈接中均有對(duì)應(yīng)實(shí)現(xiàn)代碼. Fig. 10 Adaptation components of FADEM圖10 FADEM自適應(yīng)組件結(jié)構(gòu) 自適應(yīng)組件分為6種類(lèi)型: 1) 自適應(yīng)控制器(adaptation controller)是自適應(yīng)機(jī)制的控制核心,用于調(diào)度下層組件,同時(shí)也具有執(zhí)行器(executor)的作用,將決策得到的配置進(jìn)行部署; 2) 監(jiān)測(cè)器(monitor)是軟件和環(huán)境的接口,用探針采集相關(guān)的環(huán)境變量,并傳遞給上層模塊; 3) 分析器(analyzer)用于診斷當(dāng)前質(zhì)量需求實(shí)際滿意度是否達(dá)到其預(yù)期滿意度; 4) 決策器(planner)用于求解最優(yōu)配置參數(shù); 5) 知識(shí)庫(kù)(knowledge base)用于為自適應(yīng)決策的推理計(jì)算過(guò)程提供啟發(fā)式規(guī)則; 6) 推理機(jī)(inference machine)用于構(gòu)建模糊推理系統(tǒng)并實(shí)現(xiàn)推理計(jì)算. 本節(jié)針對(duì)比特幣采礦機(jī)的案例,通過(guò)仿真實(shí)驗(yàn)展示自適應(yīng)機(jī)制和算法在面向環(huán)境和需求不確定性的優(yōu)化決策問(wèn)題中的有效性.具體實(shí)現(xiàn)過(guò)程和結(jié)果可參考前述GitHub中的MATLAB程序. 仿真實(shí)驗(yàn)環(huán)境為配置有AMDFX8350(3.8 GHz) 4核4線程CPU、4 GB內(nèi)存和500 GB硬盤(pán)的Windows 7系統(tǒng).采礦機(jī)案例的每個(gè)環(huán)境變量、軟目標(biāo)滿意度和配置參數(shù)的語(yǔ)言變量集合均為{低,中,高};3種影響關(guān)系的權(quán)重分別取自表2~4.基于影響權(quán)重生成的243條推理規(guī)則所對(duì)應(yīng)的數(shù)值向量請(qǐng)參考GitHub鏈接中的Excel文檔.推理過(guò)程采用經(jīng)典的模糊集的推理算法[33].滿意度偏差的閾值集合為{0.002,0.004,0.006,0.008,0.01,0.02,0.04,0.06,0.08,0.1}. 遺傳算法的參數(shù)設(shè)置為:種群大小為50,遺傳迭代次數(shù)為100,種群代溝為0.9,交叉率0.9,變異率0.05.染色體選擇方法為隨機(jī)全局采樣,交叉方法為單點(diǎn)交叉,適應(yīng)度通過(guò)式(2)計(jì)算,其中軟目標(biāo)的權(quán)重均相同.為提高求解效率,遺傳算法采用并行方式在4個(gè)資源池上共同完成. 為說(shuō)明自適應(yīng)機(jī)制在不同環(huán)境中的決策效果,實(shí)驗(yàn)仿真了3種動(dòng)態(tài)變化的環(huán)境: 1) 可導(dǎo)型環(huán)境(derivable environment)中環(huán)境變量的變化規(guī)律服從連續(xù)可導(dǎo)函數(shù).此類(lèi)環(huán)境變量采用三角函數(shù)進(jìn)行仿真,通過(guò)函數(shù)周期刻畫(huà)環(huán)境變量間此消彼長(zhǎng)的狀況; 2) 準(zhǔn)噪聲型環(huán)境(quasi-noisy environment)中環(huán)境變量的變化趨勢(shì)與可導(dǎo)型環(huán)境一致,但是具有微弱的噪聲.此類(lèi)環(huán)境變量采用在三角函數(shù)上加入高斯噪聲進(jìn)行仿真; 3) 噪聲型環(huán)境(noisy environment)指變化完全不確定的環(huán)境,同時(shí)無(wú)規(guī)律可循.此類(lèi)環(huán)境變量采用高斯噪聲函數(shù)仿真. 環(huán)境變量在500個(gè)時(shí)間點(diǎn)的采樣值如圖11所示: Fig. 11 Three types of environment variables圖11 3種類(lèi)型的環(huán)境變量 在線自適應(yīng)決策的結(jié)果主要包括4個(gè)方面:軟目標(biāo)預(yù)期滿意度的變化結(jié)果、配置參數(shù)的決策結(jié)果、前饋和反饋調(diào)節(jié)的性能對(duì)比及滿意度偏差的控制效果. 1) 軟目標(biāo)預(yù)期滿意度的變化結(jié)果 Fig. 12 Changes of softgoal desired satisfaction degrees and correlation with environment variables圖12 軟目標(biāo)預(yù)期滿意度的變化和與環(huán)境變量的相關(guān)性 不同類(lèi)型環(huán)境中軟目標(biāo)預(yù)期滿意度的動(dòng)態(tài)變化如圖12(a)~(c)所示.通過(guò)與圖11對(duì)照可知,軟目標(biāo)預(yù)期滿意度和環(huán)境變量的相關(guān)性與表2中WEXP的權(quán)重取值是一致的.比如在可導(dǎo)型環(huán)境和準(zhǔn)噪聲型環(huán)境中,對(duì)比節(jié)能軟目標(biāo)預(yù)期滿意度曲線和電量曲線,它們呈現(xiàn)負(fù)相關(guān)性.這與表2中兩者對(duì)應(yīng)的影響權(quán)值為-5是一致的.為便于觀察噪聲型環(huán)境變量與軟目標(biāo)預(yù)期滿意度的相關(guān)性,此處采用R語(yǔ)言相關(guān)圖表示它們的關(guān)系,如圖12(d)所示.色塊中的正斜率線條表示正相關(guān),負(fù)斜率線條表示負(fù)相關(guān);色塊顏色越深,表示相關(guān)系數(shù)越大.左下角3×4方框內(nèi)的色塊與表2中的數(shù)值大小和符號(hào)均一致. 軟目標(biāo)預(yù)期滿意度曲線刻畫(huà)了質(zhì)量需求自身變化的不確定性.預(yù)期滿意度和環(huán)境變量的相關(guān)性表明,滿意度的變化正確地反映出了用戶偏好,即矩陣WEXP.比如在時(shí)間點(diǎn)為100時(shí),隨著電量升高,節(jié)能需求的預(yù)期滿意度呈下降趨勢(shì),而數(shù)據(jù)處理需求的預(yù)期滿意度呈上升趨勢(shì),這說(shuō)明用戶此時(shí)對(duì)節(jié)能的偏好降低,而對(duì)處理數(shù)據(jù)的偏好升高. 2) 配置參數(shù)的決策結(jié)果 自適應(yīng)機(jī)制在不同類(lèi)型環(huán)境中求得的配置參數(shù)如圖13(a)~(c)所示.為便于說(shuō)明,將c3(主區(qū)塊廣播時(shí)間)和c4(鄰居節(jié)點(diǎn)廣播時(shí)間)的取值統(tǒng)一展示:第1行曲線中的正數(shù)表示廣播到主區(qū)塊,負(fù)數(shù)表示廣播到鄰居節(jié)點(diǎn),絕對(duì)值表示廣播時(shí)間.配置參數(shù)和軟目標(biāo)預(yù)期滿意度間的相關(guān)性與表4中權(quán)重矩陣WSAT是一致的,說(shuō)明軟目標(biāo)實(shí)際滿意度與預(yù)期滿意度有相同的變化趨勢(shì).圖13(d)展示了噪聲型環(huán)境中求得的配置參數(shù)和軟目標(biāo)預(yù)期滿意度的相關(guān)性.左下角3×3方框所示的色塊與表4中的權(quán)重符號(hào)和大小一致. Fig. 13 Configuration parameters and correlation with desired satisfaction degrees圖13 配置參數(shù)及噪聲型環(huán)境中配置參數(shù)與預(yù)期滿意度的相關(guān)性 在微弱噪聲的影響下,可導(dǎo)型環(huán)境中的配置參數(shù)和準(zhǔn)噪聲型環(huán)境中的配置參數(shù)偏差約為前者的5%.這一現(xiàn)象在c1(數(shù)據(jù)規(guī)模)和c2(時(shí)間間隔)上更加突出,這是由于它們與軟目標(biāo)間的影響權(quán)重更大.該結(jié)果說(shuō)明,那些對(duì)軟目標(biāo)滿意度影響較大的配置不會(huì)因環(huán)境和質(zhì)量需求的微弱變化而發(fā)生大幅度調(diào)整.所以,在環(huán)境變化雖不確定但微弱的情況下,F(xiàn)ADEM方法的自適應(yīng)結(jié)果相對(duì)平穩(wěn). 3) 前饋和反饋調(diào)節(jié)的性能對(duì)比 圖14(a)展示了不同滿意度偏差閾值下,軟件系統(tǒng)采用前饋調(diào)節(jié)和反饋調(diào)節(jié)結(jié)果作為決策配置的頻率.閾值較小時(shí),系統(tǒng)主要通過(guò)反饋算法來(lái)求解自適應(yīng)決策;隨著閾值增大,前饋調(diào)節(jié)的使用頻率逐漸升高,反饋調(diào)節(jié)的作用逐漸淡化. 圖14(b)對(duì)比了不同閾值下的決策用時(shí).通過(guò)統(tǒng)計(jì)可得,前饋調(diào)節(jié)用時(shí)約為0.003 s,反饋調(diào)節(jié)用時(shí)約為0.64 s.注意,決策用時(shí)受本地計(jì)算資源(如CPU、緩存等)的影響,因此會(huì)有一定偏差.隨著閾值增大,決策用時(shí)與前饋調(diào)節(jié)用時(shí)相同的情況逐漸增加.這從用時(shí)的角度說(shuō)明軟件采用前饋調(diào)節(jié)的情況增多. 結(jié)果表明:FADEM的自適應(yīng)機(jī)制在決策過(guò)程中具有靈活性,可根據(jù)不同的約束條件,選擇不同的調(diào)節(jié)方式:約束寬松時(shí),采用前饋的粗調(diào)節(jié)提高決策速度;約束緊縮時(shí),采用反饋的細(xì)調(diào)節(jié)提高決策精度. Fig. 14 Comparison between performances of feedforward and feedback adaptation圖14 前饋和反饋調(diào)節(jié)的性能對(duì)比 4) 滿意度偏差的控制效果 Fig. 15 Deviations of entire satisfaction degrees under different types of environment and thresholds圖15 不同類(lèi)型環(huán)境和閾值下整體滿意度偏差 圖15(a)展示了自適應(yīng)決策在不同閾值下帶來(lái)的平均滿意度偏差.FADEM方法通過(guò)優(yōu)化決策算法將滿意度偏差控制在給定閾值內(nèi).隨著閾值的增大,偏差的控制效果會(huì)產(chǎn)生一定放松.對(duì)比文獻(xiàn)[22-24]中單純依據(jù)先驗(yàn)知識(shí)的自適應(yīng)結(jié)果,F(xiàn)ADEM具有更好的滿意度偏差控制效果.因?yàn)镕ADEM采用反饋回路對(duì)配置參數(shù)進(jìn)行優(yōu)化決策,而文獻(xiàn)[22-24]的方法沒(méi)有控制機(jī)制支持,也就無(wú)法避免自適應(yīng)決策產(chǎn)生的偏差. 圖15(b)~(d)描述了自適應(yīng)決策后,滿意度偏差的統(tǒng)計(jì)結(jié)果.每個(gè)盒子表示500個(gè)時(shí)間點(diǎn)偏差值的分布.圖15(b)~(d)表明:FADEM方法在可導(dǎo)型環(huán)境和準(zhǔn)噪聲型環(huán)境中的低閾值情況下的滿意度偏差相對(duì)穩(wěn)定,決策效果較好;而在高閾值情況下偏差較大,這是因?yàn)殚撝翟龈邥r(shí),軟件系統(tǒng)采用前饋調(diào)節(jié)的頻率升高,故系統(tǒng)調(diào)節(jié)結(jié)果的自由度更大.在噪聲型環(huán)境中,滿意度偏差的穩(wěn)定性較差,這是由環(huán)境變量中大量的隨機(jī)性引起的,但是偏差仍在可接受范圍內(nèi). 1) 方法的可擴(kuò)展性 本文以比特幣采礦機(jī)案例對(duì)方法的可行性進(jìn)行了分析說(shuō)明.當(dāng)軟件更加復(fù)雜時(shí),會(huì)涉及到其他種類(lèi)的質(zhì)量需求,比如關(guān)于用戶負(fù)載的需求.且軟件配置的數(shù)目會(huì)增多,交互環(huán)境也會(huì)變得復(fù)雜.采用本文方法解決復(fù)雜性問(wèn)題的關(guān)鍵在于,識(shí)別和擴(kuò)展那些對(duì)新的質(zhì)量需求產(chǎn)生影響的關(guān)注點(diǎn),包括軟件配置和環(huán)境實(shí)體,并構(gòu)建這些要素對(duì)需求的影響關(guān)系.比如,當(dāng)引入用戶負(fù)載的需求時(shí),需要考慮對(duì)用戶數(shù)進(jìn)行監(jiān)測(cè),并對(duì)服務(wù)器等設(shè)備進(jìn)行重配置.雖然軟件配置和交互環(huán)境都會(huì)變得復(fù)雜,但配置內(nèi)容和環(huán)境實(shí)體仍可按照本文的建模原則,劃分為相應(yīng)類(lèi)別.因此,系統(tǒng)復(fù)雜性的增加會(huì)引起關(guān)注點(diǎn)的增加,但不會(huì)影響本文方法和流程的應(yīng)用. 此外,本方法側(cè)重軟件需求建模和自適應(yīng)策略的設(shè)計(jì),主要考察需求、軟件配置和環(huán)境間模型層面的關(guān)聯(lián).它不受限于軟件運(yùn)行的設(shè)備或硬件系統(tǒng),也不受配置或代碼模塊具體能耗的影響.在需求階段,為設(shè)計(jì)針對(duì)質(zhì)量需求可滿足性的自適應(yīng)策略,需建模各類(lèi)變化因素對(duì)需求的影響,而需求間的影響則應(yīng)通過(guò)性能工程的測(cè)試評(píng)估進(jìn)行確定. 2) 推理規(guī)則的構(gòu)建 本文的推理規(guī)則是基于Mamdani模糊系統(tǒng)[34]的原理構(gòu)造的,但是FADEM框架同樣適用于基于T-S模糊系統(tǒng)[35]的推理過(guò)程,僅需要把推理規(guī)則中THEN子句中變成自變量的線性組合.T-S型推理規(guī)則為 其中,ai是實(shí)數(shù)線性系數(shù). 這一規(guī)則可用于建立環(huán)境變量與配置參數(shù)的推理關(guān)系,其線性系數(shù)是未知的,需要通過(guò)運(yùn)行時(shí)學(xué)習(xí)獲得.由于ai取自實(shí)數(shù)域,這時(shí)遺傳算法就不再適合作為學(xué)習(xí)算法,因?yàn)樵谧宰兞慷x域已知情況下進(jìn)行遺傳編碼,會(huì)使算法收斂效果更好.由于BP神經(jīng)網(wǎng)絡(luò)能學(xué)習(xí)和存儲(chǔ)大量的輸入-輸出模式映射關(guān)系,而無(wú)需提前描述這種映射關(guān)系的數(shù)學(xué)方程,它比較適合用來(lái)學(xué)習(xí)T-S模糊系統(tǒng)推理規(guī)則的參數(shù).此擴(kuò)展也在前述的GitHub鏈接中給出了實(shí)例. 3) 參數(shù)評(píng)價(jià)與優(yōu)化 隸屬函數(shù)的構(gòu)造有2種常見(jiàn)的方法,即基于專家的先驗(yàn)知識(shí)進(jìn)行構(gòu)造和基于學(xué)習(xí)的后驗(yàn)知識(shí)進(jìn)行構(gòu)造.由于在需求工程階段缺乏系統(tǒng)運(yùn)行時(shí)數(shù)據(jù),以作為提取后驗(yàn)知識(shí)的基礎(chǔ),本文采用前者作為最初的構(gòu)建方法.同時(shí),在決策過(guò)程中采用遺傳算法進(jìn)行求解,避免了完全依賴先驗(yàn)知識(shí).當(dāng)系統(tǒng)運(yùn)行后,F(xiàn)ADEM可根據(jù)決策結(jié)果對(duì)隸屬函數(shù)參數(shù)進(jìn)行優(yōu)化.參數(shù)優(yōu)化問(wèn)題可通過(guò)系統(tǒng)辨識(shí)過(guò)程來(lái)求解,具體可采用機(jī)器學(xué)習(xí)的方法.在本文提供的GitHub鏈接中,已經(jīng)給出了2種修正隸屬函數(shù)參數(shù)的方法,即通過(guò)遺傳算法進(jìn)行優(yōu)化和通過(guò)神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化,該問(wèn)題將在后續(xù)工作中予以解決,不作為本文關(guān)注點(diǎn).影響權(quán)值矩陣用于對(duì)不同變量間影響關(guān)系進(jìn)行描述,它反映了概念和認(rèn)知,這些數(shù)值也可根據(jù)用戶對(duì)結(jié)果的評(píng)價(jià)進(jìn)行調(diào)整. 4) 敏感性分析 質(zhì)量需求預(yù)期滿意度和配置參數(shù)的求解均通過(guò)基于隸屬函數(shù)的模糊推理過(guò)程實(shí)現(xiàn),故隸屬函數(shù)參數(shù)會(huì)對(duì)計(jì)算結(jié)果的質(zhì)量產(chǎn)生影響.因此,還需要對(duì)這類(lèi)參數(shù)的敏感性進(jìn)行分析.下面以表1中環(huán)境變量和質(zhì)量需求預(yù)期滿意度之間的期望關(guān)系為例,分析可導(dǎo)型環(huán)境中,環(huán)境變量隸屬函數(shù)參數(shù)的變化對(duì)快速響應(yīng)需求預(yù)期滿意度求解結(jié)果的影響. 圖16展示了環(huán)境變量隸屬函數(shù)參數(shù)為初始值和參數(shù)變化范圍在變量定義域5%~25%時(shí),快速響應(yīng)需求預(yù)期滿意度結(jié)果.曲線表明,隨著參數(shù)增大,滿意度在多數(shù)時(shí)間點(diǎn)呈遞減趨勢(shì),少數(shù)呈不規(guī)則變化.經(jīng)計(jì)算,預(yù)期滿意度的平均偏差分別為1.05%,1.89%,2.90%,3.89%,4.74%.這說(shuō)明模糊推理的求解過(guò)程弱化了隸屬函數(shù)參數(shù)變化帶來(lái)的影響,使計(jì)算結(jié)果的敏感性降低.另一方面,在構(gòu)造隸屬函數(shù)時(shí),可根據(jù)所需結(jié)果的質(zhì)量對(duì)函數(shù)參數(shù)的準(zhǔn)確性提出要求.比如,當(dāng)可接受的預(yù)期滿意度平均偏差在1.05%左右時(shí),環(huán)境變量的隸屬函數(shù)參數(shù)允許存在5%左右的浮動(dòng). Fig. 16 Desired satisfaction degrees of quick response requirement under different membership function parameters圖16 不同隸屬函數(shù)參數(shù)下的快速響應(yīng)需求預(yù)期滿意度 相關(guān)工作主要包括自適應(yīng)系統(tǒng)如何通過(guò)建模和決策,以應(yīng)對(duì)環(huán)境和需求的2種變化. 在面向環(huán)境變化的建模方面,Cheng等人[7]提出一種目標(biāo)建模方法來(lái)構(gòu)建動(dòng)態(tài)適應(yīng)系統(tǒng)的需求,描述環(huán)境不確定性對(duì)需求的影響,并通過(guò)RELAX[18]規(guī)約語(yǔ)言來(lái)處理約束寬松的需求.該方法局限于描述需求不滿足情況下的解決方案,沒(méi)有關(guān)注運(yùn)行時(shí)的自適應(yīng)配置.Cheng[36]最近將不確定性帶來(lái)的挑戰(zhàn)總結(jié)為基于模型的開(kāi)發(fā)技術(shù)、自動(dòng)需求確保技術(shù)和自適應(yīng)決策技術(shù)3個(gè)方面.Bencomo等人[8]提出Claim模型,將環(huán)境對(duì)需求的影響作為需求變化的依據(jù),并在模型層對(duì)軟件行為作出解釋.該模型還用于處理環(huán)境變化下的需求追蹤問(wèn)題[9].Ramirez等人[10]將RELAX和Claim融合,并對(duì)變化環(huán)境下的Claim模型的有效性給出說(shuō)明,在需求模型的基礎(chǔ)上顯示化的描述出環(huán)境對(duì)松弛需求的影響,系統(tǒng)在不同環(huán)境中所滿足需求也是不同的.但該模型用于記錄有限的環(huán)境類(lèi)別,當(dāng)環(huán)境連續(xù)變化時(shí),就不再適用了. 在面向環(huán)境變化的決策方面,現(xiàn)有工作主要采用方程計(jì)算的方式進(jìn)行求解.Elkhodary等人[11]提出FUSION框架,通過(guò)特征重配置,消除環(huán)境變化對(duì)系統(tǒng)目標(biāo)的影響.該方法支持環(huán)境不確定性下的配置調(diào)節(jié),但是依賴于特征和決策目標(biāo)間的數(shù)學(xué)關(guān)系,需要精確的領(lǐng)域知識(shí)為基礎(chǔ),應(yīng)用條件較為嚴(yán)格.Esfahani等人[12]提出POISED框架,通過(guò)系統(tǒng)的全局優(yōu)化配置來(lái)提高系統(tǒng)的質(zhì)量屬性.該方法評(píng)估了不確定性給質(zhì)量屬性帶來(lái)的影響,分析不同配置在目標(biāo)函數(shù)下的表現(xiàn),以確定最優(yōu)的解決方案.POISED有較好的普適性,但是它是一種基于架構(gòu)的方法,與系統(tǒng)需求聯(lián)系較弱,當(dāng)有多組質(zhì)量屬性需要被提高時(shí),該方法未能說(shuō)明如何權(quán)衡不同質(zhì)量屬性.Lee等人[13]、Moreno等人[14]和Chen等人[15]分別采用概率方法針對(duì)特征模型、軟件行為模型和目標(biāo)需求模型求解自適應(yīng)決策.這些工作主要關(guān)注軟件行為不確定性對(duì)需求的影響. 在面向需求變化的建模方面,Sawyer等人[16]提出將自適應(yīng)系統(tǒng)的需求作為運(yùn)行時(shí)的實(shí)例予以監(jiān)控,以支持系統(tǒng)自適應(yīng)決策.該方法可用于自適應(yīng)機(jī)制的設(shè)計(jì),但未能支持決策求解.Baresi等人[17]提出FLAGS模型,在KAOS模型的基礎(chǔ)上擴(kuò)展自適應(yīng)目標(biāo)和自適應(yīng)對(duì)策,通過(guò)將需求看做具有活性的運(yùn)行時(shí)實(shí)例來(lái)觸發(fā)自適應(yīng)過(guò)程.該方法刻畫(huà)了自適應(yīng)需求和需求違背時(shí)的系統(tǒng)對(duì)策,同時(shí)提供良定的規(guī)約描述.但是其規(guī)約只用于對(duì)目標(biāo)和調(diào)節(jié)策略的說(shuō)明,未能支持在線的自動(dòng)適應(yīng)過(guò)程.Whittle等人[18]提出RELAX需求規(guī)約語(yǔ)言,它基于時(shí)態(tài)模糊邏輯描述松弛情況下的需求和環(huán)境.模糊化后的需求使系統(tǒng)具有靈活性,它也是一種用于規(guī)約的形式化方法,并未說(shuō)明如何支持自適應(yīng)調(diào)節(jié)過(guò)程.另外,RELAX放松了需求滿足情況,但并未關(guān)注需求本身的變化性.Mendonca等人[19]提出根據(jù)上下文模型求解可靠性需求變化的框架,可靠性需求采用模糊邏輯進(jìn)行量化,但沒(méi)有關(guān)注自適應(yīng)決策問(wèn)題.此外,Chechik[20]提出通過(guò)局部模型[21]建立需求模型間的追蹤關(guān)系來(lái)管理需求不確定性. 在面向需求變化的決策方面,Pernici等人[22-24]從服務(wù)計(jì)算領(lǐng)域提出基于模糊推理實(shí)現(xiàn)服務(wù)自適應(yīng)的方法.Web服務(wù)的性能參數(shù)變化引起服務(wù)質(zhì)量的變化,服務(wù)質(zhì)量變化是系統(tǒng)自適應(yīng)調(diào)節(jié)的依據(jù),調(diào)節(jié)過(guò)程基于領(lǐng)域知識(shí)實(shí)現(xiàn).該類(lèi)方法的切入點(diǎn)是軟件行為變化對(duì)服務(wù)質(zhì)量滿足情況的影響,而不是對(duì)服務(wù)質(zhì)量自身的影響.該種性能是軟件行為的表現(xiàn),因此變化并非來(lái)自交互環(huán)境,同時(shí),該類(lèi)方法的推理計(jì)算過(guò)程無(wú)法對(duì)自適應(yīng)決策進(jìn)行優(yōu)化.另外,國(guó)內(nèi)研究人員也對(duì)服務(wù)自身演化下的服務(wù)組合自適應(yīng)方法進(jìn)行了探討[37]. 與這些工作相比,本文在刻畫(huà)環(huán)境和需求不確定性方面,側(cè)重于通過(guò)建模過(guò)程抽取變化要素,采用模糊邏輯描述潛在的變化性,而不是枚舉變化的可能性;同時(shí)將連續(xù)變量映射到離散域,以便于求解計(jì)算;在建模質(zhì)量需求、環(huán)境和軟件行為間的關(guān)系方面,本文根據(jù)用戶偏好和領(lǐng)域知識(shí)抽取影響關(guān)系矩陣,進(jìn)而生成推理規(guī)則.推理規(guī)則刻畫(huà)出變量間的計(jì)算關(guān)系,擺脫了依賴精確系統(tǒng)數(shù)學(xué)模型的局限性.在實(shí)現(xiàn)自適應(yīng)決策方面,本文將環(huán)境和需求不確定性納入到統(tǒng)一的FADEM框架中,該框架支持從系統(tǒng)建模到規(guī)約描述,然后到推理規(guī)則生成,再到設(shè)計(jì)自適應(yīng)機(jī)制、算法和組件結(jié)構(gòu)的完整過(guò)程.該框架的優(yōu)勢(shì)在于,為軟件工程師在需求工程階段進(jìn)行不確定性的表達(dá)、知識(shí)提取及模型算法的構(gòu)建提供了理論依據(jù)和方法支持,并允許建模和計(jì)算過(guò)程具有一定的彈性. 本文提出一種在環(huán)境和需求不確定性下,自適應(yīng)軟件系統(tǒng)實(shí)現(xiàn)優(yōu)化決策的框架.該框架通過(guò)需求建模、環(huán)境建模和軟件配置建模,抽取出質(zhì)量需求滿意度、環(huán)境變量和配置參數(shù),并通過(guò)模糊邏輯進(jìn)行表示;描述各類(lèi)變量間的影響關(guān)系,并根據(jù)影響權(quán)重矩陣構(gòu)造模糊推理規(guī)則,以支持變量間的計(jì)算;基于前饋-反饋控制設(shè)計(jì)自適應(yīng)機(jī)制及相應(yīng)算法,并融合MAPE-K結(jié)構(gòu)搭建自適應(yīng)組件. 在自適應(yīng)軟件系統(tǒng)面向不確定性的在線決策研究方向上,本文具有4方面意義: 1) FADEM框架將環(huán)境和需求的不確定性同時(shí)納入自適應(yīng)機(jī)制的在線決策問(wèn)題中,涉及到多種類(lèi)型的環(huán)境變化(如取值變化型、狀態(tài)變化型)和多種類(lèi)型的自適應(yīng)調(diào)節(jié)方式(如結(jié)構(gòu)調(diào)節(jié)、參數(shù)調(diào)節(jié)); 2) 基于模糊邏輯的建模和描述方法具有通用性.形式化表達(dá)式通過(guò)變量范圍刻畫(huà)了變量潛在的不確定性,同時(shí)通過(guò)隸屬函數(shù)將不確定的變量映射到離散的語(yǔ)言描述上; 3) 根據(jù)影響關(guān)系權(quán)值矩陣構(gòu)建的推理規(guī)則,在不違背專家和用戶認(rèn)知的前提下,減輕了人工建立推理規(guī)則的復(fù)雜度.同時(shí),構(gòu)建的規(guī)則是考慮到所有影響因素后的綜合結(jié)果; 4) 基于前饋-反饋結(jié)構(gòu)建立的自適應(yīng)機(jī)制,能與MAPE-K結(jié)構(gòu)有機(jī)結(jié)合,以設(shè)計(jì)通用的自適應(yīng)組件.在將軟件建模為閉環(huán)系統(tǒng)的同時(shí),還發(fā)揮了前饋控制和反饋控制的各自優(yōu)勢(shì). 未來(lái)的研究工作中,我們主要關(guān)注2個(gè)方向:1)基于控制理論建立自適應(yīng)機(jī)制是我們的關(guān)注點(diǎn),尤其是軟件系統(tǒng)辨識(shí)的問(wèn)題,即如何找到更好的數(shù)學(xué)模型刻畫(huà)軟件系統(tǒng)的變化性,我們認(rèn)為機(jī)器學(xué)習(xí)是解決軟件系統(tǒng)辨識(shí)問(wèn)題的有效途徑;2)我們還關(guān)注模糊化需求的驗(yàn)證問(wèn)題,并考慮如何通過(guò)需求放松和自適應(yīng)機(jī)制給軟件系統(tǒng)帶來(lái)彈性. [1]Tversky A,Kahneman D. Judgment under uncertainty: Heuristics and biases[J]. Science, 1974, 185(1): 141-162 [2]Liu Baoding. Uncertainty Theory[M]. Berlin: Springer, 2007: 183-187 [3]Celikyilmaz A, Türksen I B. Modeling Uncertainty with Fuzzy Logic[M]. Berlin: Springer, 2011: 11-50 [4]Esfahani N, Malek S. Uncertainty in self-adaptive software systems[G] //LNCS 7475: Software Engineering for Self-Adaptive Systems Ⅱ. Berlin: Springer, 2013: 214-238 [5]Cheng B H C, Lemos R, Giese H, et al. Software engineering for self-adaptive systems: A research roadmap[G] //LNCS 5525: Software Engineering for Self-Adaptive Systems Ⅰ. Berlin: Springer, 2009: 1-26 [6]Yang Zhuoqun, Li Zhi, Jin Zhi, et al. A systematic literature review of requirements modeling and analysis for self-adaptive systems[C] //Proc of the 20th Int Working Conf on Requirements Engineering: Foundation for Software Quality. Berlin: Springer, 2014: 55-71 [7]Cheng B H C, Sawyer P, Benecomo N, et al. A goal-based modeling approach to develop requirements of an adaptive system with environmental uncertainty[C] //Proc of the 12th Int Conf on Model Driven Engineering Languages and Systems. New York: ACM, 2009: 468-483 [8]Bencomo N, Welsh K, Sawyer P, et al. Self-explanation in adaptive systems[C] //Proc of the 17th Int Conf on Engineering of Complex Computer Systems. Piscataway, NJ: IEEE, 2012: 157-166 [9]Welsh K, Sawyer P. Requirements tracing to support change in dynamically adaptive systems[C] //Proc of the 15th Int Working Conf on Requirements Engineering: Foundation for Software Quality. Berlin: Springer, 2009: 59-73 [10]Ramirez A J, Cheng B H C, Bencomo N, et al. RELAXing claims: Coping with uncertainty while evaluating assumptions at run time[C] //Proc of the 15th Int Conf on Model Driven Engineering Languages and Systems. New York: ACM, 2012: 53-69 [11]Elkhodary A, Esfahani N, Malek S. FUSION: A framework for engineering self-tuning self-adaptive software systems[C] //Proc of the 18th ACM SIGSOFT Int Symp on the Foundations of Software Engineering. New York: ACM, 2010: 7-16 [12]Esfahani N, Kouroshfar E, Malek S. Taming uncertainty in self-adaptive software[C] //Proc of the 19th ACM SIGSOFT Symp and the 13th European Conf on Foundations of Software Engineering. New York: ACM, 2011: 234-244 [13]Lee H C, Lee S W. Decision supporting approach under uncertainty for feature-oriented adaptive system[C] //Proc of the 39th Int Computer Software and Applications Conf. Piscataway, NJ: IEEE, 2015: 324-329 [14]Moreno G A, Mara J, Garlan D, et al. Proactive self-adaptation under uncertainty: A probabilistic model checking approach[C] //Proc of the 10th Joint Meeting of the European Software Engineering Conf and the ACM SIGSOFT Symp on the Foundations of Software Engineering. New York: ACM, 2015: 1-12 [15]Chen Bihuan, Peng Xin, Yu Yijun, et al. Uncertainty handling in goal-driven self-optimization - Limiting the negative effect on adaptation[J]. Journal of Systems & Software, 2014, 90(1): 114-127 [16]Sawyer P, Bencomo N, Whitle J. Requirements-aware systems: A research agenda for RE for self-adaptive systems[C] //Proc of the 18th IEEE Int Conf on Requirements Engineering. Piscataway, NJ: IEEE, 2010: 95-103 [17]Baresi L, Pasquale L, Spoletini P. Fuzzy goals for requirement-driven adaptation[C] //Proc of the 18th Int Conf on Requirements Engineering. Piscataway, NJ: IEEE, 2010: 125-134 [18]Whittle J, Sawyer P, Bencomo N, et al. RELAX: A language to address uncertainty in self-adaptive systems requirement[J]. Requirements Engineering, 2010, 15(2): 177-196 [19]Mendonca D F, Ali R, Rodrigues G N. Modelling and analysing contextual failures for dependability requirements[C] //Proc of the 9th Int Symp on Software Engineering for Adaptive and Self-Managing Systems. Piscataway, NJ: IEEE, 2014: 55-64 [20]Chechik M. Managing requirements uncertainty with partial models[J]. Requirements Engineering, 2013, 18(18): 107-128 [21] Famelis M, Salay R, Chechik M. Partial models: Towards modeling and reasoning with uncertainty[C] //Proc of the 34th Int Conf on Software Engineering. Piscataway, NJ: IEEE, 2012: 573-583 [22]Pernici B, Siadat S H. A fuzzy service adaptation based on QoS satisfaction[C] //Proc of the 23rd Int Conf on Advanced Information Systems Engineering. Berlin: Springer, 2011: 48-61 [23]Pernici B, Siadat S H, Benbernou S, et al. A penalty-based approach for QoS dissatisfaction using fuzzy rules[C] //Proc of the 9th Int Conf on Service-Oriented Computing. New York: ACM, 2011: 574-581 [24]Pernici B, Siadat S H. Selection of service adaptation strategies based on fuzzy logic[C] //Proc of the 7th IEEE World Congress on Services. Piscataway, NJ: IEEE, 2011: 99-106 [25]Souza V E S, Lapouchnian A, Mylopoulos J. System identification for adaptive software systems: A requirements engineering perspective[C] //Proc of the 30th Int Conf on Conceptual Modeling. Berlin: Springer, 2011: 346-361 [26]Patikirikorala T, Colman A, Han J, et al. A systematic survey on the design of self-adaptive software systems using control engineering approaches[C] //Proc of the 7th ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems. Piscataway, NJ: IEEE, 2012: 33-42 [27]Müller H, Villegas N. Runtime evolution of highly dynamic software[G] //Evolving Software Systems. Berlin: Springer, 2014: 229-264 [28]Kephart J O, Chess D M. The vision of autonomic computing[J]. Computer, 2003, 36(1): 41-50 [29]Nakamoto S. Bitcoin: A peer-to-peer electronic cash system[OL]. 2009[2016-09-16]. https://bitcoin.org/bitcoin.pdf [30]Jackson M. The meaning of requirements[J]. Annals of Software Engineering, 1997, 3(1): 5-21 [31]Zadeh L A. The concept of a linguistic variable and its application to approximate reasoning-I[J]. Information Sciences, 1975, 8(3): 199-249 [32]Passino K M, Yurkovich S. Fuzzy Control[M]. Menlo Park, CA: Addison Wesley Longman, 1997: 137-144 [33]Zadeh L A. Fuzzy sets[J]. Information & Control, 1965, 8(3): 338-353 [34]Mamdani E H. Advances in the linguistic synthesis of fuzzy controllers[J]. International Journal of Man-Machine Studies, 1976, 8(6): 669-678 [35]Takagi T, Sugeno M. Fuzzy identification of systems and its applications to modeling and control[J]. IEEE Trans on System, 1985, 15(1): 387-403 [36]Cheng B H C. Addressing assurance for self-adaptive systems in the face of uncertainty[C] //Proc of the 13th Int Conf on Autonomic Computing. New York: ACM, 2016: 2 [37]Ren Lifang, Wang Wenjian, Xu Xing. Uncertainty-aware adaptive service composition in cloud computing[J]. Journal of Computer Research and Development, 2016, 53(12): 2867-2881 (in Chinese) (任麗芳, 王文劍, 許行. 不確定感知的自適應(yīng)云計(jì)算服務(wù)組合[J]. 計(jì)算機(jī)研究與發(fā)展, 2016, 53(12): 2867-2881)5.3 自適應(yīng)組件
6 案例仿真實(shí)驗(yàn)
6.1 參數(shù)與設(shè)置
6.2 結(jié)果與分析
6.3 討 論
7 相關(guān)工作
8 結(jié)束語(yǔ)