徐雅琴,米曉萍,王金勇,翟新梅
(1.山西衛(wèi)生健康職業(yè)學(xué)院(山西省中醫(yī)學(xué)校)信息中心,山西 晉中 030619;2.山西大學(xué) 軟件學(xué)院,太原 030006)
隨著萬維網(wǎng)和Internet的普及,網(wǎng)站可以為世界各地的用戶提供重要的信息服務(wù).由于網(wǎng)絡(luò)軟件要不斷滿足用戶的現(xiàn)實(shí)需求,所以要縮短開發(fā)周期和減少開發(fā)成本,以達(dá)到不斷更新演化的目的.因此,要保證網(wǎng)絡(luò)軟件的質(zhì)量和可靠性是一個(gè)非常困難的事情[1].到目前為止,網(wǎng)絡(luò)客戶端和服務(wù)器呈指數(shù)級增長.開放的互聯(lián)網(wǎng)環(huán)境和更廣泛的用戶群所帶來的競爭,也迫切需要解決網(wǎng)絡(luò)的質(zhì)量和可靠性問題.
網(wǎng)絡(luò)應(yīng)用軟件的可靠性可以被定義為應(yīng)用軟件在網(wǎng)絡(luò)環(huán)境下無故障運(yùn)行的概率.在本文中,定義網(wǎng)絡(luò)失效為不能夠正確獲得或者傳遞信息.例如:網(wǎng)絡(luò)用戶不能夠獲得請求的文本或者計(jì)算結(jié)果.這個(gè)定義是網(wǎng)絡(luò)應(yīng)用軟件失效的標(biāo)準(zhǔn)定義,即用戶期望的行為偏差[2].
為了增加網(wǎng)絡(luò)應(yīng)用軟件的可靠性,研究者已經(jīng)進(jìn)行了一些相關(guān)的研究[1-14].但是,當(dāng)前存在的方法不能被直接應(yīng)用到網(wǎng)絡(luò)系統(tǒng),因?yàn)榫W(wǎng)絡(luò)應(yīng)用軟件的特殊本質(zhì)[1,6],為了能夠直接評估網(wǎng)絡(luò)的可靠性,我們修改了存在的評估網(wǎng)絡(luò)軟件可靠性的方法,并且整合了網(wǎng)絡(luò)負(fù)載特征[7].
網(wǎng)絡(luò)軟件測試是一個(gè)復(fù)雜的過程,并且評估網(wǎng)絡(luò)軟件可靠性是一個(gè)重要的任務(wù).僅僅考慮單因素(如,時(shí)間因素)變化來建立網(wǎng)絡(luò)軟件可靠性模型并不符合實(shí)際的網(wǎng)絡(luò)變化需求.因此,建立的軟件可靠模型由于沒有考慮網(wǎng)絡(luò)負(fù)載變化,他們的合理性受到質(zhì)疑.
在文中,筆者提出一般的網(wǎng)絡(luò)軟件可靠性模型框架(Framework),即,基于Cobb-Douglas函數(shù)的二維軟件可靠性模型.我們用Cobb-Douglas函數(shù)去整合兩個(gè)影響網(wǎng)絡(luò)軟件失效的重要因素,即,測試時(shí)間和負(fù)載.在網(wǎng)絡(luò)軟件測試過程中,考慮網(wǎng)絡(luò)負(fù)載變化更符合實(shí)際的網(wǎng)絡(luò)軟件可靠性變化情況.而且,實(shí)驗(yàn)結(jié)果也證明提出的二維軟件可靠性模型和其他模型相比能夠在動(dòng)態(tài)變化的網(wǎng)絡(luò)環(huán)境中有更好的擬合和預(yù)測性能.
縮略語:
NHPP 非齊次泊松過程
SRGM 軟件可靠性增長模型
TEF 測試工作量函數(shù)
LSE 最小二乘法
MLE 最大似然估計(jì)
MSE 均值平方誤差和
AIC Akaike 信息標(biāo)注
KD Kolmogorov-Distance
MVF 均值函數(shù)
符號說明:
k實(shí)際觀察到的故障的數(shù)量
r威布爾類測試工作量函數(shù)的尺度參數(shù)
γlogistic測試工作量函數(shù)測試工作量消費(fèi)率
A威布爾類測試工作量常量參數(shù)
N最終花費(fèi)的總的測試工作量
N(t) 到t時(shí)刻為止,檢測出故障的數(shù)量
mi在時(shí)間i點(diǎn),觀察到總的失效數(shù)量
m(ti) 均值函數(shù),表示到ti時(shí)刻為止,期望檢測出故障的數(shù)量.
W(t) 到t時(shí)刻為止,累計(jì)檢測出測試工作量花費(fèi)
W*(t)W(t)-W(0)
F(x) 到x時(shí)刻為止,期望累計(jì)分布
F*(x) 到x時(shí)刻為止,觀測到標(biāo)準(zhǔn)化的累積分布
網(wǎng)絡(luò)服務(wù)器一般產(chǎn)生兩種類型的日志文件,可以把他們作為網(wǎng)絡(luò)軟件失效數(shù)據(jù).一類是單個(gè)網(wǎng)絡(luò)訪問或者點(diǎn)擊數(shù)記錄在訪問日志中.表1[14]列出了一個(gè)網(wǎng)站失效的示例條目.另一類是記錄在錯(cuò)誤日志中的相關(guān)問題,表2給出了示例條目說明.
表1 在訪問日志中列出的示例條目[14]
表2 在錯(cuò)誤日志中列出的示例條目[14]
Cobb-Douglas產(chǎn)品函數(shù)的數(shù)學(xué)形式被定義為如下形式,
Y=ALνK1-ν.
(1)
其中,Y是每年的總產(chǎn)品量,A是總的產(chǎn)品率因子,L是勞動(dòng)輸入量,K是資本輸入量,ν表示為勞動(dòng)力的彈性系數(shù),是一個(gè)固定不變的常量.
從上面的公式(1),能夠得出這個(gè)函數(shù)的基本特征是線性齊次的常量規(guī)模收益.例如:所有投入比例的增加導(dǎo)致相同的比例產(chǎn)量增加.因此,Cobb-Douglas產(chǎn)品函數(shù)可以被用來整合網(wǎng)絡(luò)負(fù)載和測試時(shí)間因子.
一般來說,為了整合日歷時(shí)間和網(wǎng)絡(luò)負(fù)載因素,考慮在網(wǎng)絡(luò)軟件可靠性增長過程中同步整合這兩個(gè)因素的影響.因此,可以用Cobb-Douglas產(chǎn)品函數(shù)擴(kuò)展一維軟件可靠性增長模型為下式.
τ=sαu1-α
(2)
其中,τ是測試資源,s是日歷時(shí)間,u是測試負(fù)載因素,α是網(wǎng)絡(luò)軟件可靠性增長過程的影響因子.
網(wǎng)絡(luò)軟件可靠性增長模型可以用數(shù)學(xué)函數(shù)來表示故障檢測和去除現(xiàn)象.為了能夠在網(wǎng)絡(luò)環(huán)境下應(yīng)用NHPP模型,給出一些基本假設(shè).
1)在網(wǎng)絡(luò)運(yùn)行環(huán)境下,故障檢測過程服從非齊次泊松分布過程(NHPP).
2)網(wǎng)絡(luò)軟件系統(tǒng)失效是隨機(jī)發(fā)生的,并且是由軟件系統(tǒng)中剩余故障造成的.
3)在(τ,τ+Δτ]時(shí)間內(nèi),檢測出故障的數(shù)量和系統(tǒng)中剩余故障的數(shù)量成正比.
4)每次檢測出的故障立即被完全去除,沒有新的故障被引進(jìn).
假設(shè){N(s,u),s≥0,u≥0}是一個(gè)二維隨機(jī)過程,表示和測試時(shí)間s和測試負(fù)載u相關(guān)的累積檢測出軟件失效的數(shù)量.一個(gè)具有均值函數(shù)m(s,u)的二維非齊次泊松過程可以被定義為,
(3)
k=0,1,2,…
(4)
其中λ(ζ,ξ)表示雙變量故障強(qiáng)度函數(shù).一般NHPP模型假設(shè)軟件失效和軟件中剩余故障有關(guān).在由假設(shè)3,建立如下相關(guān)的微分方程,
(5)
其中,a表示期望最初檢查出故障的數(shù)量,b(τ)表示雙變量故障檢測率函數(shù),為簡化計(jì)算,一般假設(shè)為常量.
Case 1:
如果b(x)=b,那么求解方程(5),雙變量均值函數(shù)可以表示為,
m(τ)=a[1-exp(-bτ)].
(6)
Case 2:
m(τ)=a[1-(1+bτ)exp(-bτ)].
(7)
Case 3:
(8)
表3詳細(xì)列出本文中提出的二維網(wǎng)絡(luò)軟件可靠性模型和其它網(wǎng)絡(luò)軟件可靠性模型.在表3中,TDG-O模型、TDDSS模型和TDISS模型分別表示為二維G-O模型(TDG-O),二維Delayed S-shaped模型(TDDSS)和二維Inflection S-shaped 模型(TDISS).
表3 本文使用的網(wǎng)絡(luò)軟件可靠性模型和它的均值函數(shù)總結(jié)
在本文中,來用提出的模型去評估兩個(gè)網(wǎng)站的可靠性.第一個(gè)網(wǎng)站是ICRMS網(wǎng)站,它的網(wǎng)址是www.icrms.cn.第二個(gè)網(wǎng)站是一個(gè)官方網(wǎng)站(SMU/SEAS),它的網(wǎng)址是www.seas.smu.edu[8].為了量化比較的結(jié)果,用三個(gè)模型比較標(biāo)準(zhǔn).為了驗(yàn)證提出的二維軟件可靠性模型的性能,用兩個(gè)故障數(shù)據(jù)集表4、表5進(jìn)行了相應(yīng)的擬合和參數(shù)估計(jì)以及預(yù)測結(jié)果比較.
表4 故障數(shù)據(jù)集1(DS1)
表5 故障數(shù)據(jù)集 2(DS2)
為了得出無偏差的結(jié)果,分別用來用最小二乘法(LSE)和最大似然估計(jì)方法(MLE)來估計(jì)模型的參數(shù)值.
假設(shè)有k個(gè)數(shù)據(jù)對(si,ui,yi) (i= 0,1,2,…,k;s0 (9) (10) 可以分別得出參數(shù)a,b,β和α的值. 另一方面,參數(shù)值可以用最大似然估計(jì)方法進(jìn)行估計(jì).從公式(3),我們能夠得出 Pr{N(si,ui)=ki,i=1,2,3…}= (11) 因此,最大似然估計(jì)函數(shù)可以表示為, (12) 那么公式(12)兩邊取對數(shù)可以得到下式, l=logL. (13) 因此,模型的參數(shù)可以用下式估計(jì)出來, (14) 3.2.1 模型擬合性能比較 從表6可知,TDISS模型在用故障數(shù)據(jù)集1進(jìn)行100%的故障數(shù)據(jù)擬合和LSE方法參數(shù)估計(jì)時(shí)的MSE和KD值都小于TDG-O,TDDSS和測試工作量模型.顯示TDDSS模型的MSE和KD的擬合值都大于TDG-O和TDISS模型.同類,從表6可以看到,當(dāng)用DS1和DS2的100%的故障數(shù)據(jù)擬合和用MLE方法估計(jì)模型參數(shù)時(shí),TDG-O模型的AIC和KD的擬合值與TDISS模型的近似相等.并且TDG-O模型和TDISS模型的AIC和KD的擬合值要小于TDDSS模型和測試工作量模型.因此,TDDSS的擬合能力比TDG-O模型和TDISS模型都要差. 表6 用DS1和DS2的100%的故障數(shù)據(jù)集進(jìn)行軟件可靠性模型比較結(jié)果 從上面的分析能夠得出,文中提出的二維軟件可靠性模型有很好的擬合性能.對不同的二維軟件可靠性模型進(jìn)行比較發(fā)現(xiàn),TDG-O模型和TDISS模型與TDDSS模型和測試工作量模型相比有更好的擬合性能. 3.2.2 模型預(yù)測性能比較 從表7知,用DS1的60%的故障數(shù)據(jù)時(shí),無論是用LSE還是MLE估計(jì)模型的參數(shù),TDISS模型擬合的MSE和KD的值都小于TDG-O模型和TDDSS模型.但是,在用DS1的60%的故障數(shù)據(jù)時(shí),無論是用LSE還是MLE估計(jì)模型的參數(shù),TDG-O模型預(yù)測的MSE和KD的值都小于TDDSS模型,TDISS模型和測試工作量模型.而TDDSS模型的擬合和預(yù)測性能與TDG-O模型和TDISS模型相比是最差的.對于AIC值,TDG-O模型和TDISS模型相差不大,它們都小于TDDSS模型. 表7 用故障數(shù)據(jù)集1的60%故障數(shù)據(jù)進(jìn)行軟件可靠性模型比較的結(jié)果 同類,從表8得出,在用DS2的60%的故障數(shù)據(jù)和用LSE估計(jì)模型的參數(shù)時(shí),TDISS模型的擬合和預(yù)測的MSE值都小于TDG-O模型和TDDSS模型.但是,在用DS2的60%的故障數(shù)據(jù)和用LSE估計(jì)模型的參數(shù)時(shí),TDG-O模型擬合和預(yù)測的KD值都小于TDDSS模型和TDISS模型.另外,從表8,我們還能看到在用DS2的60%的故障數(shù)據(jù)和用MLE估計(jì)模型的參數(shù)時(shí),TDISS模型擬合的MSE和KD值都小于TDG-O模型和TDDSS模型.但是,在用DS2的60%的故障數(shù)據(jù)和用MLE估計(jì)模型的參數(shù)時(shí),TDG-O模型預(yù)測的MSE和KD值都小于TDISS模型,TDDSS模型和測試工作量模型.其中,在用DS2故障數(shù)據(jù)集和LSE與MLE估計(jì)模型參數(shù)時(shí),TDDSS模型在三個(gè)提出的二維軟件可靠性模型中的擬合和預(yù)測性能都是最差的.TDG-O模型的AIC值和TDISS模型的AIC值近似相等.他們都小于TDDSS模型. 表8 用故障數(shù)據(jù)集2的60%故障數(shù)據(jù)估計(jì)軟件可靠性模型參數(shù)值 總的來說,可以合理地得出TDG-O模型和TDISS模型有更好的擬合和預(yù)測性能.在用Cobb-Douglas產(chǎn)品函數(shù)來整合測試時(shí)間和網(wǎng)絡(luò)負(fù)載后可以更有效地評估網(wǎng)絡(luò)軟件的可靠性.而且,提出的二維軟件可靠模型在擬合和預(yù)測軟件中剩余故障的數(shù)量時(shí)都有較好的性能.因此,文中提出的二維軟件可靠性模型可以被應(yīng)用到實(shí)際的網(wǎng)絡(luò)軟件可靠性評測中. 從網(wǎng)絡(luò)軟件實(shí)際失效發(fā)生機(jī)制的角度來看,網(wǎng)絡(luò)軟件可靠性增長過程不但依賴時(shí)間因素,而且還與網(wǎng)絡(luò)負(fù)載有關(guān).例如:點(diǎn)擊數(shù),位數(shù),用戶數(shù)和會(huì)話數(shù)等.在本文中,開發(fā)了一個(gè)整合了測試時(shí)間和網(wǎng)絡(luò)負(fù)載的二維網(wǎng)絡(luò)軟件可靠性增長模型,并且用ICRMS和SMU/SEAS 網(wǎng)站的服務(wù)器的日志中收集的兩個(gè)故障數(shù)據(jù)集驗(yàn)證了提出的二維軟件可靠性模型的擬合與預(yù)測性能.基于AIC,MSE和KD比較,提出的二維網(wǎng)絡(luò)軟件可靠性模型在動(dòng)態(tài)的網(wǎng)站測試中有更好的擬合和預(yù)測性能,并且能夠準(zhǔn)確地預(yù)測軟件中剩余故障的數(shù)量.實(shí)驗(yàn)結(jié)果也指出提出的二維TDG-O和TDISS模型在所有模型中有更好的擬合和預(yù)測性能.3.2 模型性能分析和討論
4 結(jié)束語