李躍軍,王向輝,崔巍
(山東建筑大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,山東 濟(jì)南 250101)
隨著Web 服務(wù)在企業(yè)應(yīng)用集成EAI等大型應(yīng)用中的大規(guī)模應(yīng)用,如何選擇滿足需求的高質(zhì)量Web 服務(wù)成為構(gòu)建大型應(yīng)用的重要問題。Web 服務(wù)發(fā)現(xiàn)作為Web 服務(wù)的一個關(guān)鍵技術(shù),承擔(dān)著服務(wù)的定位和發(fā)現(xiàn)以及為Web 服務(wù)的更高層應(yīng)用提供基礎(chǔ)支持的任務(wù),如服務(wù)的自動組成和執(zhí)行。有效的服務(wù)發(fā)現(xiàn)機(jī)制將為應(yīng)用開發(fā)人員尋找服務(wù)提供支持,極大的加快服務(wù)組合等復(fù)雜應(yīng)用的構(gòu)建速度,提高基于Web 服務(wù)的系統(tǒng)構(gòu)建和開發(fā)的速度、效率、質(zhì)量。Paolucci等提出了一種將關(guān)鍵字檢索和WSDL 結(jié)構(gòu)化匹配相結(jié)合的服務(wù)發(fā)現(xiàn)方法[1]。文獻(xiàn)[1-2]中提出一種基于語義的服務(wù)發(fā)現(xiàn)方法,其采用一種基于DAML 服務(wù)本體的語義標(biāo)記語言DAML-S來描述服務(wù)的屬性和功能,并提出了若干語義服務(wù)匹配算法?;谡Z義描述語言的服務(wù)發(fā)現(xiàn)可顯著提高服務(wù)發(fā)現(xiàn)的查準(zhǔn)率,但查全率不高。為WSDL 和UDDI 添加語義標(biāo)記的方法是對UDDI 和語義方法取一個折中。該方法利用了現(xiàn)有的標(biāo)準(zhǔn),在一定意義上兼有兩者的特點(diǎn),但為UDDI 和WSDL添加標(biāo)記是一個艱巨的任務(wù)。Xin等提出了服務(wù)相似性檢索的概念,并設(shè)計了Web 服務(wù)搜索引擎Woogle,可以查找相似的操作或者查找可以組合成一個給定服務(wù)的操作[3]。
QoS 包括服務(wù)的可用性、價格、可靠性、健壯性等評價的特性,這些特性都會在一定程度上影響到服務(wù)的選擇過程,即服務(wù)發(fā)現(xiàn)的過程。將服務(wù)質(zhì)量引入到服務(wù)評價標(biāo)準(zhǔn)中將有助于實(shí)現(xiàn)服務(wù)發(fā)現(xiàn)過程的多方面多角度服務(wù)評價,而不僅僅是從服務(wù)提供者宣稱的服務(wù)功能描述來選擇服務(wù)。文章利用服務(wù)質(zhì)量(QoS)支持服務(wù)發(fā)現(xiàn)的方法對Web 服務(wù)質(zhì)量進(jìn)行了數(shù)學(xué)建模,其中關(guān)于服務(wù)質(zhì)量的建模簡化了服務(wù)質(zhì)量的計算,使服務(wù)質(zhì)量計算過程更具可操作性;提出了改進(jìn)的服務(wù)質(zhì)量計算公式和兩服務(wù)間的相似度計算方法;構(gòu)建了一個基于服務(wù)功能和質(zhì)量相似度計算的服務(wù)發(fā)現(xiàn)原型系統(tǒng)。該系統(tǒng)集成了服務(wù)提供者和請求者的交互接口,使基于服務(wù)功能和服務(wù)質(zhì)量的發(fā)布和發(fā)現(xiàn)過程變的簡便易行,提供者可以快速發(fā)布服務(wù),用戶可以利用功能參數(shù)和服務(wù)質(zhì)量參數(shù)來進(jìn)行基于服務(wù)質(zhì)量的服務(wù)發(fā)現(xiàn),從而達(dá)到更好的檢索效果。
式中:p1,p2,…,pl是正向參數(shù);pi+1,pl+2,…,pm是反向參數(shù);max 是QoS 的參數(shù)的最大值。通過用max 減去每個反向參數(shù),將反向參數(shù)轉(zhuǎn)化為正向參數(shù)。
定義一個QoS 基準(zhǔn)區(qū)間(0,max),將每個服務(wù)參數(shù)的值轉(zhuǎn)化到該基準(zhǔn)區(qū)間上。由于服務(wù)提供者開發(fā)Web 服務(wù)的軟硬件平臺各不相同,技術(shù)實(shí)力也不盡相同,因此不同的提供者開發(fā)同一個功能的Web服務(wù),其服務(wù)質(zhì)量可能差距比較大,計算服務(wù)質(zhì)量的標(biāo)準(zhǔn)也有所不同。這就造成了服務(wù)提供者提供的服務(wù)質(zhì)量參數(shù)沒有一致的度量標(biāo)準(zhǔn),同功能的服務(wù)的質(zhì)量不具有可比性。通過將不同提供者提供的服務(wù)質(zhì)量轉(zhuǎn)化到一個基準(zhǔn)區(qū)間可以解決這個問題。
利用上面介紹的基準(zhǔn)區(qū)間(0,max),每個刻度的增加值為1。假設(shè)某服務(wù)提供者提供的某服務(wù)質(zhì)量參數(shù)區(qū)間為(l,l +1,l +2,…,l+max,l+max+1,…,l+n),即它的區(qū)間長度超過了基準(zhǔn)區(qū)間。
首先,將每一項都減去l,區(qū)間轉(zhuǎn)化為(0,1,…,max,max+1,…,n)。然后對該區(qū)間進(jìn)行長度縮減,將每n/max個單位合并為一個刻度,這樣原來的區(qū)間就轉(zhuǎn)化到(0,max)了。例如,當(dāng)n=2 max 時,將每兩個刻度合并為一個新刻度。
采用類似的方法可以解決參數(shù)取值區(qū)間小于基準(zhǔn)區(qū)間的情況?;鶞?zhǔn)區(qū)間為(0,max),刻度為1,而服務(wù)提供者提供的質(zhì)量參數(shù)取值區(qū)間為(l,m),刻度也為1。其中l(wèi) 是服務(wù)提供者認(rèn)為的該參數(shù)的最小值,m 是最大值,m <max。通過將(1,m)中的每個值都乘以max/m,就可以將短區(qū)間也轉(zhuǎn)化到基準(zhǔn)區(qū)間上了。例如,基準(zhǔn)區(qū)間為(0,1,2,3,4,5),服務(wù)提供者的區(qū)間為(1,2,3)預(yù)處理為→(0,1,2),將區(qū)間的每個值都乘以5/2,原來的區(qū)間取值變?yōu)?0,2.5,5)。這樣,如果服務(wù)提供者原來對某參數(shù)的取值為3,其新值將變化為5,原來取值為1 的服務(wù)質(zhì)量參數(shù),其新值將為0。從而真實(shí)的體現(xiàn)了服務(wù)提供者對該參數(shù)取值的含義。
不同的服務(wù)參數(shù),其取值范圍很可能是不同的,在進(jìn)行服務(wù)質(zhì)量計算時,應(yīng)避免最終服務(wù)質(zhì)量的值受某個參數(shù)取值特別大的影響。通過每個參數(shù)值都除以所有相似服務(wù)在該參數(shù)上的平均值,就可以降低某個參數(shù)值特別大對最后服務(wù)質(zhì)量的影響。
以上是單個服務(wù)的服務(wù)質(zhì)量的計算模型。根據(jù)以上模型計算每個服務(wù)的服務(wù)質(zhì)量,最后按照服務(wù)質(zhì)量的大小進(jìn)行排序,就可以有效的加速Web 服務(wù)的發(fā)現(xiàn)過程。
在服務(wù)發(fā)現(xiàn)過程中,計算兩個Web 服務(wù)之間的相似度是最基本的問題,請求與服務(wù)的相似度計算問題可以參考兩Web 服務(wù)間的相似度計算方法,計算兩服務(wù)間的相似度還可以應(yīng)用到服務(wù)的分類和聚類中,因此計算兩服務(wù)間的相似度就成為服務(wù)發(fā)現(xiàn)中的關(guān)鍵問題之一。以下公式可以計算兩服務(wù)的服務(wù)質(zhì)量之間的相似性:
兩服務(wù)間的功能相似度的計算是經(jīng)典服務(wù)發(fā)現(xiàn)的重要方法。服務(wù)包括若干操作,操作又包含若干輸入?yún)?shù)和輸出參數(shù),并且這些參數(shù)的數(shù)目是不定的??梢詰?yīng)用如下公式來計算兩操作間輸入和輸出參數(shù)間的相似度[5]。
式中:SimoperationI(Oper1,Oper2)計算分屬于兩個服務(wù)的兩個操作內(nèi)的輸入?yún)?shù)匹配度。SimoperationO(Oper1,Oper2)計算分屬于兩個服務(wù)的兩個操作內(nèi)的輸出參數(shù)的匹配度。通過計算兩服務(wù)間的所有操作的相似度可計算出兩服務(wù)間的相似度Simfunction(s1,s2)。其中ω1ω2分別是對輸入和輸出的權(quán)值參數(shù)。結(jié)合Web 服務(wù)的功能相似度,從而得到綜合考慮服務(wù)功能和QoS 信息來計算服務(wù)間的相似度。
式中:Request 代表用戶對所請求的服務(wù)的描述;Service 代表所有待選擇的 Web 服務(wù);Simfunction(Request,Service)計算請求與待選服務(wù)的功能相似性,功能包括服務(wù)名稱、操作名稱、輸入輸出、文檔描述等。
在利用以上模型進(jìn)行基于服務(wù)質(zhì)量的服務(wù)發(fā)現(xiàn)時,可以利用圖1 來描述用戶與服務(wù)提供者之間的交互關(guān)系,利用該服務(wù)發(fā)現(xiàn)模型可以構(gòu)建基于服務(wù)質(zhì)量的查詢系統(tǒng)。在圖1 中,服務(wù)提供者P1 可以以服務(wù)提供者身份注冊到服務(wù)注冊表中,獲得用戶ID和密碼。提供者可以發(fā)布多個服務(wù),在發(fā)布每一個服務(wù)時,提供者需要提供服務(wù)的服務(wù)名稱、操作及對應(yīng)的輸入輸出名稱、WSDL 文件等功能描述信息,同時在服務(wù)質(zhì)量發(fā)布接口,可以發(fā)布其服務(wù)質(zhì)量屬性。每個服務(wù)通過發(fā)布接口將服務(wù)發(fā)布到服務(wù)注冊表中。在請求者一端,請求者通過客戶端請求接口提出其請求,然后將請求發(fā)送到匹配器后,匹配器進(jìn)行服務(wù)質(zhì)量匹配,到服務(wù)注冊表中尋找到質(zhì)量和功能與請求相近的服務(wù),按照相似度的大小列表顯示出來。
圖1 基于服務(wù)質(zhì)量的服務(wù)發(fā)現(xiàn)模型圖
利用上述算法,創(chuàng)建了一個原型系統(tǒng)來演示服務(wù)的發(fā)布、請求過程。系統(tǒng)采用B/S 結(jié)構(gòu),服務(wù)提供者和請求者可以通過統(tǒng)一的接口來進(jìn)入系統(tǒng)進(jìn)行服務(wù)發(fā)布和請求操作。在請求與服務(wù)的匹配過程中,將使用以上介紹的算法來計算請求與服務(wù)之間的相似性。系統(tǒng)可以分為系統(tǒng)登錄、服務(wù)功能發(fā)布接口、服務(wù)質(zhì)量發(fā)布接口、請求接口、結(jié)果顯示接口。
服務(wù)提供者進(jìn)行發(fā)布操作時,指定服務(wù)的名稱和它的服務(wù)描述文件wsdl 所在的位置。提交后轉(zhuǎn)至下一步,通過在輸入框中輸入操作的名稱,該操作所包含的所有輸入和輸出參數(shù),以及操作的說明文檔,和服務(wù)所存在的地址。點(diǎn)擊提交后,就可將服務(wù)的功能屬性添加到服務(wù)注冊表中。
服務(wù)提供者發(fā)布了服務(wù)的功能屬性還可以為其發(fā)布質(zhì)量參數(shù)。響應(yīng)時間(Response Time)以ms為計數(shù)單位,可靠性(Reliability)和健壯性(Robust)的取值范圍為15。
在該過程中,系統(tǒng)同時將利用前面介紹的服務(wù)質(zhì)量計算方法計算已發(fā)布服務(wù)的總體QoS??紤]服務(wù)的3 項因素:響應(yīng)時間、可靠性、健壯性。QoS 的計算方法定義為:
式中:MAX_TIME 定義的是響應(yīng)時間的最大值;time是響應(yīng)時間;robust.reliability 分別代表健壯性和可靠性。權(quán)值初始定義為1/3,即這3 項指標(biāo)參數(shù)的重要性是一樣的系統(tǒng)??梢酝ㄟ^改變權(quán)值來獲得不同的QoS 計算方法。
面向服務(wù)提供者的服務(wù)發(fā)布過程結(jié)束后,服務(wù)的請求者可以通過登錄界面開始服務(wù)發(fā)現(xiàn)過程。服務(wù)請求者在請求接口界面中的各項中輸入自己的請求參數(shù)包括輸入和輸出參數(shù)等。請求者還可以輸入服務(wù)質(zhì)量屬性的查詢條件,包括響應(yīng)時間、可靠性,健壯性等。
搜索結(jié)果接口負(fù)責(zé)顯示請求結(jié)果。用戶發(fā)出請求后,請求被發(fā)送到質(zhì)量匹配器和功能匹配器,匹配器將請求參數(shù)與服務(wù)注冊表中的服務(wù)進(jìn)行匹配,相似性最高的服務(wù)被列表顯示出來,并且按照功能和質(zhì)量排序輸出。請求與服務(wù)相似度計算可以用式(9)計算:
式中:r 代表請求;s 代表待匹配服務(wù);t、c、reliability、robust 分別代表響應(yīng)時間、費(fèi)用、可靠性、健壯性。上式中每對參數(shù)的相似性用(10)式計算:
式中:pr,ps分別代表請求屬性和服務(wù)的屬性參數(shù)。
針對請求r 的響應(yīng)結(jié)果是一組相關(guān)服務(wù)的列表,包括服務(wù)ID、與請求的相似度、該服務(wù)的QoS值、WSDL 鏈接。列表按照與請求的相似度大小進(jìn)行排序。用戶點(diǎn)擊WSDL 鏈接可以得到該服務(wù)的WSDL 描述。Web 服務(wù)搜索結(jié)果顯示如表2 所示。
表2 Web 服務(wù)探索結(jié)果顯示
通過應(yīng)用服務(wù)質(zhì)量(QoS)支持服務(wù)發(fā)現(xiàn)的方法對Web 服務(wù)質(zhì)量進(jìn)行了數(shù)學(xué)建模,其中關(guān)于服務(wù)質(zhì)量的建模簡化了服務(wù)質(zhì)量的計算,使服務(wù)質(zhì)量計算過程更具可操作性。文章提出了改進(jìn)的服務(wù)質(zhì)量計算公式和兩服務(wù)間的相似度計算 方法,構(gòu)建了一個基于服務(wù)功能和質(zhì)量相似度計算的服務(wù)發(fā)現(xiàn)原型系統(tǒng)。該系統(tǒng)采用B/S 結(jié)構(gòu),集成了服務(wù)提供者和請求者的交互接口,使基于服務(wù)功能和服務(wù)質(zhì)量的發(fā)布和發(fā)現(xiàn)過程變的簡便易行。提供者可以快速、輕松發(fā)布服務(wù),而用戶可以利用服務(wù)質(zhì)量參數(shù)來進(jìn)行基于服務(wù)質(zhì)量的服務(wù)過濾,從而達(dá)到更好的檢索效果。
[1]Paolucci M.,Kawamura T.,Payne T..Semantic matching of Web services capabilities[C].Heidelberg:The Semantic Web-ISWC2002 Proceedings.Lecture Notes in Computer Science,2002(2342):333-347.
[2]Cabral L.,Domingue J.,Motta E.,et al.Approaches to semantic Web services:an overview and comparisons[C].Heraklion:Proceedings of the First European Semantic Web Symposium (ESWS2004),LNCS 3053,2004(5):225-239.
[3]Xin D.,Alon H.,Jayant M.,et al.Similarity search for Web services [C].Toronto:Proceedings of the 30th VLDB Conference,2004:372-383.
[4]Yutu L.,Anne H.,Ngu H.,et al.QoS computation and policing in dynamic Web service selection[C].New York:Proceedings ofthe 13th international World Wide Web conference on Alternate track papers & posters,2004:66-73.
[5]吳鍵,吳朝暉,李瑩,等.基于本體論和詞匯語義相似度的Web服務(wù)發(fā)現(xiàn)[J].計算機(jī)學(xué)報,2005,28(4):595-601.
[6]蔣哲遠(yuǎn),韓江洪,王釗.動態(tài)的QoS 感知Web 服務(wù)選擇和組合優(yōu)化模型[J].計算機(jī)學(xué)報,2009,32(5):1014-1025.
[7]Liu W.,Wong W..Web service clustering using text mining techniques[J].International Journal of Agent Oriented Software Engineering,2009,3(1):6-26.
[8]張忠宇,黃光奇,常濤,等.面向QoS 的服務(wù)運(yùn)行時綁定方案[J].計算機(jī)工程與設(shè)計,2011,32(8):2700-2703.
[9]Santhana A.,Vijayan S.,Balasundaram R..Effective Webservice discovery using K-means clustering[C].ICDCIT 2013,LNCS 7753,2013:455-464.
[10]Elgazzar K.,Hassan A.E.,Martin P..Clustering WSDL documents to bootstrap the discovery of Web services[C].Curran:2010 IEEE International Conference on Web Services,2010:287–294.
[11]呂強(qiáng),宋玲,馬軍,等.基于本體的Deep Web 語義分類研究[J].山東建筑大學(xué)學(xué)報,2010,25(2):118-124.
[12]孫澎.開放式網(wǎng)站的信息存儲方法[J].山東建筑大學(xué)學(xué)報,2009,24(6):553-557.