李 蓉 ,何克清,劉建曉
(1.武漢大學 軟件工程國家重點實驗室,武漢 430072;2.華中師范大學 計算機學院,武漢 430079)
Web服務[1-2]是一種新型的軟件形態,它提供了一種與實現語言無關、實現平臺無關,便于互操作的軟件實體.隨著服務的數量越來越多,需要有自動高效的方法完成服務的查詢、推薦,這通常需要事先建立一個服務庫[3],讓不同的服務提供者以統一的方式在服務庫中注冊自己的服務,方便用戶查找.
為了有效地管理服務庫,會對服務庫中的服務按一定規則聚類,以縮小服務選擇時的查找范圍.現在已經提出了一些服務聚類的方法,文獻[4]提出了一種基于服務聚類的網格服務發現方法,該方法集中于服務的輸入,輸出和功能來計算服務間的相似性.該方法主要使用了層次聚類算法來實現服務聚類,但沒有考慮服務的QoS信息.文獻[5]通過聚類wsdl描述的服務來提高服務發現效率且運用了多種聚類算法,但沒有采用本體技術來描述服務,進而沒有從語義層次來實現服務聚類.文獻[6]提出了一種服務聚類方法來提高服務發現準確率.該方法通過服務功能和過程執行模型兩方面來實現服務聚類,采用Petri網作為Web服務過程描述的形式化工具來實現服務過程模型聚類.
本文作者所在的實驗室提出了用O-RGPS(Ontology-RoleGoalProcess/Service)本體元建模的方法對需求和服務建模,來幫助描述需求和服務.本文用該方法指導服務庫中的服務聚類,并按照用戶的常用需求進行主動的服務組合,實現服務庫中的服務預處理,以提高服務選擇的效率.
O-RGPS領域建模框架[7]是武漢大學軟件工程國家重點實驗室何克清教授帶領的科研團隊經歷多年的研究提出的一種在互聯網環境下的新型軟件技術體系,該框架能幫助用戶描述和組織用戶需求,提供與描述語言無關的統一的方法注冊和組織服務,并能幫助用戶從需求找到需要的服務.該方法作為ISO 19763互操作性元模型框架(Metamodel Framework of Interoperability,MFI)國際標準[7]的重要部分,已經獲得了肯定.
O-RGPS領域建模框架定義了領域建模所必須的4種模型元素:角色(Role)、目標(Goal)、流程(Process)和服務(Service)[8].其中角色層描述模型中組織、角色、扮演角色的參與者,及其之間的交互與協同.目標層描述用戶目標和目標間的關系,目標分為功能目標和非功能目標兩類.流程層描述流程和它的屬性及控制結構,流程可以分為原子流程和組合流程.服務層描述服務及其屬性,包括輸入消息、輸出消息、前置條件、后置條件、服務描述語言、訪問協議、異常、質量屬性等.同時采用本體對模型的實例進行語義標注,使語義查詢和推理成為了可能.角色、目標、流程和服務并不是孤立的.角色可以擁有目標,目標可以通過流程來完成,而流程可以通過服務來實現,各層之間的關系如圖1所示.

圖1 RGPS4層元模型關系圖Fig.1 4levels RGPS meta-model relationship

