李武智,張 斌
(解放軍信息工程大學(xué)電子技術(shù)學(xué)院河南省信息安全重點(diǎn)實(shí)驗(yàn)室,河南鄭州450004)
Web服務(wù)技術(shù)隨著互聯(lián)網(wǎng)特別是Web應(yīng)用技術(shù)的發(fā)展而出現(xiàn)的,作為一種新的Web應(yīng)用模式,具有簡單、跨平臺(tái)、松耦合、分布式、使用標(biāo)準(zhǔn)規(guī)范和高度可集成等特性[1]。它能夠在各種異構(gòu)平臺(tái)的基礎(chǔ)上構(gòu)建一個(gè)通用的、平臺(tái)無關(guān)的技術(shù)層,使各種不同平臺(tái)的系統(tǒng)能方便地實(shí)現(xiàn)連接與集成,從而確定了其主流地位。
單個(gè)Web服務(wù)可能只提供一個(gè)具體的功能,而將多個(gè)Web服務(wù)進(jìn)行有機(jī)組合將能夠完成一系列功能復(fù)雜的任務(wù)[2]。這種特點(diǎn)可使更多的 Web服務(wù)以組合的方式呈現(xiàn),因此服務(wù)組合成為Web服務(wù)發(fā)展的熱點(diǎn)。而服務(wù)組合時(shí)要求Web服務(wù)應(yīng)能夠動(dòng)態(tài)地發(fā)現(xiàn)可調(diào)用的其它Web服務(wù)。但現(xiàn)有服務(wù)發(fā)現(xiàn)技術(shù)很難從龐大的Web服務(wù)注冊(cè)庫中發(fā)現(xiàn)滿足服務(wù)請(qǐng)求者的服務(wù)。因此,Web服務(wù)發(fā)現(xiàn)成為Web服務(wù)組合過程中研究的重點(diǎn)。
盡管目前已經(jīng)開展了針對(duì)服務(wù)組合過程中服務(wù)發(fā)現(xiàn)問題的研究,形成了多種服務(wù)發(fā)現(xiàn)方法。然而這些方法在解決服務(wù)發(fā)現(xiàn)的動(dòng)態(tài)及安全問題時(shí)還面臨很多挑戰(zhàn)。如基于UDDI[3]的服務(wù)發(fā)現(xiàn)僅支持關(guān)鍵字的匹配,服務(wù)發(fā)現(xiàn)的效果差[4-5];基于語義的 Web服務(wù)發(fā)現(xiàn),通過語義描述服務(wù)的功能進(jìn)行匹配,而忽視了服務(wù)參與方上下文知識(shí)的表示,動(dòng)態(tài)適應(yīng)能力不足[6-8];文獻(xiàn)[9]將基于角色的訪問控制用于服務(wù)發(fā)現(xiàn)階段,角色信息通過訪問控制策略來解決服務(wù)發(fā)現(xiàn)的安全問題,存在角色管理復(fù)雜、服務(wù)發(fā)現(xiàn)動(dòng)態(tài)性差等不足;文獻(xiàn)[10-12]雖然將上下文用于服務(wù)發(fā)現(xiàn),但其從廣義理解出發(fā),將服務(wù)發(fā)現(xiàn)所需信息都看作上下文,未具體考慮服務(wù)上下文。
因此,本文根據(jù)服務(wù)組合時(shí)服務(wù)發(fā)現(xiàn)的動(dòng)態(tài)需求,在利用語義語言對(duì)服務(wù)描述的基礎(chǔ)上利用服務(wù)上下文信息提出一種基于服務(wù)上下文的服務(wù)發(fā)現(xiàn)機(jī)制。
服務(wù)發(fā)現(xiàn)通過對(duì)用戶的服務(wù)請(qǐng)求和注冊(cè)在服務(wù)庫中服務(wù)進(jìn)行便于發(fā)現(xiàn)的描述,并依據(jù)匹配算法對(duì)注冊(cè)服務(wù)進(jìn)行匹配,最后從所發(fā)現(xiàn)的服務(wù)中選擇最佳服務(wù)。
對(duì)服務(wù)進(jìn)行便于發(fā)現(xiàn)的描述需要一種服務(wù)描述語言,本文采用 OWL-S[13]來描述 Web服務(wù)。OWL-S是一個(gè)用OWL描述Web服務(wù)本體的語言,包括3種基本元素:profile服務(wù)、model服務(wù)和grounding服務(wù)。Profile服務(wù)描述服務(wù)的基本信息。它向查詢服務(wù)的請(qǐng)求者提供服務(wù)的抽象描述,從而使其能夠判斷該服務(wù)是否滿足需要。Model服務(wù)是用來描述服務(wù)的內(nèi)部過程。Grounding服務(wù)是用來描述如何訪問服務(wù)。OWL-S為 Web服務(wù)提供了一系列核心的語言結(jié)構(gòu),使服務(wù)能以一種無二義性的、計(jì)算機(jī)易讀的語言來表達(dá)Web服務(wù)的概念和作用。其從語義的角度描述Web服務(wù),主要優(yōu)點(diǎn)是引進(jìn)本體語言描述服務(wù)的功能和作用,并支持對(duì)服務(wù)組合上下文的描述,并且OWL-S描述上下文時(shí)易于知識(shí)共享、具有更強(qiáng)的表達(dá)能力,可以使用本體語言提供的推理機(jī)制進(jìn)行上下文推理并便于知識(shí)重用。
服務(wù)發(fā)現(xiàn)是通過服務(wù)請(qǐng)求與現(xiàn)有注冊(cè)服務(wù)的匹配來實(shí)現(xiàn)。本文通過對(duì)上下文信息中的服務(wù)上下文匹配,提出一種基于服務(wù)上下文的服務(wù)發(fā)現(xiàn)算法 (a context-based web service discovery algorithm,CBWSDA)。
在Web服務(wù)組合過程中利用上下文信息進(jìn)行服務(wù)選擇。上下文信息是描述環(huán)境狀態(tài)、資源信息、用戶需求等影響服務(wù)的一些屬性及屬性的值,可分為用戶上下文、資源上下文和服務(wù)上下文。本文主要考慮服務(wù)上下文。
服務(wù)上下文是指描述Web服務(wù)的當(dāng)前狀態(tài)和執(zhí)行約束,包括允許的服務(wù)實(shí)例、當(dāng)前已經(jīng)初始化的服務(wù)實(shí)例、服務(wù)實(shí)例的預(yù)期完成時(shí)間、組合服務(wù)中的前驅(qū)服務(wù)和后繼服務(wù)、服務(wù)自身性能。服務(wù)上下文的自身性能包括:可靠性、可用性、授權(quán)屬性、響應(yīng)時(shí)間、服務(wù)價(jià)格、正確執(zhí)行率等。
服務(wù)匹配是Web服務(wù)發(fā)現(xiàn)的關(guān)鍵,匹配度是服務(wù)請(qǐng)求和服務(wù)之間的相似程度。在上下文匹配中,采用本體樹狀結(jié)構(gòu)的方法建立服務(wù)上下文的本體樹進(jìn)行匹配,利用服務(wù)上下文在本體樹節(jié)點(diǎn)的位置計(jì)算匹配度,并按上下文匹配度大小將匹配結(jié)果以有序方式排列。
將每個(gè)服務(wù)上下文信息記錄為一個(gè)索引項(xiàng),其中包括服務(wù)標(biāo)識(shí)、服務(wù)名、輸入或輸出,以及響應(yīng)時(shí)間、授權(quán)屬性等。本文利用OWL-S語義描述服務(wù)上下文,依據(jù)服務(wù)上下文的本體概念的上下級(jí)關(guān)系來建立服務(wù)上下文本體樹,將服務(wù)上下文索引項(xiàng)表示為本體樹的節(jié)點(diǎn)。在服務(wù)上下文本體樹中,節(jié)點(diǎn)對(duì)應(yīng)各個(gè)服務(wù)上下文索引項(xiàng),邊表示各上下文之間的語義關(guān)系,并且樹狀結(jié)構(gòu)的各節(jié)點(diǎn)可隨著服務(wù)上下文信息的添加、刪除等動(dòng)態(tài)變化。利用服務(wù)上下文感知其在服務(wù)上下文本體樹中語義相似的服務(wù)索引項(xiàng)的節(jié)點(diǎn),并通過相似服務(wù)上下文在本體樹的節(jié)點(diǎn)位置結(jié)構(gòu)來確定服務(wù)的匹配度。如圖1所示,舉例說明旅行交通服務(wù)上下文本體樹的建立及服務(wù)發(fā)現(xiàn)過程。圖中旅行交通服務(wù)的飛機(jī)服務(wù)受天氣服務(wù)及景點(diǎn)服務(wù)等上下文因素影響。

