專(zhuān)利名稱(chēng):一種基于依賴(lài)圖約減和QoS保持的Web服務(wù)組合方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)互聯(lián)網(wǎng)Web服務(wù)組合領(lǐng)域,特別是一種基于依賴(lài)圖約減和QoS(服務(wù)質(zhì)量)保持的Web服務(wù)組合方法。
背景技術(shù):
Web服務(wù)組合是關(guān)于處理自治的服務(wù)組件的組裝問(wèn)題,使得從原始的服務(wù)組件得到一個(gè)新的服務(wù),給出相應(yīng)的發(fā)布服務(wù)接口。目前的Web服務(wù)體系結(jié)構(gòu),接口是由WSDUWeb服務(wù)描述語(yǔ)言)描述的,通過(guò)UDDI (統(tǒng)一描述、發(fā)現(xiàn)和集成)發(fā)布。但是,支持組合需要更進(jìn)一步的要求:(I)組合定義(2)確保服務(wù)在既保證單個(gè)服務(wù)的一致性又保證整個(gè)組合服務(wù)的一致性的情況下被組合。目前沒(méi)有一種關(guān)于Web服務(wù)應(yīng)該怎樣組合一致的觀點(diǎn)。Web服務(wù)的組合為復(fù)雜的Web應(yīng)用提供了有效的解決方案。從現(xiàn)實(shí)應(yīng)用來(lái)看,Web服務(wù)的組合可以實(shí)現(xiàn)虛擬社區(qū)中軟硬件的共享;WWeb服務(wù)本身來(lái)看,Web服務(wù)的組合實(shí)現(xiàn)了組合服務(wù)的動(dòng)態(tài)生成,提高了服務(wù)組件及基本服務(wù)的可重用性和利用率,減少了系統(tǒng)的開(kāi)銷(xiāo)。但是其中存在的諸如服務(wù)組合粒度、服務(wù)組件或基本服務(wù)之間的通信方式及其優(yōu)化、服務(wù)的聚類(lèi)、服務(wù)的社區(qū)化分類(lèi)管理、組合服務(wù)的有效性驗(yàn)證及安全等問(wèn)題,有待進(jìn)一步的研究和探索。目前,Web服務(wù)組合側(cè)重于基于QoS的服務(wù)組合方法。但是,在已有的組合方法中,能夠獲得最高的QoS的服務(wù)組合結(jié)果中大多存在較多的冗余的Web服務(wù)。
發(fā)明內(nèi)容
發(fā)明目的:本發(fā)明所要解決的技術(shù)問(wèn)題是針對(duì)現(xiàn)有技術(shù)的不足,提供一種基于依賴(lài)圖約減和QoS保持的Web服務(wù)組合方法。發(fā)明內(nèi)容:為了解決上述技術(shù)問(wèn)題,本發(fā)明公開(kāi)了一種能夠減少冗余的Web服務(wù)的組合方法,包含如下步驟:步驟I,預(yù)處理:對(duì)所有的Web服務(wù)進(jìn)行預(yù)處理,生成一系列Map映射關(guān)系,一個(gè)輸入對(duì)應(yīng)一個(gè)需要該輸入的Web服務(wù)的集合,一個(gè)Web服務(wù)對(duì)應(yīng)Web服務(wù)的輸入集合和輸出集合。這樣對(duì)于一個(gè)輸入可以快速得到包含這一輸入的所有Web服務(wù),對(duì)于一個(gè)Web服務(wù)可以快速得到該Web服務(wù)的輸入和輸出。步驟2,生成Web服務(wù)依賴(lài)圖:對(duì)于用戶(hù)給定的一個(gè)請(qǐng)求,從用戶(hù)給定的輸入到用戶(hù)要得到的輸出,逐層加入Web服務(wù),直到得到了用戶(hù)想得到的所有的輸出,從而生成Web服務(wù)依賴(lài)圖;步驟3,添加虛擬Web服務(wù):從輸入層到輸出層由前至后逐層遍歷Web服務(wù)依賴(lài)圖,對(duì)于每個(gè)Web服務(wù)的每個(gè)輸出,如果該輸出是當(dāng)前層的后面層(除當(dāng)前層的下一層)的輸入,則在當(dāng)前層的下一層添加一個(gè)虛擬Web服務(wù)。步驟4,去除對(duì)輸出沒(méi)貢獻(xiàn)的Web服務(wù):從輸出層到輸入層從后往前逐層遍歷Web服務(wù)依賴(lài)圖,去除那些對(duì)輸出沒(méi)有貢獻(xiàn)的Web服務(wù);步驟5,計(jì)算QoS (只考慮吞吐量和響應(yīng)時(shí)間):從輸入層到輸出層從前往后遍歷Web服務(wù)依賴(lài)圖,計(jì)算每個(gè)Web服務(wù)的QoS,每個(gè)Web服務(wù)保留上一層能夠提供最高QoS值的Web服務(wù)集;步驟6,約減多余的Web服務(wù):步驟4中每個(gè)Web服務(wù)保留的上一層的Web服務(wù)集中Web服務(wù)數(shù)不是最少的,通過(guò)約減多余的Web服務(wù),從而保留較少Web服務(wù);步驟7,選取Web服務(wù):從輸出層到輸入層從后往前逐層遍歷Web服務(wù)依賴(lài)圖,選取能夠得到最高QoS的Web服務(wù)組合。步驟2生成Web服務(wù)依賴(lài)圖:將一個(gè)Web服務(wù)記為WS〈Input, Output, QoS>, Input表示W(wǎng)eb服務(wù)WS能夠被激活所必需滿(mǎn)足的輸入集合,記為InpuiXin1, in2,..., inn>,其中,Ini為單一的輸入,I ≤ i≤η,η表示輸入的總數(shù)量,Output是指執(zhí)行Web服務(wù)WS后能夠得到的所有輸出集合,記為OutpulXout1,out2,…,outm>,其中,out」為單一的輸出,I ^ j ^ m,m表示輸出的總數(shù)量,QoS指WS的非功能屬性,包括響應(yīng)時(shí)間RT,吞吐量TP ;對(duì)于用戶(hù)給定的請(qǐng)求<Rin,Rout>, Rin表示用戶(hù)給定的輸入集合,Rout表示用戶(hù)需要得到的輸出集合;從用戶(hù)給定的輸入Rin開(kāi)始,逐層添加可被調(diào)用執(zhí)行的Web服務(wù),直到得到用戶(hù)需要的所有的輸出Rwt,當(dāng)且僅當(dāng)該Web服務(wù)的所有輸入?yún)?shù)都已得到Web服務(wù)可被調(diào)用執(zhí)行;第I 層 L1 層添加的 Web 服務(wù)滿(mǎn)足
權(quán)利要求
1.一種基于依賴(lài)圖約減和QoS保持的Web服務(wù)組合方法,其特征在于,包含如下步驟: 步驟1,預(yù)處理:對(duì)所有的Web服務(wù)進(jìn)行預(yù)處理,生成一組Map映射關(guān)系; 步驟2,生成Web服務(wù)依賴(lài)圖:對(duì)于用戶(hù)給定的請(qǐng)求,從用戶(hù)給定的輸入到用戶(hù)要得到的輸出,逐層加入Web服務(wù),直到得到用戶(hù)需要的所有輸出,從而生成Web服務(wù)依賴(lài)圖; 步驟3,添加虛擬Web服務(wù):從輸入層到輸出層逐層遍歷Web服務(wù)依賴(lài)圖,對(duì)于每個(gè)Web服務(wù)的每個(gè)輸出,如果該輸出是當(dāng)前層除了下一層的后面層的輸入,則在當(dāng)前層的下一層添加一個(gè)虛擬Web服務(wù); 步驟4,去除對(duì)輸出沒(méi)有貢獻(xiàn)的Web服務(wù):從輸出層到輸入層逐層遍歷Web服務(wù)依賴(lài)圖,去除對(duì)輸出沒(méi)有貢獻(xiàn)的Web服務(wù); 步驟5,計(jì)算QoS值:從輸入層到輸出層遍歷Web服務(wù)依賴(lài)圖,計(jì)算每個(gè)Web服務(wù)的QoS值,每個(gè)Web服務(wù)保留上一層能夠提供最高QoS值的Web服務(wù)的集合; 步驟6,約減多余的Web服務(wù); 步驟7,選取Web服務(wù):從輸出層到輸入層逐層遍歷Web服務(wù)依賴(lài)圖,選取能夠得到最高QoS值的Web服務(wù)組合。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟2中包括以下步驟: 將一個(gè)Web服務(wù)記為WS〈Input, Output, QoS>, Input表示W(wǎng)eb服務(wù)WS能夠被激活所必需滿(mǎn)足的輸入集合,記為InpuiXin1, in2,..., inn>,其中,ir^為單一的輸入,I彡i彡η,η表示輸入的總數(shù)量,Output是指執(zhí)行Web服務(wù)WS后能夠得到的所有輸出集合,記為Output<out1; OUt2,…,outm>,其中,OUtj為單一的輸出,I < j < m, m表示輸出的總數(shù)量,QoS指WS的非功能屬性,包括響應(yīng)時(shí)間RT,吞吐量TP ; 對(duì)于用戶(hù)給定的請(qǐng)求<Rin,Rout>, Rin表示用戶(hù)給定的輸入集合,Rout表示用戶(hù)需要得到的輸出集合;從用戶(hù)給定的輸入集合Rin開(kāi)始,逐層添加可被調(diào)用執(zhí)行的Web服務(wù),直到得到用戶(hù)需要的所有的輸出集合Rtjut ;當(dāng)且僅當(dāng)該Web服務(wù)的所有輸入?yún)?shù)都已得到,則Web服務(wù)可被調(diào)用執(zhí)行; 第 I 層 L1 層添加的 Web 服務(wù)滿(mǎn)足 h = i^hx.wsi,X ^ h(k < I) A Inputwsix ηOutput,^ ^ 0Λ Inputwsix c Rjn u Output2 U...U Owtpiit,—],即在第 I 層添加的第 χ 個(gè)Web服務(wù)WSu在第I層之前的第k層沒(méi)有被添加,并且當(dāng)該Web服務(wù)在第I層可被調(diào)用執(zhí)行時(shí)必須添加在第I層;其中 是指第I層的第χ個(gè)Web服務(wù)輸入集合,Outputp是指第P層中所有Web服務(wù)的輸出集合的并集,2 SpS 1-1,I < I < C,C為總層數(shù),Lk表示第k層,WS1;X表示L1層的第χ個(gè)Web服務(wù)。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,步驟3中添加虛擬Web服務(wù)包括以下步驟: 對(duì)于第I層的每一個(gè)Web服務(wù)的每一個(gè)輸出OUtj,當(dāng)輸出OUtj跨越一層以上作為后面第h層中Web服務(wù)的輸入時(shí),h ^ 1+1,在跨越的每層中都添加一個(gè)虛擬Web服務(wù),該虛擬Web服務(wù)的輸入和輸出都設(shè)為out」,且具有最高的QoS值,把第一層輸入集合Rin和最后一層輸出集合Rtjut也分別作為一個(gè)虛擬Web服務(wù)。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,步驟4去除對(duì)輸出沒(méi)貢獻(xiàn)的Web服務(wù)包括以下步驟:假設(shè)Web服務(wù)依賴(lài)圖有η層,第一層和最后一層只含有一個(gè)由步驟3產(chǎn)生的虛擬Web服務(wù),從輸出層到輸入層逐層遍歷Web服務(wù)依賴(lài)圖,對(duì)于L1層,當(dāng)WSu EL1AOutputwsix ni i U Inpiitwsui 2 U …U lnputws.^ J = 0 ’其中,WS1+lx e L1+1, χ =`1,2,...,s,即當(dāng)L1層的第χ個(gè)Web服務(wù)WS1-的輸出集合心卬Mtwiv與第1+1層的所有Web服務(wù)的輸入集合的交集為空時(shí),則判定L1層的第χ個(gè)Web服務(wù)WSu對(duì)輸出沒(méi)有貢獻(xiàn),從L1層中去除。
5.根據(jù)權(quán)利要求4所述的Web服務(wù)組合方法,其特征在于,步驟5計(jì)算QoS值包括以下步驟: 從輸入層到 輸出層,對(duì)于L1層的第χ個(gè)Web服務(wù),WS1;X e L1, I = 2,3, , C,該Web服務(wù)的輸入集合_^^^ = [In1Jn2, η },當(dāng)?shù)贖層的第y個(gè)Web服務(wù)WSwiy e L1+如果扣e /npw%Su即輸入ini屬于集合/nptrt而&,有且⑷y即輸入irii屬于集合OwtpMtwsfO則把Web服務(wù)WSny加入到aim Qni)集合中,其中,all^ Qni)是指在L1^1層能夠輸出Ini的Web服務(wù) 集合,初始為空;0utputWSl_iy為第丨-丨層的第y個(gè)Web服務(wù)WS^y的輸出集合; 對(duì)所有的all^ani)其中i = 1,2,...,η集合,輸入Ini能夠得到的最小的響應(yīng)時(shí)間為Web服務(wù)集合alln Qni)中的Web服務(wù)執(zhí)行完所需的具有最小時(shí)間Web服務(wù)bestrt Qni),即bestrtQrii) = mintall^ QniM,則從輸入開(kāi)始到執(zhí)行完Web服務(wù)WS1^所需要的最小時(shí)間RT.WSljx為得到該Web服務(wù)所 有輸入中最大的響應(yīng)時(shí)間max Ibestrt (Ini)}加上該Web服務(wù)本身執(zhí)行的時(shí)間 WSu.RT,即 RT.WS1;x = max {bestrt (Ini)}+WS1;X.RT,其中,RT.WS^ 是指從輸入開(kāi)始到執(zhí)行完Web服務(wù)WSu所需的最小時(shí)間,WSu.RT為執(zhí)行Web服務(wù)WSlix本身需要的時(shí)間,bestrt (Ini)為Web服務(wù)集合all^ Qni)中的Web服務(wù)執(zhí)行完所需的具有最小時(shí)間Web服務(wù),max Ibestrt QniM是指WSlix所有輸入?yún)?shù)對(duì)應(yīng)的Web服務(wù)中最大相應(yīng)時(shí)間; 對(duì)所有的all^ani)其中i = 1,2,...,η集合,輸入Ini能夠得到的具有最大吞吐量的Web服務(wù)besi^Qrii) = max {al Iw (Ini)},則從輸入開(kāi)始到執(zhí)行完Web服務(wù)WS^x所能產(chǎn)生的最大吞吐量TP.WSljx取為得到該Web服務(wù)所有輸入和Web服務(wù)本身執(zhí)行所產(chǎn)生的吞吐量中最小值,即TP.WS1;X = Ininibesttp(Ini),WS1;X.TP},其中,TP.WS1;X是指從輸入開(kāi)始到執(zhí)行完Web服務(wù)WS1-所能提供的最大吞吐量,VShx.TP為Web服務(wù)WS^所能提供的吞吐量,besttp (Ini)為輸入Iini能夠得到的具有最大吞吐量的Web服務(wù),min {besttp Qni), WSu.TP}為取所有besttp(ini)和WSu中吞吐量的最小值,由此得到當(dāng)前Web服務(wù)WSu能夠獲得的最高的QoS值。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,步驟6約減多余的Web服務(wù)包括以下步驟: 對(duì)于L1層的Web服務(wù)WSu,其輸入集合= Iin1, η2, η },由步驟5得到的alln Qni) AestrtQni)和 BesttpQni)可以進(jìn)行如下操作: 求最小響應(yīng)時(shí)間,對(duì)中所有的輸入inp從i = I到i =n,查看所有的alIw(Inq), I≤q≤η,如果集合allHQriq)中包含BestrtQni)中的Web服務(wù),則修改bestrt(inq) = bestrt (Ini);由此,Web服務(wù)WS1-保留的第1_1層的Web服務(wù)集為產(chǎn)生該Web服務(wù)WSu輸入的具有最小響應(yīng)時(shí)間的Web服務(wù)的并集Setrt(WS1)),即Setrt(WS1))={bestrt (Ini) i = I, 2,..., η}; 求最大吞吐量,對(duì)Inputwsix中所有的輸入iny從i = I到i = η,查看所有的alIw(Inq), 1≤q≤η,如果集合allHQriq)中包含BesttpQni)中的Web服務(wù),則修改besttp(inq) = besttp(Ini);由此Web服務(wù)WSu保留的第1_1層的Web服務(wù)集為產(chǎn)生該Web服務(wù)WS1, x輸入的具有最大吞吐量的Web服務(wù)的并集settp (WSi,」),即settp (WSi,」)={besttp (ini) | i = 1,2,…1}。
7.根據(jù)權(quán)利要求6所述的Web服務(wù)組合方法,其特征在于,步驟7選取Web服務(wù)中:在最后一層輸出層選取具有最高QoS值的Web服務(wù),然后選取被選取的Web服務(wù)由步驟6保留的Web服務(wù)的集合,依次進(jìn)行下去直到 第一層輸入層。
全文摘要
本發(fā)明公開(kāi)了一種基于依賴(lài)圖約減和QoS(服務(wù)質(zhì)量)保持的Web服務(wù)組合方法,包含如下步驟步驟1,預(yù)處理;步驟2,生成Web服務(wù)依賴(lài)圖從用戶(hù)給定的輸入到用戶(hù)要得到的輸出,逐層加入Web服務(wù),直到得到用戶(hù)需要的所有輸出;步驟3,添加虛擬Web服務(wù)從輸入層到輸出層逐層遍歷Web服務(wù)依賴(lài)圖;步驟4,去除對(duì)輸出沒(méi)有貢獻(xiàn)的Web服務(wù);步驟5,計(jì)算QoS值從輸入層到輸出層遍歷Web服務(wù)依賴(lài)圖,計(jì)算每個(gè)Web服務(wù)的QoS值,每個(gè)Web服務(wù)保留上一層能夠提供最高QoS值的Web服務(wù)的集合;步驟6,約減多余的Web服務(wù);步驟7,選取Web服務(wù)從輸出層到輸入層逐層遍歷Web服務(wù)依賴(lài)圖,選取能夠得到最高QoS值的Web服務(wù)組合。
文檔編號(hào)H04L29/08GK103108044SQ20131004419
公開(kāi)日2013年5月15日 申請(qǐng)日期2013年2月4日 優(yōu)先權(quán)日2013年2月4日
發(fā)明者楊育彬, 夏永敏 申請(qǐng)人:南京大學(xué)