圖2 基于RGPS的按需服務選擇框架Fig.2 An on-demomd service selection framework based on RGPS
在O-RGPS領域建模框架指導下的按需服務選擇框架如圖2所示.該框架希望幫助服務請求者在系統中輸入服務需求,在領域工程師建立的領域本體和RGPS領域模型的幫助下,半自動地獲得服務提供者在服務注冊庫中注冊的服務.該框架可以分為需求獲取和分析、服務注冊和組織、服務選擇3個部分.
在需求獲取和分析部分,服務請求者通過基于Wiki 的需求獲取工具輸入需求,該工具SKLSEWiki已經實現[9].工具能夠按照多數用戶的選擇及領域工程師建立的領域本體推薦服務請求者可能忽略掉的需求.比如服務請求者輸入需求“定飛機票”,基于Wiki的需求獲取工具會按照領域本體推薦服務請求者輸入相關的QoS屬性如價格范圍、響應時間等;該工具還會把其他用戶推薦的目標推薦給使用者,如推薦“查詢天氣”和“查詢地圖”.該工具是以模板的方式獲得用戶輸入,這樣可以保證用戶輸入計算機能自動處理的信息并能輸入有效的角色、目標信息.
在服務注冊和組織部分服務提供者按照ISO 19763國際標準在基于MFI的服務注冊工具中注冊自己的服務,該工具S2r2 已經實現[10].注冊好的服務需要在基于領域模型的服務預處理工具中參考領域本體,按照RGPS 領域模型實現不同領域的服務聚類,形成RGPS組織的服務庫,這樣能更有效地根據用戶的RGPS需求模型在服務庫中進行服務選擇和服務推薦.
在服務選擇部分服務選擇工具能按照服務請求者建好的RGPS需求模型在RGPS組織的服務庫中選擇合適的服務,如果沒有剛好能滿足功能的服務,服務選擇工具會選定一些可以組合的服務,交由服務組合工具組合成合適的組合服務提交給服務請求者.這部分的主要理論和工具見文獻[11,12].
在獲得大量服務資源之后,需要把服務保存在服務庫中,為了加快服務的查詢,可以對服務庫中的服務進行預處理,使服務按一定方式組織起來.下面先定義一些基本概念.
定義1(領域本體)領域本體定義為DO=〈D,C,Role,Rule〉,其中D 表示領域,C 表示本體的概念集合,Role表示概念間的關系集合,Rule表示本體的規則集合.
定義2(關系函數)設有ci∈C,cj∈C,ci和cj之間具有關系r,r∈Role,則關系函數表示為Re(ci,cj)=r.
定義3(RGPS領域模型)RGPS 領域模型定義為RGPSDM =<RO,GO,PO,SO,Role,Rule>,其中RO 表示該領域的角色本體,GO 表示該領域的目標本體,PO 表示該領域的流程本體,SO 表示該領域的服務本體,Role表示各個本體之間的關系,Rule表示本體的推理規則.
定義4(QoS)QoS描述服務的QoS屬性信息,定義為QoS=0{QName,c,Value}n,其中n∈(0,+∞),c∈C.QName表示QoS屬性的名字,c表示該QoS屬性相關的概念,Value表示屬性的值.
定義5(原子服務)原子服務是不能再分解的服務,定義為AS=〈SName,Resource,Input,Output,Precondition,Effect,R,G,P,S,QoS〉,其中SName表示服務名字,Resource 表示服務可用的資源,Input表示服務的輸入,Output表示服務的輸出,Precondition表示服務的前提條件,Effect表示服務的后置條件,R、G、P、S分別表示服務的角色、目標、流程和服務的信息集合,QoS的表示見定義4.
定義6(組合服務)組合服務是可以繼續分解成原子服務的服務,定義為CS=〈SName,Resource,Input,Output,Precondition,Effect,R,G,P,S,QoS,ASC,ASR〉,其中前11項的定義和原子服務中的定義相同,ASC 表示組成服務的原子服務的集合,ASR 表示原子服務間的組合關系.
定義7(組合關系函數)設有as1,…,asi∈AS,(j>1),as1到asj之間具有關系r,r∈ASR,則關系函數表示為ASRe(as1,…,asi)=r.
在服務預處理中,首先要把相似的服務聚類,使服務選擇的范圍縮小,效率更高.我們的服務聚類基于領域本體和RGPS 領域模型,參與聚類的服務可以是原子服務也可以是組合服務.在服務聚類時主要考慮服務的SName、R、G、P、S 信息.因為希望注冊的服務按照領域和主要功能聚類,不一定要限定服務的輸入、輸出、執行條件、QoS值等屬性,而且即使功能相同的服務實際的輸入輸出形式可也能區別很大,對這些條件的限定放在服務組合中更有意義,所以在服務聚類時沒有考慮Input、Output、Precondition、Effect和QoS信息.
首先計算服務名稱SName與需要匹配的某個領域概念c的相似程度,然后在領域本體DO 中通過概念間的關系(如EquivalentClass、SubClassof、Part of、Instanceof等)找到和c相關聯的概念ci,…,cn,計算SName與ci,…,cn的相似度并乘以相應的權值wi,…,wn,得到的結果的最大值是SName與該領域的相似度,如果相似度大于某個閥值則可以判斷服務屬于該領域.
定義8(概念相似度)概念相似度表示輸入概念和本體中概念的相似程度,由公式(1)計算.

