程 方,朱建虎
(重慶郵電大學(xué)通信寬帶網(wǎng)絡(luò)測試技術(shù)研究所,重慶400065)
目前,Web服務(wù)主要以簡單對象訪問(simple object access protocol,SOAP)協(xié)議為基礎(chǔ),將需要交互的信息和方法包裝成SOAP協(xié)議,通過超文本傳送(hypertext transfer protocol,HTTP)協(xié)議來傳輸,以此來完成信息的交互。但是這種基于SOAP協(xié)議的Web服務(wù)存在很多弊端,比如,會(huì)涉及大量的協(xié)議和標(biāo)準(zhǔn)(統(tǒng)稱為WS-*標(biāo)準(zhǔn)棧),這些協(xié)議和標(biāo)準(zhǔn)的嵌套將給開發(fā)帶來不必要的麻煩,一些自定義的方法也會(huì)使系統(tǒng)間的交互產(chǎn)生障礙,同時(shí),龐大的SOAP負(fù)載通過HTTP協(xié)議傳輸,也違背了HTTP協(xié)議設(shè)計(jì)的本意[1]。所以,這種復(fù)雜、重量級的 Web服務(wù)已經(jīng)不能滿足某些系統(tǒng)開發(fā)的需要。
隨著Web2.0的到來,RESTful Web服務(wù)開始大量出現(xiàn)。這種輕量級分布式的系統(tǒng)架構(gòu)充分利用了HTTP的語法語義,通過統(tǒng)一資源標(biāo)識(shí)符(uniform resource identifier,URI)來識(shí)別和定位資源[2],使系統(tǒng)具有可尋址性、連通性、無狀態(tài)性、統(tǒng)一接口等特點(diǎn),還可以低耦合其他分布式組件,使系統(tǒng)具有很好的交互性、伸縮性和可擴(kuò)展性。目前,RESTful Web服務(wù)已經(jīng)被一些大公司采用,比如谷歌、臉譜、雅虎等。
然而,對如何有效地匹配和發(fā)現(xiàn)RESTful Web服務(wù),許多學(xué)者都提出了自己的觀點(diǎn),但目前還沒有一個(gè)統(tǒng)一的標(biāo)準(zhǔn)[3]。文獻(xiàn)[4]提出了一種從語法層面上來描述現(xiàn)有RESTful Web服務(wù)的微格式,可以被機(jī)器識(shí)別;文獻(xiàn)[2]結(jié)合了Web應(yīng)用程序描述語言(Web application description language,WADL)和學(xué)習(xí)本體機(jī)制,提出一種組合方法,從語法和語義上對RESTful Web服務(wù)進(jìn)行了描述;文獻(xiàn)[5]在文獻(xiàn)[2]提供的語法和語義基礎(chǔ)上,通過將資源定義為描述、請求和響應(yīng)的集合來進(jìn)行匹配;文獻(xiàn)[6]從資源狀態(tài)轉(zhuǎn)換的角度,在功能層面上,提出了一種基于輸入、輸出、前提條件和效果(inputs,outputs,preconditions and effects,IOPE)的RESTful Web服務(wù)搜索匹配方法,該方法重點(diǎn)在于建立共同的資源模型和對資源狀態(tài)的統(tǒng)一描述;文獻(xiàn)[7]主要是提出了一種基于HTML文件,對RESTful Web服務(wù)進(jìn)行語法層面描述的 hRESTS微格式語言,hRESTS較WADL更為簡單。
綜合以上觀點(diǎn),為了能夠自動(dòng)有效地發(fā)現(xiàn)用戶所需要的RESTful Web服務(wù),本文在hRESTS和MicroWSMO微格式的基礎(chǔ)上,通過一種有效算法,構(gòu)建了一套R(shí)ESTful Web服務(wù)匹配模型,該模型可以將服務(wù)請求方的請求條件和服務(wù)提供方提供的參數(shù)進(jìn)行語義上的匹配來發(fā)現(xiàn)服務(wù),實(shí)驗(yàn)證明,該服務(wù)匹配模型較現(xiàn)有匹配模型在效率指標(biāo)方面有較大提高。
基于SOAP協(xié)議的Web服務(wù),通常是使用WSDLs(Web service description languages)來描述操作,而RESTful Web服務(wù)往往是由人們可以閱讀的非規(guī)范文件來進(jìn)行描述,比如網(wǎng)頁[8]。對于SUN Microsystems提出的WADL,雖然為RESTful Web服務(wù)的操作定義了生成URI的方式,使用XML結(jié)構(gòu)定義(XML schema,XSD)描述服務(wù)的輸入和輸出信息,但是,WADL提供的描述只是語法層面的,不能進(jìn)行語義標(biāo)注。相對于WADL來說,hRESTS提供了一種輕量級描述RESTful Web服務(wù)的機(jī)制,能夠把RESTful Web服務(wù)的文本信息,用HTML網(wǎng)頁的形式來描述,包括服務(wù)的一系列操作(operation)及與這些操作相關(guān)的輸入(inputs)、輸出(outputs)、方法(method)等信息[9],這些描述既可以讓人理解,也可以讓機(jī)器識(shí)別。
但是,hRESTS僅能夠?qū)eb服務(wù)提供語法層面的描述,無法涉及到語義層面,會(huì)嚴(yán)重影響服務(wù)的查全率和查準(zhǔn)率,故本文引入了MicroWSMO微格式[10]。MicroWSMO 是在SAWSDL的基礎(chǔ)上對hRESTS的擴(kuò)展,對RESTful Web服務(wù)進(jìn)行了4個(gè)語義層面的描述。
圖1給出了基于本體的RESTful Web服務(wù)發(fā)現(xiàn)框架,該方法的基本思想是提取互聯(lián)網(wǎng)中RESTful Web服務(wù)的HTML文檔,通過hRESTS微格式處理,生成服務(wù)語法層面的描述,之后用MicroWSMO微格式對服務(wù)中的資源進(jìn)行語義標(biāo)注。而服務(wù)請求者輸入的請求條件,經(jīng)過用戶查詢處理,抽取其中與服務(wù)操作相關(guān)的概念,如輸入、輸出、操作方法等。二者通過匹配引擎來匹配,發(fā)現(xiàn)滿足請求條件的REST-ful Web服務(wù),通過提取器提取滿足匹配要求的服務(wù),提供給用戶。
圖1 RESTful Web服務(wù)匹配模型Fig.1 Matching model for RESTful Web services
通過hRESTS微格式對RESTful Web服務(wù)的HTML文檔信息進(jìn)行描述,包括了服務(wù)的名稱、操作及操作的輸入、輸出和方法等信息。RESTful Web服務(wù)是面向資源的服務(wù),主要依靠HTTP提供的方法對資源進(jìn)行操作,所以,對RESTful Web服務(wù)的匹配可以理解為對服務(wù)操作的匹配。
網(wǎng)絡(luò)中提供的RESTful Web服務(wù)的操作定義為Sp=〈In,Ou,Op,Rws,Mt〉,In,Ou,Op,Rws,Mt分別表示操作的輸入、輸出、內(nèi)容、所在服務(wù)和操作方法。與之對應(yīng),服務(wù)請求者輸入的請求操作可以描述為Sr=〈In',Ou',Op',Rws',Mt'〉,2 個(gè)操作的相似度可以定義為
(1)式中:Simop,Simin,Simou,Simrws,Simmt分別為計(jì)算操作內(nèi)容、輸入、輸出、所在服務(wù)和操作方法相似度。α,β,γ,δ為可調(diào)節(jié)的權(quán)重,權(quán)重的大小根據(jù)該參數(shù)的相似度對匹配影響的大小決定,且,α+β+γ+δ =1,0 ≤ α,β,γ,δ≤1。
由于本體分類較為廣泛,本文只涉及其中的領(lǐng)域本體,領(lǐng)域本體是特定領(lǐng)域內(nèi)的一組術(shù)語及其關(guān)系的定義,開發(fā)比較復(fù)雜,需要相關(guān)領(lǐng)域?qū)<业膮⑴c[11],本文將不會(huì)涉及領(lǐng)域本體庫的開發(fā)內(nèi)容,只關(guān)注本體概念在服務(wù)發(fā)現(xiàn)中的應(yīng)用。在本體的基礎(chǔ)上,RESTful Web服務(wù)經(jīng)過MicroWSMO微格式的描述,服務(wù)中的參數(shù)有了語義解釋,服務(wù)請求者輸入的請求條件經(jīng)過解析,也有了相應(yīng)的語義概念。通過領(lǐng)域本體中2個(gè)概念之間的語義匹配度來計(jì)算操作的相似度。
根據(jù)領(lǐng)域本體的概念,可以將某領(lǐng)域中的概念描述成分類樹,圖2給出了一個(gè)由WoT(Web of things)中的資源概念描述成的分類樹。圖2中,樹上的每個(gè)節(jié)點(diǎn)表示一個(gè)概念,概念之間的關(guān)系距離表示路徑。
圖2 WoT資源概念分類樹Fig.2 WoT resources concept classification tree
分類樹中相鄰2個(gè)節(jié)點(diǎn)(Ci,C'i)之間的距離值Dis〈Ci,C'i〉=1 - Sim〈Ci,C'i〉。相鄰概念(Ci,C'i)的相似度 Sim〈Ci,C'i〉需根據(jù)概念的類型確定,例如:如果(Ci,C'i)為2個(gè)數(shù)值屬性概念,相似度定義為[12]
(Ci,C'i)為2個(gè)區(qū)間屬性概念,則定義為[13]
(3)式中:Ci=[ai,a'i],C'i=[bi,b'i]是描述第i個(gè)區(qū)間型屬性規(guī)范化后的區(qū)間值,ai,bi分別為 Ci,C'i第i個(gè)區(qū)間型屬性規(guī)范化后區(qū)間值的下限,a'i,b'i為該區(qū)間值的上限。
根據(jù)領(lǐng)域本體,在分類樹中尋找請求本體概念和目標(biāo)本體概念的流程如圖3所示。
圖3 計(jì)算分類樹中概念相似度的流程圖Fig.3 Flowchart about computing similarity between concepts in classification tree
RESTful Web服務(wù)充分利用了HTTP操作方法(GET,PUT,POST,DELETE),但由于服務(wù)開發(fā)者和服務(wù)請求者對這些操作方法上理解不同,會(huì)給服務(wù)匹配造成誤導(dǎo)。所以,為了能夠更加全面地發(fā)現(xiàn)用戶所需要的RESTful Web服務(wù),預(yù)先對服務(wù)請求用戶的要求Ma和服務(wù)操作方法Mb的相似度做了定義,如表1所示。
表1 方法匹配相似度Tab.1 Method matching similarity
每個(gè)RESTful Web服務(wù)都包含一個(gè)或多個(gè)操作,所以對服務(wù)整體的相似度定義為
為了能夠保證匹配效率,對操作匹配相似度設(shè)定一個(gè)閥值θ,如果Simrp(Sp,Sr)<θ將直接去除,n為滿足要求的RESTful Web服務(wù)操作數(shù)。
為了驗(yàn)證該匹配模型,在實(shí)驗(yàn)室開發(fā)的REST-ful Web服務(wù)基礎(chǔ)上,模擬26個(gè)類似RESTful Web服務(wù),其中,有104個(gè)操作。通過 hRESTS和MicroWSMO描述,獲取其中的操作輸入、輸出,內(nèi)容、所在服務(wù)和操作方法信息,并將信息存入數(shù)據(jù)庫中。表2和表3分別為hRESTS和MicroWSMO描述RESTful Web服務(wù)的簡單例子。
表2 hRESTS服務(wù)實(shí)例Tab.2 Service instance of hRESTS
表3 MicroWSMO服務(wù)實(shí)例Tab.3 Service instance of MicroWSMO
由于沒有查找到與本實(shí)驗(yàn)相關(guān)的領(lǐng)域本體庫,所以,需要人為建立領(lǐng)域本體庫。為了盡量避免建庫過程中的主觀因素,需綜合考慮目前建立領(lǐng)域本體庫的主流方法和服務(wù)開發(fā)中參數(shù)的特點(diǎn)。之后,將建好的領(lǐng)域本體庫映射到分類樹中,對分類樹的相鄰節(jié)點(diǎn)按照類別根據(jù)不同的方法來計(jì)算相似度,進(jìn)而確定節(jié)點(diǎn)之間的距離,對于現(xiàn)在還沒有很好的方法來計(jì)算相似度的相鄰節(jié)點(diǎn),就人為確定其距離。再把分類樹存儲(chǔ)到數(shù)據(jù)庫,每個(gè)概念由該節(jié)點(diǎn)編號(hào)、層編號(hào)和父節(jié)點(diǎn)編號(hào)唯一確定。
輸入查詢信息,統(tǒng)計(jì)本文模型的查全率和查準(zhǔn)率,默認(rèn) α,β,γ,δ值均為0.25,閥值為0.04。
在Visual Studio 2010開發(fā)平臺(tái)上,通過C#語言編程,將查詢條件中的概念和服務(wù)中概念對應(yīng)到分類樹,計(jì)算相似度,最后將匹配服務(wù)提取出來。本實(shí)驗(yàn)同時(shí)也模擬設(shè)計(jì)了基于關(guān)鍵字和基于WADL的匹配模型,此處不再詳細(xì)描述。
圖4和圖5分別是基于操作相似度和服務(wù)整體相似度統(tǒng)計(jì)而來,由于現(xiàn)有模型匹配的特點(diǎn),沒有進(jìn)行操作相似度的比較。從圖4可以看出,在查全率方面,本文模型比關(guān)鍵字模型有較大的提高,而查準(zhǔn)率方面不及關(guān)鍵字模型,從圖5中看出,在查全率方面,本文模型最高;而在查準(zhǔn)率方面,基于WADL模型和本文模型都比關(guān)鍵字模型低。無論是操作相似度,還是服務(wù)整體相似度,本文模型都比關(guān)鍵字模型低的原因是前者主要關(guān)注的是語法、語義上的匹配,而不是概念之間的精確匹配,所以,在提高查全率的同時(shí),會(huì)對查準(zhǔn)率造成一定的損失,但本文模型在查準(zhǔn)率方面較基于WADL模型還是有了較大的提高。
圖4 操作相似度效率指標(biāo)對比Fig.4 Efficiency index contrast of operation similarity
本文模型是在hRESTS和MicroWSDL微格式的基礎(chǔ)上,運(yùn)用一種有效算法,并結(jié)合領(lǐng)域本體,將RESTful Web服務(wù)和請求條件描述為服務(wù)名稱、操作及操作的輸入、輸出和方法信息,再進(jìn)行匹配,最后提取出匹配的RESTful Web服務(wù)。但是,本文中的算法在模擬實(shí)驗(yàn)時(shí),只是對α,β,γ,δ和θ人為設(shè)定了初始值,而未對其做深入研究,因?yàn)檫@些權(quán)重和閥值的大小對匹配的影響很大,后續(xù)將對權(quán)重和閥值進(jìn)一步研究。
圖5 服務(wù)整體相似度效率指標(biāo)對比Fig.5 Efficiency index contrast of overall service similarity
[1]王非,蔡勇,賀志軍.RESTful Web Services在信息系統(tǒng)中的應(yīng)用[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2013,22(2):221-225.WANG Fei,CAI Yong,HE Zhijun.RESTful Web Services Applied in Information System[J].Computer Systems&Applications,2013,22(2):221-225.
[2]LEE Yongju,KIM Changsu.Building Semantic Ontologies for RESTful Web Services[C]//Proc of the Computer Information Systems and Industrial Management Applications(CISIM).Piscataway,United States:IEEE Computer Society,2010:383-386.
[3]PAUTASSO C,ZIMMERMANN O,LEYMANN F.RESTful Web Services vs.Big Web services:Makingthe Right Architectural Decision[C]//Proc of the 17th International Conference on World Wide Web.New York,U-nited States: Association forComputing Machinery,2008:805-814.
[4]JOHH D,RAJASREE M S.A Framework for the Description,Discovery and Composition of RESTful Semantic Web Services[C]//Proc of the 2nd International Conference on Computational Science,Engineering and Information(CCSEIT).New York,United States:Association for Computing Machinery,2012:88-93.
[5]LEE Yongju,KIM Changsu.A Learning Ontology Method for RESTful Semantic Web Services[C]//Proc of the IEEE 9th International Conference on Web Services(ICWS).Piscataway,United States:IEEE Computer Society,2011:251-258.
[6]LI Nan,CAI Hongming.Functionality Semantic Indexing and Matching Method for RESTful Web Services Based on Resource State Descriptions[C]//Proc of the 2nd International Workshop on Computer Science and Engineering(WCSE).Piscataway,United States:IEEE Computer Society,2009:371-375.
[8]MALESHKOVA M,PEDRINACI C,DOMINGUE J.Supporting the Creation of Semantic RESTfulService Descriptions[C]//Proc of the 3rd International Workshop on Service Matchmaking and Resource Retrieval in the Semantic Web(SMR2).Netherlands:Sun SITE Central Europe CEUR-WS,2009:525
[9]SCHULTE S,LAMPE U,ECKERT J,et al,LOG4SWS.KOM:Self-Adapting Semantic Web Service Discovery for SAWSDL[C]//Proc of the 6th World Congress on Services.Piscataway,United States:IEEE Computer Society,2010:511-518.
[10]KOPECKY J,VITVAR T,F(xiàn)ENSEL D.Microwsmo:Semantic Description of Restful Services[EB/OL].[2014-01-13].http://wsmo.org/TR/d38/v0.1/20080219/d38v0120080219.pdf.
[11]賀超波,陳啟買.基于本體的Web服務(wù)發(fā)現(xiàn)方法研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(7):1421-1423.HE Chaobo,CHEN Qimai.Study on approach for web service discovery based on ontology[J].Computer Engineering and Design,2010,31(7):1421-1423.
[12]侯麗娟,李蜀瑜.一種基于情境的語義Web服務(wù)發(fā)現(xiàn)方法[J].計(jì)算機(jī)應(yīng)用與軟件,2011,28(1):154-156.HOU Lijuan,LI Shuyu.A context-based semantic Web service discovery method[J].Computer Application and Software,2011,28(1):154-156.
[13]李春梅,蔣運(yùn)承.具有QoS約束的語義web服務(wù)發(fā)現(xiàn)的研究[J].計(jì)算機(jī)科學(xué),2007,34(6):116-121.LI Chunmei,JIANG Chengyun.Study on semantic Web services discovery with QoS constraint[J].Computer Science,2007,34(6):116-121.