孫瑨一
(華北電力大學,北京102206)
隨著服務計算技術(shù)的不斷發(fā)展,面向服務的體系結(jié)構(gòu)(SOA)已成為一個重要的研究熱點。SOA 是一種能夠有效組織和利用分布式資源的體系結(jié)構(gòu),具有松耦合、動態(tài)性和可重用等特點。其接口和協(xié)議開放、系統(tǒng)實現(xiàn)靈活等優(yōu)點,使SOA 可以作為未來各行業(yè)業(yè)務應用的實現(xiàn)方式。Web 服務是面向服務體系結(jié)構(gòu)的實現(xiàn)方法之一。它的服務相互獨立,并且獨立于服務實現(xiàn)技術(shù),可以同時接受多個請求并返回多個響應。大多數(shù)Web 服務是用Web 服務定義語言(WSDL)描述的,這是一種語法級描述[1]。它描述了Web 服務可以執(zhí)行的操作、與Web 服務交互時的消息類型以及基于XML 語言的信息交換的物理端口等內(nèi)容。Web 服務通常發(fā)布在服務注冊中心的注冊目錄中。服務發(fā)現(xiàn)的過程即為將用戶請求中的關(guān)鍵字與服務目錄中的關(guān)鍵字進行比較,找到滿足用戶需求的服務。
服務質(zhì)量(QoS)是指Web 服務的能力,目前它已經(jīng)成為Web 服務實用性的一個重要標準,用來區(qū)分不同層次的服務,例如服務的響應時間、最大并發(fā)量、訪問量等指標。QoS 為服務發(fā)現(xiàn)提供了可靠的依據(jù),是服務發(fā)現(xiàn)的重要組成部分。
Web 服務發(fā)現(xiàn)算法的發(fā)展可以分為三個階段。初始發(fā)現(xiàn)算法主要是基于關(guān)鍵字匹配,通過貪婪算法、蟻群算法等啟發(fā)式算法對存儲服務圖進行搜索。此發(fā)現(xiàn)方法簡單且易于部署。然而,這種發(fā)現(xiàn)方法缺乏語義描述,召回率低,不能滿足Web 服務快速發(fā)展的需要。在此基礎上,一些研究者通過本體語義的方式提高了服務發(fā)現(xiàn)算法的查全率和查準率[2]。但這種方法也有很大的缺點:本體庫必須由專業(yè)的專家來構(gòu)建,這將消耗大量的人力物力,從而導致缺乏一個國際公認的標準本體庫。之后,一些研究者利用數(shù)據(jù)挖掘技術(shù)從Web 服務描述文檔中提取語義內(nèi)容,并取得了一些研究成果。例如一些基于服務描述文本的聚類方法等。
同時,隨著Web 服務的發(fā)展,越來越多的服務能夠滿足相同用戶的需求。在服務發(fā)現(xiàn)過程中,不僅要求所選擇的服務滿足用戶的功能需求,還要考慮非功能性的服務質(zhì)量(QoS)需求?;赒oS 的Web 服務發(fā)現(xiàn)技術(shù)引起了眾多研究者的關(guān)注,特別是如何從具有不同QoS 屬性的高動態(tài)服務中,以有效的策略或方法在短時間內(nèi)為用戶選擇可靠的服務,已成為服務選擇領域的一個重要研究熱點。
一般來說,從機器學習的角度研究可見Web 服務的發(fā)現(xiàn)方法是一個重要的研究方向:將Web 服務的WSDL 文檔視為一種特殊的結(jié)構(gòu)化文檔,介紹了自然語言處理領域中的特征提取和聚類技術(shù),提出了一種LDA 的服務發(fā)現(xiàn)方法,并通過GRU 網(wǎng)絡對QoS 數(shù)據(jù)進行處理,最終為用戶返回準確且可信的結(jié)果。這些研究內(nèi)容為服務發(fā)現(xiàn)的研究提供了一些新的思路和方法。
本文提出了一種QoS 數(shù)據(jù)驅(qū)動的Web 服務發(fā)現(xiàn)方法。該方法將Web 服務的WSDL 文檔中的服務描述和Web 服務的QoS數(shù)據(jù)分別進行處理。如圖1 所示:
圖1 方法流程圖
主題模型是一種通過非監(jiān)督學習的方式對含有語義信息的文本集進行聚類的統(tǒng)計模型,起主要被用于自然語言處理中的語義分析和文本挖掘。隱含狄利克雷分布(LDA)是一種基于貝葉斯模型的被廣泛使用的主題模型,它將每篇文檔視做一組無序單詞組成的集合,并為每篇文檔生成屬于每個主題的概率分布。
本文提出的一種基于隱含狄利克雷分布(LDA)的服務聚類模型,將WSDL 文檔中的服務描述部分視為一種特殊的結(jié)構(gòu)化文檔,用戶對目標Web 服務的描述同樣視為一個文檔。通過該模型將這些文檔根據(jù)功能進行聚類,同類中的Web 服務總是為一類功能描述相近、功能相似的服務。因此,與用戶對目標Web服務描述相似度最高的若干個Web 服務,即可視為能夠用戶所需功能的Web 服務。
服務聚類過程的實現(xiàn)主要通過Python 中sklearn 工具包實現(xiàn)。其主要參數(shù)如表1 所示:
表1 LDA 模型參數(shù)設置
LDA 求解算法,即learning_method 取值為batch 而非online,是由于實驗所使用的樣本量較小,batch 方法即可滿足需求。
GRU 是循環(huán)神經(jīng)網(wǎng)絡(RNN)的一種,和長短期神經(jīng)網(wǎng)絡(LSTM)一樣,是為了解決長期記憶和反向傳播中的梯度等問題而提出的。相比與LSTM,GRU 能夠在保證訓練結(jié)果可信度不降低的情況下,大幅提高了訓練效率。
本文提出了一種基于循環(huán)門單元網(wǎng)絡(GRU)的服務發(fā)現(xiàn)算法,目的是從服務聚類過程中返回的若干個滿足用戶功能需求的服務中發(fā)現(xiàn)最可信的Web 服務返回給用戶。QoS 數(shù)據(jù)是從服務器網(wǎng)關(guān)中截取的一段時序性數(shù)列。QoS 數(shù)據(jù)有很多可選指標,例如可以從某Web 的響應時間判斷,更快的響應速度代表該服務有更高的質(zhì)量。綜合考慮,本文共選取了4 個服務質(zhì)量指標,并加權(quán)得出綜合服務質(zhì)量指數(shù),如表2 所示:
表2 服務質(zhì)量指標及權(quán)重
通過對原始QoS 數(shù)據(jù)進行歸一化、加權(quán)后,即可得到該服務隨時間的歷史綜合服務質(zhì)量指數(shù)序列。通過GRU 網(wǎng)絡對序列數(shù)據(jù)進行處理,神經(jīng)網(wǎng)絡模型會將其中蘊含的時序信息進行記憶,最終返回給用戶當前時刻,調(diào)用該服務的綜合服務質(zhì)量指數(shù),從而進一步提高服務發(fā)現(xiàn)的可信度。
本文分別從服務聚類模型和服務發(fā)現(xiàn)算法兩部分分別進行了實驗設計驗證。
針對服務聚類模型,為驗證服務聚類模型的可信度,本文從新浪微博“#疫情#”話題中通過selenium 自動化控制模塊,爬取了3800 條微博內(nèi)容作為測試集。實驗將整個數(shù)據(jù)集分為A組(900 條文本)、B 組(1400 條文本)和C 組(1500 條文本),通過三組對照實驗,消除誤差,從而驗證模型可行性。從聚類結(jié)果的pyLDAvis 視圖可以看出,該組內(nèi)所有文本被成功分為了8類,符合模型預設參數(shù),但是存在部分簇重疊現(xiàn)象。輪廓系數(shù)是一種常用的評價聚類結(jié)果的參數(shù),其取值范圍為[-1,1]。對聚類結(jié)果計算輪廓系數(shù)為:A 組0.53,B 組0.44,C 組0.52。從輪廓系數(shù)可以看出,該聚類模型具有較好的聚類效果,但存在簇重疊現(xiàn)象,有進一步改進的空間。
針對服務發(fā)現(xiàn)算法,為了驗證GRU 網(wǎng)絡的可行性,本文使用 了 RNN 循 環(huán) 網(wǎng) 絡 中 經(jīng) 典 的 公 開 數(shù) 據(jù) 集international-airline-passengers。GRU 網(wǎng)絡運行結(jié)果如圖2:
圖2 GRU 網(wǎng)絡運行結(jié)果
圖2 中綠色虛線為數(shù)據(jù)集中的真實數(shù)據(jù),紅色實線為GRU網(wǎng)絡模擬結(jié)果。從圖2 可以看出,本文構(gòu)建的GRU 網(wǎng)絡具有較高的可信度。
如何通過分類的思想提高服務發(fā)現(xiàn)的效率,在Web 服務的相關(guān)研究中是非常重要的。本文提出的QoS 數(shù)據(jù)驅(qū)動的Web 服務發(fā)現(xiàn)方法將服務描述文檔視為一種特殊的結(jié)構(gòu)化文本,通過LDA 模型將服務聚類,并通過GRU 網(wǎng)絡模型處理QoS 數(shù)據(jù),從而完成了整個服務發(fā)現(xiàn)的流程。服務聚類的實驗結(jié)果表明,該方法相較早期語法級服務發(fā)現(xiàn)方法,更加注重了語義信息,在實驗環(huán)境有較好的結(jié)果。在此基礎上,通過GRU 網(wǎng)絡處理QoS 數(shù)據(jù),使得最終服務發(fā)現(xiàn)結(jié)果包含了QoS 數(shù)據(jù)中的時序性數(shù)據(jù)。但是,該方法仍有不足之處,以上的實驗結(jié)果均是由模擬數(shù)據(jù)集得出,在真實環(huán)境的應用中,該方法面對真實的服務數(shù)據(jù)仍需要調(diào)整參數(shù)和優(yōu)化模型結(jié)構(gòu)。在以后的工作中,我們將繼續(xù)進行相關(guān)研究,探索該方法的優(yōu)化及改進。