其中,c,ci…cn∈C,wi,…,wn是用戶定義的權值.
定義9(領域本體滿足) 設有閥值θ,當sim(sn,c)>θ時,概念sn屬于領域本體do.

simt可以根據WordNet計算.WordNet是一個非常全面的樹形結構的詞典,標明了詞語的語義關聯,主要的關系類型有同義關系和上下位關系.Word-Net中常用的計算語義距離的方法是計算詞語在樹中的路徑長度[13].詞語m1和m2的語義相似度為

其中,c1和c2是m1和m2在領域中的確切含義,cf是二者的父概念節點,cr是它們所在分類樹的根節點,dis(c1,cf)表示c1和cf在WordNet語義樹中的路徑長度.
定義10(RGPS相似度)RGPS相似度表示服務的RGPS屬性和RGPS 領域模型的相似程度,由公式(3)計算.

其中,s表示一個原子服務或組合服務,m表示RGPS領域模型,wr,wg,wp,ws分別表示用戶定義的rgps本體的權值,sr,sg,sp,ss表示服務的rgps屬性,mr,mg,mp,ms分別表示RGPS本體.
定義11(RGPS滿足)設有閥值η,當simm(s,m)>η時,服務s屬于RGPS領域模型m.

因為服務的RGPS屬性通常會用幾個詞或詞組來描述,siml可以利用VSM[14](vector space model)方法計算.VSM 是信息檢索領域廣泛使用的自然語言比較方法.我們抽取領域本體中的重要概念組成向量T=〈t1,t2,…,tn〉.定義向量S1=〈s11,s12,…,s1n〉和M1=〈m11,m12,…,m1n〉,s1i表示ti在S1中的權重,m1i表示ti在M1中的權重.權重可以由用戶定義也可以由ti在本領域的文檔中出現的頻率計算得到.ti在向量Sj中的權重可以由公式(4)計算.



算法1 基于領域的聚類算法
DRGPSSC(SCollection,C,DO,RGPSM)
輸入:SCollection為服務的集合{s1,s2,…,sn};C為領域中的概念;DO 為領域本體;RGPSM為RGPS領域模型
輸出:SCCollection 為聚類后的服務的集合{sc1,sc2,…,scj}
功能:找到符合領域本體和RGPS 領域模型的服務集合


原子服務的粒度一般比較小,往往不能直接滿足服務請求者的需求,這就需要動態地選擇和組合服務,使服務能提供更多的功能.由于有些服務常常被組合在一起提供給服務請求者,比如定火車票和查詢火車站的地圖常常被同時請求.這些常被組合的服務可用通過基于Wiki的需求獲取工具由用戶標注得到[15],也可以通過領域本體得到.可以事先把常被組合的服務組合在一起形成一個較大的組合服務,以提高服務的查找速度.
服務組合的方法本文使用基于粒子群的算法,從符合功能和輸入輸出要求的一組服務中選擇QoS最優的一個加入到服務流程中,保證了服務組合的效率和全局最優.選擇舒振等人[16]提出的混合粒子群算法進行服務組合,該方法利用群體自身信息、局部較優信息、全局較優信息和遺傳算法對粒子更新,有較好的搜索空間和搜索效率.組合后的服務的QoS值由參與組合的原子服務的QoS值計算得到,具體方法參見文獻[17].
為了檢驗本文提出的服務預處理方法,本文做了模擬實驗.實現環境包括2.53GHzCPU,2GB內存,WindowsXP操作系統,IE7瀏覽器,MySQL5.1數據庫服務器,Apache2.2 應用服務器,開發語言采用Java,使用JDK5.0Java虛擬機.

