摘 要:服務(wù)質(zhì)量(Quality of Service,QoS)是 Web 服務(wù)選擇的關(guān)鍵指標(biāo)。傳統(tǒng)的用于Web 服務(wù)選擇的QoS 值都是靜態(tài)的歷史記錄,沒(méi)有考慮對(duì)于同一個(gè)服務(wù),不同用戶(hù)獲得的QoS值之間的差異性。近年來(lái),出現(xiàn)了各種各樣的針對(duì)用戶(hù)的個(gè)性化 QoS 預(yù)測(cè)算法。文章將淺析如何將協(xié)同過(guò)濾算法應(yīng)用到個(gè)性化的 QoS 預(yù)測(cè)當(dāng)中。
關(guān)鍵詞:Web 服務(wù);服務(wù)質(zhì)量;協(xié)同過(guò)濾;QoS 預(yù)測(cè) 1 引言
Web服務(wù)是一個(gè)或一組通過(guò)互聯(lián)網(wǎng)提供的軟件功能,它對(duì)外公布調(diào)用該功能的地址和接口,任何用戶(hù)都可以通過(guò)互聯(lián)網(wǎng)調(diào)用Web服務(wù)。因?yàn)閃eb服務(wù)具有的低耦合,易重用,可組合等特性,使得其在面向服務(wù)的體系結(jié)構(gòu)(SOA)中得到了廣泛的應(yīng)用。并且,隨著互聯(lián)網(wǎng)尤其是云計(jì)算的不斷發(fā)展和成熟,Web服務(wù)不僅被運(yùn)用在構(gòu)建企業(yè)級(jí)的軟件系統(tǒng),也越來(lái)越多的被運(yùn)用在互聯(lián)網(wǎng)應(yīng)用當(dāng)中。
單個(gè)的Web服務(wù)通常只能實(shí)現(xiàn)一個(gè)或幾個(gè)比較簡(jiǎn)單的功能。為了滿(mǎn)足較為復(fù)雜的業(yè)務(wù)需求,需要組合多個(gè)Web服務(wù)來(lái)實(shí)現(xiàn)。隨著Web服務(wù)數(shù)量的不斷增長(zhǎng),可供選擇的Web服務(wù)越來(lái)越多,從中選擇出最合適的Web服務(wù)進(jìn)行組合越來(lái)越成為一個(gè)巨大的挑戰(zhàn)。除了滿(mǎn)足功能性的需求之外,通常還需要Web服務(wù)的QoS能夠達(dá)到最優(yōu)。又由于許多服務(wù)的QoS值具有動(dòng)態(tài)變化的特性,所以準(zhǔn)確的預(yù)測(cè)服務(wù)的QoS值顯得尤為重要。
2 服務(wù)質(zhì)量
服務(wù)質(zhì)量,也即Quality of Service,簡(jiǎn)稱(chēng)QoS。顧名思義,QoS主要反應(yīng)了Web服務(wù)在質(zhì)量上的水平高低,涵蓋了服務(wù)的多個(gè)方面的度量,是用戶(hù)進(jìn)行Web服務(wù)選擇和服務(wù)組合的重要依據(jù)。根據(jù)萬(wàn)維網(wǎng)聯(lián)盟(W3C)給出的官方定義,QoS主要分為性能,可靠性,安全性以及特定應(yīng)用相關(guān)的其它屬性。而根據(jù)QoS值是否經(jīng)常變化以及是否對(duì)于不同的用戶(hù)經(jīng)常表現(xiàn)出不同的QoS值的特點(diǎn),又可以把QoS屬性分為動(dòng)態(tài)屬性和靜態(tài)屬性?xún)煞N。比如,響應(yīng)時(shí)間(Response Time),表示用戶(hù)從發(fā)出Web服務(wù)的調(diào)用請(qǐng)求開(kāi)始到收到服務(wù)返回的結(jié)果所花費(fèi)的總時(shí)間。由于用戶(hù)所處區(qū)域的網(wǎng)絡(luò)狀況的不同,可能導(dǎo)師響應(yīng)時(shí)間有很大的變化。對(duì)于A用戶(hù)來(lái)說(shuō)響應(yīng)時(shí)間較好的一個(gè)服務(wù),對(duì)于另一個(gè)區(qū)域的B用戶(hù)卻不一定具有較好的響應(yīng)時(shí)間。類(lèi)似的還有吞吐量,也具有動(dòng)態(tài)變化的特性。所以,對(duì)于這類(lèi)動(dòng)態(tài)變化的QoS屬性,需要針對(duì)不同的用戶(hù)進(jìn)行個(gè)性化的QoS預(yù)測(cè)。而對(duì)于比如服務(wù)的可用性這類(lèi)QoS屬性,則相對(duì)固定,可以直接通過(guò)
3 基于協(xié)同過(guò)濾的QoS預(yù)測(cè)
協(xié)同過(guò)濾算法最初被用在電子商務(wù)的推薦系統(tǒng)中,比如Amazon公司,通過(guò)利用某一個(gè)用戶(hù)對(duì)商品的歷史評(píng)價(jià)數(shù)據(jù)以及和他相似的用戶(hù)的評(píng)價(jià)數(shù)據(jù)來(lái)預(yù)測(cè)其可能感興趣的商品,從而進(jìn)行精準(zhǔn)的商品推薦。最近幾年協(xié)同過(guò)濾算法開(kāi)始被用于預(yù)測(cè)Web服務(wù)的QoS值,用戶(hù)調(diào)用服務(wù)后的QoS記錄被等價(jià)成電子商務(wù)系統(tǒng)中用戶(hù)對(duì)商品的評(píng)分。利用用戶(hù)調(diào)用Web服務(wù)的歷史Q(chēng)oS值來(lái)計(jì)算用戶(hù)之間以及Web服務(wù)之間的相似度,然后選擇相似度最高的幾個(gè)用戶(hù)或服務(wù)的QoS記錄來(lái)進(jìn)行QoS值的預(yù)測(cè)。
3.1 問(wèn)題描述
表示n個(gè)Web服務(wù), 表示m個(gè)用戶(hù)。對(duì)于每個(gè)服務(wù)Si都有多個(gè)QoS屬性,比如響應(yīng)時(shí)間,吞吐量,可用性等。這些QoS屬性中,有一些是相對(duì)固定的,比如可用性,這類(lèi)QoS可以直接從服務(wù)提供商那里獲取。但是如響應(yīng)時(shí)間這類(lèi)動(dòng)態(tài)變化的QoS屬性,其QoS值可能因調(diào)用用戶(hù)的不同而變化。因此需要把用戶(hù)的特征考慮進(jìn)來(lái)從而進(jìn)行個(gè)性化的QoS預(yù)測(cè)以及Web服務(wù)推薦。為了后面表述的方便,我們?cè)诤竺娴牟糠謱⒅贿x取響應(yīng)時(shí)間這一個(gè)動(dòng)態(tài)QoS屬性作為研究對(duì)象,在默認(rèn)情況下提及的QoS就將指代響應(yīng)時(shí)間。對(duì)于其它的動(dòng)態(tài)QoS其預(yù)測(cè)方法是一樣的。
表示一個(gè)n*m的用戶(hù)-服務(wù)的二維矩陣,就像電子商務(wù)推薦系統(tǒng)中的用戶(hù)-商品服務(wù)一樣。其中,r(ui,sj)表示一條QoS記錄,即用戶(hù)ui最近一次調(diào)用服務(wù)si時(shí)得到的QoS值。如果用戶(hù)ui沒(méi)有調(diào)用過(guò)服務(wù)sj,那么r(ui,sj)的值被標(biāo)記為null。這部分缺失的QoS值記錄就是我們需要進(jìn)行預(yù)測(cè)的部分。
QoS預(yù)測(cè)算法利用這些已有的歷史Q(chēng)oS記錄來(lái)預(yù)測(cè)用戶(hù)調(diào)用一個(gè)未使用過(guò)的Web服務(wù)時(shí)可能的QoS值。該用戶(hù)被稱(chēng)為目標(biāo)用戶(hù),該服務(wù)被稱(chēng)為目標(biāo)服務(wù)。
3.2 相似度計(jì)算
相似度計(jì)算是利用協(xié)同過(guò)濾算法進(jìn)行QoS預(yù)測(cè)的關(guān)鍵步驟之一。相似度算法的好壞將直接影響到協(xié)同過(guò)濾的效果。最常用的相似度計(jì)算方法是基于皮爾遜相關(guān)系數(shù)的相似度算法。如式(1)所示。其中Sim(ui,uj)表示用戶(hù)ui和uj之間的相似度值,取值范圍從-1到1。-1代表完全的不同,1代表完全的相同,數(shù)值越大相似度也越大。S表示用戶(hù)ui和uj共同調(diào)用過(guò)的服務(wù)的集合,r(ui,s)表示用戶(hù)ui對(duì)服務(wù)s的評(píng)分。ri和rj分別表示用戶(hù)ui和uj共同調(diào)用過(guò)服務(wù)的平均值。
3.3 預(yù)測(cè)QoS值
利用用戶(hù)之間的相似度以及Web 服務(wù)之間的相似度,就可以預(yù)測(cè)一個(gè)目標(biāo)用戶(hù)對(duì)目標(biāo)商品的可能的評(píng)分值。為了預(yù)測(cè)目標(biāo)用戶(hù)調(diào)用目標(biāo)服務(wù)時(shí)的 QoS 值,通常選取與目標(biāo)用戶(hù)最相似的 k 個(gè)服務(wù)和用戶(hù)參與最終 QoS 值的預(yù)測(cè)。
利用用戶(hù)之間相似度預(yù)測(cè) QoS 值的計(jì)算公式如式(3)所示。其中u表示所選則的 k 個(gè)相似用戶(hù)的獲得的歷史 QoS 值的平均值。
4 結(jié)束語(yǔ)
采用協(xié)同過(guò)濾的方法進(jìn)行 QoS 預(yù)測(cè)充分的考慮了用戶(hù)以及服務(wù)之間的差異性和相似性,利用用戶(hù)之間以及服務(wù)之間的相似度來(lái)對(duì)目標(biāo)用戶(hù)可能獲得的 QoS 值進(jìn)行預(yù)測(cè)。這種預(yù)測(cè)方法不僅在實(shí)現(xiàn)上比較簡(jiǎn)單,并且能夠達(dá)到很高的預(yù)測(cè)效率,而且變量 k 和變量λ的設(shè)置也是的算法具有了很大的靈活性,能夠根據(jù)不同的情況進(jìn)行調(diào)整。
作者簡(jiǎn)介:陳唯(1989-),男,湖北省襄陽(yáng)市,同濟(jì)大學(xué)軟件學(xué)院研究生在讀,碩士,研究方向:Web 服務(wù)組合。