圖1 旅行交通服務(wù)上下文本體樹
(1) “機(jī)票服務(wù)”的名稱及內(nèi)容分別由OWL-S服務(wù)profile中Service Name和Text Description描述。“機(jī)票服務(wù)”的OWL-S描述:
</owl:Ontology>
<profile:Profilerdf:ID="AirTicket_SEARCH _PROFILE"><profile:serviceName xml:lang="en">
"AirTicket"search service
</profile:serviceName>
<profile:textDescription xml:lang="en">
This service supply aproperties of a given"Air Ticket",including its price.
</profile:textDescription>
<profile:hasInput rdf:resource="#_AirTicket/>
<profile:hasOutput rdf:resource="# _servicecontext"/>
(2)本體可以通過帶標(biāo)記的有向樹來表示,節(jié)點(diǎn)描述為服務(wù)上下文索引項(xiàng),根據(jù)本體概念的繼承關(guān)系從大到小建樹。如圖中 “機(jī)票服務(wù)”到 “飛機(jī)服務(wù)”的連線表示子類和父類之間的繼承關(guān)系。
(3)通過比較 “機(jī)票服務(wù)”的語義描述和樹中節(jié)點(diǎn)的本體描述中服務(wù)名稱及內(nèi)容的繼承關(guān)系在樹中確立其節(jié)點(diǎn)位置。
(4)以圖中新添加節(jié)點(diǎn) “機(jī)票服務(wù)”與 “飛機(jī)服務(wù)”、“火車服務(wù)”為例比較,借鑒文獻(xiàn) [14]計(jì)算匹配度大小的方式,定義服務(wù)上下文匹配度M如下