圖3 交通出行領域本體Fig.3 Traffic travel domain ontology
由于不容易找到大量的滿足實驗要求的實際服務,本文采用隨機生成模擬服務數據集的方式生成測試數據集.隨機生成的服務包含所有服務需要的描述信息但是沒有具體的功能,但用于測試和實際服務沒有區別.
測試針對交通出行領域,建立的交通出行領域本體如圖3 所示,采用劉瑋描述的RGPS 領域模型[18],生成500個模擬服務,取閥值θ=η=0.6.
實驗1 服務聚類方法比較
如Richi等人[19]提出了通過計算集合之間的相似度來實現服務聚類分方法,記為SWSC,本文的方法記為DRGPSSC,實驗比較這2種方法的聚類時間和準確率.實驗在服務個數分別為50、100、150、200、250、300 的情況下比較SWSC 和DRGPSSC方法的聚類時間如圖4所示,準確度如圖5所示.
由圖4可得在相同服務數量下,SWSC方法的服務聚類時間明顯比DRGPSSC方法少,這是因為SWSC方法在本體比較時只比較了概念的相似度,沒有考慮本體的推理關系,而DRGPSSC方法要比較領域本體和RGPS 本體5 個本體,時間自然比較多.

圖4 服務聚類時間比較圖Fig.4 Service clustering time comparison
由圖5可得在相同服務數量下,SWSC方法的服務聚類準確度比DRGPSSC低,這是因為SWSC方法只考慮了概念的相等關系,沒有考慮其他語義關系,而DRGPSSC方法考慮了語義關系.

圖5 服務聚類準確度比較圖Fig.5 Service clustering accuracy comparison
從實驗得知,DRGPSSC 方法用時比較長但準確率大大提高,由于DRGPSSC方法用于服務注冊庫中對服務的預處理,并不需要實時進行服務聚合運算,所有對時間的要求并不太高,因此仍然是一種可行的方法.
實驗2 服務預處理的結果比較
曾誠等人[20]完成的服務注冊系統中對服務使用領域本體和領域本地本體進行標注,以方便服務選擇,該方法記為DRLSP,本文的服務預處理方法記為DRGPSSP.實驗比較通過這2中方法處理后的服務的平均查詢時間和準確率.實驗在候選服務個數分別為100、200、300、400、500 的情況下,取30個不同的查詢值,比較DRLSP和DRGPSSP進行預處理后的服務選擇時間如圖6所示,準確率如圖7所示.

圖6 服務選擇時間比較圖Fig.6 Service selection time comparison

