







收稿日期:2022-02-06;修回日期:2022-03-30" 基金項目:國家自然科學(xué)基金資助項目(61973180);山東省自然科學(xué)基金資助項目(ZR2019MF033,ZR2021MF092);山東省重點(diǎn)研發(fā)計劃軟科學(xué)項目(2021RKY02037);云南省教育廳科學(xué)研究基金資助項目(2022J0635)
作者簡介:田雨晴(1999-),女,山西西安人,碩士研究生,主要研究方向為服務(wù)計算、人工智能;彭菲(2000-),女,山東菏澤人,碩士研究生,主要研究方向為服務(wù)計算;王華東(1977-),男(通信作者),山東青島人,高級實(shí)驗師,碩士,主要研究方向為軟件工程、大數(shù)據(jù)技術(shù)(whd_1027@163.com);胡強(qiáng)(1980-),男,山東鄒城人,副教授,碩導(dǎo),博士,主要研究方向為服務(wù)計算、軟件工程.
摘 要:
當(dāng)前服務(wù)替換方法多關(guān)注于替換服務(wù)與失效服務(wù)在功能和質(zhì)量層面的匹配,缺乏對兩者協(xié)作關(guān)系的考量。針對上述問題,提出一種融合服務(wù)聚類與協(xié)作關(guān)系的服務(wù)替換方法。首先,利用服務(wù)之間的組合關(guān)系構(gòu)建服務(wù)協(xié)作圖譜,基于node2vec進(jìn)行序列采樣并生成協(xié)作向量,進(jìn)而計算服務(wù)之間的協(xié)作相似度。然后,通過引入服務(wù)簇縮減替換時的服務(wù)查找空間,從功能和質(zhì)量層面快速構(gòu)建候選替換服務(wù)集合。最后,在候選替換服務(wù)集合中綜合服務(wù)質(zhì)量評分和協(xié)作相似度實(shí)現(xiàn)可替換服務(wù)的擇優(yōu)推薦。實(shí)驗證明該方法可以有效提高服務(wù)替換的效率與合理性。
關(guān)鍵詞:服務(wù)聚類;協(xié)作相似度;服務(wù)替換;流程共現(xiàn)
中圖分類號:TP"" 文獻(xiàn)標(biāo)志碼:A"" 文章編號:1001-3695(2022)09-013-2647-06
doi: 10.19734/j.issn.1001-3695.2022.02.0045
Service substitution method combining service clustering and collaboration similarity
Tian Yuqing, Peng Fei, Wang Huadong, Hu Qiang
(College of Information Science amp; Technology, Qingdao University of Science amp; Technology, Qingdao Shandong 266061, China)
Abstract:The current service substitution methods mainly focus on the function and quality matching between the substitutive service and invalid one. These methods rarely considered service collaboration. To solve the above problem,this paper proposed a service substitution method integrating service clustering and collaboration. Firstly,this method constructed service collaboration map according to service composition relationships. It used node2vec to sample node sequences and generate colla-boration vectors from the service collaboration map. This method computed service collaboration similarity based on these col-laboration vectors. Then,this paper introduced service clustering to reduce the search space during service substitution. It generated the candidate substitutive service set from the functional and quality levels. Finally,this method integrated the service quality score and collaboration similarity to achieve the recommendation of substitutive services. Experiments show that the proposed method can effectively improve the efficiency and rationality of service substitution.
Key words:service clustering; collaboration similarity; service replacement; process co-occurrence
0 引言
隨著云計算、物聯(lián)網(wǎng)和5G等新一代通信技術(shù)的成熟,網(wǎng)絡(luò)中的服務(wù)數(shù)量迅速增加,面向服務(wù)架構(gòu)(service-oriented architecture,SOA)的軟件開發(fā)和部署模式得以廣泛應(yīng)用[1],不同類型的服務(wù)被集成到各類業(yè)務(wù)系統(tǒng)。為了便于調(diào)用,服務(wù)通常被設(shè)計為較小功能粒度的網(wǎng)絡(luò)應(yīng)用程序[2]。對于復(fù)雜的服務(wù)請求,需要采取服務(wù)組合的方式將一組功能相關(guān)的服務(wù)構(gòu)建為服務(wù)流程,通過流程中的服務(wù)協(xié)同完成響應(yīng)。
不論是互聯(lián)網(wǎng)、物聯(lián)網(wǎng)還是各類自組網(wǎng)絡(luò)中的服務(wù),均處于動態(tài)多變的網(wǎng)絡(luò)環(huán)境中,可能會造成某些服務(wù)工作狀態(tài)的中斷[3]。各類服務(wù)平臺為了提供質(zhì)量更好、更具備競爭力的服務(wù),采取大量激勵機(jī)制促使平臺中的服務(wù)不斷進(jìn)行功能演進(jìn)和服務(wù)版本的更新[4]。因此,不論是服務(wù)所處的復(fù)雜網(wǎng)絡(luò)客觀環(huán)境還是主觀層面的功能演化需要,均可能造成一些服務(wù)失效,已有的業(yè)務(wù)系統(tǒng)面臨著服務(wù)替換與遷移的需求,如何高效、準(zhǔn)確地實(shí)現(xiàn)服務(wù)替換是采用SOA架構(gòu)進(jìn)行業(yè)務(wù)系統(tǒng)開發(fā)和部署所面臨的一個重要問題。
現(xiàn)有的服務(wù)替換研究工作主要從功能與質(zhì)量兩個層面考慮服務(wù)的匹配度,相關(guān)研究成果也集中在如何進(jìn)行服務(wù)功能相似度的計算以及質(zhì)量(quality of service,QoS)擇優(yōu)。由于網(wǎng)絡(luò)中的服務(wù)數(shù)量眾多,已有服務(wù)替換方法在進(jìn)行功能相似服務(wù)查找時面臨著巨大的查找空間,替換服務(wù)的查找過程復(fù)雜且耗時較大[5]。此外,現(xiàn)有的服務(wù)查找方法缺乏對服務(wù)協(xié)作因素的考慮,在獲取功能層面可以替換失效服務(wù)的候選服務(wù)集合后,通常選取具備最佳QoS的服務(wù)作為替換服務(wù)。此類做法主要關(guān)注了被替換服務(wù)位置處的服務(wù)質(zhì)量局部最優(yōu)化,忽略了替換服務(wù)與被替換服務(wù)所處業(yè)務(wù)流程環(huán)境中其他服務(wù)之間的協(xié)作關(guān)系,缺乏從全局角度評估替換服務(wù)與業(yè)務(wù)上下文環(huán)境中其他服務(wù)之間是否具備較高的協(xié)作兼容性[6]。
鑒于當(dāng)前服務(wù)替換方法普遍面臨著服務(wù)查找空間大、查找效率不高和缺乏對替換服務(wù)與流程業(yè)務(wù)上下文協(xié)作適應(yīng)度的考量,本文提出一種融合服務(wù)聚類與協(xié)作相似度的服務(wù)替換方法。本文主要工作和貢獻(xiàn)如下:
a)構(gòu)建了服務(wù)協(xié)作圖譜,提出一種基于node2vec的服務(wù)協(xié)作相似度計算方法,通過引入替換服務(wù)與失效服務(wù)之間的協(xié)作相似度進(jìn)一步提升了服務(wù)替換的合理性。
b)建立了面向服務(wù)簇的服務(wù)請求響應(yīng)模式,通過引入服務(wù)簇,縮減服務(wù)查找空間,提高了服務(wù)替換時的候選服務(wù)集合的查找效率。
c)開展了仿真實(shí)驗,從替換服務(wù)的查找時間和替換服務(wù)與失效服務(wù)所處業(yè)務(wù)流程中其他服務(wù)的共現(xiàn)率兩個角度驗證了本文方法的有效性。
1 相關(guān)工作
服務(wù)替換是服務(wù)計算領(lǐng)域中的一個重要研究問題,研究者在進(jìn)行服務(wù)替換時首先考慮替換服務(wù)在功能層面與失效服務(wù)是否兼容,然后融入服務(wù)的質(zhì)量評價、查找效率、接口數(shù)據(jù)的一致性、組合偏好等因素,提出了一系列的替換方法。例如,Liang等人[7]使用服務(wù)描述各種標(biāo)記中的術(shù)語共現(xiàn)情況對服務(wù)進(jìn)行分類,建立服務(wù)操作接口的兼容性和替換方法,服務(wù)替換精確度達(dá)到了85%,但該方法在識別替代服務(wù)的語義異構(gòu)性層面仍面臨著很大挑戰(zhàn)。Zhang等人[8]通過挖掘Web服務(wù)執(zhí)行上下文特征規(guī)則,定性地表示W(wǎng)eb服務(wù)在不同執(zhí)行上下文條件下的不同性能,根據(jù)當(dāng)前執(zhí)行上下文條件,采用基于知識發(fā)現(xiàn)的方法選擇最佳候選替代服務(wù)。Gao等人[9]提出了一種數(shù)據(jù)一致性檢查方法,用于動態(tài)替換服務(wù),利用數(shù)據(jù)替換模式來規(guī)范不同類型的替換行為,通過實(shí)例分析和實(shí)驗驗證了所提方法在動態(tài)替換數(shù)據(jù)一致性方面的有效性。
Santhanam等人[10]在進(jìn)行服務(wù)替換時,使用偏好網(wǎng)絡(luò)表示和推理服務(wù)需求對非功能屬性的偏好,依據(jù)非功能屬性進(jìn)行替換服務(wù)選擇。Sara等人[11]將Web服務(wù)視為一組操作,服務(wù)替換轉(zhuǎn)換為服務(wù)操作之間的替換,將已有服務(wù)的服務(wù)操作構(gòu)建為一個網(wǎng)絡(luò),定義了四種服務(wù)操作接口匹配度,在需要進(jìn)行服務(wù)替換時,從服務(wù)操作形成的網(wǎng)絡(luò)中進(jìn)行查找,相比于直接進(jìn)行Web服務(wù)的替換顯著提高了替換效率。Du等人[12]提出了一種基于服務(wù)簇網(wǎng)的服務(wù)替換方法,通過引入服務(wù)簇提高查找效率,但文中的服務(wù)簇要求參數(shù)接口一致,因此該方法在進(jìn)行替換服務(wù)查找時,服務(wù)查找空間縮減空間有限,服務(wù)替換的柔性有待進(jìn)一步提高。Hu等人[6]提出了一種基于流程協(xié)作關(guān)系的服務(wù)替換方法,通過引入流程協(xié)作提升了替換合理性,但該方法存在流程協(xié)作依賴關(guān)系采集不完備的問題,所計算的服務(wù)協(xié)作強(qiáng)度精確度有待進(jìn)一步提高。
服務(wù)替換是以失效服務(wù)的功能作為服務(wù)需求而進(jìn)行的服務(wù)再發(fā)現(xiàn),因此,服務(wù)發(fā)現(xiàn)領(lǐng)域的一些成果可為服務(wù)替換提供借鑒。服務(wù)發(fā)現(xiàn)的效率與精確度是評價和改進(jìn)服務(wù)發(fā)現(xiàn)方法的兩個關(guān)鍵指標(biāo)。研究者通常采用聚類[13,14]、二分圖[15,16]、索引[17]等方法改進(jìn)服務(wù)發(fā)現(xiàn)時的檢索機(jī)制,提升服務(wù)查找速度,其中聚類技術(shù)使用最為廣泛,它可以有效縮減服務(wù)查找空間,提高查找效率。服務(wù)發(fā)現(xiàn)的精確度主要取決于需求與服務(wù)之間的相似度判定。在早期服務(wù)發(fā)現(xiàn)研究中,通常是從服務(wù)描述文檔(如WSDL文檔)中提取若干代表服務(wù)特征的關(guān)鍵詞,然后通過計算這些關(guān)鍵詞的詞頻[18,19]或語義相似度[20,21]來實(shí)現(xiàn)需求與服務(wù)的相似度判定。
近年來,采用自然語言文本作為服務(wù)描述的服務(wù)越來越多,基于主題模型或深度學(xué)習(xí)方法從服務(wù)描述文本中提取服務(wù)主題特征,并依據(jù)主題特征向量進(jìn)行需求和服務(wù)之間的相似度判定成為了主流方法。例如,Nabli等人[22]將TF-IDF與LDA模型相結(jié)合,提出一種適用于云服務(wù)相似度計算的主題向量生成模型,提高了云服務(wù)爬取過程中的發(fā)現(xiàn)精確度。Hu等人[23]利用GSDMM模型生成服務(wù)表征向量,并引入概率修正因子,提高了服務(wù)發(fā)現(xiàn)和聚類過程中的相似度計算精度,實(shí)驗證明了在生成服務(wù)表征向量時,GSDMM模型的主題表達(dá)能力顯著高于LDA、BTM等常用主題模型。Lizarralde等人[24]使用變分自動編碼器從服務(wù)描述中學(xué)習(xí)特征,將編碼表示限制為對潛在變量建模,該方法優(yōu)于LDA和LSA等傳統(tǒng)主題模型,但服務(wù)特征學(xué)習(xí)和模型訓(xùn)練復(fù)雜度顯著高于常用主題模型。
上述服務(wù)發(fā)現(xiàn)領(lǐng)域的重要研究成果為服務(wù)替換的研究提供了重要的借鑒。目前尚未有研究成果將主題模型引入到服務(wù)替換的功能匹配中,為進(jìn)一步提高服務(wù)替換的效率和合理性,本文將服務(wù)聚類、GSDMM主題模型和協(xié)作相似度引入到服務(wù)替換,通過服務(wù)聚類縮減替換過程中的服務(wù)查找空間,基于GSDMM為服務(wù)描述生成主題向量,改進(jìn)替換過程中的服務(wù)相似度計算精度,從而提高替換服務(wù)的匹配精確度。通過建模服務(wù)之間的流程轉(zhuǎn)移依賴關(guān)系,構(gòu)建一種基于node2vec的服務(wù)協(xié)作相似度計算方法,綜合考慮服務(wù)質(zhì)量與協(xié)作相似度,提升替換服務(wù)的推薦合理性。
2 服務(wù)協(xié)作相似度
社交網(wǎng)絡(luò)理論研究顯示,多名參與者協(xié)同完成一項任務(wù)時,參與者更傾向于與自己熟悉或曾經(jīng)有過合作經(jīng)歷的人一起分工合作[25]。在服務(wù)組合應(yīng)用場景中,用戶也傾向選擇有過歷史組合關(guān)系的服務(wù)構(gòu)建新的業(yè)務(wù)流程,這些服務(wù)在接口兼容、業(yè)務(wù)部署等層面都具有較高的可靠性。因此,在一組候選替換服務(wù)中,選擇與失效服務(wù)具有相似協(xié)作伙伴的服務(wù)將增加替換的合理性。
為了度量服務(wù)之間是否具備類似的服務(wù)協(xié)作關(guān)系,提出服務(wù)協(xié)作相似度的概念,利用協(xié)作相似度的大小衡量兩個服務(wù)在相似組合服務(wù)流程上下文環(huán)境中出現(xiàn)的概率大小。服務(wù)協(xié)作相似度的大小取決于服務(wù)共現(xiàn)率和流程距離兩個要素。兩個服務(wù)在相似的服務(wù)流程中出現(xiàn)的次數(shù)越多,兩者協(xié)作相似度越大;兩個服務(wù)與同一個服務(wù)的流程距離越近,兩者協(xié)作相似度越大[23]。
為了計算兩個服務(wù)之間的協(xié)作相似度,本文構(gòu)建服務(wù)協(xié)作圖譜。服務(wù)協(xié)作圖譜為一無向圖,圖譜的節(jié)點(diǎn)表示服務(wù),邊表示兩個節(jié)點(diǎn)服務(wù)之間具備協(xié)作關(guān)系。在各類云平臺上積累了大量的服務(wù)流程模型,通過遍歷服務(wù)流程模型,將流程模型中的服務(wù)抽象為服務(wù)協(xié)作圖中的節(jié)點(diǎn),服務(wù)轉(zhuǎn)移依賴關(guān)系映射為協(xié)作圖譜的邊即可完成服務(wù)協(xié)作圖譜的構(gòu)建。
定義1 協(xié)作依賴。
在一個服務(wù)組合流程模型sp中,若服務(wù)si與sj存在業(yè)務(wù)邏輯轉(zhuǎn)移,則稱服務(wù)si與sj互為協(xié)作依賴關(guān)系,記為si→sj。
定義2 服務(wù)協(xié)作網(wǎng)絡(luò)。
服務(wù)協(xié)作網(wǎng)絡(luò)定義為一個無向加權(quán)圖SCG=(V,E):
a)V={v1,v2,v3,…,vn}為服務(wù)節(jié)點(diǎn)集合,每個節(jié)點(diǎn)vi表示一個服務(wù);
b)E={e=(vi,vj)|1≤i,j≤n}為協(xié)作邊集合,其中e=(vi,vj)表示服務(wù)節(jié)點(diǎn)vi與vj所對應(yīng)的服務(wù)si和sj滿足si→sj。
圖1是利用ProgrammableWeb網(wǎng)站中注冊的Mashup服務(wù)所構(gòu)建的服務(wù)協(xié)作圖譜片段。Mashup服務(wù)是一種組合服務(wù),一個Mashup服務(wù)通常包含約2~6個Web服務(wù),這些Web服務(wù)協(xié)同完成復(fù)雜的業(yè)務(wù)功能。在構(gòu)建了服務(wù)協(xié)作圖譜后,采用node2vec對圖譜中的節(jié)點(diǎn)進(jìn)行序列采樣,并根據(jù)采集到的協(xié)作序列為每個節(jié)點(diǎn)所代表的服務(wù)生成向量,將該向量稱為服務(wù)協(xié)作向量。
算法1用于生成服務(wù)協(xié)作相似度矩陣,在該矩陣中可以獲得任意兩個服務(wù)之間的協(xié)作相似度。算法1~6行用于構(gòu)建協(xié)作圖譜,首先初始化一個空協(xié)作圖譜SCG,然后遍歷流程庫SP中的服務(wù)流程,將存在協(xié)作依賴關(guān)系的服務(wù)s與s′作為節(jié)點(diǎn)v(s)和v(s′)加入SCG,并在兩個節(jié)點(diǎn)之間構(gòu)建一條邊〈v(s), v(s′)〉。
算法7~20行采用node2vec生成服務(wù)協(xié)作向量[26]。算法在第7行初始化空集合walks用來存放隨機(jī)游走得到的節(jié)點(diǎn)序列。算法第8行通過循環(huán)產(chǎn)生r次隨機(jī)游走。對于服務(wù)協(xié)作圖譜中的每個服務(wù)節(jié)點(diǎn)u,算法第9和10行為其初始一個序列數(shù)組walk[u]。算法第11~17行將每次游走生成長度為l的節(jié)點(diǎn)序列存放于walk中,主要通過等概率隨機(jī)選擇鄰居節(jié)點(diǎn)和負(fù)采樣的方式生成節(jié)點(diǎn)序列,并將walk添加到walks中。第19行采用SGD方法對walks進(jìn)行訓(xùn)練,為每個節(jié)點(diǎn)生成服務(wù)協(xié)作向量scv[i]。算法21~23行采用向量的余弦夾角值來度量任意兩個服務(wù)之間的協(xié)作相似度,并構(gòu)建協(xié)作相似度矩陣CSM。算法24行返回構(gòu)建的協(xié)作相似度矩陣CSM。
算法1 Collaboration_SimCalculate
輸入: set of service process SP。
輸出: collaboration similarity matrix CSM。
1 initialize a service collaboration graph SCG;
2 for each service process sp in SP
3" for each service s∈sp
4"" if (s′∈sp,s.t. s→ s′∨s′→s) add v(s),v(s′) and 〈v(s), v(s′)〉 into SCG
5" end for
6 end for
7 initialize walks to empty
8 for iter=1 to r do
9" for all nodes u∈V do
10""" initialize walk to [u]
11"""" for walk_iter=1 to l do
12""""" curr=walk[-1]
13""""" Vcurr=GetNeighbors(curr,SCG)
14""""" t=aliasSample(Vcur,π)
15""""" append t to walk
16""" end for
17""" append walk to walks
18" end for
19" scv[vi]=stochasticGradientDescent(k,d,walks)
20 end for
21 for vi,vj in SCG
22" CSM[vi][vj]= Cosine_Vec(scv[vi],scv[vj])
23 end for
24 return CSM
3 面向服務(wù)簇融合流程協(xié)作相似度的服務(wù)替換
3.1 面向服務(wù)簇的服務(wù)請求響應(yīng)模式
傳統(tǒng)的SOA架構(gòu)中,服務(wù)請求由發(fā)布在網(wǎng)絡(luò)中的服務(wù)或一組服務(wù)的組合流程實(shí)現(xiàn)響應(yīng)。服務(wù)查找過程中面臨著海量服務(wù)的比對,服務(wù)查找效率不高。服務(wù)替換時需要重新為已有響應(yīng)需求的服務(wù)尋找一個替代服務(wù),在這種模式下可替代服務(wù)的查找代價巨大。
為了提高服務(wù)替換時的服務(wù)查找效率,在SOA架構(gòu)中引入服務(wù)簇,建立了如圖2所示的服務(wù)響應(yīng)模式。在傳統(tǒng)的SOA請求響應(yīng)模式中,增加一個虛擬資源層,在虛擬資源層中構(gòu)建服務(wù)簇。不同于傳統(tǒng)服務(wù)請求響應(yīng)模式,位于業(yè)務(wù)模型層中的服務(wù)請求不再由原子服務(wù)響應(yīng),而是首先由虛擬資源層中的服務(wù)簇響應(yīng),然后從服務(wù)簇中綁定最優(yōu)響應(yīng)服務(wù),進(jìn)而綁定物理資源層中原子服務(wù)或組合服務(wù)流程。
圖2 面向服務(wù)簇的服務(wù)請求響應(yīng)模式
Fig. 2 Service request and response schema oriented service clusters
引入虛擬資源層和服務(wù)簇可以提高服務(wù)請求的響應(yīng)粒度,在服務(wù)發(fā)現(xiàn)時采用服務(wù)簇—服務(wù)二級查找模式,由于將相似的服務(wù)劃分為一個簇,所以大幅度縮減了服務(wù)查找空間,提高了服務(wù)查找效率。
3.2 服務(wù)替換算法
服務(wù)替換過程可劃分為兩個階段:第一個階段為候選服務(wù)集合的生成,該階段從功能層面獲取可以替換失效服務(wù)的服務(wù)集合;第二個階段進(jìn)行服務(wù)質(zhì)量和協(xié)作相似度的綜合擇優(yōu)。為了便于描述簇模式下的服務(wù)替換過程,首先給出服務(wù)及服務(wù)簇的形式化定義。
定義3 服務(wù)。
服務(wù)定義為6元組s=(Id,D,I,O,Q,L),其中:Id為服務(wù)的標(biāo)識,D為服務(wù)的功能描述文本,I和 O 分別是輸入和輸出參數(shù)集合,Q是質(zhì)量集合,L為服務(wù)的地址標(biāo)識。
例如,ProgrammableWeb上注冊的Google地圖服務(wù)中的GeocodingApi服務(wù),其對應(yīng)的服務(wù)描述D為“Geocoding is the process of converting addresses (like \"1600 Amphitheatre Parkway,Mountain View,CA\") into geographic coordinates (like latitude 37.423021 and longitude-122.083739),which you can use to place markers or position the map. Reverse geocoding is the process of converting geographic coordinates into a human-readable address.”。該服務(wù)的輸入?yún)?shù)集合I={(string address)},輸出參數(shù)集合O={(float latitude),(float longitude)}。
服務(wù)質(zhì)量集合Q= {qi},qi ={N,C,V,U},其中N為服務(wù)質(zhì)量參數(shù)名稱,C是比較運(yùn)算符,V是參數(shù)的值,U為其單位。如果q=(ResponseTime,lt;,0.5,ms)表示服務(wù)響應(yīng)時間低于0.5 ms。
定義4 服務(wù)簇。
服務(wù)簇定義為7元組sc=(CId, V,I,O,Sw,Qc),其中CId是服務(wù)簇的標(biāo)識,V為服務(wù)簇的功能向量,I和O分別為輸入和輸出參數(shù)集合,Sw是服務(wù)簇所包含的服務(wù)集合,Qc為質(zhì)量參數(shù)集合。
服務(wù)簇由若干服務(wù)聚類得到,不設(shè)置功能描述文本,在定義中采用功能向量V來表示服務(wù)簇的功能。服務(wù)簇的功能向量V為簇中所有服務(wù)的功能向量均值。服務(wù)簇的輸入和輸出參數(shù)是其所包含的所有服務(wù)的輸入輸出參數(shù)集合的并集。服務(wù)簇的質(zhì)量參數(shù)值應(yīng)該能涵蓋所有服務(wù)的質(zhì)量參數(shù)取值,采用區(qū)間法qi={N,C,[Vmin,Vmax],U}表示服務(wù)簇的質(zhì)量參數(shù)值。服務(wù)簇Qc={(ResponseTime,lt;,[0.1,0.5],ms),(ResponseRat,gt;,[98,100],%)}表示該服務(wù)簇中的服務(wù)響應(yīng)時間最低小于0.1 ms,最大小于0.5 ms,而服務(wù)響應(yīng)率最低的服務(wù)大于98%,最高的服務(wù)為100%。
本文采用適合短文本主題提取的GSDMM模型為服務(wù)描述文本生成功能向量。在前期工作中驗證了GSDMM為Web服務(wù)描述生成的功能向量的質(zhì)量顯著高于其他主題模型[23]。GSDMM基于狄利克雷混合模型(DMM)生成文檔,然后使用吉布斯采樣(Gibbs sampling)算法近似求解模型。DMM如圖3所示,吉布斯采樣過程為使用一個單詞在所有主題上不斷地采樣,最終得到這個單詞的主題分布矩陣,從而得到文檔—主題矩陣Θ=d×z 以及單詞—主題矩陣Φ=w×z。吉布斯采樣中一篇描述屬于某個主題的概率計算公式為
p(zd=z∣zd,d)∝mz,d+αD-1+Kα∏w∈d ∏Ndwj=1(nwz,d+β+j-1)∏Ndwi=1(nwz,d+Vβ+i-1)
(1)
其中:K表示初始主題個數(shù);D表示語料庫中描述總數(shù); mz表示主題Z下的文檔數(shù);nz表示主題Z下的單詞數(shù);nwz,d表示主題Z下的單詞w出現(xiàn)的次數(shù);d表示去除當(dāng)前文檔。
定義5 子集參數(shù)。
Pa和Pb是兩組參數(shù),Pa稱為Pb的子集參數(shù)當(dāng)且僅當(dāng):
a)Num(Pa)≤Num(Pb),Num(p)表示參數(shù)p的個數(shù);
b)mi∈Pa,nj∈Pb,滿足mi∝nj 且Type(mi)Type(nj)。
Type(m)表示參數(shù)m的類型,符號∝表示語義等價,表示參數(shù)類型兼容,如果Pa是Pb的子集參數(shù),記為PaPb。
在進(jìn)行服務(wù)替換時,首先需要從功能和接口層面尋找合適的候選替換服務(wù),然后再從服務(wù)質(zhì)量和協(xié)作相似度角度計算最佳替換服務(wù)。本文采用服務(wù)的描述文本的功能相似度作為兩個服務(wù)的功能相似度。對于服務(wù)s1和s2,v(si)表示基于功能描述文本si.D和GSDMM模型為其生成的功能向量(i=1,2),則服務(wù)的功能相似度為兩個向量的余弦夾角值,如式(2)所示。
FucSim(s1,s2)=v(s1)·v(s2)|v(s1)|*|v(s2)|(2)
在對服務(wù)質(zhì)量進(jìn)行量化時,假設(shè)S={s1,s2,…,sm}為一組候選服務(wù),每個服務(wù)具有n個質(zhì)量參數(shù),[qi1,qi2,…,qin]是服務(wù)si的質(zhì)量參數(shù)值,則采用式(3)對si的服務(wù)質(zhì)量進(jìn)行加權(quán)評分量化,參數(shù)ωj用于表示各個質(zhì)量參數(shù)的權(quán)重。
Qscore(si)=∑nj=1qij*wj, ∑nj=1wj=1(3)
qij=qmaxj-qijqmaxj-qminj" if qmaxj-qminj≠0
1 if qmaxj-qminj=0(4)
qij=qij-qminjqmaxj-qminj" if qmaxj-qminj≠01 if qmaxj-qminj=0(5)
在對服務(wù)質(zhì)量進(jìn)行量化時,式(4)用于負(fù)向質(zhì)量參數(shù)的量化,如響應(yīng)時間、價格,此類服務(wù)的數(shù)值越小表示服務(wù)的質(zhì)量越高。式(5)用于正向質(zhì)量參數(shù)的量化,如穩(wěn)定性、吞吐量,此類服務(wù)的數(shù)值越大表示服務(wù)的質(zhì)量越高。
算法2為本文所構(gòu)建的服務(wù)簇模式下融合服務(wù)協(xié)作相似度的服務(wù)替換算法。算法第1行首先初始化兩個空集合CSR和cs_r,分別用于存儲候選服務(wù)簇和候選替換服務(wù)集合。算法2~4行利用功能相似度FucSim篩選存在可替換失效服務(wù)se的服務(wù)簇,將與失效服務(wù)se功能等價的服務(wù)簇加入到集合CSR。算法5~9行遍歷CSR中所有服務(wù)簇所包含的服務(wù),利用子集參數(shù)的定義規(guī)則,將接口參數(shù)可與失效服務(wù)se接口參數(shù)匹配的服務(wù)加入到候選服務(wù)集合cs_r。
算法10~12行用于計算候選替換服務(wù)集合cs_r中每個服務(wù)的推薦評分。服務(wù)s的推薦評分由服務(wù)的質(zhì)量評分和服務(wù)s與失效服務(wù)se之間的協(xié)作相似度加權(quán)得到,在算法的使用過程中,依據(jù)服務(wù)質(zhì)量和協(xié)作相似度對替換服務(wù)推薦的重要度不同,設(shè)置合理的α和β值即可。算法第13行通過計算服務(wù)的推薦評分,選擇cs_r中評分最高的服務(wù)作為替換服務(wù)rst。算法第14行最終返回推薦服務(wù)rst。
算法2 Service_Subtitution_Collaboartion
輸入: cloud service cluster pool CSCP; the invalid cloud service se。
輸出: recommended substitution service set rst。
1 CSR=,cs_r =;
2 for each sc∈CSCP
3" if (FucSim(sc,se)gt;δ) CSR=CSR∪{sc};
4 end for
5" for each sc∈CSR
6"" for each s∈sc.Sw
7""" if (s.Ise.I∧se.Os.O) cs_r=cs_r∪{s};
8"" end for
9 end for
10 for each service s in cs_r
11" RecomGrade(s)=α*Qscore(s)+β*CSM(s,se);
12 end for
13 rst={s|max(RecomGrade(s))∧s∈cs_r};
14 return(rst)
4 仿真實(shí)驗
本章通過實(shí)驗驗證所提出服務(wù)替換方法的有效性。實(shí)驗分為兩個部分:a)用于驗證本文方法是否提高了服務(wù)替換時的查找效率;b)用于驗證所推薦的替換服務(wù)是否較其他方法更為合理。實(shí)驗采用的計算機(jī)軟硬件配置為:CPU i5-10210U,內(nèi)存8 GB,Windows 10操作系統(tǒng),采用Python編寫驗證程序。
4.1 實(shí)驗數(shù)據(jù)集
實(shí)驗中構(gòu)建了兩個數(shù)據(jù)集。
數(shù)據(jù)集1為真實(shí)數(shù)據(jù)集,從ProgrammableWeb網(wǎng)站中爬取Mashup服務(wù),經(jīng)過數(shù)據(jù)清洗保留5 327條有效Mashup服務(wù),共計包含786個Web API服務(wù),根據(jù)服務(wù)標(biāo)簽這些服務(wù)被聚類為34個服務(wù)簇。為了提高服務(wù)替換的可行性,便于服務(wù)接口匹配,手工對786個服務(wù)中的輸入輸出參數(shù)進(jìn)行了修正,實(shí)現(xiàn)同義數(shù)據(jù)類型和參數(shù)名詞的統(tǒng)一表示。
數(shù)據(jù)集2為仿真數(shù)據(jù)集,該數(shù)據(jù)從ProgrammableWeb網(wǎng)站中爬取的156個類別、共計21 425個有效Web API服務(wù)中,隨機(jī)抽取了80個類別,每個類別隨機(jī)抽取1~10條服務(wù),共計400條Web API服務(wù)。將此400個服務(wù)稱為原始服務(wù),按如下流程進(jìn)行處理,生成3 600個新服務(wù),共計4 000個服務(wù)。
1)服務(wù)描述的生成
對于每一條原始Web API服務(wù)對應(yīng)的服務(wù)描述,隨機(jī)生成1~20條服務(wù)描述,每條新服務(wù)描述由原服務(wù)描述文本采取按照比例從10%~70%隨機(jī)替換單詞的方式生成。
2)服務(wù)接口參數(shù)的生成
對于每一條原始Web API服務(wù)的參數(shù),獲取該參數(shù)名稱的兩個同義詞,與原參數(shù)一起作為候選參數(shù)名稱集合,在由原始服務(wù)生成新服務(wù)時,隨機(jī)在候選參數(shù)名稱集合中選擇一個參數(shù)名稱作為新服務(wù)的參數(shù)。
3)服務(wù)質(zhì)量的設(shè)置
由于在ProgrammableWeb上無法獲取到Web API服務(wù)的質(zhì)量參數(shù)信息,本實(shí)驗中選取服務(wù)響應(yīng)時間rt、可靠性av和費(fèi)用cs三個質(zhì)量參數(shù),為數(shù)據(jù)集1和2中的每一條服務(wù)在下述取值區(qū)間內(nèi){rt[0.01,0.1],av[97%,100%],cs[0,20]}隨機(jī)生成服務(wù)質(zhì)量的參數(shù)值。
4)協(xié)作關(guān)系的生成
隨機(jī)生成40 000條包含8個服務(wù)節(jié)點(diǎn)的服務(wù)流程,將4 000條服務(wù)按照類別劃分為八類,每類大約500條服務(wù),對應(yīng)于服務(wù)流程的一個節(jié)點(diǎn)。在生成服務(wù)流程時,隨機(jī)從對應(yīng)的一類服務(wù)中抽取1條服務(wù)形成一個節(jié)點(diǎn),從八類中抽取8條服務(wù)組成一條服務(wù)流程。
4.2 服務(wù)查找與替換效率
服務(wù)替換的本質(zhì)是依據(jù)失效服務(wù)的功能重新查找一個替代服務(wù),因此,服務(wù)的查找和替換效率是一個重要的驗證指標(biāo)。選取了近年來發(fā)表的四種服務(wù)查找(文獻(xiàn)[22,27~29])和替換方法(文獻(xiàn)[6,11,12,30])與本文方法(SM_CC)進(jìn)行對比驗證。
對于數(shù)據(jù)集1,本文采取數(shù)據(jù)中服務(wù)的類別數(shù)34作為聚類數(shù)量。對于數(shù)據(jù)集2,分別將其聚類為40,80,120,160和200,不同類別下服務(wù)查找耗時折線圖如圖4所示。從圖中可以看出,服務(wù)查找效率與服務(wù)簇的大小有關(guān),隨著服務(wù)簇粒度的變小,查找耗時呈現(xiàn)先降低后增加的趨勢,依據(jù)折線趨勢和耗時數(shù)據(jù),本文選取服務(wù)查找速度最快的類別數(shù)目120作為聚類的數(shù)量。
圖5和6分別為不同方法在兩個數(shù)據(jù)集中查找服務(wù)的耗時對比。從圖5和6中的柱狀圖對比可以看出,本文方法的查找效率高于其他四種方法,在數(shù)據(jù)集中的服務(wù)數(shù)量較大時,服務(wù)簇的引入縮減查找空間更為明顯,服務(wù)查找耗時相比其他方法更低,在數(shù)據(jù)1中,本文方法與其他四個方法的平均耗時占比為1∶1.79,在數(shù)據(jù)集2中,隨著服務(wù)數(shù)量的增加,上述耗時占比變?yōu)?∶1.96,耗時平均降低8.67%。此外,通過引入主題模型對服務(wù)功能向量進(jìn)行預(yù)訓(xùn)練的方法,在服務(wù)查找時效率要高于其他方法。
圖7和8分別為不同服務(wù)替換方法在兩個數(shù)據(jù)集中的替換耗時對比。從圖中數(shù)據(jù)可知,本文方法在服務(wù)替換時,耗時低于其他服務(wù)替換方法。在五種方法的對比中,服務(wù)替換時引入服務(wù)簇的方法在替換時耗時低于未引入服務(wù)簇的方法。在所有替換方法中,文獻(xiàn)[11]方法因構(gòu)建了復(fù)雜的接口比對操作而耗時最高。在數(shù)據(jù)1中,本文方法與其他四種替換方法平均耗時比為1∶1.75,上述耗時占比在數(shù)據(jù)集2中為1∶1.93,本文方法在替換效率上顯著優(yōu)于其他方法。從數(shù)據(jù)1與2的耗時占比來看,隨著服務(wù)數(shù)量的增加,替換耗時占比平均降低了9.4%,進(jìn)一步印證了文本方法引入服務(wù)簇后顯著提高了服務(wù)查找與替換效率。
4.3 替換的合理性
保證服務(wù)在功能層面能夠滿足失效服務(wù)的前提下,本文算法綜合了服務(wù)質(zhì)量和流程協(xié)同效應(yīng)兩個方面因素推薦最優(yōu)替換服務(wù)。本文提出服務(wù)共現(xiàn)率的概念,利用推薦服務(wù)與失效服務(wù)所處的業(yè)務(wù)流程上下文中的服務(wù)共現(xiàn)概率來評價替換服務(wù)的合理性。
服務(wù)的共現(xiàn)率是兩個服務(wù)在同一個流程中出現(xiàn)的次數(shù)與兩者在所有兩次中出現(xiàn)次數(shù)之比。令OccuNum(si)表示si在所有服務(wù)組合流程中出現(xiàn)的次數(shù),則服務(wù)si與sj的共現(xiàn)率可以通過公式ServiceCo_Occu(si,sj)= OccuNum(si∩sj)/(OccuNum(si)+ OccuNum(sj))。將替換服務(wù)與失效服務(wù)的流程共現(xiàn)率定義為替換服務(wù)與失效服務(wù)所在流程中所有其他服務(wù)的共現(xiàn)率之和。假設(shè)失效服務(wù)se所處的業(yè)務(wù)流程中的服務(wù)集合為S,替換服務(wù)為st,則st與se的服務(wù)流程共現(xiàn)率定義為Proc_SerCo_(st,se)=ServiceCo_Occu(S-se,st)。
圖9和10分別展示了在數(shù)據(jù)集1和2中,不同替換算法推薦服務(wù)與失效服務(wù)的服務(wù)流程共現(xiàn)率。從圖中數(shù)據(jù)可以看出,在兩個數(shù)據(jù)集中,本文方法所推薦的替換服務(wù)的流程共現(xiàn)率均高于其他方法,從數(shù)值上高出2~6倍,從而驗證了本文方法將服務(wù)協(xié)作相似度加入到服務(wù)替換過程中,提高了服務(wù)替換的合理性。
5 結(jié)束語
為了提高服務(wù)替換的效率和合理性,本文提出一種服務(wù)簇模式下融合流程協(xié)作相似度的服務(wù)替換方法。通過引入服務(wù)簇,縮減了服務(wù)查找空間,提高了服務(wù)替換時的服務(wù)發(fā)現(xiàn)效率。將服務(wù)之間的流程協(xié)作關(guān)系進(jìn)行建模和度量,并與服務(wù)質(zhì)量一起引入到替換服務(wù)的擇優(yōu)推薦中,提高了服務(wù)替換的合理性。實(shí)驗結(jié)果驗證了本文方法有效提高了服務(wù)替換的效率和合理性。
在未來工作中,將研究聚類粒度大小對服務(wù)替換效率的影響,并改進(jìn)服務(wù)協(xié)同效應(yīng)的建模和度量方法以進(jìn)一步提升替換的效率與合理性。
參考文獻(xiàn):
[1]Akbar M A,Khan A A,Mahmood S, et al. A robust framework for cloud-based software development outsourcing factors using analytical hierarchy process[J]. Journal of Software: Evolution and Process,2021,33(2): e2275.
[2]Cheng Huanyu,Zhong Ming,Wang Jian. Diversified keyword search based Web service composition[J]. Journal of Systems and Software,2020,163: 110540.
[3]Sefati S,Navimipour N J. A QoS-aware service composition mechanism in the Internet of Things using a hidden-Markov-model-based optimization algorithm[J]. IEEE Internet of Things Journal,2021,8(20): 15620-15627.
[4]王先清,黃昌勤,羅旋,等. 基于語義擴(kuò)展類型論的云服務(wù)替換性判定研究[J]. 通信學(xué)報,2016,37(2): 20-31.(Wang Xianqing,Huang Changqin,Luo Xuan, et al. Determining substitutability of cloud services supported by semantically extended type theory[J].Journal on Communications,2016,37(2): 20-31.)
[5]Al-Sayed M M,Hassan H A,Omara F A. An intelligent cloud service discovery framework[J]. Future Generation Computer Systems,2020,106: 438-466.
[6]Hu Qiang,Shen Jiaji. A cluster and process collaboration-aware method to achieve service substitution in cloud service processes[J]. Scientific Programming,2020,2020: article ID 1298513.
[7]Liang Qianhui,Lee B S,Hung P C K. A rule-based approach for availability of service by automated service substitution. [M]// Software: Practice and Experience.2014: 47-76.
[8]Zhang Mingwei,Zhu Zhiliang,Li Dancheng, et al. An execution context aware approach for Web service substitution[C]//Proc of the 7th International Conference on Advanced Information Management and Service. Piscataway,NJ:IEEE Press,2011: 13-18.
[9]Gao Hongtao,Duan Yucong,Miao Huaikou, et al. An approach to data consistency checking for the dynamic replacement of service process[J]. IEEE Access,2017,5: 11700-11711.
[10]Santhanam G R,Basu S,Honavar V. Web service substitution based on preferences over non-functional attributes[C]//Proc of IEEE International Conference on Services Computing.Piscataway,NJ: IEEE Press,2009: 210-217.
[11] Sara R,Bakhta A,Lakhdar L. A similarity network for Web services operations substitution[J]. Journal of King Saud University-Computer and Information Sciences,2020,32(9):1055-1062.
[12]Du Yuyue,Gai Junjing,Zhou Mengchu. A Web service substitution method based on service cluster nets[J]. Enterprise Information Systems,2017,11(10): 1535-1551.
[13]Natarajan B,Obaidat M S,Sadoun B, et al. New clustering-based semantic service selection and user preferential model[J]. IEEE Systems Journal,2020,15(4):4980-4988.
[14]Obidallah W J,Raahemi B,Ruhi U. Clustering and association rules for Web service discovery and recommendation: a systematic literature review[J]. SN Computer Science,2020,1(1): 1-33.
[15]Chen Kuo,Kuang Cuiping. Web service discovery based on maximum weighted bipartite graphs[J]. Computer Communications,2021,171: 54-60.
[16]Hafsi A,Gamha Y,Ben Njima C, et al. BIG-SWSDM: bipartite graph based social Web service discovery model[C]//Proc of International Conference on Business Information Systems. Cham: Springer,2020: 307-318.
[17]Abdelli A,Serrai W,Mokdad L. A novel and efficient index based Web service discovery approach[J]. Computer Standards amp; Interfaces,2022,80: 103586.
[18]Cassar G,Barnaghi P,Moessner K. Probabilistic matchmaking me-thods for automated service discovery[J]. IEEE Trans on Services Computing,2013,7(4): 654-666.
[19]Agarwal N,Sikka G,Awasthi L K. Enhancing Web service clustering using length feature weight method for service description document vector space representation[J]. Expert Systems with Applications,2020,161: 113682.
[20]Cheng Bo,Li Changbao,Chen Junliang, et al. Semantics mining amp; indexing-based rapid Web services discovery framework[J]. IEEE Trans on Services Computing,2021,14(3):864-875.
[21]Abid A,Rouached M,Messai N. Semantic Web service composition using semantic similarity measures and formal concept analysis[J]. Multimedia Tools and Applications,2020,79(9): 6569-6597.
[22]Nabli H,Djemaa R B,Amor I A B. Efficient cloud service discovery approach based on LDA topic modeling[J]. Journal of Systems and Software,2018,146: 233-248.
[23]Hu Qiang,Shen Jiaji,Wang Kun, et al. A Web service clustering method based on topic enhanced Gibbs sampling algorithm for the Dirichlet multinomial mixture model and service collaboration graph[J]. Information Sciences,2022,586: 239-260.
[24]Lizarralde I,Mateos C,Zunino A, et al. Discovering Web services in social Web service repositories using deep variational autoencoders[J]. Information Processing amp; Management,2020,57(4): 102231.
[25]Dania A,Griffin L L. Using social network theory to explore a participatory action research collaboration through social media[J]. Qualitative Research in Sport,Exercise and Health,2021,13(1): 41-58.
[26]Grover A,Leskovec J. node2vec: scalable feature learning for networks[C]//Proc of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining.New York:ACM Press,2016: 855-864.
[27]Lu Chenghua. A novel Web service discovery method combining semantic interface similarity and context similarity[C]//Proc of IOP Conference Series: Earth and Environmental Science. 2021: 012006.
[28]Zhang Feng,Zeng Qingtian,Duan Hua, et al. Composition context-based Web services similarity measure[J]. IEEE Access,2019,7: 65195-65206.
[29]Abdelli A,Serrai W,Mokdad L. A novel and efficient index based Web service discovery approach[J]. Computer Standards amp; Interfaces,2022,80: 103586.
[30]張朝陽.面向群組服務(wù)的替換方法研究[D].南京:南京郵電大學(xué),2018.(Zhang Zhaoyang. Research on service substitution to group services[D]. Nanjing: Nanjing University of Posts and Telecommunications,2018.)