式中:ai、aj分別對(duì)應(yīng)圖中相比較的兩個(gè)服務(wù)上下文索引項(xiàng),如m火車和n機(jī)票分別表示它們?cè)诒倔w樹的節(jié)點(diǎn)深度,s火車和d機(jī)票分別表示這兩個(gè)節(jié)點(diǎn)相對(duì)其最近的共同祖先“按天氣服務(wù)”的深度,l按天氣表示 “機(jī)票服務(wù)”和 “火車服務(wù)”最近的共同祖先的深度等。可計(jì)算得M火車=2/7、M飛機(jī)=6/7,則M火車<M飛機(jī)。同時(shí)其匹配數(shù)值大小在 [0,1]之間,且0表示不匹配,1表示完全匹配。所計(jì)算的M數(shù)值越大,表示兩個(gè)相關(guān)服務(wù)上下文的匹配度越高。因?yàn)闈M足低匹配度的可選服務(wù)數(shù)量相對(duì)較多,為節(jié)約資源及時(shí)間,定義一個(gè)閥值δ表示服務(wù)匹配的最小匹配度,其初值由服務(wù)管理者根據(jù)服務(wù)數(shù)量折中選取,用戶可依需求自行設(shè)置。當(dāng)M≥δ時(shí),表示服務(wù)上下文匹配成功,將服務(wù)上下文的索引項(xiàng)按服務(wù)的上下文匹配度大小為服務(wù)請(qǐng)求者提供一個(gè)降序排列的服務(wù)列表。如果M<δ時(shí),則不顯示所匹配的服務(wù),服務(wù)將被淘汰,繼續(xù)匹配其它服務(wù)。
這種服務(wù)匹配方法具有以下優(yōu)勢(shì):將服務(wù)上下文匹配度作為服務(wù)選擇的重要依據(jù),使得匹配度較高的服務(wù)被選中的概率較大;服務(wù)上下文各節(jié)點(diǎn)動(dòng)態(tài)變化,服務(wù)可選列表依匹配度實(shí)時(shí)更新,確保新加入滿足條件的服務(wù)可被選中。
根據(jù)2.2節(jié)服務(wù)上下文匹配的方法,本文提出一種基于服務(wù)上下文的服務(wù)發(fā)現(xiàn)算法CBWSDA,該算法的基本思想是通過輸入語義描述的服務(wù)集信息及服務(wù)請(qǐng)求的服務(wù)上下文信息SC、服務(wù)上下文匹配度計(jì)算函數(shù)M以及最小匹配度閥值δ,在生命周期內(nèi)經(jīng)過上下文匹配后,輸出匹配度降序排列的服務(wù)信息列表L或服務(wù)匹配失敗信息。因此,本文提出CBWSDA算法如下:
輸入:服務(wù)集信息及服務(wù)請(qǐng)求的服務(wù)上下文信息SC、時(shí)間周期為T、上下文匹配度計(jì)算函數(shù)M以及最小匹配度δ。
輸出:服務(wù)信息列表L或失敗信息。
Algorithm
1 begin
2 set result(L)=null,sc∈SC;
3 t=0,M=δ;
4 while(t<=T)
5 Create SCOntologyTree()//創(chuàng)建服務(wù)上下文本體樹
6 while(SC≠ )do
7 {
8 for each sc∈SC;
9 semantics describe SC;
10 nodes= (all constitute of SC);//各節(jié)點(diǎn)由服務(wù)上下文索引項(xiàng)組成
11 Traverse (SCOntologyTree)
12 for all sc∈nodes;
13 find (sc.length (),sc.depth ());//查找相關(guān)各節(jié)點(diǎn)的距離、深度
14 count Match=M;//使用式 (1)計(jì)算服務(wù)上下文匹配度
15 if(M>=δ)
16 {
17 add(sc)to L;//添加選擇的對(duì)應(yīng)M的服務(wù)對(duì)列表L
18 sort match(M);//按服務(wù)上下文匹配度對(duì)列表L進(jìn)行排序
19 return (L);
20 else
21 return false;
22 }
23 end
24 }
25 end
本文對(duì)基于服務(wù)上下文的服務(wù)發(fā)現(xiàn)機(jī)制進(jìn)行了仿真實(shí)驗(yàn),實(shí)驗(yàn)?zāi)康娜缦拢孩俦容^CBWSDA算法與其他服務(wù)匹配算法在執(zhí)行效率上的差異。②比較CBWSDA算法與其他服務(wù)匹配算法在查準(zhǔn)率上的性能差異。
本文選取用于服務(wù)發(fā)現(xiàn)的LS(logic semantic)算法[15]與CBWSDA算法進(jìn)行比較分析,LS算法是基于語義的常用服務(wù)發(fā)現(xiàn),該算法中將服務(wù)匹配度分為4類:完全匹配、插拔匹配、包含匹配、匹配失敗。通過仿真實(shí)驗(yàn)比較兩種算法在執(zhí)行時(shí)間和查準(zhǔn)率上的差異。實(shí)驗(yàn)數(shù)據(jù)集來自O(shè)WL-S的服務(wù)檢索測(cè)試集owls-TC v4[16],該測(cè)試集包含了符合OWS-L標(biāo)準(zhǔn)且覆蓋了教育、醫(yī)療保險(xiǎn)、食品、旅行、通信、經(jīng)濟(jì)和軍事等7個(gè)應(yīng)用領(lǐng)域的服務(wù),選取其中50個(gè)服務(wù)作為實(shí)驗(yàn)所用服務(wù),使用OWL-S描述所選服務(wù),利用MATLAB軟件對(duì)算法進(jìn)行模擬實(shí)驗(yàn)。
實(shí)驗(yàn)方法和過程如下:
(1)對(duì)兩種服務(wù)發(fā)現(xiàn)算法定義一致的語義描述請(qǐng)求;
(2)以5個(gè)服務(wù)為基點(diǎn),數(shù)量每次增加5至50結(jié)束,共從owls-TC v4中選取10組Web服務(wù);
(3)利用MATLAB軟件分別通過兩種算法對(duì)每組數(shù)據(jù)進(jìn)行仿真實(shí)驗(yàn),共進(jìn)行20次匹配實(shí)驗(yàn);
(4)通過MATLAB軟件比較兩種算法在相同服務(wù)數(shù)量下,各次仿真實(shí)驗(yàn)的執(zhí)行時(shí)間和查準(zhǔn)率,并分析結(jié)果。
最終實(shí)驗(yàn)結(jié)果分析比較如圖2、圖3所示。

