王新穎,李 敏,熊 偉
1(湖北文理學院 數學與計算機科學學院,湖北 襄陽 441053) 2(湖北文理學院理工學院 電子科學與信息工程系,湖北 襄陽 441025) E-mail:wxy200888@126.com
隨著Ad Hoc網絡應用規模的持續快速增長,針對用戶個性化需求的按需服務發現需求日益旺盛,因而,對高精度的Ad Hoc網絡服務發現的理論和方法進行深入研究有著極其重要的現實意義.由于Ad Hoc網絡所處的網絡環境容易受到復雜多變因素的影響,使得傳統的服務發現方法在Ad Hoc網絡環境下難以獲得較高精度[1-4],不適合在Ad Hoc網絡中應用.
近年來,為了解決在Ad Hoc網絡中存在的復雜多樣的服務發現問題,國內外該領域的研究人員做了大量的研究工作.文獻[5]基于對等的通信模式,提出一種完全分布式的Ad Hoc網絡服務發現機制.文獻[6]提出一種CSDM服務發現方法,該機制將簇頭節點列表中全部的服務請求按照優先級級別實施動態區分管理操作,不僅較好的改善了服務發現的性能,也提高了整個系統的穩定性.文獻[7]提出一個基于上下文的Ad Hoc網絡服務發現機制,在該機制中,服務發現的執行策略由服務節點周圍的環境來決定.文獻[8]基于蟻群算法,提出一種基于可信度的服務發現機制,該機制根據節點在網絡中的相互作用和行為計算它們的可信度,并根據可信度進行服務發現.文獻[9]提出一種健壯、可伸縮的服務發現方案,該方案通過一致性管理機制,實現了服務發現的健壯性;通過多層次的目標本體,解決了Ad Hoc網絡的知識表示問題,實現了服務發現的可擴展性.文獻[10]提出一種SSD服務發現方法,該方法考慮了服務節點的計算能力、存儲能力、通信能力、剩余電量、位置和網絡狀態等屬性,具有較高的查準率和較好的服務質量.
以上幾種服務發現機制廣泛存在的不足是:沒有合理的考慮功能屬性以外的其它因素,即服務情景等非功能屬性[11],服務發現的質量還需要更進一步的提高.在Ad Hoc網絡環境下,針對具有相同功能的服務,對用戶而言,它們在移動性、剩余電量、響應時間和丟包率等服務情景上的表現有所不同,而只有當服務能夠滿足用戶在這些方面的要求時,用戶才會考慮這個服務所提供的功能.因此,在Ad Hoc網絡應用中,研究基于服務情境的服務發現機制顯得尤為重要.
本文提出一種基于服務情景的Ad Hoc網絡服務發現方法——SDSS.該Ad Hoc網絡服務發現方法在基于語義推理進行功能匹配的基礎之上,對符合功能匹配所得到的候選服務集,進一步執行了基于服務情景約束的服務篩選操作和基于服務情景評價的服務排序操作,不僅在一定程度上提高了Ad Hoc網絡服務發現的查準率,其服務質量也得到了有效改善.
本文第2節詳細分析了SDSS服務發現機制,第3節對提出的Ad Hoc網絡服務發現機制進行了實驗驗證,最后是全文的總結.
在Ad Hoc網絡中,考慮到服務情景等非功能屬性對服務的服務質量(QoS)影響巨大,課題組將Ad Hoc網絡的服務模型形式化定義為:
定義1.服務
S=
(1)
在公式(1)中,FP用來代表在Ad Hoc網絡中服務的功能屬性,具體包含服務名稱(SN)、服務描述(SD)、輸入信息(SI)及輸出信息(SO)等四種功能屬性,如公式(2)所示.
FP=
(2)
考慮到服務的輸入信息(SI)和輸出信息(SO)都是信息的集合,因此,本文用SI={i1,i2…,in}表示服務的輸入信息,用SO={o1,o2…,on}表示服務的輸出信息.
SP代表Ad Hoc網絡中服務的情景屬性,具體包含移動性(MO)、剩余電量(RE)、響應時間(RT)、丟包率(PL)等四種服務情景屬性,如公式(3)所示.
SP=
(3)
本文提出的Ad Hoc網絡服務發現架構分散部署在Ad Hoc網絡中的簇頭節點.如圖1所示,該Ad Hoc網絡服務發現架構由服務發現模塊、注冊模塊及服務平臺模塊等三部分構成.當服務發現模塊接收到Ad Hoc網絡中服務的注冊信息后,該模塊中的解析器首先對服務注冊信息進行解析操作處理,然后,注冊模塊負責將服務信息(包含功能屬性信息和情景屬性信息)存儲在服務平臺的數據庫中;當服務發現模塊接收到Ad Hoc網絡中的服務請求信息后,由服務匹配子模塊執行服務匹配過程并進行服務回復.

