丁建立 明 卉 王 靜
(中國(guó)民航大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 天津 300300)
基于監(jiān)控日志的航班查詢系統(tǒng)可靠性評(píng)估方法
丁建立 明 卉*王 靜
(中國(guó)民航大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 天津 300300)
針對(duì)運(yùn)行階段的系統(tǒng)軟件可靠性評(píng)估理論和評(píng)估方法的研究缺失,提出一種基于系統(tǒng)監(jiān)控日志的軟件可靠性評(píng)估方法。以中國(guó)航信的航班查詢系統(tǒng)為可靠性評(píng)估研究對(duì)象,首先解析該系統(tǒng)的監(jiān)控日志,提出基于監(jiān)控日志的失效數(shù)據(jù)提取方法。其次,基于航班查詢系統(tǒng)的特點(diǎn)和可靠性數(shù)據(jù)的分析結(jié)果,構(gòu)建了航班查詢系統(tǒng)可靠性模型。最后,實(shí)驗(yàn)驗(yàn)證了該可靠性模型是可行的,并利用此模型評(píng)估了航班查詢系統(tǒng)的可靠性,形成了系統(tǒng)軟件可靠性評(píng)估過程方法。
可靠性評(píng)估 可靠性模型 監(jiān)控日志 失效數(shù)據(jù)
隨著信息技術(shù)的飛速發(fā)展,系統(tǒng)軟件已融入到國(guó)防、交通、通信等各個(gè)領(lǐng)域,且在這些領(lǐng)域中起著核心作用,其一旦出現(xiàn)故障,就會(huì)帶來不同程度的損失。因此,這就對(duì)系統(tǒng)軟件的可靠性提出了高要求,評(píng)估其可靠性就變得愈發(fā)重要。航班查詢系統(tǒng)是中國(guó)航信自主研發(fā)的系統(tǒng),航班查詢主要面向航空公司銷售人員、機(jī)票代理人和終端旅客,主要業(yè)務(wù)范疇包括航班計(jì)劃及座位查詢、動(dòng)態(tài)聯(lián)程計(jì)算、特殊服務(wù)查詢、附加服務(wù)查詢、非航空產(chǎn)品查詢等。該系統(tǒng)具有數(shù)據(jù)處理量大、實(shí)時(shí)性強(qiáng)、信息準(zhǔn)確性要求高、后臺(tái)交互量大、前臺(tái)并發(fā)操作量大等特征,這些給該系統(tǒng)埋下了難以預(yù)計(jì)的可靠性隱患。
軟件可靠性是指在特定條件下和在規(guī)定時(shí)間內(nèi),軟件不引起系統(tǒng)故障能實(shí)現(xiàn)所要求功能的能力[1]。近年來,國(guó)內(nèi)在可靠性方面的研究多集中在基于公共失效數(shù)據(jù)集對(duì)經(jīng)典可靠性模型的改進(jìn)方面[2-5],而對(duì)失效數(shù)據(jù)提取方法和可靠性評(píng)估理論應(yīng)用方面的研究有所缺失。系統(tǒng)失效數(shù)據(jù)是評(píng)估系統(tǒng)軟件可靠性的關(guān)鍵,是構(gòu)建可靠性模型、分析可靠性指標(biāo)和探究可靠性提升方法的重要數(shù)據(jù)。文獻(xiàn)[6]提出了FMEDA失效數(shù)據(jù)獲取方法及幾種失效率計(jì)算方法。文獻(xiàn)[7]利用軟件測(cè)試后得到的缺陷數(shù)據(jù)算出了每個(gè)缺陷的失效率。文獻(xiàn)[8]提出從手機(jī)故障日志中提取某應(yīng)用軟件的失效數(shù)據(jù)以實(shí)現(xiàn)評(píng)估該軟件可靠性的方法等。但是,這些研究中關(guān)于運(yùn)行階段的系統(tǒng)軟件可靠性評(píng)估的研究,及關(guān)于基于失效數(shù)據(jù)構(gòu)建可靠性模型的研究較少。因此,研究如何利用系統(tǒng)監(jiān)控日志收集得到失效數(shù)據(jù),及如何結(jié)合系統(tǒng)軟件特點(diǎn)及失效數(shù)據(jù)分析結(jié)果構(gòu)建可靠性模型,就顯得非常有意義。
本文以中國(guó)航信的航班查詢系統(tǒng)為研究對(duì)象,首先在解析了監(jiān)控日志數(shù)據(jù)之后,建立了失效數(shù)據(jù)提取方案,實(shí)現(xiàn)了對(duì)失效數(shù)據(jù)的提取。其次,基于航班查詢系統(tǒng)的特點(diǎn)和可靠性數(shù)據(jù)的分析結(jié)果,構(gòu)建了航班查詢系統(tǒng)可靠性模型。最后,利用該可靠性模型評(píng)估了航班查詢系統(tǒng)的可靠性。
監(jiān)控系統(tǒng)是大型分布式系統(tǒng)中的關(guān)鍵子系統(tǒng)之一。它會(huì)從后臺(tái)實(shí)時(shí)抓取系統(tǒng)運(yùn)行過程中產(chǎn)生的動(dòng)態(tài)數(shù)據(jù),其中就包括系統(tǒng)軟件的失效數(shù)據(jù),以文本文件的方式存儲(chǔ)到相應(yīng)數(shù)據(jù)庫中,這些文本文件就是系統(tǒng)的監(jiān)控日志。系統(tǒng)每天會(huì)產(chǎn)生數(shù)量龐大的監(jiān)控日志,其中包含大量的系統(tǒng)正常運(yùn)行時(shí)捕獲的動(dòng)態(tài)數(shù)據(jù),也包含系統(tǒng)異?;蚬收蠒r(shí)的動(dòng)態(tài)數(shù)據(jù),通過解析可以從中獲取很多有價(jià)值的信息[9]。
航班查詢系統(tǒng)異常時(shí)會(huì)產(chǎn)生告警,監(jiān)控日志中詳盡地記錄著每一次的告警事件信息,圖1是一條完整的告警事件信息。解析監(jiān)控日志后,發(fā)現(xiàn)每一條告警事件信息都以“finalAlarm”開頭,后面緊跟事件信息,包括eplId(應(yīng)用程序接口ID)、appName(事件應(yīng)用名)、eventTimestamp(事件時(shí)間戳)、eventIp(服務(wù)器IP地址)、eventContext(事件的具體內(nèi)容)等。隨后是告警事件的具體信息,包括alarmId(告警ID)、appName(告警應(yīng)用名)、alarmLevel(嚴(yán)重等級(jí))、alarmInfo(告警事件內(nèi)容)、alarmTimestamp(告警時(shí)間戳)等。系統(tǒng)發(fā)生告警的原因多種多樣,包括日志空間不足、響應(yīng)超時(shí)、查詢請(qǐng)求失敗、查詢服務(wù)重啟頻繁、日志寫入頻繁、編碼缺陷等。
圖1 一條完整的航班查詢系統(tǒng)告警事件數(shù)據(jù)
提取航班查詢系統(tǒng)的失效數(shù)據(jù)實(shí)際上就是提取監(jiān)控日志中的告警關(guān)鍵數(shù)據(jù),包括告警事件內(nèi)容和告警時(shí)間戳。本文選擇在Eclipse 3.7開發(fā)環(huán)境下借助Java開發(fā)工具,根據(jù)制定的告警關(guān)鍵數(shù)據(jù)提取算法通過編寫程序代碼,實(shí)現(xiàn)從數(shù)據(jù)信息繁雜的監(jiān)控日志中提取失效數(shù)據(jù)的目的。圖2是告警關(guān)鍵數(shù)據(jù)提取算法的流程。
圖2 航班查詢系統(tǒng)告警關(guān)鍵數(shù)據(jù)提取算法
表1是程序運(yùn)行結(jié)束后得到的部分告警關(guān)鍵數(shù)據(jù)。告警關(guān)鍵數(shù)據(jù)通過簡(jiǎn)單轉(zhuǎn)化可得到研究所需的可靠性數(shù)據(jù),包括單位時(shí)間內(nèi)失效個(gè)數(shù)和累計(jì)失效個(gè)數(shù)。以天為數(shù)據(jù)統(tǒng)計(jì)單位,共得到240天的航班查詢系統(tǒng)可靠性數(shù)據(jù)。表2為部分單位時(shí)間內(nèi)失效個(gè)數(shù)和累計(jì)失效個(gè)數(shù)數(shù)據(jù),其中計(jì)數(shù)序列號(hào)為以天為計(jì)數(shù)單位統(tǒng)計(jì)數(shù)據(jù)的序號(hào)。
表1 提取得到的告警關(guān)鍵數(shù)據(jù)
表2 部分單位時(shí)間內(nèi)失效個(gè)數(shù)和累計(jì)失效個(gè)數(shù)數(shù)據(jù)
可靠性數(shù)據(jù)分析通常包含可靠性增長(zhǎng)特性分析和數(shù)據(jù)趨勢(shì)分析,其目的是為了判斷系統(tǒng)的可靠性為增長(zhǎng)、下降、穩(wěn)定或先下降后增長(zhǎng)[10]。得到這一重要結(jié)論對(duì)基于該系統(tǒng)進(jìn)行可靠性建?;蚩煽啃阅P瓦x擇尤為重要。
(1) 可靠性增長(zhǎng)特性分析
軟件可靠性增長(zhǎng)表現(xiàn)為:隨著時(shí)間的推移,單位時(shí)間內(nèi)失效發(fā)生的數(shù)量逐漸減少,失效時(shí)間間隔逐漸增加,且累計(jì)失效數(shù)曲線為凹型曲線。通過單位時(shí)間內(nèi)的失效數(shù)、累計(jì)失效數(shù)或失效時(shí)間間隔數(shù)這三類統(tǒng)計(jì)數(shù)據(jù),可初步判斷系統(tǒng)的可靠性為增長(zhǎng)、減小或穩(wěn)定。
圖3為航班查詢系統(tǒng)單位時(shí)間內(nèi)失效數(shù)的變化曲線。因數(shù)據(jù)較多,為能清晰呈現(xiàn)出失效數(shù)據(jù)的特點(diǎn),選取了40到120間的數(shù)據(jù)作為觀測(cè)數(shù)據(jù)。因系統(tǒng)失效的發(fā)生是隨機(jī)的,所以單位時(shí)間內(nèi)失效數(shù)的變化也呈現(xiàn)出一定的隨機(jī)性。單位時(shí)間內(nèi)的失效數(shù)多集中在0、1和2間變化,期間會(huì)隨機(jī)出現(xiàn)較大的波動(dòng)。累計(jì)失效數(shù)隨時(shí)間的變化曲線如圖4所示,其整體呈現(xiàn)出可靠性增長(zhǎng)特性,但局部數(shù)據(jù)體現(xiàn)出的可靠性增長(zhǎng)特性并不明顯。
圖3 單位時(shí)間內(nèi)失效數(shù)的變化
圖4 累計(jì)失效數(shù)的變化曲線
(2) 可靠性數(shù)據(jù)趨勢(shì)分析
軟件可靠性增長(zhǎng)與否是可以通過趨勢(shì)分析判定的,計(jì)算Laplace因子的方法是最優(yōu)的可靠性數(shù)據(jù)趨勢(shì)分析法,已被廣泛應(yīng)用于可靠性研究。實(shí)驗(yàn)數(shù)據(jù)種類不同,Laplace因子的計(jì)算方法就不同。本文選擇航班查詢系統(tǒng)的累計(jì)失效數(shù)作為趨勢(shì)分析的實(shí)驗(yàn)數(shù)據(jù)。設(shè)N(k)為第k個(gè)觀測(cè)時(shí)間區(qū)間前檢測(cè)到的累計(jì)失效數(shù),k∈[1,n],其中n為總觀測(cè)次數(shù),則Laplace 因子的計(jì)算公式[10]為:
(1)
Laplace因子隨時(shí)間序列的變化曲線如圖5所示,顯然Laplace因子值都小于0,這再次驗(yàn)證了航班查詢系統(tǒng)的可靠性是增長(zhǎng)的。
圖5 Laplace因子的變化
通過分析,關(guān)于運(yùn)行階段航班查詢系統(tǒng)的可靠性可以得出以下結(jié)論:
(1) 航班查詢系統(tǒng)的可靠性是增長(zhǎng)的;
(2) 系統(tǒng)中的故障會(huì)隨機(jī)地在任意時(shí)刻造成系統(tǒng)軟件的失效;
(3) 系統(tǒng)運(yùn)行相對(duì)穩(wěn)定,系統(tǒng)內(nèi)部殘留著極難被移除的軟件故障;
(4) 每當(dāng)發(fā)生失效時(shí),導(dǎo)致失效的錯(cuò)誤會(huì)被移除,但同時(shí)會(huì)引入新的錯(cuò)誤;
(5) 系統(tǒng)可靠度隨著系統(tǒng)中錯(cuò)誤的減少而增長(zhǎng),但增長(zhǎng)較為緩慢;
(6) 失效率會(huì)在錯(cuò)誤被排除之后隨時(shí)間有所下降,但下降得較為緩慢;
(7) 失效之間的時(shí)間間隔是相互獨(dú)立的,且有一定的隨機(jī)性;
(8) 外場(chǎng)環(huán)境因素對(duì)系統(tǒng)的影響是隨機(jī)的。
根據(jù)以上結(jié)論可對(duì)航班查詢系統(tǒng)的可靠性模型進(jìn)行研究。經(jīng)過分析提出了如下可靠性模型假設(shè)條件:
(1) 系統(tǒng)故障移除過程是一個(gè)非齊次泊松過程[11-12];
(2) 在小時(shí)間間隔(t,t+Δt)內(nèi),被檢測(cè)到的故障數(shù)與時(shí)間間隔Δt和t時(shí)刻時(shí)系統(tǒng)內(nèi)殘留的故障數(shù)成正比;
(3) 故障被檢測(cè)到,且被成功移除的概率為P;
(4) 無論故障是否被成功完全移除,在排除檢測(cè)到的故障時(shí)都會(huì)引入新的故障,故障引入率為β(t),β(t)?P;
(5) 在檢測(cè)前,被檢測(cè)到的故障數(shù)為0;當(dāng)檢測(cè)時(shí)間無限長(zhǎng)時(shí),可以被檢測(cè)到的故障數(shù)為一個(gè)常數(shù)a。
由假設(shè)1)、2)和3),得:
(2)
其中,m(t)為失效均值函數(shù);b(t)為t時(shí)刻時(shí)的故障檢測(cè)率,即單位時(shí)間內(nèi)檢測(cè)到的故障數(shù);a(t)為t時(shí)刻系統(tǒng)中的故障總數(shù),包括已檢測(cè)到的故障、系統(tǒng)中殘留的故障、排錯(cuò)過程中新引入的故障等。
(3)
式(3)可理解為:系統(tǒng)內(nèi)總故障數(shù)會(huì)因?yàn)樾鹿收系囊攵兴黾?。為了便于由?2)和式(3)求解出m(t),設(shè)殘留故障數(shù)為X(t):
X(t)=a(t)-Pm(t)
(4)
故:
(5)
即:
(6)
因此,
(7)
(8)
由式(2)和式(3),得:
(9)
為了簡(jiǎn)化計(jì)算,設(shè)在排除故障過程中引入新故障的概率相同,即β(t)=β;故障檢測(cè)率為常數(shù),即b(t)=b。因此:
X(t)=aexp[b(β-P)t]
(10)
(11)
(12)
其中,a>0,b>0,0<β<1,0
失效強(qiáng)度函數(shù)為:
λ(t)=abexp[b(β-P)t]
(13)
可靠度函數(shù)為:
(14)
通過極大似然估計(jì)法即可求得參數(shù)a、b、β和P的值,結(jié)果分別為:a=964,b=0.002 8,β=6.489e-05,P=0.257 2。
圖6是基于可靠性模型對(duì)提取的失效數(shù)據(jù)的擬合曲線,通過擬合可確定可靠性模型的合理性。
圖6 可靠性模型擬合曲線
另外,失效強(qiáng)度和可靠度是可靠性評(píng)估指標(biāo)中最重要的兩個(gè)指標(biāo),下面從這兩個(gè)指標(biāo)出發(fā)分析航班查詢系統(tǒng)的可靠性。
(1) 失效強(qiáng)度
失效強(qiáng)度的數(shù)學(xué)意義是軟件失效數(shù)均值隨時(shí)間的變化率,其物理意義是單位時(shí)間內(nèi)發(fā)生的失效數(shù)。失效強(qiáng)度越大說明該系統(tǒng)的可靠性越低。圖7是失效強(qiáng)度在4 000~8 000天間的變化情況,可清楚地發(fā)現(xiàn)失效強(qiáng)度以指數(shù)形式遞減。在理想情況下,失效強(qiáng)度會(huì)隨時(shí)間逐漸減小,且遞減速率到系統(tǒng)運(yùn)行后期會(huì)越來越小,近似接近于零。
圖7 失效強(qiáng)度變化曲線
(2) 可靠度
R(t)表示系統(tǒng)軟件不發(fā)生故障正常運(yùn)行到t時(shí)刻時(shí)的概率,則在時(shí)間間隔(t,t+Δt)內(nèi)系統(tǒng)的可靠度為:R(Δt|t)=e-(m(t+Δt)-m(t))。以當(dāng)前時(shí)刻為基準(zhǔn),改變觀測(cè)時(shí)間間隔,可靠度隨時(shí)間間隔的增大會(huì)減小,如圖8所示。在理想情況下,當(dāng)前時(shí)刻系統(tǒng)在一個(gè)小時(shí)內(nèi)的可靠度約為0.993 36,系統(tǒng)在一天內(nèi)的可靠度約為0.993 29。隨著時(shí)間間隔的增加,系統(tǒng)的可靠度會(huì)越來越小,也就是說在較長(zhǎng)時(shí)間段內(nèi),系統(tǒng)出現(xiàn)故障的概率會(huì)更大。
圖8 可靠度變化曲線
本文從航班查詢系統(tǒng)的監(jiān)控日志出發(fā),研究了基于監(jiān)控日志的失效數(shù)據(jù)提取方法。通過對(duì)提取的失效數(shù)據(jù)的分析,構(gòu)建了適用于航班查詢系統(tǒng)的可靠性模型,實(shí)現(xiàn)了對(duì)航班查詢系統(tǒng)的可靠性評(píng)估。本文的研究可為航班查詢系統(tǒng)的可靠性評(píng)估提供理論支持,從而更加全面地、系統(tǒng)地、準(zhǔn)確地分析航班查詢系統(tǒng)的可靠性,以確保該系統(tǒng)的高可靠性。
[1] GOEL A L. Software reliability models: Assumptions, limitations, and applicability[J]. IEEE Transactions on software engineering, 1985(12):1411-1423.
[2] 謝景燕, 安金霞, 朱紀(jì)洪. 考慮不完美排錯(cuò)情況的NHPP 類軟件可靠性增長(zhǎng)模型[J]. 軟件學(xué)報(bào), 2010, 21(5):942-949.
[3] 樓俊鋼, 申情, 沈張果. 軟件可靠性預(yù)測(cè)的核函數(shù)方法[J]. 計(jì)算機(jī)科學(xué), 2012, 39(4):145-148.
[4] 張策, 崔剛, 孟凡超. 不完美排錯(cuò)SRGM研究[J]. 智能計(jì)算機(jī)與應(yīng)用, 2014, 4(2):16-20.
[5] 郝燕玲, 陳嵩博, 高峰. 考慮故障排除率和引入率的軟件可靠性建模[J]. 計(jì)算機(jī)仿真, 2014, 31(10):313-316.
[6] 方來華, 吳宗之, 康榮學(xué), 等. 安全設(shè)備失效數(shù)據(jù)獲取與計(jì)算[J]. 中國(guó)安全生產(chǎn)科學(xué)技術(shù), 2010, 6(3):121-125.
[7] 余正偉, 吳玉美. 基于失效分析的軟件可靠性評(píng)估方法研究[J]. 測(cè)控技術(shù): 2011, 30(9):73-77.
[8] Meskini S, Nassif A B, Capretz L F. Reliability models applied to mobile applications[C]//Software Security and Reliability-Companion (SERE-C), 2013 IEEE 7th International Conference on. IEEE, 2013:155-162.
[9] 丁建立, 張超, 王靜. 民航旅客服務(wù)信息系統(tǒng)報(bào)警規(guī)則提取[J]. 計(jì)算機(jī)仿真, 2015, 32(2):83-86.
[10] Kanoun K, Laprie J C. Software reliability trend analyses from theoretical to practical considerations[J].IEEE Transactions on Software Engineering, 1994, 20(9):740-747.
[11] Yamada S, Osaki S. Software reliability growth modeling: Models and applications[J]. IEEE Transactions on Software Engineering, 1985, 11(12):1431.
[12] Zhang Xuemei, Hoang P. Comparisons of nonhomogeneous Poisson process software reliability models and its applications[J]. International Journal of Systems Science, 2000,31(09):1115-1123.
RELIABILITYEVALUATIONMETHODOFFLIGHTINQUIRYSYSTEMBASEDONMONITORINGLOGS
Ding Jianli Ming Hui*Wang Jing
(CollegeofComputerScienceandTechnology,CivilAviationUniversityofChina,Tianjin300300,China)
In view of the lack of research on system software reliability evaluation theory and evaluation method during operation phase, we propose a software reliability evaluation method based on system monitoring log. We used flight inquiry system as the reliability evaluation research object. First, monitoring logs of the system were firstly analyzed, and the failure data extraction method based on monitoring logs was proposed. Second, based on the characteristics of the system and the analysis results of the reliability data, the reliability evaluation model of the flight inquiry system was constructed. Finally, the experiment proves the feasibility of the reliability model. We use this model to evaluate the reliability of the flight inquiry system. The system software reliability evaluation process method is formed.
Reliability evaluation Reliability models Monitoring logs Failure data
TP301
A
10.3969/j.issn.1000-386x.2017.10.018
2017-01-14。民航局科技創(chuàng)新引導(dǎo)資金重大專項(xiàng)(MHRD20140106, MHRD20150107);中國(guó)民航大學(xué)中央高校基金項(xiàng)目(3122014P004, 3122016A001)。丁建立,教授,主研領(lǐng)域:民航智能信息處理和航空物聯(lián)網(wǎng)。明卉,碩士,王靜,博士。