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