圖1 Ad Hoc網絡服務發現架構Fig.1 Architecture of service discovery for Ad Hoc networks
基于服務情景的Ad Hoc網絡服務發現由四個階段組成:
1)依據Ad Hoc網絡中服務的功能屬性,進行基于語義的功能匹配,得到符合功能匹配的候選服務集;
2)在候選服務集中進行基于服務情景約束的服務篩選操作,刪除那些不滿足用戶服務情景約束的服務;
3)執行基于服務情景的無量綱化處理過程,消除量綱因素對服務情景評價結果所造成的負面影響;
4)執行基于服務情景評價的服務排序操作,進而從上面的候選服務集中得到最優的服務.
2.3.1 基于語義的功能匹配
在公式(2)的基礎上,項目組利用服務相似度的方法對Ad Hoc網絡中的服務進行功能匹配,進而得到候選服務集.其服務相似度的形式化定義為:
定義2.服務相似度
SimS(S,SR)=α*SimSN(SN,SNR)+
β*SimSD(SD,SDR)+
(4)
γ*SimSI(SI,SIR)+
φ*SimSO(SO,SOR)
在公式(4)中,服務和服務請求的相似度由SimS(S,SR)表示,其中,服務名稱的相似度值用SimSN(SN,SNR)來進行表示,用α表示它的權重因子,用SN表示Ad Hoc網絡中服務的服務名稱信息,用SNR表示用戶服務請求的服務名稱信息;服務描述的相似度值用SimSD(SD,SDR)來進行表示,用β表示它的權重,用SD表示Ad Hoc網絡中服務的服務描述,用SDR表示用戶服務請求的服務描述;服務輸入信息的相似度值用SimSI(SI,SIR)來進行表示,用γ表示它的權重因子,用SI表示服務的輸入信息集合,用SIR表示服務請求的輸入信息集合;服務輸出信息的相似度值用SimSO(SO,SOR)來進行表示,用φ表示它的權重因子,用SO表示服務的輸出信息集合,用SOR表示服務請求的輸出信息集合.在本文中,利用文獻[12]的方法來計算公式(4)中各項的相似度值,四個權重因子滿足α+β+γ+φ=1.
2.3.2 基于服務情景約束的服務篩選
在Ad Hoc網絡服務發現過程中,可能存在多個滿足功能匹配的服務,但用戶感知的QoS服務情景各不相同.公式(3)定義了單個服務的服務情景模型,假設有n個滿足條件的候選服務,則它們的服務情景模型可以表示為:
(5)
在公式(5)中,將全部滿足功能匹配的服務情景屬性描述成為一個矩陣,該矩陣的列代表不同服務的某個情景屬性的屬性值,該矩陣的行代表候選服務集中的服務.公式(5)支持對Ad Hoc網絡服務的服務情景屬性的擴展,如果在Ad Hoc網絡服務中增加一個服務情景屬性,只需要在上述矩陣中增加一列.
在通過功能匹配而獲得的候選服務集中,它們的非功能屬性各有差異,并不是全部的服務都可以滿足服務請求者的約束型需求和偏好型需求,需要刪減掉那些不符合請求者需求條件要求的服務.因此,如果一個服務的某個具體的情景屬性值沒有滿足服務請求者的服務情景約束條件,則從候選服務集中將該服務刪減.對應公式(5),就是在矩陣中去掉不滿足服務情景屬性的行.
2.3.3 基于服務情景的無量綱化處理
為了消除量綱和數量級對服務情景的影響,需要對公式(5)中各個服務的服務情景屬性值進行無量綱化處理.本文依據服務情景屬性矩陣自身的特點,采用線性函數歸一化方法[13]將服務情景屬性值轉換到[0,1]的區間內,具體歸一化公式為:
(6)
在公式(6)中,v代表某個服務情景的屬性值,vmin與vmax分別代表某個服務情景的最小屬性值和最大屬性值.
公式(5)經過線性函數歸一化方法處理之后,得到服務情景的歸一化權值矩陣,用公式(7)表示.
(7)
2.3.4 基于服務情景評價的服務排序
為了從多個符合服務請求者約束型需求條件和偏好型需求條件的候選服務集中發現適合的QoS最優的Ad Hoc網絡服務,需要首先計算每個服務的綜合服務情景值,用公式(8)表示.
(8)
在公式(8)中,用v(si)來表示服務si的綜合服務情景值,用vij來表示服務si的某一個具體的服務情景屬性值,用wj來表示服務si的某個服務情景屬性值所對應的權重.在本文中,權重wj的和為1.
在公式(8)的基礎上,計算各個服務的綜合服務情景值并進行排序,得到最優的服務.
為了評價本文提出的SDSS服務發現方法的性能指標,本文在OMNet++[14]工具中仿真Ad Hoc網絡來進行實驗分析,分別與CSDM(文獻[6]提出的服務發現方法)和SSD(文獻[10]提出的服務發現方法)進行性能對比.仿真實驗參數如表1所示.

