鞠興隆,段友祥,馬 成,修南海,鞠海燕
(1.中國石油大學(xué)(華東)計(jì)算機(jī)與通信工程學(xué)院,山東 青島 266580;2.山東省昌邑市第一中學(xué),山東 昌邑 261300)
Web服務(wù)是一種主流的分布式計(jì)算技術(shù),Web服務(wù)的使用滲透到生活的各個角落,并扮演著重要角色。隨著Web服務(wù)的快速發(fā)展,使用者對Web服務(wù)的要求不僅僅局限于實(shí)現(xiàn)某種功能,越來越多的使用者開始關(guān)注非功能需求,即服務(wù)質(zhì)量QoS(Quality of Service),如使用者體驗(yàn)時間等。
Web服務(wù)的QoS 數(shù)據(jù)的準(zhǔn)確性是十分重要的,準(zhǔn)確的QoS數(shù)據(jù)是基于QoS的Web服務(wù)綜合評估的前提,不準(zhǔn)確的QoS數(shù)據(jù)會導(dǎo)致基于QoS的Web服務(wù)綜合評估產(chǎn)生錯誤的結(jié)果,進(jìn)而導(dǎo)致基于QoS的Web服務(wù)選擇的失敗。Web服務(wù)的QoS數(shù)據(jù)大多是動態(tài)變化的,因此,需要對服務(wù)的QoS數(shù)據(jù)不斷地預(yù)測,實(shí)時地進(jìn)行動態(tài)更新。
文黎明等[1]提出了一個基于測量目的的QoS監(jiān)測、控制框架。D'Ambrogio A[2]通過擴(kuò)展WSDL(Web Services Description Language)文檔,將Web服務(wù)的非功能屬性QoS信息添加進(jìn)來,擴(kuò)展后的WSDL 稱為Q-WSDL (QoS-enabled WSDL)。Rosenberg F[3]提出了一種監(jiān)測、評估服務(wù)性能的方法,并實(shí)現(xiàn)了一個軟件工具來完成此項(xiàng)工作。Strunk A[4]引入了SLO(Service Level Objective)違規(guī)概念,并提出了一種預(yù)測組合服務(wù)可用性的方法。Davide L[5]提出了一種實(shí)時預(yù)測服務(wù)可用性的方法,這種方法通過使用MTTR(Mean Time To Repair)、MTTF(Mean Time To Failure)實(shí)現(xiàn)了可用性的黑盒預(yù)測。Vilalta R 等[6]研究了計(jì)算機(jī)系統(tǒng)預(yù)測算法在長期與短期、數(shù)值數(shù)據(jù)與類別數(shù)據(jù)等不同情況下的差異。徐福昌[7]提出了一種Web 服務(wù)的QoS 動態(tài)更新方法-X-M(Xu Method)方法,該方法引進(jìn)了近期數(shù)據(jù)的概念,取得了較好的預(yù)測效果。
文黎明等[1]、D'Ambrogio A[2]和Rosenberg F[3]引入了QoS信息的表示以及監(jiān)測方法,但不包含QoS信息動態(tài)更新功能。Strunk A[4]和Davide L[5]提出了狀態(tài)屬性的更新方法,但此方法不適用于數(shù)值屬性的動態(tài)更新。本文根據(jù)文黎明等[1]、D'Ambrogio A[2]和Rosenberg F[3]提出的方法,同時受Strunk A[4]、Davide L[5]、Vilalta R 等[6]和徐福昌[7]提出的更新方法的啟發(fā),提出了QoSBWSA(QoS Based Web Services Architecture)體系架構(gòu)和HDB-QoS-DPM(History Data based QoS Dynamic Prediction Method)方法,QoSB-WSA 架構(gòu)實(shí)現(xiàn)了使用者體驗(yàn)時間信息的表示和監(jiān)測,HDB-QoS-DPM 方法實(shí)現(xiàn)了使用者體驗(yàn)時間的動態(tài)更新。本文首先提出QoSB-WSA 體系架構(gòu),這種架構(gòu)中加入了使用者體驗(yàn)時間數(shù)據(jù)信息的處理模塊;然后又提出了HDB-QoS-DPM 動態(tài)更新方法,這種方法是一種基于巴萊多定律和統(tǒng)計(jì)學(xué)的方法;最后通過實(shí)驗(yàn)的方法,驗(yàn)證了本文提出的使用者體驗(yàn)時間的動態(tài)更新方法的可行性和正確性。為便于敘述,在論文接下來的內(nèi)容中,如果沒有特殊說明,QoS數(shù)據(jù)指的就是Web服務(wù)使用者體驗(yàn)時間。
基于QoS動態(tài)更新的模型QoSB-WSA 是一種基于QoS 的Web 服務(wù)架構(gòu),與經(jīng)典的Web服務(wù)體系架構(gòu)不同之處是,QoSB-WSA 架構(gòu)加入了對QoS數(shù)據(jù)信息處理的支持機(jī)制。參照文獻(xiàn)[2]提出的方法,服務(wù)使用者向服務(wù)注冊中心發(fā)送的服務(wù)調(diào)用信息中需要加入QoS數(shù)據(jù)信息,服務(wù)使用者調(diào)用完Web服務(wù)后,需要將相關(guān)的使用者體驗(yàn)以QoS數(shù)據(jù)的形式反饋到服務(wù)注冊中心。服務(wù)提供者發(fā)布Web服務(wù)時,需要在發(fā)布的信息中加入QoS數(shù)據(jù)信息。服務(wù)注冊中心需要記錄Web服務(wù)的QoS相關(guān)信息,對QoS數(shù)據(jù)進(jìn)行管理。服務(wù)注冊中心中新加入的對QoS數(shù)據(jù)信息的支持部分稱為Web服務(wù)QoS 數(shù)據(jù)處理中心WS-QoS-Center(Web Services QoS Processing Center)。QoSBWSA 架構(gòu)如圖1所示。
Figure 1 QoS based web services architecture-QoSB-WSA圖1 基于QoS的Web服務(wù)體系架構(gòu)-QoSB-WSA
巴萊多效應(yīng)-即80/20法則,其思想是:在任何特定群體中,重要的因子通常只占少數(shù),而不重要的因子則占多數(shù),因此只要能控制具有重要性的少數(shù)因子即能控制全局。
基于以上理論,同時受文獻(xiàn)[7]提出的X-M 方法的啟發(fā),本文提出了HDB-QoS-DPM 方法,QoS歷史數(shù)據(jù)是基礎(chǔ),在時間軸上,與當(dāng)前時間距離小的歷史數(shù)據(jù)對當(dāng)前QoS數(shù)據(jù)期望值影響較大。在HDB-QoS-DPM 方法中,使用局部更新與全局修正相結(jié)合的方法,實(shí)現(xiàn)QoS數(shù)據(jù)期望值的計(jì)算。
定義1 局部更新周期NS(Number of Small Part)。在QoSB-WSA 架構(gòu)中,相鄰兩個局部更新操作之間的歷史數(shù)據(jù)的數(shù)量稱為局部更新周期。
局部更新周期是一個數(shù)量,表示當(dāng)歷史數(shù)據(jù)的數(shù)量達(dá)到某個值時,進(jìn)行一次局部更新。
定義2 歷史數(shù)據(jù)U-H-Data(User History Data)。在QoSB-WSA 架構(gòu)中,監(jiān)測到的Web服務(wù)使用者體驗(yàn)時間的歷史QoS數(shù)據(jù),也稱為監(jiān)測值、歷史數(shù)據(jù)。
Web服務(wù)使用者體驗(yàn)時間指的是服務(wù)使用者調(diào)用一次服務(wù)(從綁定服務(wù),到服務(wù)調(diào)用完成返回執(zhí)行結(jié)果)所用的時間。U-H-Data數(shù)據(jù)的集合為UHD,UHD={uhdi|1≤i≤n},其中uhdi比uhdi+1獲取時間早,uhdn是最新獲取到的監(jiān)測值。
定義3 預(yù)測值U-E-Data(User Expectation Data,簡寫為UED)。在QoSB-WSA 架構(gòu)中,計(jì)算得到的QoS數(shù)據(jù)更新值,也稱為預(yù)測值、期望值,UED={uedi|1≤i≤n},其中uedi比uedi+1計(jì)算時間早,uedn是最新計(jì)算出來的期望值。
UED 表示通過處理后得到的更新值。
定義4 偏離度UDD(User's Degree of Deviation):
稱uddi是uhdi相對于uedi的偏離度。
uddi是一個百分比,uddi值越大,表示監(jiān)測值與期望值的偏離度越大,uddi值越小,表示監(jiān)測值與期望值的偏離度越小。
定義5 偏離因子UDDF(The Factor of User's Degree of Deviation)。
稱uddfi為uhdi相對于uedi的偏離因子,使用者偏離因子。其中,UTLD(User's Threshold Level of Deviation)表示使用者偏離閾值,是一個常量。
當(dāng)uddi大于或者等于UTLD 時,uddfi值 為1,表示監(jiān)測值偏離期望值過大,超過既定的范圍;當(dāng)uddi小于UTLD 時,uddfi值為0,表示監(jiān)測值偏離期望值不大,在既定的范圍之內(nèi)。
通過公式(1)和公式(2),將UHD 分為偏離度大的和偏離度小的兩類。
根據(jù)巴萊多效應(yīng),一個局部更新周期內(nèi)的歷史數(shù)據(jù)對下一個預(yù)測值的影響是不同的,因此需要對歷史數(shù)據(jù)賦予不同的權(quán)重。根據(jù)正態(tài)分布函數(shù),本文構(gòu)造了歷史數(shù)據(jù)的權(quán)重函數(shù),如定義6所示。通過權(quán)重函數(shù),可以對歷史數(shù)據(jù)賦予不同的權(quán)重,使歷史數(shù)據(jù)對預(yù)測值產(chǎn)生不同的影響。
定義6 使用者歷史數(shù)據(jù)權(quán)重UHDW(The Weight of User's History Data)。
定義7 使用者加權(quán)偏離量WNUDD(Weighted Number of User's Degree of Deviation)。
稱wnudd 為使用者加權(quán)偏離量。
wnudd 表示與期望值偏離超過既定范圍的監(jiān)測值的權(quán)重和,它的值越大,說明更新期望值時,監(jiān)測值所占的權(quán)重越大,期望值所占的權(quán)重越??;它的值越小,說明更新期望值時,監(jiān)測值所占的權(quán)重越小,期望值所占的權(quán)重越大。
通過公式(3)和公式(4)計(jì)算出監(jiān)測值和期望值對下一次的預(yù)測值權(quán)重。由于通過公式(3)得到的各歷史數(shù)據(jù)的權(quán)重的總和可能不為1,因此,通過定義8對權(quán)重進(jìn)行處理,使權(quán)重總和為1。經(jīng)定義8處理后,新的權(quán)重可以直接反映監(jiān)測值對下一次預(yù)測值的影響的比例。
定義8 使用者更新因子UUF(User's Update Factor)。
其中,TUUF 和BUUF 為兩個常量,TUUF 是uuf的上限,BUUF 是uuf 的下限。稱uuf 為使用者更新因子。
使用者更新因子值越大,表示期望值與監(jiān)測值偏離越大,因此,在對期望值更新時,監(jiān)測值所占的權(quán)重越大;使用者更新因子值越小,表示期望值與監(jiān)測值偏離越小,因此,在對期望值更新時,監(jiān)測值所占的權(quán)重越小。uuf 直接表示監(jiān)測值對下一次預(yù)測值的影響比例。
獲得更新因子之后,就可以計(jì)算期望值ued,計(jì)算方法如公式(6)所示。
《廣西培育特色小鎮(zhèn)意見》指出,廣西特色小鎮(zhèn)建設(shè)要分輕資產(chǎn)型特色小鎮(zhèn)和重資產(chǎn)型特色小鎮(zhèn)來進(jìn)行,這兩種類型的特色小鎮(zhèn)的建設(shè)面積原則上按1~3平方公里面積進(jìn)行建設(shè),但對這兩種類型的特色小鎮(zhèn)的社會投入要求不同。文件明確要求輕資產(chǎn)型社會投入要達(dá)到每平方公里8億元以上,重資產(chǎn)型社會投入要達(dá)到每平方公里16億元以上。但根據(jù)廣西經(jīng)濟(jì)發(fā)展預(yù)測和其他省市特色小鎮(zhèn)建設(shè)投入情況,廣西輕資產(chǎn)型特色小鎮(zhèn)建設(shè)未來社會投入可能會達(dá)到每平方公里8~24億元,重資產(chǎn)型特色小鎮(zhèn)社會投入可能會達(dá)到每平方公里16~48億元。
其中,i=1,2.3,…,n。
公式(6)表示,下一次的預(yù)測值是由上一次的監(jiān)測值和期望值決定的,上一次監(jiān)測值和期望值的影響比例分別是uuf 和1-uuf。
定義9 全局修正周期NA(Number of All History Data)
在QoSB-WSA 架構(gòu)中,相鄰兩個全局修正操作之間的UHD 的數(shù)量稱為全局修正周期。
全局修正周期是一個數(shù)量,表示當(dāng)歷史數(shù)據(jù)的數(shù)量達(dá)到某個值時,進(jìn)行一次全局修正。
全局歷史數(shù)據(jù)權(quán)重的求法與局部更新時類似,求解方法如公式(3)所示。
定義10 使用者全局修正值UAMV(User's Modification Value of All History Data)。
稱uamv 為使用者全局修正值。
其中,uedold表示修正前的期望值,uednew表示修正后的期望值。
公式(8)的意義與公式(6)的意義類似,公式(8)表示,修正后的預(yù)測值是由修正前的期望值和一個全局修正周期內(nèi)的使用者體驗(yàn)時間的加權(quán)期望值uamv 決定的,影響比例分別是1-uuf 和uuf。
本實(shí)驗(yàn)在Windows8 企業(yè)版32 位平臺上實(shí)現(xiàn),使用C#語言編寫,調(diào)試環(huán)境為Visual Studio 2012。實(shí)驗(yàn)分別實(shí)現(xiàn)了服務(wù)使用者程序、服務(wù)提供者程序和服務(wù)注冊中心程序。服務(wù)使用者程序調(diào)用服務(wù)提供者程序所提供的服務(wù),然后將服務(wù)體驗(yàn)時間發(fā)送到服務(wù)注冊中心,服務(wù)注冊中心對數(shù)據(jù)進(jìn)行處理和預(yù)測。實(shí)驗(yàn)中,服務(wù)提供者提供的Web服務(wù)通過WCF實(shí)現(xiàn),服務(wù)實(shí)現(xiàn)的功能是兩矩陣相乘,服務(wù)使用者將矩陣信息傳送到提供者服務(wù)器,提供者服務(wù)器進(jìn)行矩陣計(jì)算,將計(jì)算結(jié)果返回給使用者,使用者將服務(wù)響應(yīng)時間反饋到注冊中心服務(wù)器,注冊中心根據(jù)反饋數(shù)據(jù)對服務(wù)響應(yīng)時間進(jìn)行動態(tài)更新。實(shí)驗(yàn)平臺示意如圖2所示。注冊中心、使用者和服務(wù)提供者通過以太網(wǎng)交換機(jī)相連,三者之間的XML數(shù)據(jù)通過計(jì)算機(jī)網(wǎng)絡(luò)傳輸。
Figure 2 Schematic diagram of experimental platform圖2 實(shí)驗(yàn)平臺示意圖
服務(wù)注冊中心獲得使用者監(jiān)測值uhd,uhd 是服務(wù)使用者調(diào)用Web服務(wù)的真實(shí)體驗(yàn)時間。根據(jù)定義4和定義5,將uhd與服務(wù)使用者體驗(yàn)時間的期望值ued 進(jìn)行比較,從而計(jì)算出使用者偏離因子uddf。根據(jù)定義6 計(jì)算出使用者歷史數(shù)據(jù)權(quán)重uhdw,然后,再根據(jù)定義7計(jì)算出使用者加權(quán)偏離量wnudd,根據(jù)定義8 計(jì)算出使用者局部更新因子,進(jìn)而根據(jù)公式(1)求出使用者體驗(yàn)時間的局部期望值。當(dāng)滿足全局修正條件時,計(jì)算使用者歷史數(shù)據(jù)權(quán)重,根據(jù)定義10計(jì)算出使用者全局修正值uamv,然后再根據(jù)公式(2)計(jì)算使用者體驗(yàn)時間的修正值。
在實(shí)驗(yàn)中,基于QoS動態(tài)更新的Web服務(wù)選擇模型中的常量取值如表1所示。
Table 1 Values of constants表1 常量取值
表1中,NS 的值為3,表示每收到3個監(jiān)測值就需要重新計(jì)算局部更新因子。NA 的值為11,表示每收到11個監(jiān)測值就需要對期望值進(jìn)行全局修正。k 在其取值范圍內(nèi)取值越大,在局部更新時,最新的數(shù)據(jù)所占的權(quán)重越大,在全局修正時,最新數(shù)據(jù)對全局修正值的影響越大;取值越小,在局部更新時,最新的數(shù)據(jù)所占的權(quán)重越小,在全局修正時,最新數(shù)據(jù)對全局修正值的影響越小。UTLD在其取值范圍內(nèi),取值越大,新數(shù)據(jù)對期望值的影響越小,取值越小,新數(shù)據(jù)對期望值的影響越大。TUUF 和BUUF 是更新因子的上限值和下限值。
表1中的常量的取值是手工設(shè)定的。在常量的取值范圍內(nèi),表1中的常量也可以取其他值。
實(shí)驗(yàn)中,把基于QoS動態(tài)更新的Web服務(wù)選擇模型中的HDB-QoS-DPM 動態(tài)更新QoS 值的方法,與X-M 方法、平均值法、基于近期數(shù)據(jù)的平均值法等其他三種對QoS值進(jìn)行動態(tài)更新的方法進(jìn)行了分析和對比。X-M 方法中常量的取值與表1中相同?;诮跀?shù)據(jù)的平均值法中近期數(shù)據(jù)的數(shù)量取值與NS 相同。圖3是使用這四種方法對使用者體驗(yàn)時間的預(yù)測比較圖。其中,菱形折線表示使用者體驗(yàn)時間的監(jiān)測值,即服務(wù)使用者體驗(yàn)時間的真實(shí)值,其他四條折線是預(yù)測值折線,與監(jiān)測值折線越接近,說明預(yù)測效果越好。正方形折線表示X-M 方法的預(yù)測值,三角形折線是本文提出的HDB-QoS-DPM 方法的預(yù)測值,叉形折線是平均值法的預(yù)測值,米形折線是基于近期數(shù)據(jù)的平均值法的預(yù)測值。從圖3可以看出,基于近期數(shù)據(jù)的平均值法的預(yù)測效果比平均值法要好,但是與XM 方法以及本文提出的HDB-QoS-DPM 法相比較,效果較差;可以看出,X-M 方法以及本文提出的HDB-QoS-DPM 法都取得了比較好的預(yù)測效果。
Figure 3 Comparison of four prediction methods for user time圖3 使用者體驗(yàn)時間四種方法的比較
圖4 是X-M 方法和HDB-QoS-DPM 法的實(shí)驗(yàn)比較結(jié)果。X-M 方法和HDB-QoS-DPM 方法都能隨監(jiān)測值的變化趨勢及時地做出適應(yīng)性調(diào)整。但是,在大部分情況下,HDB-QoS-DPM 方法的適應(yīng)性更好,預(yù)測值更接近監(jiān)測值。在圖4中,菱形折線是監(jiān)測值,正方形折線是X-M 方法預(yù)測值,三角形折線是HDB-QoS-DPM 方法預(yù)測值。
Figure 4 Comparison of two prediction methods for user time圖4 使用者體驗(yàn)時間兩種方法的比較
利用公式(9),我們比較了HDB-QoS-DPM 方法與X-M 方法的10 000條預(yù)測記錄,比較結(jié)果如表2表示。
其中,d 表示預(yù)測值和真實(shí)值的差的絕對值,d 值越小,說明預(yù)測效果越好,d 值越大,說明預(yù)測效果越差。
Table 2 Comparison of HDB-QoS-DPM and X-M表2 HDB-QoS-DPM 方法與X-M 方法比較
從表2 可以看出,本文提出的HDB-QoSDPM 方法比X-M 方法的總體預(yù)測效果好。
圖5是使用者服務(wù)體驗(yàn)時間動態(tài)更新過程中,更新因子uuf 值的變化折線。
Figure 5 Change of uuffor user time圖5 使用者體驗(yàn)時間更新因子值的變化
從圖5中可以看出,uuf 的值界于0.2和0.8之間,這是由常量TUUF 和BUUF 決定的,實(shí)驗(yàn)中,將TUUF 設(shè)置為0.8,BUUF 設(shè)置為0.2。
uuf 值越小,說明監(jiān)測值和期望值偏離越小,因此,使用監(jiān)測值對期望值進(jìn)行更新時所占權(quán)重較??;uuf 值越大,說明監(jiān)測值和期望值偏離越大,因此,使用監(jiān)測值對期望值進(jìn)行更新時所占權(quán)重較大。當(dāng)uuf 值較小時,表明使用者體驗(yàn)時間的真實(shí)QoS值比較穩(wěn)定。
在圖3~圖5 中,每個數(shù)據(jù)點(diǎn)表示一條記錄,數(shù)據(jù)的橫坐標(biāo)是數(shù)據(jù)的收集次序。
本文提出了一種新的Web服務(wù)使用者體驗(yàn)時間的動態(tài)更新方法HDB-QoS-DPM。HDB-QoSDPM 方法基于巴萊多定律和統(tǒng)計(jì)學(xué)規(guī)律,通過對服務(wù)使用者的QoS反饋數(shù)據(jù)處理,進(jìn)行動態(tài)更新。通過實(shí)驗(yàn),比較了X-M 方法、平均值法、基于近期數(shù)據(jù)的平均值法以及本文提出的HDB-QoS-DPM方法,結(jié)果顯示HDB-QoS-DPM 比其他三種方法效果更好。
隨著Web技術(shù)的發(fā)展,本文提出的基于QoS動態(tài)更新的Web 服務(wù)選擇模型以及HDB-QoSDPM 方法還有許多地方可以進(jìn)一步完善。在基于QoS動態(tài)更新的Web 服務(wù)選擇模型中,HDBQoS-DPM 方法中權(quán)重函數(shù)可以用其他函數(shù)代替,這些函數(shù)可以是經(jīng)典函數(shù),也可以是構(gòu)造函數(shù),如果能更好地反映監(jiān)測值的權(quán)重分布,就可能得到更好的預(yù)測效果。另外,本文實(shí)驗(yàn)中常量的取值是根據(jù)實(shí)驗(yàn)環(huán)境設(shè)定的,對于其他Web服務(wù)的QoS值的預(yù)測,需要根據(jù)實(shí)際情況調(diào)整,因此,在以后的改進(jìn)中,可以在本方法中加入常量取值的自適應(yīng)模塊,使常量的取值根據(jù)具體情況自動調(diào)整。
[1]Wen Li-ming,Lu Ju-kang.A scaling-oriented QoS monitoring framework for web services[J].Microelectronics &Computer,2006,2.(10):93-95.(in Chinese)
[2]D'Ambrogio A.A model-driven WSDL extension for describing the QoS of web services[C]∥Proc of International Conference on Web Services,2006:789-796.
[3]Rosenberg F.Bootstrapping performance and dependability attributes of web services[C]∥Proc of International Conference on Web Services,2006:205-212.
[4]Strunk A.An algorithm to predict the QoS-reliability of service compositions[C]∥Proc of the 6th World Congress on Services,2010:205-212.
[5]Davide L.Predicting software service availability:Towards a runtime monitoring approach[C]∥Proc of International Conference on Web Services,2011:736-737.
[6]Vilalta R,Apte C V,Hellerstein J L,et al.Predictive algorithms in the management of computer systems[J].IBM Systems Journal,2002,41(3):461-474.
[7]Xu Fu-chang.Research of web service selection based on QoSaware[D].Dongying:China University of Petroleum,2012.(in Chinese)
附中文參考文獻(xiàn):
[1]文黎明,陸菊康.基于測量目的的Web服務(wù)QoS監(jiān)控框架[J].微電子學(xué)與計(jì)算機(jī),2006,2.(10):93-95.
[7]徐福昌.基于QoS感知的Web服務(wù)選擇[D].東營:中國石油大學(xué),2012.