圖2 兩種算法執(zhí)行時(shí)間比較

圖3 兩種算法查準(zhǔn)率比較
實(shí)驗(yàn)結(jié)果表明,在相同服務(wù)數(shù)量下,兩種算法的響應(yīng)時(shí)間隨著服務(wù)數(shù)量的增加而增大,同時(shí)其都在服務(wù)請(qǐng)求者可接受范圍之內(nèi);但CBWSDA算法比LS算法響應(yīng)時(shí)間短,執(zhí)行效率高,能更好地滿足服務(wù)發(fā)現(xiàn)需要。
由圖3可知,在相同服務(wù)數(shù)量下,兩種算法查準(zhǔn)率隨著候選Web服務(wù)數(shù)量的增加而降低,但CBWSDA算法的查準(zhǔn)率降幅較小,其查準(zhǔn)率優(yōu)于LS算法的查準(zhǔn)率,能更好地滿足服務(wù)發(fā)現(xiàn)需求。
服務(wù)組合是當(dāng)今Web服務(wù)研究的熱點(diǎn),而服務(wù)組合過程中服務(wù)發(fā)現(xiàn)是服務(wù)組合的重點(diǎn),為解決服務(wù)組合的發(fā)現(xiàn)問題,本文提出了一種基于服務(wù)上下文的Web服務(wù)發(fā)現(xiàn)機(jī)制,通過OWL-S描述語言和服務(wù)匹配算法對(duì)服務(wù)的上下文進(jìn)行篩選,將符合上下文信息的Web服務(wù)按匹配度大小優(yōu)先返回給服務(wù)請(qǐng)求者,滿足服務(wù)組合過程中服務(wù)選擇的動(dòng)態(tài)性,并通過模擬實(shí)驗(yàn)證明了機(jī)制的有效性和可行性。下一步將深入研究服務(wù)組合過程中服務(wù)發(fā)現(xiàn)機(jī)制的安全問題。
[1]YANG Tao,LIU Jinde.Survey of web service:A service oriented distributed computing paradigm [J].Computer Applications,2004,24 (8):1-4 (in Chinese). [楊濤,劉錦德.Web Services技術(shù)綜述-一種面向服務(wù)的分布式計(jì)算模式 [J].計(jì)算機(jī)應(yīng)用,2004,24 (8):1-4.]
[2]XIA Haijiang,DENG Shuiguang,WU Zhaohui.Research and design of web services dynamic composition method [J].Computer Engineering and Design,2007,28 (6):1334-1337 (in Chinese).[夏海江,鄧水光,吳朝暉.Web服務(wù)動(dòng)態(tài)組合方法研究與設(shè)計(jì) [J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28 (6):1334-1337.]
[3]Luc Clement,Andrew Hately,Claus von Riegen,et al.Universal description discovery&integration [EB/OL].http://www.uddi.org/pubs/uddi_v3.htm,2004.
[4]QIU T,LI L,LI P.Web service discovery with UDDI based on semantic similarity of service properties [C].Xi’an:Proceedings of Third International Conference on Semantics,Knowledge and Grid,2007:454-457.
[5]ZHAO Song,WANG Hong,YAN Yi.Design and implementation of extending UDDI in workflow composed of web services[J].Computer Engineering and Design,2009,30 (1):216-218(in Chinese).[趙松,王紅,閻嫕.Web服務(wù)組合工作流中擴(kuò)展UDDI的設(shè)計(jì)與實(shí)現(xiàn) [J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30 (1):216-218.]
[6]CUI Hua,YING Shi,YUAN Wenjie,et al.Review of semantic web service composition [J].Computer Science,2010,37 (5):21-25(in Chinese).[崔華,應(yīng)時(shí),袁文杰,等.語義Web服務(wù)組合綜述 [J].計(jì)算機(jī)科學(xué),2010,37 (5):21-25.]
[7]QIU Tian,HU Xiaohui,LI Pengfei,et al.A semantic matchmaking system mechanism for web service discovery based on OWLS [J].Acta Electronica Sinica,2010,38 (1):42-47 (in Chinese).[邱田,胡曉惠,李鵬飛,等.基于OWL-S的服務(wù)發(fā)現(xiàn)語義匹配機(jī)制 [J].電子學(xué)報(bào),2010,38 (1):42-47.]
[8]HE Chaobo,CHEN Qimai.Study on approach for web services discovery based on ontology [J].Computer Engineering and Design,2010,31 (7):1421-1423 (in Chinese).[賀超波,陳啟買.基于本體的 Web服務(wù)發(fā)現(xiàn)方法研究 [J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31 (7):1421-1423.]
[9]HAN Jun,HUAI Xiaoyong,ZHAO Chen.Secure web services discovery method based on access control [J].Computer Engineering,2008,34 (7):137-141 (in Chinese).[韓雋,淮曉永,趙琛.一種基于訪問控制的安全Web服務(wù)發(fā)現(xiàn)機(jī)制 [J].計(jì)算機(jī)工程,2008,34 (7):137-141.]
[10]Maamar Z,Benslimane D,Narendra N.Why can context do for Web services[J].Communications of the ACM,2006,49 (12):98-103.
[11]WANG Yuxiang,QIAO Xiuquan,LI Xiaofeng,et al.Research on context-awareness mobile SNS service selection mechanism [J].Chinese Journal of Computers,2010,33(11):2126-2135 (in Chinese). [王玉祥,喬秀全,李曉峰,等.上下文感知的移動(dòng)社交網(wǎng)絡(luò)服務(wù)選擇機(jī)制研究 [J].計(jì)算機(jī)學(xué)報(bào),2010,33 (11):2126-2135.]
[12]TANG Lei,HUAI Xiaoyong,LI Mingshu.An approach to dynamic service composition based on context negotiation [J].Journal of Computer Research and Development,2008,45(11):1902-1910 (in Chinese).[唐磊,淮曉永,李明樹.一種基于上下文協(xié)商的動(dòng)態(tài)服務(wù)組合方法 [J].計(jì)算機(jī)研究與發(fā)展,2008,45 (11):1902-1910.]
[13]Martin D,Burstein M,Hobbs J,et al.OWL-S:Semantic markup for web services [EB/OL].http://www.w3.org/Submission/OWL-S,2008.
[14]Maguitman A G,Menczer F,Roinestad H,et al.Algorithmic detection of semantic similarity [C].Proceedings of the 14th International Conference on World Wide Web.New York:ACM Press,2005:107-116.
[15]Paolucci M,Kawamura T R.Semantic matching of Web service capabilities[C].Proc of the First Intl Semantic Web Conference,Italy:Sardinia,2002:333-347.
[16]Sem Web Central.OWLS-TC:An OWL-S service retrieval test collection [EB/OL].http://projects.semwebcentral.org/projects/owls-tc v4,2010.