圖7 服務選擇的準確率比較圖Fig.7 Service selection accuracy comparison
由圖6 和圖7 可得,在相同服務數量下,用DRGPSSP方法預處理后的服務的服務選擇的相應時間快、服務查準率高,這是因為該方法已經比較準確地做了服務聚類,并把可能可以組合的服務預先組合,使得服務容易被查找.
為了提高服務選擇和服務組合的速度和準確率,服務庫中的服務的預處理必不可少.本文基于O-RGPS領域建模框架,采用先做服務聚類再按照用戶習慣組合成常用的組合服務方式進行服務預處理.服務聚類參考領域本體和RGPS模型,使服務能按照各個領域聚類,同時聚類后的服務滿足RGPS模型的組織方式,能方便地與RGPS需求模型匹配,加速查詢.服務的預先組合組成了領域中常用的組合服務,減少了動態的服務組合過程,提高了服務選擇效率.
下一步的工作有以下幾個方面:
1)確定閥值的范圍及閥值的影響,通過實驗找到不同領域比較合適的閥值.
2)完善服務組合算法,考慮除粒子群算法之外的最優選擇算法并比較它們的結果.
3)考慮原子服務對組合服務的影響,如組合服務的輸入、輸出、資源、流程如何描述.
[1]Papazoglou M P,Georgakopoulos D.Introduction:Service oriented computing[J].Communications of the ACM,2003,46(10):25-28.
[2]岳 昆,王曉玲,周傲英.Web服務核心支撐技術:研究綜述[J].軟件學報,2004,15(3):428-442.
[3]Huhns M N,Singh M P.Service-oriented computing:key concepts and principles[J].IEEE Internet Computing,2005,1(2):2-8.
[4]Sudha R,Thamarai S S.Semantic grid service discovery approach using clustering of service ontologies[C]//Proc of IEEE TENCON.Hong Kong:The Institute of Electrical and Electronics Engineers Inc,2006:1-4.
[5]Ram S,Hwang Y,Zhao H M.A clustering based approach for facilitating semantic Web service discovery[C]//Proc of the 15th Annual Workshop on Information Technologies &Systems.New York:Social Science Electronic Publishing Inc,2006:1-6.
[6]孫 萍,蔣昌俊,利用服務聚類優化面向過程模型的語義Web服務發現[J].計算機學報,2008:31(8):1340-1353.
[7]Wang Jian,He Keqing,Gong Ping,et al.RGPS:A unified requirements meta-modeling frame for net-worked software[C]//Frances Paulisch.Siemens AG:IWAAPF2008in ICSE Workshop.New York:ACM Press,2008:29-35.
[8]王 健.網絡式軟件的需求元建模框架及關鍵技術研究[D].武漢:武漢大學,2008:10-22.
[9]寧 達,基于語義網和社會標注的按需服務發現方法研究[D].武漢:武漢大學,2012:84-92.
[10]曾 誠,語義互操作性Web 服務注冊管理的機制與方法[D].武漢:武漢大學,2010:85-95.
[11]Jianxiao Liu,Keqing He,Da Ning.Web service aggregation using semantic interoperability oriented method[J].Journal of Information Science and Engineering,2012,28(3):437-452.
[12]劉建曉,何克清,王 健,等.一種面向語義互操作性的服務聚合方法[J].軟件學報,2011,22(2):27-40.
[13]Giunchiglia F,Yatskevich M.Element level semantic matching[C]//Paolo Bouquet,Luciano Serafini.Proceedings of Meaning Coordination and Negotiation Workshop.Hiroshima:IEEE Press,2004:37-48.
[14]Salton G,Wong A,and Yang C S.A vector space model for automatic indexing[J].Communications of the ACM,1975,18(11):613-620.
[15]寧 達,何克清,彭 蓉,等.基于社會標注的Web服務語義自動浮現方法[J].計算機學報,2011,34(12):2414-2426.
[16]舒 振,陳洪輝,羅雪山.基于改進混合粒子群算法的服務動態選擇方法[J].中南大學學報:自然科學版,2011,42(10):3086-3094.
[17]Yi Xia,Ping Chen,Liang Bao,et al.A QoS-aware web service selection algorithm based on clustering[C]//Lan Foster,Louise Moser.IEEE International Conference on Web Services.Washington DC:IEEE Computer Society,2011:428-435.
[18]劉 瑋.面向領域的服務需求獲取與分析研究[D].武漢:武漢大學,2008:33-38.
[19]Richi N,Bryan L.Web service discovery with additional semantics and clustering[C]//Tsau Young Lin,Laura Haas.Proc of IEEE/WIC/ACM International Conference on Web Intelligence.Fremont,CA:ACM Press,2007:555-558.
[20]曾 誠,何克清,李 兵,等.一種支持語義互操作的Web服務注冊管理機制[J].小型微型計算機系,2011,32(9):1709-1715.