表1 仿真實驗參數Table 1 Simulation experimental parameters
在仿真實驗中,Ad Hoc網絡中的服務請求節點或服務提供節點隨機選擇,分別仿真了服務發現的查準率、時延、消息開銷與節點數量的關系.

圖2 服務發現的查準率與節點數量的關系Fig.2 Precision ratio of service discovery vs.number of nodes
從圖2可以看出,在三種Ad Hoc網絡服務發現方法中,CSDM方法的查準率不高,介于55%和63%之間,這是由于該方法依據關鍵詞的方式進行服務發現,無法對查詢的服務進行準確表達.同CSDM方法相比較,SSD方法的查準率要高出31%左右,這是由于該方法依據語義推理來執行服務發現過程,可以對請求者查詢的服務進行準確表達.與前面兩種方法相比,SDSS方法的查準率最高,原因是該方法在通過語義進行功能匹配的基礎上,對滿足功能匹配獲得的候選服務集,又進行了基于服務情景約束的服務篩選,從候選服務集中篩選掉了那些不滿足用戶服務情景約束的服務,在一定程度上提高了服務發現的查準率.

圖3 時延與節點數量的關系Fig.3 Latency vs.number of nodes
從圖3可以看出,伴隨著Ad Hoc網絡中節點個數的逐漸增長,SDSS、CSDM和SSD三種服務發現方法的時延也相應的不同程度增長,這是由于Ad Hoc網絡自身基于多跳的方式進行消息傳遞,伴隨著Ad Hoc網絡中節點數目的增長,消息傳播在Ad Hoc網絡中需要經歷的跳數也不同程度的增長,從而造成需要的時延也隨之增大.CSDM方法花費的時延最小,這是由于該方法利用基于關鍵詞的匹配模式進行服務發現,算法復雜度小,匹配效率最高.SSD方法的時延最大,這是由于該方法基于全部的服務信息(服務屬性、節點屬性和環境屬性)進行基于語義的推理,算法較為復雜.SDSS方法的時延比SSD方法有所減少,這是由于該方法只對功能屬性進行基于語義的服務匹配操作,在一定程度上提高了匹配效率.
從圖4可以看出,CSDM與SSD兩種方法的平均每秒消息數量這一指標相差并不明顯.與CSDM、SSD兩種方法比較,SDSS方法的平均每秒消息數量最小,這是由于該方法在基于功能匹配的基礎上,利用節點的服務情景屬性,對候選服務集進行了服務篩選,刪除了那些不滿足用戶服務情景的Ad Hoc網絡服務,從而降低了傳遞的消息數量.

圖4 消息數量與節點數量的關系Fig.4 Number of messages vs.number of nodes
在Ad Hoc網絡環境下,針對具有相同功能的服務,對用戶而言,它們在服務情景上的表現可能存在一定差異,而只有當服務能夠滿足用戶在這些方面的要求時,用戶才會考慮該服務所具有的功能.本文提出一種基于服務情景的Ad Hoc網絡服務發現方法,該方法不僅使得Ad Hoc網絡服務發現的查準率得到一定程度提高,服務發現的質量也得到了有效改善.