專利名稱:動(dòng)態(tài)網(wǎng)絡(luò)環(huán)境下高可靠性服務(wù)組合方法
技術(shù)領(lǐng)域:
本發(fā)明屬于Web服務(wù)技術(shù)領(lǐng)域,涉及一種動(dòng)態(tài)網(wǎng)絡(luò)環(huán)境下高可靠性服務(wù)組合方法。
背景技術(shù):
近年來(lái),隨著企業(yè)信息化的不斷發(fā)展,SOA (面向服務(wù)的架構(gòu))已經(jīng)成為應(yīng)用開發(fā)中不可或缺的一項(xiàng)技術(shù)。服務(wù)是SOA的核心,而服務(wù)組合是SOA組織服務(wù)的基本方式。為了服務(wù)的可重用性、分散化以及方便操作,單個(gè)服務(wù)一般邏輯簡(jiǎn)單,只能解決單一的應(yīng)用。面對(duì)靈活多變的應(yīng)用需求,SOA通過組合一系列服務(wù)以完成更加復(fù)雜的任務(wù)。然而,在動(dòng)態(tài)網(wǎng)絡(luò)環(huán)境中,各種與服務(wù)有關(guān)的因素都可能隨時(shí)變化,如服務(wù)提供者和調(diào)用者都處于不斷的移動(dòng)狀態(tài),在某一時(shí)刻可能會(huì)出現(xiàn)服務(wù)提供者與服務(wù)調(diào)用者相距太遠(yuǎn)而導(dǎo)致服務(wù)不可用的現(xiàn)象。例如,在公交車上的乘客使用無(wú)線網(wǎng)下載歌曲,很有可能在下一個(gè)時(shí)刻該乘客到站了, 下載還沒有結(jié)束,而原來(lái)的服務(wù)提供者超出了有效范圍,這時(shí)正在進(jìn)行的下載將被打斷,我們需要搜索新的服務(wù),進(jìn)行服務(wù)組合的重組。但是,服務(wù)組合的重組開銷往往很大,要減少這種開銷,最好能在使用之前進(jìn)行服務(wù)組合的設(shè)計(jì),使其具有最高的可靠性。現(xiàn)有的服務(wù)組合方法主要是利用已有的模型,參考單個(gè)服務(wù)的過去調(diào)用的數(shù)據(jù)情況,根據(jù)服務(wù)相似性原則以及用戶相似性原則對(duì)服務(wù)進(jìn)行分析,以此評(píng)估服務(wù)組合的可靠性。但是,這些方法缺乏了對(duì)實(shí)際調(diào)用情況的分析。本發(fā)明提出的方法是在對(duì)實(shí)際環(huán)境做出直接考察,得出調(diào)用成功率函數(shù)的基礎(chǔ)上,尋找具有高可靠性的服務(wù)組合。
發(fā)明內(nèi)容
在動(dòng)態(tài)網(wǎng)絡(luò)環(huán)境下,服務(wù)提供者和調(diào)用者都處于不斷移動(dòng)的特點(diǎn),影響服務(wù)組合可靠性的因素多種多樣。本發(fā)明針對(duì)現(xiàn)有技術(shù)的不足,提出了一種在動(dòng)態(tài)網(wǎng)絡(luò)環(huán)境下基于成功率的高可靠性服務(wù)組合方法。本發(fā)明方法的具體步驟是
步驟(1)選取通用計(jì)算機(jī),讀取完整的服務(wù)組合信息,包括服務(wù)組合的結(jié)點(diǎn)數(shù)目,每個(gè)結(jié)點(diǎn)的服務(wù)類型以及各自包含的原子服務(wù),服務(wù)的調(diào)用順序;
步驟(2)獲取服務(wù)提供者信息,包括每個(gè)服務(wù)提供者可以提供的原子服務(wù)以及與時(shí)間有關(guān)的成功率函數(shù)# ;
步驟(3)根據(jù)最大連續(xù)性原則預(yù)處理服務(wù)組合,包括計(jì)算每個(gè)服務(wù)提供者能夠連續(xù)提供的服務(wù)數(shù)目,執(zhí)行結(jié)點(diǎn)的合并以及結(jié)點(diǎn)分裂;
步驟(4)從服務(wù)組合的起始結(jié)點(diǎn)開始,按調(diào)用順序遍歷各結(jié)點(diǎn),計(jì)算每個(gè)原子服務(wù)的成功率和相應(yīng)的前驅(qū)原子服務(wù);
步驟(5)從服務(wù)組合的結(jié)束結(jié)點(diǎn)開始,選擇具有最大執(zhí)行概率的原子服務(wù),沿著其前驅(qū)結(jié)點(diǎn)往前回溯,直到服務(wù)組合的開始位置,得出從開始結(jié)點(diǎn)到結(jié)束結(jié)點(diǎn)的一條執(zhí)行路徑; 步驟(6)輸出在步驟(5)中得到的路徑結(jié)果,即為具有高可靠性的服務(wù)組合路徑。
本發(fā)明所提供的動(dòng)態(tài)網(wǎng)絡(luò)環(huán)境下高可靠性服務(wù)組合方法由一組功能模塊組成,它們包括服務(wù)信息讀入模塊、服務(wù)信息預(yù)處理模塊、服務(wù)結(jié)點(diǎn)遍歷模塊和服務(wù)組合路徑輸出模塊。服務(wù)信息讀入模塊讀入完整的服務(wù)組合拓?fù)湫畔?,包括服?wù)組合的長(zhǎng)度,每個(gè)步驟中包含的服務(wù)類型(原子型服務(wù)、選擇型服務(wù)和并行型服務(wù))以及其包含的原子服務(wù),月艮務(wù)調(diào)用順序;讀入服務(wù)提供者信息,包括每個(gè)服務(wù)提供者可以提供的原子服務(wù)以及在隨時(shí)間變化的成功率函數(shù);
服務(wù)信息預(yù)處理模塊是利用最大連續(xù)性原則對(duì)讀入的服務(wù)組合進(jìn)行結(jié)點(diǎn)的合并和分裂操作。其中連續(xù)性原則為在一次遍歷中,服務(wù)提供者能夠連續(xù)提供的服務(wù)數(shù)量。接著對(duì)具有最大連續(xù)性的服務(wù)提供者進(jìn)行合并和分裂結(jié)點(diǎn)操作,其中合并結(jié)點(diǎn)即把單個(gè)服務(wù)提供者一次能夠連續(xù)提供的服務(wù)合并,分裂結(jié)點(diǎn)即針對(duì)一個(gè)選擇型服務(wù)結(jié)點(diǎn),如果單個(gè)服務(wù)提供者能提供它包含的多個(gè)原子服務(wù),則將原來(lái)選擇型結(jié)點(diǎn)分裂成多個(gè)原子服務(wù)結(jié)點(diǎn);
服務(wù)結(jié)點(diǎn)遍歷模塊即利用動(dòng)態(tài)規(guī)劃原理,從服務(wù)組合頭結(jié)點(diǎn)開始一直遍歷到尾結(jié)點(diǎn), 沿途依次求出使得每個(gè)原子服務(wù)具有最大執(zhí)行成功率的前驅(qū)以及服務(wù)提供者; 服務(wù)組合路徑輸出模塊格式化輸出獲得的高可靠性的服務(wù)組合路徑。與傳統(tǒng)方法相比,本發(fā)明所提供的方法對(duì)調(diào)用環(huán)境做出直接映射,考慮了實(shí)際情況中可能出現(xiàn)的各種情況。同時(shí)提出最大連續(xù)性原則簡(jiǎn)化了原有的服務(wù)組合,使得計(jì)算更加簡(jiǎn)單方便,并且利用成功率來(lái)表征可靠性更加直觀。
具體實(shí)施例方式本發(fā)明可用于在一個(gè)動(dòng)態(tài)網(wǎng)絡(luò)環(huán)境中,選擇一個(gè)具有高可靠性的服務(wù)組合路徑, 其主要考慮的是在環(huán)境中調(diào)用服務(wù)的時(shí)間以及服務(wù)所需的執(zhí)行時(shí)間對(duì)服務(wù)組合成功率的影響。假設(shè)調(diào)用服務(wù)的成功率函數(shù)是一個(gè)時(shí)間f的函數(shù);一個(gè)原子服務(wù)& (id為服務(wù)
編號(hào))可以完成一項(xiàng)簡(jiǎn)單的任務(wù),并且都需要一定的執(zhí)行時(shí)間服務(wù)組合中包含的服務(wù)
類型有三種原子型服務(wù),并行型服務(wù)和選擇型服務(wù)。其中
(1)原子型服務(wù)(A)包含一個(gè)原子服務(wù)的集合,并且對(duì)應(yīng)的任務(wù)只能由該服務(wù)包含的原子服務(wù)完成;
(2)選擇型服務(wù)(S):包含多個(gè)原子服務(wù)的集合,其中的原子服務(wù)可以完成相同的任務(wù), 任選一個(gè)都可以完成對(duì)應(yīng)的任務(wù);
(3)并行型服務(wù)(P)包含多個(gè)原子服務(wù)的集合,其中的原子服務(wù)同時(shí)執(zhí)行可以完成一個(gè)任務(wù)。服務(wù)提供者(provider)能夠提供多個(gè)原子服務(wù),調(diào)用其提供的服務(wù)的成功率是一個(gè)關(guān)于時(shí)間 的函數(shù)冗。服務(wù)組合(SC)是指由一系列上述服務(wù)構(gòu)成的有序序列。每個(gè)服務(wù)組合都可以完成一項(xiàng)特定的較為復(fù)雜的任務(wù),并且每個(gè)服務(wù)組合包含的服務(wù)的數(shù)量是有限的,用SC = (se, SP1 ^表示,其中SE表示服務(wù)的有序集合,SP表示服務(wù)提供者的集合。服務(wù)組合可靠性是指服務(wù)組合中一條執(zhí)行路徑的成功率。
4
其他相關(guān)符號(hào)及概念說明 Stepi 服務(wù)組合中的第個(gè)步驟;
、:編號(hào)為7的原子服務(wù);
^Pi 的執(zhí)行成功率(自身成功率與前驅(qū)成功率的乘積,自身成功率根據(jù)成功率函數(shù)計(jì)算)
本發(fā)明所提供的動(dòng)態(tài)網(wǎng)絡(luò)環(huán)境下的高可靠性服務(wù)組合方法的具體實(shí)施方式
如下
(1)選取通用計(jì)算機(jī),讀取完整的服務(wù)組合信息,即服務(wù)組合的結(jié)點(diǎn)數(shù)目,每個(gè)結(jié)點(diǎn)的服務(wù)類型以及各自包含的原子服務(wù);
(2)獲取服務(wù)提供者信息,包括每個(gè)服務(wù)提供者可以提供的原子服務(wù)以及與時(shí)間有關(guān)的成功率函數(shù);
(3)根據(jù)最大連續(xù)性原則預(yù)處理服務(wù)組合,計(jì)算每個(gè)服務(wù)提供者能夠連續(xù)提供的服務(wù)數(shù)目,同時(shí)實(shí)現(xiàn)結(jié)點(diǎn)的合并以及分裂。計(jì)算服務(wù)提供者能夠連續(xù)提供的原子服務(wù)數(shù)目操作如下
(3. 1)從起始結(jié)點(diǎn)(第一次操作的起始位置為服務(wù)組合的開始位置)開始,對(duì)于每個(gè)服務(wù)提供者,如果對(duì)于一個(gè)結(jié)點(diǎn),它至少能夠提供一個(gè)原子服務(wù),則其連續(xù)性加1,沿著服務(wù)組合往前,直到遇到并行型服務(wù)或者對(duì)于某個(gè)不能提供任何原子服務(wù)則停止;
(3. 2)合并結(jié)點(diǎn)對(duì)于具有最大連續(xù)值的服務(wù)提供者,合并其一次能夠提供的原子服務(wù)為一個(gè)結(jié)點(diǎn)(如果有多個(gè)服務(wù)提供者具有相同的最大連續(xù)值,分別進(jìn)行操作)
(3. 3)分裂結(jié)點(diǎn)如果對(duì)于一個(gè)結(jié)點(diǎn),一個(gè)服務(wù)提供者可以提供多個(gè)原子服務(wù)(針對(duì)選擇型服務(wù)),則將其分裂成多個(gè)原子服務(wù)的結(jié)點(diǎn),全部保存;
(3. 4)從本次提供的最后一個(gè)服務(wù)的下一個(gè)步驟開始,如果是并行型服務(wù),則繼續(xù)下一個(gè)結(jié)點(diǎn),如果不是,則將它記為起始結(jié)點(diǎn)。重復(fù)上述(3. 1)、(3. 2)、(3. 3)和(3. 4)步驟,直到不存在尚未處理的結(jié)點(diǎn)為止。由于服務(wù)組合是一系列服務(wù)的有序集合,且成功率函數(shù)是一個(gè)與時(shí)間有關(guān)的函數(shù)以及每個(gè)原子服務(wù)都需要一定的執(zhí)行時(shí)間,因此處于服務(wù)組合前面的服務(wù)會(huì)影響后續(xù)服務(wù)的成功率??紤]選擇型服務(wù)以及每個(gè)原子服務(wù)有多個(gè)服務(wù)提供者的存在,每個(gè)服務(wù)組合具有多條執(zhí)行路徑。規(guī)定每條路徑的執(zhí)行成功率為該路徑上所有原子服務(wù)的成功率的乘積。 以下是利用動(dòng)態(tài)規(guī)劃方法尋找具有最大可靠性的執(zhí)行路徑的具體步驟
(4)計(jì)算服務(wù)組合第4個(gè)結(jié)點(diǎn)包含的每個(gè)原子服務(wù) 的執(zhí)行成功率印/,對(duì)于第一個(gè)結(jié)點(diǎn),直接根據(jù)成功率函數(shù)計(jì)算勺的成功率,從第二個(gè)結(jié)點(diǎn)開始,判斷其前驅(qū)的服務(wù)類型
(4. 1)若前驅(qū)類型為原子型服務(wù)包含一個(gè)原子服務(wù)A,則直接計(jì)算力在&下的執(zhí)行成功率,并記錄前驅(qū)為6。(4. 2)若前驅(qū)為選擇型服務(wù),包含多個(gè)原子服務(wù)&,則為 計(jì)算在不同前驅(qū)下的執(zhí)行成功率,并分別記錄使得勺的執(zhí)行成功率具有最大值的前驅(qū)。(4. 3)若前驅(qū)為并行型服務(wù),則直接計(jì)算勺的成功率,并記錄該并行型服務(wù)包含的所有原子服務(wù)為^的前驅(qū)。對(duì)于并行型服務(wù),它的執(zhí)行成功率為它包含的每個(gè)原子服務(wù)的成功率與其前驅(qū)的執(zhí)行成功率的成績(jī)(一個(gè)并行型服務(wù)包含的所有原子服務(wù)的前驅(qū)必須相同,若有多種選擇, 則選擇能使并行型服務(wù)具有最大執(zhí)行成功率的前驅(qū))。(5)在最后一個(gè)結(jié)點(diǎn)中選擇具有最大執(zhí)行成功率的原子服務(wù),并沿著它的前驅(qū)往前回溯,直到服務(wù)組合的第一個(gè)結(jié)點(diǎn),經(jīng)過回溯遍歷,得出了一條從第一個(gè)結(jié)點(diǎn)到最后一個(gè)結(jié)點(diǎn)的執(zhí)行路徑。(6)輸出在步驟(5)中得到的路徑結(jié)果,其即為具有高可靠性的服務(wù)組合路徑。
權(quán)利要求
1.動(dòng)態(tài)網(wǎng)絡(luò)環(huán)境下高可靠性服務(wù)組合方法,其特征在于該方法的具體步驟是 步驟(1)選取通用計(jì)算機(jī),讀取完整的服務(wù)組合信息,包括①服務(wù)組合的結(jié)點(diǎn)數(shù)目,② 每個(gè)結(jié)點(diǎn)的服務(wù)類型以及各自包含的原子服務(wù),所述的服務(wù)類型分為原子型服務(wù)、選擇型服務(wù)和并行型服務(wù),③服務(wù)調(diào)用順序;步驟(2)獲取服務(wù)提供者信息,包括①每個(gè)服務(wù)提供者Pi可以提供的原子服務(wù),②與時(shí)間有關(guān)的成功率函數(shù);步驟(3)根據(jù)最大連續(xù)性原則預(yù)處理服務(wù)組合,包括①計(jì)算每個(gè)服務(wù)提供者『能夠連續(xù)提供的服務(wù)數(shù)目,②結(jié)點(diǎn)的合并,③結(jié)點(diǎn)的分裂;操作①具體為對(duì)于每個(gè)巧,從尚未處理的第一個(gè)結(jié)點(diǎn)開始,判斷巧能夠連續(xù)前進(jìn)的步數(shù),規(guī)定遇到并行型服務(wù)或者對(duì)于當(dāng)前考慮的結(jié)點(diǎn),不能提供它包含的任何一個(gè)原子服務(wù)則停止計(jì)算,前進(jìn)的步數(shù)即為連續(xù)性;操作②具體為對(duì)于具有最大連續(xù)性的服務(wù)提供者,將其能夠連續(xù)提供的服務(wù)合并為一個(gè)結(jié)點(diǎn);操作③具體為針對(duì)選擇型服務(wù)結(jié)點(diǎn),若一個(gè)服務(wù)提供者能夠提供該結(jié)點(diǎn)包含的多個(gè)原子服務(wù),將這多個(gè)原子服務(wù)分裂成多個(gè)并列的原子服務(wù)結(jié)點(diǎn);步驟(4)考慮服務(wù)組合中一個(gè)結(jié)點(diǎn)包含的每個(gè)原子服務(wù)~ ,根據(jù)成功率函數(shù)計(jì)算的成功率,從而計(jì)算執(zhí)行成功率對(duì)于服務(wù)組合中的第一個(gè)結(jié)點(diǎn),直接計(jì)算 的成功率;從第二個(gè)結(jié)點(diǎn)開始,若前驅(qū)類型為原子型服務(wù),包含一個(gè)原子服務(wù)則直接計(jì)算力在A下的執(zhí)行成功率,并記錄前驅(qū)為S ;若前驅(qū)為選擇型服務(wù),包含多個(gè)原子服務(wù)Si,則為Sj計(jì)算在不同前驅(qū)A下的成功率,并分別記錄使得每個(gè)勺的執(zhí)行成功率具有最大值的前驅(qū);若前驅(qū)為并行型服務(wù),則直接計(jì)算勺的執(zhí)行成功率,并記錄該并行型服務(wù)包含的所有原子服務(wù)為前驅(qū);一個(gè)并行型服務(wù)的執(zhí)行成功率為它包含的所有原子服務(wù)的成功率與前驅(qū)的執(zhí)行成功率的乘積,重復(fù)步驟(4)直到計(jì)算出所有結(jié)點(diǎn)包含的所有原子服務(wù)的執(zhí)行成功率;步驟(5)在最后一個(gè)結(jié)點(diǎn)中選擇具有最大執(zhí)行成功率的原子服務(wù),并沿著它的前驅(qū)往前回溯,直到服務(wù)組合的第一個(gè)結(jié)點(diǎn),經(jīng)過回溯遍歷,得出了一條從第一個(gè)結(jié)點(diǎn)到最后一個(gè)結(jié)點(diǎn)的執(zhí)行路徑;步驟(6)輸出在步驟(5)中得到的路徑結(jié)果,其即為具有高可靠性的服務(wù)組合路徑。
全文摘要
本發(fā)明公開了一種動(dòng)態(tài)網(wǎng)絡(luò)環(huán)境下高可靠性服務(wù)組合方法?,F(xiàn)有的方法缺乏對(duì)實(shí)際調(diào)用情況的分析。本發(fā)明首先選取通用計(jì)算機(jī),讀取完整的服務(wù)組合信息;其次獲取服務(wù)提供者信息并根據(jù)最大連續(xù)性原則預(yù)處理服務(wù)組合;然后從服務(wù)組合的起始結(jié)點(diǎn)開始,計(jì)算每個(gè)原子服務(wù)的成功率和相應(yīng)的前驅(qū)原子服務(wù);從服務(wù)組合的結(jié)束結(jié)點(diǎn)開始,選擇具有最大執(zhí)行概率的原子服務(wù),沿著其前驅(qū)結(jié)點(diǎn)往前回溯,直到服務(wù)組合的開始位置,最終得出從開始結(jié)點(diǎn)到結(jié)束結(jié)點(diǎn)的一條執(zhí)行路徑。本發(fā)明方法對(duì)調(diào)用環(huán)境做出直接映射,考慮了實(shí)際情況中可能出現(xiàn)的各種情況。同時(shí)提出最大連續(xù)性原則簡(jiǎn)化了原有的服務(wù)組合,使得計(jì)算更加簡(jiǎn)單方便,并且利用成功率來(lái)表征可靠性更加直觀。
文檔編號(hào)H04L29/08GK102523269SQ20111040558
公開日2012年6月27日 申請(qǐng)日期2011年12月8日 優(yōu)先權(quán)日2011年12月8日
發(fā)明者俞東進(jìn), 呂倩, 胡海洋 申請(qǐng)人:杭州電子科技大學(xué)