謝生龍,王 璐,劉瑞佳,溥 穎,劉 瀟
1.延安大學(xué)數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,陜西 延安 716000
2.西安電子科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,陜西 西安 710071
隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展以及分布式計(jì)算、網(wǎng)格計(jì)算、云計(jì)算等基于互聯(lián)網(wǎng)應(yīng)用模式的不斷涌現(xiàn),軟件系統(tǒng)的異構(gòu)性、交互性、分布性和動(dòng)態(tài)性等特點(diǎn)越來越明顯。在復(fù)雜軟件需求的驅(qū)動(dòng)下,軟件系統(tǒng)的規(guī)模也在逐漸擴(kuò)大,尤其是與環(huán)境交互復(fù)雜的面向服務(wù)系統(tǒng)(service-oriented systems,SOS)更是如此。由于SOS 無法準(zhǔn)確地預(yù)知交互環(huán)境和需求的變化,于是形成了許多潛在的不確定性。不確定性的概念已在其他學(xué)科領(lǐng)域得到廣泛探索,如經(jīng)濟(jì)學(xué)[1]、物理學(xué)[2]和心理學(xué)[3]等。對于軟件系統(tǒng)來講,不確定性是指與確定性知識的偏差[4]。SOS 暴露在來自系統(tǒng)環(huán)境、資源可用性以及用戶目標(biāo)等各種潛在的不確定性風(fēng)險(xiǎn)下,這降低了SOS 對這些不確定性進(jìn)行響應(yīng)的可信度,最終會(huì)影響SOS 的服務(wù)質(zhì)量。從軟件系統(tǒng)的生命周期角度來看,處理這些不確定性是系統(tǒng)管理員的任務(wù)。然而,這種管理任務(wù)繁多龐雜,容易出錯(cuò)且費(fèi)時(shí)費(fèi)力,僅靠系統(tǒng)管理員通過諸如窮舉測試等方法去解決執(zhí)行時(shí)遇到的所有不確性問題是不現(xiàn)實(shí)的。因此,不確定性使得軟件系統(tǒng)變得難以維護(hù)?,F(xiàn)代SOS 只有具備在24/7 全天候運(yùn)行過程中解決各種不確定性問題的能力,才能在不斷變化的環(huán)境下滿足特定的服務(wù)級別協(xié)議(service level agreement,SLA)需求[4]。用戶的這一期望對SOS 的自主處理能力提出了更高的要求,于是有學(xué)者從靜態(tài)分析、運(yùn)行時(shí)驗(yàn)證及機(jī)器學(xué)習(xí)等方面入手,開展了相關(guān)的研究工作。
靜態(tài)分析以系統(tǒng)性的方式檢查軟件系統(tǒng)運(yùn)行的邏輯過程,推斷某些屬性可能存在的不確定性。眾所周知,盡管用戶需求和運(yùn)行環(huán)境都會(huì)發(fā)生變化,但仍有一些固有的屬性保持不變[5]。這些屬性可以表征為對未來系統(tǒng)狀態(tài)特征量化的近似值,而這些值可用來分析與計(jì)算不變屬性的范圍,如上界和下界;也可以向SOS 推薦服務(wù)組合策略的方案。在一般情況下,開發(fā)人員可以手動(dòng)將靜態(tài)分析置于軟件最優(yōu)配置中[6],如基于規(guī)則的建模和圖變換對自適應(yīng)系統(tǒng)進(jìn)行靜態(tài)分析[7-8],通過規(guī)則實(shí)現(xiàn)一致性操作屬性的校驗(yàn),使處于適應(yīng)狀態(tài)中的系統(tǒng)以系統(tǒng)演化的方式再次適應(yīng)新的變化以達(dá)到穩(wěn)定的狀態(tài)。此外,也允許系統(tǒng)通過自動(dòng)靜態(tài)分析進(jìn)行自演化,如以系統(tǒng)代碼靜態(tài)分析的方法捕獲運(yùn)行時(shí)的參數(shù)和執(zhí)行路徑,并基于調(diào)整后的程序建立穩(wěn)定的執(zhí)行模型,進(jìn)而匹配不穩(wěn)定的執(zhí)行場景[9]。很顯然,這類分析往往不是為了分析程序代碼,而是為了分析系統(tǒng)本身行為。文獻(xiàn)[10]建議將靜態(tài)分析與實(shí)時(shí)優(yōu)化技術(shù)相結(jié)合,首次引入可管理且固有的自適應(yīng)靜態(tài)分析技術(shù),通過自我分析與自動(dòng)調(diào)整實(shí)現(xiàn)了相對于軟件系統(tǒng)和分析本身而言是最優(yōu)功能或非功能的服務(wù)質(zhì)量(quality of service,QoS)權(quán)衡。
運(yùn)行時(shí)驗(yàn)證是一種比較正式的分析技術(shù),可用于驗(yàn)證軟件系統(tǒng)在運(yùn)行時(shí)是否滿足某些預(yù)定義的屬性。目前,許多軟件工程方法采用運(yùn)行時(shí)架構(gòu)模型來簡化這些自適應(yīng)系統(tǒng)中自主控制回路的設(shè)計(jì)。雖然這種技術(shù)在響應(yīng)各種環(huán)境變化時(shí)表現(xiàn)良好,但實(shí)現(xiàn)自適應(yīng)問題預(yù)測的能力有限,甚至可能出現(xiàn)系統(tǒng)短暫不能使用、適應(yīng)代價(jià)高或資源浪費(fèi)等問題。基于運(yùn)行時(shí)驗(yàn)證的解決方案通常使用服務(wù)組合的運(yùn)行時(shí)模型進(jìn)行檢查,以確定能否成功地適應(yīng)SOS,于是文獻(xiàn)[11]在運(yùn)行時(shí)使用模型檢查和定量驗(yàn)證技術(shù)來保障自適應(yīng)系統(tǒng)的可靠性。文獻(xiàn)[12]遵循簡單的靜態(tài)監(jiān)控規(guī)則,并添加二級運(yùn)行時(shí)驗(yàn)證或反饋循環(huán)驗(yàn)證模塊,提高了自適應(yīng)系統(tǒng)的性能。這些方法可以看作是一種典型的運(yùn)行時(shí)定量驗(yàn)證(runtime quantitative verification,RQV)技術(shù),主要依賴自適應(yīng)系統(tǒng)的監(jiān)測能力,先將系統(tǒng)監(jiān)測到的信息用于核心模型的參數(shù)更新,再用于檢測或預(yù)測需求規(guī)則的違反情況,一旦監(jiān)測到違規(guī)情況就可以使用相同的定量驗(yàn)證技術(shù)選擇合適的自適應(yīng)參數(shù)。文獻(xiàn)[13]研究了在運(yùn)行時(shí)如何使用模型檢查器并結(jié)合緩存、適應(yīng)目標(biāo)和配置策略來減少運(yùn)行時(shí)驗(yàn)證時(shí)間的開銷,這是一種使用自適應(yīng)系統(tǒng)的模型檢查器解決不確定性選擇的典型思路,可以從時(shí)間維度累積效用,使之達(dá)到最大化。文獻(xiàn)[6]提出了一種在不確定性下的主動(dòng)延遲感知適應(yīng)方法,采用概率模型進(jìn)行適應(yīng)決策檢查。此外,目前流行的機(jī)器學(xué)習(xí)技術(shù)也可以幫助系統(tǒng)在運(yùn)行時(shí)有效地選擇自適應(yīng)模式。然而,這類方法可能存在學(xué)習(xí)偏差,在某些情況下導(dǎo)致次優(yōu)甚至不可行的適應(yīng)過程,以致引發(fā)新的不確定性問題。為了突破這一限制,文獻(xiàn)[14]提出了一種結(jié)合機(jī)器學(xué)習(xí)和形式化定量驗(yàn)證的主動(dòng)自適應(yīng)方法。在該方法中,機(jī)器學(xué)習(xí)的任務(wù)是為給定場景選擇最佳適應(yīng)模式,定量驗(yàn)證自適應(yīng)決策的可行性,防止執(zhí)行不可行的自適應(yīng),并向機(jī)器學(xué)習(xí)引擎提供反饋,促使模型更快地收斂到最優(yōu)決策。從宏觀來看,以上提到的RQV 與概率模型的檢驗(yàn)有兩個(gè)主要區(qū)別:1)對于一般的自適應(yīng)決策,RQV 通常用于一次量化或驗(yàn)證每個(gè)可能配置的屬性,以便選擇模型檢查過程之外的目標(biāo)配置。2)RQV 通常只在環(huán)境狀態(tài)實(shí)時(shí)運(yùn)行的上下文中驗(yàn)證單個(gè)配置,而不是在自適應(yīng)全過程中驗(yàn)證自適應(yīng)序列。
雖然上述兩類軟件主動(dòng)自適應(yīng)研究已經(jīng)在許多領(lǐng)域取得了較好的成果,但SOS 仍可能受到各種來源的不確定性影響,如服務(wù)調(diào)用失敗、不確定服務(wù)響應(yīng)延時(shí)或新服務(wù)的注冊等。事實(shí)上,在SOS 出現(xiàn)上述類似問題之前,一切都是未知的。因此,基于靜態(tài)分析或模型驗(yàn)證的自適應(yīng)保障方法只能是短期的判斷,不一定有足夠的時(shí)間給出最優(yōu)的自適應(yīng)決策來應(yīng)對系統(tǒng)可能發(fā)生的所有變化?,F(xiàn)代SOS 運(yùn)行環(huán)境的開放性和軟件運(yùn)行環(huán)境的動(dòng)態(tài)性體現(xiàn)在系統(tǒng)參數(shù)和QoS 指標(biāo)之間的重要關(guān)系中,僅僅依靠靜態(tài)分析和運(yùn)行時(shí)驗(yàn)證使SOS 主動(dòng)自適應(yīng)顯得力不從心,尤其是對于具有剛性目標(biāo)的SOS 來說,軟件需要更積極、更主動(dòng)、更精確的自適應(yīng)以應(yīng)對用戶QoS 開放性造成的問題。因此,及時(shí)獲取環(huán)境信息并根據(jù)這些信息預(yù)測可能發(fā)生的服務(wù)故障,是SOS 主動(dòng)自適應(yīng)調(diào)整的關(guān)鍵[15]。鑒于此,為了更好地保障SOS 運(yùn)行時(shí)的質(zhì)量可靠性,在自適應(yīng)過程中逐漸采用了機(jī)器學(xué)習(xí)或數(shù)據(jù)挖掘技術(shù)[16]。文獻(xiàn)[17]基于動(dòng)態(tài)貝葉斯網(wǎng)絡(luò)模型執(zhí)行一步時(shí)間序列預(yù)測,并用基于主題的動(dòng)態(tài)貝葉斯網(wǎng)絡(luò)模型進(jìn)一步修正未來可靠性預(yù)測模型,最后根據(jù)可靠性預(yù)測結(jié)果實(shí)現(xiàn)了主動(dòng)適應(yīng)策略的生成。文獻(xiàn)[18]結(jié)合序列模式挖掘算法和貝葉斯網(wǎng)絡(luò)等技術(shù)抽取并建模事件因果關(guān)系,保障事件關(guān)系識別質(zhì)量,支持軟件系統(tǒng)的自適應(yīng)。與貝葉斯網(wǎng)絡(luò)這類相關(guān)的方法確實(shí)可以保障用戶QoS,但不太適合高度動(dòng)態(tài)環(huán)境中大規(guī)模自適應(yīng)服務(wù)組合系統(tǒng)。有部分學(xué)者還指出:基于在線測試框架和正式的測試生成方法可以提高服務(wù)的正確性,如文獻(xiàn)[19]就描述了一種主動(dòng)方法,支持由不同類型問題觸發(fā)的服務(wù)組合。該方法允許將一個(gè)或一組服務(wù)操作替換為動(dòng)態(tài)組合的操作來改變組合工作流。為了應(yīng)對在線用戶需求多變的實(shí)際情況,文獻(xiàn)[20]結(jié)合Web 服務(wù)與自適應(yīng)軟件系統(tǒng),提出了一個(gè)基于工作流監(jiān)控和預(yù)測系統(tǒng)模型,支持用戶更靈活地表達(dá)在模型水平上的需求,在實(shí)現(xiàn)動(dòng)態(tài)QoS 計(jì)算和預(yù)測的同時(shí)還可以實(shí)時(shí)監(jiān)控系統(tǒng)的運(yùn)行狀態(tài)和運(yùn)行上下文,從而使軟件系統(tǒng)能更好地滿足用戶不斷變化的需求,并適應(yīng)運(yùn)行過程中動(dòng)態(tài)的環(huán)境。然而,這類針對QoS 定量分析的方法大多通過QoS 預(yù)測技術(shù)指導(dǎo)單一的服務(wù)來支持適應(yīng)過程,缺少對服務(wù)操作之間的依賴關(guān)系和服務(wù)操作的時(shí)間序列特性分析。此外,深度學(xué)習(xí)方法作為一種新興的機(jī)器學(xué)習(xí)方法,能憑借其本身強(qiáng)大的功能映射能力以多層信息處理和特征提取方式逼近小誤差的復(fù)雜非線性函數(shù),因此已經(jīng)應(yīng)用到引發(fā)系統(tǒng)自適應(yīng)現(xiàn)象的故障預(yù)測中,如文獻(xiàn)[21]利用卷積神經(jīng)網(wǎng)絡(luò)預(yù)測軸承的剩余使用壽命,文獻(xiàn)[22]提出了一種利用深度卷積神經(jīng)網(wǎng)絡(luò)的新數(shù)據(jù)驅(qū)動(dòng)預(yù)測方法,并通過實(shí)驗(yàn)證明了該方法的有效性。在眾多的深度學(xué)習(xí)方法中,LSTM 網(wǎng)絡(luò)善于處理系統(tǒng)運(yùn)行數(shù)據(jù)的時(shí)間序列,并在各方面都獲得了良好的效果。例如:文獻(xiàn)[23]驗(yàn)證了一種基于LSTM 網(wǎng)絡(luò)的航空發(fā)動(dòng)機(jī)剩余壽命估計(jì)的方法;文獻(xiàn)[24]研究了一種基于雙向LSTM 網(wǎng)絡(luò)的故障預(yù)測方法;文獻(xiàn)[25]設(shè)計(jì)了一種基于LSTM 網(wǎng)絡(luò)的新型動(dòng)態(tài)預(yù)測維護(hù)框架;文獻(xiàn)[26]結(jié)合雙向長短期記憶網(wǎng)絡(luò)和粒子濾波器方法,構(gòu)造了一種新的深度學(xué)習(xí)方法用于工程系統(tǒng)的剩余使用壽命預(yù)測。在這些研究中,LSTM 只停留在單級引發(fā)可能的自適應(yīng)現(xiàn)象故障預(yù)測,而缺少對軟件系統(tǒng)領(lǐng)域的主動(dòng)自適應(yīng)的應(yīng)用研究。
本文受到預(yù)測控制模型(model predictive control,MPC)的啟發(fā)[27],旨在提出一種積極主動(dòng)的自適應(yīng)方法,基于歷史與運(yùn)行時(shí)的數(shù)據(jù)特征并采用預(yù)測技術(shù)讓SOS 給出預(yù)見性的判斷,從而有效彌補(bǔ)反應(yīng)式自適應(yīng)被動(dòng)性的缺陷。
MAPE-K 模型包含一般自適應(yīng)控制回路執(zhí)行過程的關(guān)鍵活動(dòng)[28],該模型主要由托管系統(tǒng)和自適應(yīng)引擎兩個(gè)部分構(gòu)成。在自適應(yīng)引擎中,監(jiān)測器負(fù)責(zé)感知系統(tǒng)的狀態(tài),分析器分析感知到的信息并決定是否需要自適應(yīng)調(diào)整,規(guī)劃器決策如何適應(yīng)當(dāng)前的系統(tǒng)狀態(tài),執(zhí)行器執(zhí)行適應(yīng)策略。本文方法適用于基于MAPE-K 顯式閉環(huán)控制的一般自適應(yīng)場景,并突出了環(huán)境、系統(tǒng)服務(wù)質(zhì)量、自適應(yīng)目標(biāo)及自適應(yīng)策略等關(guān)鍵要素。本節(jié)將介紹與這些要素有關(guān)的基本模型,并根據(jù)這些基本要素構(gòu)建基于MAPE-K 的主動(dòng)自適應(yīng)控制模型,旨在提高SOS 的適應(yīng)主動(dòng)性。
1.1.1 環(huán)境模型
環(huán)境是SOS 外部及內(nèi)部存在交互的實(shí)體,可以是用戶元素、物理元素或虛擬元素等之間的交互。SOS 與環(huán)境通過一定的自適應(yīng)控制機(jī)制建立交互關(guān)系,支持自適應(yīng)引擎對SOS 內(nèi)、外部環(huán)境進(jìn)行觀察和評估,以實(shí)現(xiàn)對SOS 運(yùn)行狀態(tài)的判斷。環(huán)境對應(yīng)的模型可以表示為托管系統(tǒng)中帶有屬性的運(yùn)行環(huán)境元素模型,能表征與SOS 實(shí)現(xiàn)自適應(yīng)相關(guān)的部分。在通常情況下,環(huán)境可以被特定的監(jiān)測器和分析器監(jiān)測并響應(yīng)。本文首先對SOS 運(yùn)行所依賴的環(huán)境實(shí)體進(jìn)行歸納;然后將SOS 運(yùn)行過程中的每個(gè)環(huán)境實(shí)體(environmental entity,EE)劃分為固定的、取值變化的及狀態(tài)變化的3 類;最后識別出運(yùn)行過程中各類環(huán)境實(shí)體的屬性狀態(tài)(attribute state,AS)和屬性變量(attribute variable,AV)。環(huán)境建模的具體步驟如下:
步驟1根據(jù)識別出的AS 和AV,將得到的環(huán)境變量定義為集合E={e1,e2,···,en}。由于AS 可看作是AV 在離散域中的個(gè)例,因此AV 和AS 可以統(tǒng)一描述為四元組
式中:ve為環(huán)境變量的度量值;dome為該變量的取值范圍;LVe為刻畫該變量程度的語言變量集合,如LVe={低、中、高};MFe為隸屬函數(shù)集合。
步驟2以笛卡兒積的形式定義AV 的取值空間為
式(2) 描述了SOS 運(yùn)行過程中環(huán)境實(shí)體及其分類和屬性的取值空間關(guān)系。式(2) 中ei的取值范圍是一個(gè)區(qū)間,表示這些環(huán)境變量不確定的客觀事實(shí),區(qū)間的范圍可以綜合歷史經(jīng)驗(yàn)值和專家知識得到。以e3為例,當(dāng)電流環(huán)境變量取值用語言變量集合{低,中,高} 刻畫時(shí),可將e3描述為
步驟3采用區(qū)間數(shù)的方法構(gòu)建環(huán)境變量隸屬函數(shù)集合MFe[29]。
1.1.2 質(zhì)量模型
質(zhì)量是軟件系統(tǒng)服務(wù)效能的關(guān)鍵指標(biāo),尤其是當(dāng)自適應(yīng)引擎運(yùn)行時(shí),質(zhì)量又是自適應(yīng)需求分析的依據(jù)。運(yùn)行時(shí)質(zhì)量模型是SOS 自適應(yīng)的關(guān)鍵要素,早期ISO9126/25010 標(biāo)準(zhǔn)將質(zhì)量模型定義為一組特征以及特征之間的關(guān)系,這為用戶制定軟件質(zhì)量需求提供了基礎(chǔ)[30]。按此定義,質(zhì)量模型既要表征系統(tǒng)的重要屬性,如可靠性等相關(guān)的性能約束,還要體現(xiàn)這些屬性特征的關(guān)系。本文定義了一個(gè)通用的QoS 模型,度量SOS 服務(wù)質(zhì)量,并將第t個(gè)采樣間隔處的質(zhì)量模型表示為
式中:QoSikj(t)表示第i個(gè)實(shí)體的第j個(gè)服務(wù)Sij在t時(shí)刻第k個(gè)服務(wù)屬性對應(yīng)的QoS值,在建模中所用的值以t時(shí)刻監(jiān)測到的對應(yīng)度量值如平均響應(yīng)時(shí)間來表示;fkij表示Sij在環(huán)境e中第k個(gè)屬性的質(zhì)量函數(shù);δ表示其他的任意輸入,如歷史時(shí)間序列的QoS調(diào)優(yōu)參數(shù);Mkij(t)表示Sij第k個(gè)質(zhì)量的屬性矩陣,包括服務(wù)成本c、服務(wù)可靠性r及系統(tǒng)性能p這3 個(gè)屬性,其基本形式為
本文將此質(zhì)量模型用于分析最新知識的可選適應(yīng)動(dòng)作,并基于此分析和自適應(yīng)目標(biāo)實(shí)現(xiàn)了自適應(yīng)引擎對適應(yīng)需求的分析[31]。
1.1.3 適應(yīng)目標(biāo)
適應(yīng)目標(biāo)代表自適應(yīng)引擎對托管系統(tǒng)的期望。由于SOS 在運(yùn)行過程中需要自適應(yīng)目標(biāo)推動(dòng)自身演化,因此自適應(yīng)目標(biāo)必須能夠引導(dǎo)SOS 對不確定性問題進(jìn)行具體處理。本文按照自主管理系統(tǒng)對高級目標(biāo)4 種類型的劃分,根據(jù)一個(gè)或多個(gè)非功能需求的屬性定義自適應(yīng)目標(biāo)[32],如服務(wù)的可靠性、響應(yīng)時(shí)間及成本等,以此推動(dòng)SOS 向自適應(yīng)目標(biāo)方向調(diào)整;同時(shí)用時(shí)間概率對服務(wù)質(zhì)量目標(biāo)進(jìn)行規(guī)范,以模糊約束表示模糊目標(biāo)的規(guī)范需求,且允許適應(yīng)目標(biāo)根據(jù)自身狀態(tài)的改變而變化,在操作期間也可以通過自適應(yīng)引擎更新探針以及對執(zhí)行器實(shí)施刪除或添加的操作實(shí)現(xiàn)新的目標(biāo)。具體來說,本文將目標(biāo)最大收益Max(U) 作為自適應(yīng)驅(qū)動(dòng)目標(biāo),對持續(xù)時(shí)間L求取最大化收益與成本之間的差值,并將這一差值用函數(shù)表示為
式中:U表示系統(tǒng)的效用,RC表示僅包含約束條件下的響應(yīng)收益,xC表示在時(shí)間窗口內(nèi)提供的響應(yīng)數(shù)量,RO表示可選內(nèi)容的響應(yīng)收益,xO表示及時(shí)響應(yīng)的數(shù)量,K為常系數(shù),s(t) 表示t時(shí)刻的服務(wù)數(shù)量。
1.1.4 自適應(yīng)策略
適應(yīng)策略是高度領(lǐng)域化的,定義了需要在自適應(yīng)引擎上實(shí)施的活動(dòng)規(guī)則。一般來說,一個(gè)自適應(yīng)策略可以定義為能夠被自適應(yīng)引擎理解、執(zhí)行和適應(yīng)的任何動(dòng)作序列。參考dTAS 中自適應(yīng)策略的定義方式[33],本文也設(shè)計(jì)了如表1所示的自適應(yīng)策略。
表1 不確定場景的自適應(yīng)策略示例Table 1 Examples of self-adaptive strategies for uncertain scenarios
1.1.5 托管系統(tǒng)
托管系統(tǒng)是向用戶提供服務(wù)的SOS,是自適應(yīng)的主體。因此,托管系統(tǒng)的關(guān)注點(diǎn)在于領(lǐng)域知識,即系統(tǒng)的環(huán)境。為了支持自適應(yīng),自適應(yīng)引擎需要為監(jiān)測器和執(zhí)行器設(shè)計(jì)可執(zhí)行的自適應(yīng)策略用于SOS 的操作。實(shí)現(xiàn)自適應(yīng)的一個(gè)常見方法是:只有當(dāng)一個(gè)系統(tǒng)或服務(wù)處于靜止?fàn)顟B(tài)時(shí),才會(huì)執(zhí)行自適應(yīng)策略。這里的靜止?fàn)顟B(tài)是指托管系統(tǒng)及其準(zhǔn)備適應(yīng)的服務(wù)未處于活動(dòng)的狀態(tài),這種狀態(tài)能夠保障系統(tǒng)安全地調(diào)整和演化。當(dāng)然,這類方法還需要一個(gè)組件來處理適應(yīng)過程中的通信消息和適應(yīng)狀態(tài),以確保在適應(yīng)前后的一致性。針對這一問題,通常可以采用開放服務(wù)網(wǎng)關(guān)協(xié)議(open service gateway initiative,OSGi)實(shí)現(xiàn),該協(xié)議支持動(dòng)態(tài)地安裝、啟動(dòng)、停止和更新任意組件。
1.1.6 反饋回路
自適應(yīng)引擎需要接收來自托管系統(tǒng)的自適應(yīng)反饋,實(shí)現(xiàn)對SOS 的適應(yīng)。本文根據(jù)MAPEK 反饋回路,并借鑒MPC 思想對變化環(huán)境和托管系統(tǒng)進(jìn)行監(jiān)控[27],在必要時(shí)對后者狀態(tài)進(jìn)行預(yù)測,主動(dòng)地、預(yù)見性地判斷自適應(yīng)需求,支持托管系統(tǒng)從容地調(diào)整到符合適應(yīng)目標(biāo)的系統(tǒng)配置,從而降低因反應(yīng)式自適應(yīng)缺陷帶來的服務(wù)質(zhì)量低的風(fēng)險(xiǎn)。
基于SOS 的主動(dòng)適應(yīng)過程涉及了幾個(gè)關(guān)鍵問題。首先,SOS 的主動(dòng)適應(yīng)過程需要根據(jù)系統(tǒng)的可用性指定功能配置,包括如端口訪問量的環(huán)境條件以及環(huán)境中的服務(wù)等。其次,SOS 的主動(dòng)適應(yīng)過程必須了解其運(yùn)行上下文將在何時(shí)發(fā)生怎樣的變化。只有基于這些信息,自適應(yīng)引擎才能確定可能違反其活動(dòng)配置的具體情況。如果SOS 的主動(dòng)配置失效,自適應(yīng)引擎就會(huì)主動(dòng)尋找至少一種可能的適應(yīng)策略。本文把這種自適應(yīng)限定于通過分析器來分析是否需要主動(dòng)自適應(yīng)的情況。在理想情況下,這種自適應(yīng)是針對一系列即將發(fā)生的上下文事件進(jìn)行的優(yōu)化,因此自適應(yīng)引擎應(yīng)該滿足分析所有可能變化的需求,并為這些事件決策所有可能的自適應(yīng)方案。目前,已經(jīng)存在不少成熟的自適應(yīng)系統(tǒng)的控制模型[4],本文則基于流行的MAPE-K控制回路,并結(jié)合1.1 小節(jié)介紹的基本概念模型,構(gòu)建了如圖1所示的主動(dòng)自適應(yīng)過程模型。
在圖1中,自適應(yīng)引擎實(shí)現(xiàn)的自適應(yīng)過程如下:監(jiān)測器通過特定probe 從托管系統(tǒng)和運(yùn)行環(huán)境中獲取質(zhì)量與環(huán)境數(shù)據(jù),然后處理這些數(shù)據(jù)同時(shí)更新相應(yīng)的環(huán)境模型和質(zhì)量模型;分析器根據(jù)已有知識并用預(yù)測手段分析系統(tǒng)是否需要自適應(yīng),若需要,則分析器將結(jié)合自適應(yīng)目標(biāo)通過一定的預(yù)測模型來分析自適應(yīng)的策略;規(guī)劃器會(huì)根據(jù)預(yù)測結(jié)果選擇自適應(yīng)動(dòng)作,最后形成一個(gè)或由多個(gè)適應(yīng)動(dòng)作組成的最佳自適應(yīng)策略;執(zhí)行器按照策略執(zhí)行,此時(shí)系統(tǒng)將從當(dāng)前配置適應(yīng)到新的配置,如此便完成了一次自適應(yīng)過程。
圖1 預(yù)測驅(qū)動(dòng)的主動(dòng)自適應(yīng)過程模型Figure 1 Prediction driven proactive self-adaptive process model
本文提出的模型包含兩個(gè)關(guān)鍵部分:一是基于預(yù)測技術(shù)的分析模塊,二是基于環(huán)境、質(zhì)量及自適應(yīng)目標(biāo)與策略形成的各個(gè)知識更新模塊,該模型能提供一個(gè)簡單但功能強(qiáng)大的自適應(yīng)過程指導(dǎo)框架?;陬A(yù)測的分析器會(huì)評估下一個(gè)時(shí)刻的SOS 狀態(tài),并將評估結(jié)果與預(yù)定義的約束條件進(jìn)行比較。若預(yù)測的QoS 屬性值不符合所考慮的某個(gè)質(zhì)量指標(biāo)要求的約束條件,分析器就會(huì)提示服務(wù)違規(guī),并在任何異常發(fā)生之前執(zhí)行適當(dāng)?shù)倪m應(yīng)動(dòng)作。如果25%的響應(yīng)延遲率高于用戶可接受的閾值,分析器就可以采用可預(yù)測托管系統(tǒng)狀態(tài)的LSTM 預(yù)測模型判斷有無自適應(yīng)需求,這有力地提高了系統(tǒng)的預(yù)見性。
SOS 主動(dòng)自適應(yīng)的目的是避免出現(xiàn)違反SLA 的情況,使系統(tǒng)有預(yù)見性地采取一定的自適應(yīng)策略去保障QoS 不受影響,實(shí)現(xiàn)系統(tǒng)效用最大化。本文希望具有靈活和健壯特點(diǎn)的SOS 能夠自適應(yīng)各種不確定的變化,這不僅需要不同的控制行為共同作用于系統(tǒng),而且要求SOS 不受系統(tǒng)故障或負(fù)載等不確定性因素的影響。慶幸的是,作為面向服務(wù)的系統(tǒng)在一定時(shí)間窗口中具有明顯的時(shí)序特征,這樣就能學(xué)習(xí)歷史數(shù)據(jù),并挖掘出這些控制行為對系統(tǒng)狀態(tài)作用的規(guī)律。如果使用過去監(jiān)測到的系統(tǒng)參數(shù)預(yù)測在不久的將來會(huì)發(fā)生什么,并根據(jù)預(yù)期的目標(biāo)進(jìn)行監(jiān)督,就能生成新的訓(xùn)練示例。如此,系統(tǒng)便能對每一次自適應(yīng)主動(dòng)地進(jìn)行自適應(yīng)判斷,以保持一定水平的服務(wù)性能。鑒于此,圖2中給出了本文采取的預(yù)測思路,可以作為圖1所示過程模型的一個(gè)組成部分。
圖2所示的預(yù)測是基于實(shí)時(shí)與非實(shí)時(shí)數(shù)據(jù)結(jié)合的過程[34]。一方面,基于離線的歷史數(shù)據(jù)進(jìn)行訓(xùn)練,同時(shí)從托管系統(tǒng)中監(jiān)測系統(tǒng)參數(shù)和環(huán)境屬性,如交易服務(wù)中訂單請求的當(dāng)前位置或順序。另一方面,通過分類器實(shí)時(shí)反映托管系統(tǒng)的狀態(tài)。在系統(tǒng)參數(shù)存在更新滯后的情況下,分析器可以促使歷史數(shù)據(jù)重新生成訓(xùn)練模型,但這要求分類器在系統(tǒng)參數(shù)發(fā)生變化時(shí)擁有相關(guān)的知識。如果觀察到系統(tǒng)平均負(fù)載逐漸增加,那么在幾周內(nèi)可能需要一種不同的自適應(yīng)策略調(diào)整系統(tǒng)。本文為了從大量數(shù)據(jù)中自動(dòng)提取隱藏于其中且具有特殊關(guān)系的狀態(tài)特征,選擇了基于LSTM 神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練,并利用實(shí)時(shí)數(shù)據(jù)對當(dāng)前系統(tǒng)狀態(tài)進(jìn)行實(shí)時(shí)的知識分類,以促進(jìn)SOS 快速自適應(yīng)調(diào)整,此時(shí)自適應(yīng)引擎通過監(jiān)測托管系統(tǒng)的變化將當(dāng)前的系統(tǒng)參數(shù)輸入模型,從而在動(dòng)態(tài)情況下生成新的訓(xùn)練實(shí)例,同時(shí)分析器對托管系統(tǒng)的歷史數(shù)據(jù)進(jìn)行訓(xùn)練并產(chǎn)生新的離線訓(xùn)練樣本。正是因?yàn)檫@種方法只允許對監(jiān)測到的變化進(jìn)行后驗(yàn)適應(yīng),所以才可能使分析器提前生成預(yù)測模型。當(dāng)這些變化發(fā)生時(shí),系統(tǒng)已經(jīng)擁有主動(dòng)自適應(yīng)判斷的經(jīng)驗(yàn)知識。由于訓(xùn)練實(shí)例與系統(tǒng)實(shí)際情況存在高度相似性,因此可以持續(xù)保持SOS 高質(zhì)量的服務(wù)目標(biāo)。
圖2 基于LSTM 預(yù)測驅(qū)動(dòng)的自適應(yīng)流程Figure 2 Self-adaptive process based on LSTM predictive drive
在主動(dòng)自適應(yīng)過程中,工作流是由一組自主運(yùn)行的任務(wù)組成的。SOS 執(zhí)行這些任務(wù),自適應(yīng)引擎協(xié)調(diào)各種資源以保證工作流能在不違反SLA 目標(biāo)的情況下高質(zhì)量運(yùn)行。
基于LSTM 預(yù)測驅(qū)動(dòng)的主動(dòng)自適應(yīng)算法將工作流建模為一組任務(wù)構(gòu)成的工作流WF={t1,t2,···,tn},其中n表示工作流中的任務(wù)數(shù)量。將每個(gè)任務(wù)都表示為一個(gè)元組ti=〈C,E,Q〉,其中C表示任務(wù)類別或類型,如alarm service、medical service、drug service、assistance service 等[33]。E參考式(3) 確定,表示一組環(huán)境量化的水平;任務(wù)質(zhì)量約束表示為Q={q1,q2,···,qj},其中j表示描述任務(wù)性能的QoS 屬性數(shù)量。每個(gè)質(zhì)量屬性都是一個(gè)元組qj
本文算法首先檢索工作流中的任務(wù)列表,以及每個(gè)任務(wù)的相關(guān)QoS 自適應(yīng)目標(biāo)列表,并基于LSTM 神經(jīng)網(wǎng)絡(luò)模型預(yù)測每個(gè)任務(wù)的服務(wù)異常行為,最終推薦適當(dāng)?shù)淖赃m應(yīng)動(dòng)作,以維護(hù)整個(gè)工作流所需的自適應(yīng)目標(biāo)。對于每項(xiàng)任務(wù),自適應(yīng)引擎監(jiān)測器將提供QoS 的實(shí)時(shí)記錄和歷史記錄作為訓(xùn)練樣本輸入LSTM 模型,并通過測試樣本測試后用于預(yù)測未來的任務(wù)執(zhí)行過程中是否有違反QoS 的情況。當(dāng)預(yù)測值超出某個(gè)質(zhì)量指標(biāo)指定的SLA 閾值范圍時(shí),便會(huì)檢測到違規(guī)的情況,此時(shí)該算法根據(jù)多個(gè)性能指標(biāo)如平均絕對百分比誤差(mean absolute percentage error,MAPE)、均方根誤差(root mean square error,RMSE)來評估預(yù)測結(jié)果,選擇自適應(yīng)目標(biāo)達(dá)成度最高的策略。一旦選擇了自適應(yīng)動(dòng)作,將根據(jù)QoS 指標(biāo)和性能沖突進(jìn)行評估。
dTAS 是一個(gè)遠(yuǎn)程輔助系統(tǒng)[33],集成了嵌入在可穿戴設(shè)備中的傳感器緊急求助服務(wù)和來自醫(yī)療保健、藥房和提供商的遠(yuǎn)程服務(wù),可以為身在家中的慢性病患者遠(yuǎn)程提供健康服務(wù)。dTAS 工作流程會(huì)周期性測量患者的重要參數(shù),并通過第三方醫(yī)療服務(wù)機(jī)構(gòu)進(jìn)行參數(shù)分析。分析結(jié)果可以觸發(fā)藥房服務(wù),向患者提供新藥物或改變患者的藥物劑量,也可以調(diào)用報(bào)警求助服務(wù)。如果患者使用可穿戴設(shè)備上的緊急按鈕,就可以直接調(diào)用救助服務(wù);工作人員接收到服務(wù)請求后將患者送往救護(hù)車并進(jìn)行及時(shí)的診療[35]。dTAS 一個(gè)典型的服務(wù)場景S 如下:
dTAS 為系統(tǒng)實(shí)體(system entity,SE)設(shè)計(jì)了一個(gè)MAPE-K 循環(huán),能夠在系統(tǒng)適應(yīng)階段為下一個(gè)工作流的執(zhí)行選擇所需的服務(wù)。這些服務(wù)具有某些屬性,如成本和故障率,而SE 有自己的屬性閾值,例如服務(wù)組合的成本需要小于20.0 (cost lower_than 20.0),SE 可以通過注冊各種服務(wù)處理規(guī)定的工作流任務(wù)。Knowledge 保存了一個(gè)負(fù)載故障表,其中包含關(guān)于每個(gè)已注冊服務(wù)給定負(fù)載的故障率變化信息。開始時(shí)此表只保存每個(gè)已使用服務(wù)的默認(rèn)故障率,每次調(diào)整后將根據(jù)最后一次工作流運(yùn)行后新收集的數(shù)據(jù)更新Knowledge。Planner 按照特定的協(xié)議,通過直接消息傳遞與其他服務(wù)進(jìn)行通信,可以在執(zhí)行期間調(diào)用Analyzer 重新評估服務(wù)組合。實(shí)驗(yàn)時(shí)可以訪問每個(gè)實(shí)體的服務(wù)注冊表,允許為工作流選擇需要的各種服務(wù),從而創(chuàng)建一個(gè)服務(wù)組合,但實(shí)體之間并不知道彼此的目標(biāo)和可用服務(wù)注冊表,且一個(gè)服務(wù)可以注冊兩個(gè)不同的實(shí)體。由于服務(wù)的故障率隨著使用量的增加而變化,因此實(shí)體根據(jù)消息通信掌握彼此使用哪些服務(wù),并通過改變它們所選擇的服務(wù)組合來提高滿足目標(biāo)要求的數(shù)量。
實(shí)驗(yàn)采用圖1所示的過程模型重新配置dTAS,在Algorithm 1 的指導(dǎo)下執(zhí)行場景S 所示的工作流。采用3 個(gè)SE 同時(shí)運(yùn)行的工作模式;設(shè)置第1 個(gè)SE 自適應(yīng)目標(biāo)為min(cost),第2 個(gè)SE 自適應(yīng)目標(biāo)為max(reliability),第3 個(gè)SE 的自適應(yīng)目標(biāo)為min(cost)和max(reliability);protocol type 為默認(rèn),rating type 為class,max protocol messages 為40,protocol data usage 為100%;執(zhí)行4 770 次自適應(yīng)循環(huán),且每次自適應(yīng)執(zhí)行2 000 次指定的工作流;最終將實(shí)體滿足的自適應(yīng)目標(biāo)率、系統(tǒng)滿足的自適應(yīng)目標(biāo)率、實(shí)體組合的理論故障率、系統(tǒng)組合的實(shí)際故障率及實(shí)體組合的理論故障率與實(shí)際故障率之差依次記為ER、SR、EFR、SFR、FRE,并將服務(wù)在運(yùn)行時(shí)段內(nèi)累積的調(diào)用成本記為cost,最終整理得到如表2所示的大量QoS 數(shù)據(jù)。
表2 數(shù)據(jù)集結(jié)構(gòu)Table 2 Data set structure
3.2.1 主動(dòng)性分析
為了說明本文提出的預(yù)測驅(qū)動(dòng)自適應(yīng)過程模型能夠支持SOS 主動(dòng)自適應(yīng),本小節(jié)先只對預(yù)測驅(qū)動(dòng)的主動(dòng)性進(jìn)行實(shí)驗(yàn)驗(yàn)證,評估在該模型指導(dǎo)下dTAS 是否具有自適應(yīng)需求的預(yù)見能力。
3.2.1.1 數(shù)據(jù)準(zhǔn)備
表2結(jié)構(gòu)所示的數(shù)據(jù)是從不同的SE 中獲得的,本文隨機(jī)選取SE 2 作為分析對象??紤]到該實(shí)體注冊的QoS 范圍不同,為了消除這些數(shù)據(jù)的異構(gòu)性,形成規(guī)范的數(shù)據(jù)集,這里采用最小-最大歸一化的方法對收集到的數(shù)據(jù)進(jìn)行預(yù)處理,使處理后的數(shù)據(jù)落在[0,1]范圍內(nèi),從而確保所有指標(biāo)在系統(tǒng)運(yùn)行條件下貢獻(xiàn)的平等性。實(shí)驗(yàn)采用Keras/Tensorflow 2.8.0 深度學(xué)習(xí)庫構(gòu)建深層的LSTM 分類模型,將自適應(yīng)循環(huán)的次序作為時(shí)間序列,以時(shí)間滑動(dòng)窗口模式進(jìn)行預(yù)測[34],也就是根據(jù)前一個(gè)時(shí)間步長預(yù)測下一個(gè)時(shí)間步長,這樣窗口滑動(dòng)一個(gè)單位就形成一個(gè)預(yù)測結(jié)果。本文統(tǒng)一將70% 的數(shù)據(jù)集作為訓(xùn)練集,剩下的30% 作為測試集,并選取值為1 的自適應(yīng)循環(huán)作為正樣本,值為0 的自適應(yīng)循環(huán)作為負(fù)樣本,計(jì)算FRE。為了便于評估決策的質(zhì)量,實(shí)驗(yàn)只對有無自適應(yīng)需求進(jìn)行分析,而不去識別和執(zhí)行任何適應(yīng)計(jì)劃。當(dāng)系統(tǒng)需要進(jìn)行主動(dòng)自適應(yīng)預(yù)警時(shí),根據(jù)時(shí)間窗口將數(shù)據(jù)標(biāo)記為兩個(gè)類別Cate0和Cate1。Cate0表示當(dāng)前距離自適應(yīng)需求到來的時(shí)長t大于w,Cate1表示當(dāng)前距離自適應(yīng)需求到來的時(shí)長t小于等于w,t由測試樣本的中位數(shù)確定。圖3顯示了實(shí)驗(yàn)采用的深度LSTM 三層結(jié)構(gòu),包含輸入層、隱含層和輸出層。
圖3 LSTM 結(jié)構(gòu)Figure 3 Structure of LSTM
在輸入層將QoS 數(shù)據(jù)代入LSTM 的網(wǎng)絡(luò)層,并將輸入數(shù)據(jù)重構(gòu)為形如[樣本,時(shí)間步長,特征]的LSTM 預(yù)期3D 結(jié)構(gòu)。為了將全部服務(wù)系統(tǒng)決策結(jié)果預(yù)測值進(jìn)行分類,應(yīng)使時(shí)間步長滿足測試集中記錄數(shù)據(jù)的最小長度要求。隱含層介于輸入層和輸出層之間,該層是模型訓(xùn)練和測試的核心部分。這里采用雙層結(jié)構(gòu),分別設(shè)置120 個(gè)和60 個(gè)單元。另外,為了避免神經(jīng)網(wǎng)絡(luò)訓(xùn)練數(shù)據(jù)的過擬合問題,實(shí)驗(yàn)時(shí)在每個(gè)LSTM 隱含層串聯(lián)Dropout,并用正則化方法在正向傳遞和權(quán)值更新的過程中對LSTM 神經(jīng)元的輸入和遞歸連接進(jìn)行概率性失活。輸出層是包含Dense() 的全連接層,該層用作網(wǎng)絡(luò)和輸出之間的原型,允許將隱含層輸出處的三維張量轉(zhuǎn)換為分類器輸出處的一維數(shù)組。本文將分類器輸出定義為兩個(gè)元素的向量,這些特征描述了觀察結(jié)果屬于兩類的概率:Cate0(w 訓(xùn)練LSTM 分類器時(shí),選用了專門用于解決二分類問題的binary_crossentropy 作為目標(biāo)函數(shù)的損失函數(shù)loss,并采用了在深度學(xué)習(xí)模型中常用的Adam 優(yōu)化算子。該算子是隨機(jī)梯度下降算法的擴(kuò)展式,具有計(jì)算效率高、內(nèi)存需求小以及對大數(shù)據(jù)適用性高等優(yōu)點(diǎn)。為了評估模型的性能,將度量功能定義為可提供平均預(yù)測準(zhǔn)確率的binary_accuracy。 3.2.1.2 評價(jià)指標(biāo) 實(shí)驗(yàn)根據(jù)列聯(lián)表分析法,評價(jià)基于LSTM 預(yù)測驅(qū)動(dòng)的自適應(yīng)模型對自適應(yīng)需求的預(yù)警效能。自適應(yīng)預(yù)測能以兩種可能的狀態(tài)終止:警告或忽略。根據(jù)表3所示的列聯(lián)表,將警告定義為一個(gè)積極的決策P,斷言在不久的將來系統(tǒng)將違反適應(yīng)目標(biāo);將忽略表示為消極決策N,表示在整個(gè)執(zhí)行過程中將不需要自適應(yīng)。對于一個(gè)積極的決策,若最終真的發(fā)生了違反適應(yīng)目標(biāo)的情況,則它是一個(gè)真陽性(true positive,TP);否則,它是一個(gè)假陽性(false positive,FP)。類似地,如果在執(zhí)行結(jié)束時(shí)沒有真正發(fā)生違反目標(biāo)的情況,那么消極的決策可以是真陰性(true negative,TN),也可以是假陰性(false negative,FN)。對角線上是TP 和TN,即正確的分類,而不在對角線上的則是錯(cuò)誤的分類。 表3 列聯(lián)表結(jié)構(gòu)Table 3 Structure of contingency table次 本文選用準(zhǔn)確率A、精確率P、召回率R、效率E和F1值衡量實(shí)驗(yàn)中二分類模型的優(yōu)劣,具體計(jì)算公式如下: 式中:A表示分類正確的樣本數(shù)占總樣本數(shù)的比例,P表示預(yù)測為正類的樣本中真正類所占的比例,R表示在所有正類中被預(yù)測為正類的比例,E表示正確的忽略在所有忽略中所占的比例,F(xiàn)1為P與R的調(diào)和平均。 3.2.1.3 參數(shù)設(shè)置 定義LSTM 的相關(guān)參數(shù)如表4所示。在模型訓(xùn)練過程中,本文以Keras 中的callbacks回調(diào)機(jī)制加快訓(xùn)練過程并保存最佳分類模型。一旦損失值或準(zhǔn)確率收斂、達(dá)到最優(yōu)值就停止訓(xùn)練。 表4 LSTM 基本參數(shù)設(shè)置Table 4 Basic parameter settings for LSTM 3.2.1.4 結(jié)果分析 考慮到不同的測試因子對基于LSTM 預(yù)測的自適應(yīng)模型擾動(dòng)的影響,實(shí)驗(yàn)前4 次采用固定時(shí)間窗口滑動(dòng),后6 次采用變動(dòng)的時(shí)間窗口滑動(dòng),得到如表5所示的預(yù)測分類結(jié)果。為了便于分析,進(jìn)一步將表5可視化為圖4。 表5 分類預(yù)測結(jié)果Table 5 Classification prediction results 根據(jù)表5和圖4展示的實(shí)驗(yàn)結(jié)果可以看出:在第1~4 次測試中,當(dāng)取同一時(shí)間窗口w=5 時(shí),該模型在同一工作流場景下的自適應(yīng)需求預(yù)警分類的效果較好,平均準(zhǔn)確率約為96.3%。預(yù)警觀測結(jié)果較為穩(wěn)定,差值浮動(dòng)約在0.3%以內(nèi),說明對于存在自適應(yīng)需求的情況可以較好地預(yù)警,且對于沒有自適應(yīng)需求的情形也能恰當(dāng)?shù)睾雎?,這也說明本文提出的自適應(yīng)過程模型能夠充分賦予SOS 系統(tǒng)主動(dòng)預(yù)測的能力。在第5~10 次測試中,隨著w的增大,A有逐漸減小的趨勢,最小的準(zhǔn)確率為93.8%,與分類準(zhǔn)確率最好的窗口w=10 相比,減幅為2.8%。當(dāng)w >10 時(shí),F(xiàn)1與w呈現(xiàn)反比例變化的趨勢;當(dāng)w=5 時(shí),第3 次測試的曲線下面積(area under curve,AUC)值最大;w=10 次之。特別地,當(dāng)w為10 時(shí),F(xiàn)1值達(dá)到了最大值95.7%,說明這組實(shí)驗(yàn)分類器的性能表現(xiàn)最好,系統(tǒng)的主動(dòng)適應(yīng)性能最強(qiáng)。 圖4 分類評價(jià)指標(biāo)可視化Figure 4 Visualization of classification evaluation indicators 圖5展示w=10 時(shí)測試集的概率混淆矩陣,結(jié)果表明:在1 424 次的測試中,有546 次自適應(yīng)需求被成功預(yù)警,19 次自適應(yīng)需求被錯(cuò)誤忽略;829 次無自適應(yīng)需求被正確忽略,而30 次無自適應(yīng)需求被錯(cuò)誤預(yù)警。A、P、R分別為96.6%、94.8%、96.6%,表現(xiàn)出了較好的預(yù)測性能。 圖5 w=10 時(shí)的概率混淆矩陣Figure 5 Probability confusion matrix when w=10 為了進(jìn)一步評價(jià)LSTM 分類器針對示例場景的性能,分別以假正例率Fpositiverate和真正例率Tpositiverate為橫縱坐標(biāo)軸,繪制了如圖6所示的接收者操作特征曲線(receiver operating characteristic,ROC)曲線,同時(shí)以AUC 補(bǔ)充二分類評價(jià)指標(biāo)。在圖6中,ROC 曲線能夠靠攏(0,1) 點(diǎn)且偏離45?的對角線,使最終形成的AUC 相對較大,說明在自適應(yīng)循環(huán)過程中LSTM 能恰當(dāng)?shù)嘏袛囝A(yù)警。 圖6 w=10 時(shí)的ROC 曲線Figure 6 ROC curve when w=10 3.2.2 魯棒性分析 為了評估本文模型的魯棒性,實(shí)驗(yàn)針對3 個(gè)虛擬的工作流場景依次采用工作流時(shí)序圖(workflow sequence diagram,WSD)表示。場景1 是一個(gè)組合片段,包含dATS 典型的交互執(zhí)行條件和方式、在任何場合下只發(fā)生一個(gè)序列alt、重復(fù)一定次數(shù)的loop 及一個(gè)可能發(fā)生的序列opt,形成了復(fù)雜執(zhí)行路徑的時(shí)間序列工作流;場景2 只包含換藥及調(diào)整藥品劑量這兩種服務(wù);場景3 在場景2 的基礎(chǔ)上增加了主動(dòng)報(bào)警和解除報(bào)警的服務(wù),形成5 個(gè)可能執(zhí)行路徑的復(fù)雜工作流。圖7給出了場景1 的時(shí)序圖,另外兩個(gè)場景也可按此形式繪制。 圖7 場景1 的工作流時(shí)序圖Figure 7 Workflow sequence diagram for scenario 1 為了在同一條件下比較與分析3 個(gè)工作流的執(zhí)行結(jié)果,對于每個(gè)工作流,以數(shù)據(jù)收集過程中的設(shè)置啟動(dòng)系統(tǒng)并執(zhí)行任務(wù)。采用圖3所示的LSTM 網(wǎng)絡(luò)模型,設(shè)定最佳的窗口w=10,并通過200 次迭代評估預(yù)測過程模型。表6給出了不同工作流場景下形成的自適應(yīng)預(yù)警分析結(jié)果。 表6 場景1、2、3 自適應(yīng)預(yù)警結(jié)果Table 6 Self-adaptive alert results for scenarios 1,2 and 3 表6對應(yīng)的可視化結(jié)果如圖8所示。 圖8 場景1、2、3 的預(yù)警評價(jià)結(jié)果Figure 8 Early warning evaluation results for scenarios 1,2 and 3 LSTM 的預(yù)測分析是根據(jù)過去執(zhí)行的知識給出的決策,即使用不同的工作流也可以獲得較好的性能。然而從場景1 的結(jié)果可以看出:在多任務(wù)或多執(zhí)行路徑的情況下,SE 面臨的各種不確定性增大,dTAS 的自適應(yīng)需求也隨之增加,這就增大了服務(wù)組合失敗的可能性,以致在各類評價(jià)指標(biāo)方面略低于工作流相對簡單的場景2 和3,由此可見工作流的復(fù)雜度也會(huì)在一定程度上影響到LSTM 自適應(yīng)預(yù)測分類器的性能。從表6或圖8呈現(xiàn)的結(jié)果中還可以發(fā)現(xiàn):F1指標(biāo)絕對差值最大,但僅為3.5%,且對于該評價(jià)指標(biāo)都有高于90.0% 的評估結(jié)果,也就是說3 個(gè)試驗(yàn)場景的測試結(jié)果浮動(dòng)并不大,從而說明本文模型并非嚴(yán)格局限于特定的工作流場景,而是適用于不同任務(wù)工作流的自適應(yīng),總體而言具有較好的魯棒性。 3.2.3 有效性分析 為驗(yàn)證本文中預(yù)測驅(qū)動(dòng)主動(dòng)自適應(yīng)的效果,本小節(jié)在Keras2Java-LSTM1https://github.com/Rachnog/Keras2Java-LSTM的基礎(chǔ)上進(jìn)行實(shí)驗(yàn),實(shí)現(xiàn)了圖1所示的分析模塊。LSTM 預(yù)測模型基本配置參數(shù)同3.2.1.3 中所述,自適應(yīng)策略見表1。此外,本文對3.2.1 中實(shí)驗(yàn)結(jié)果進(jìn)行觀測后發(fā)現(xiàn),系統(tǒng)測試樣本中failure rate、cost 及預(yù)測結(jié)果都存在如圖9所示的類似分布特征,即當(dāng)存在自適應(yīng)需求時(shí),參數(shù)空間分布穩(wěn)定,但存在大量重復(fù)點(diǎn)且重復(fù)點(diǎn)幾乎均在SE 1 的failure rate 或cost 較大處。為了便于比較,實(shí)驗(yàn)時(shí)只考慮SE 1 的cost。若分類結(jié)果為1,則規(guī)定采取reliability?0.01n,n取非負(fù)整數(shù)的策略使系統(tǒng)實(shí)現(xiàn)自適應(yīng)調(diào)整,并以MAPE 作為評價(jià)指標(biāo)選取合適的n,優(yōu)先保證調(diào)整策略滿足SE 1 對cost 的自適應(yīng)目標(biāo)。對圖7所示的場景進(jìn)行5 次滑動(dòng)自適應(yīng)測試實(shí)驗(yàn),并在同樣的SE 和服務(wù)工作流配置下對未采用本文預(yù)測驅(qū)動(dòng)方法的情形同樣測試5 次,最后根據(jù)記錄結(jié)果求取了兩種情況下各實(shí)體EFR、SFR、FRE、cost 的平均值,得到最終結(jié)果如表7所示。 圖9 SE 1 的3 個(gè)參數(shù)分布情況Figure 9 Distribution of three parameters for SE 1 表7 兩種情況下的自適應(yīng)效果對比Table 7 Comparison of self-adaptive effects in two cases 從表7的實(shí)驗(yàn)結(jié)果來看:一方面,有預(yù)測分析的自適應(yīng)可以成功地防止幾乎83.0%的自適應(yīng)目標(biāo)被違反的情況,這對于高度不確定環(huán)境下運(yùn)行的SOS 系統(tǒng)來講已是非常理想了。與無預(yù)測的第1 次測試相比,帶預(yù)測的自適應(yīng)開始時(shí)有較大的故障率,但隨著時(shí)間推移SE 的故障有消除跡象,因?yàn)橛蓄A(yù)測時(shí)LSTM 模型在全連接網(wǎng)絡(luò)的設(shè)計(jì)下將高維的初始數(shù)據(jù)轉(zhuǎn)換為低維的中間特性,并使用預(yù)測分類將自適應(yīng)需求映射到最終的自適應(yīng)預(yù)警過程,能夠增強(qiáng)系統(tǒng)自適應(yīng)的主動(dòng)性。另一方面,SE 1、SE 2 及SE 3 的EFR 均呈現(xiàn)有預(yù)測低于無預(yù)測的現(xiàn)象,即有預(yù)測驅(qū)動(dòng)分析的自適應(yīng)比沒有預(yù)測分析的自適應(yīng)有更好的整體效果。因此,帶有預(yù)測分析的自適應(yīng)存在前瞻性的分析,有助于提高系統(tǒng)的自適應(yīng)準(zhǔn)確性。 從SE 的cost 角度來講,雖然平均只降低了2.5%,但帶有預(yù)測的自適應(yīng)過程整體上呈現(xiàn)下降趨勢,尤其是SE 3、SE 2、SE 1 的EFR 下降明顯,這說明SE 保證了穩(wěn)定的自適應(yīng)準(zhǔn)確性,同時(shí)有效控制了自適應(yīng)成本。與無預(yù)測技術(shù)的自適應(yīng)相比,就SE 的EFR 而言,本文方法通過多維數(shù)據(jù)的特征提取,充分保障了預(yù)測輸入的信息量,從而支持了前瞻性的自適應(yīng)判斷,使得dTAS 具有較好的主動(dòng)自適應(yīng)能力。 在SOS 運(yùn)行環(huán)境中,SOS 希望通過上下文感知自身行為或改變服務(wù)結(jié)構(gòu),從而適應(yīng)其所在物理環(huán)境、用戶社會(huì)環(huán)境和技術(shù)環(huán)境等。以預(yù)測驅(qū)動(dòng)的模型指導(dǎo)SOS 自適應(yīng)過程,使得SOS 能夠及時(shí)且正確地判斷自身運(yùn)行環(huán)境的變化,預(yù)見性地給出自適應(yīng)需求判斷,從而恰當(dāng)應(yīng)對不確定事件,在提高自適應(yīng)系統(tǒng)主動(dòng)自適應(yīng)性的同時(shí)也賦予SOS 一定的主動(dòng)演化能力。本文采用主動(dòng)分析思路,在歷史數(shù)據(jù)和實(shí)時(shí)數(shù)據(jù)的基礎(chǔ)上用LSTM 的神經(jīng)網(wǎng)絡(luò)模型進(jìn)行分類預(yù)測,使SOS 給出預(yù)見性的自適應(yīng)判斷,有效避免了被動(dòng)自適應(yīng)的滯后性影響。基于一系列的實(shí)驗(yàn)評估結(jié)果,本文方法至少表現(xiàn)出了3 個(gè)理想的特性:1)能夠針對不同的工作流程給出較準(zhǔn)確的適應(yīng)需求預(yù)警;2)在不同的工作任務(wù)場景下均表現(xiàn)出較好的魯棒性;3)使用預(yù)測技術(shù)幫助自適應(yīng)系統(tǒng)進(jìn)行前瞻性的適應(yīng)決策,其自適應(yīng)效果優(yōu)于未使用預(yù)測技術(shù)的情形。4 結(jié) 論