專利名稱:一種優(yōu)化的服務(wù)網(wǎng)格調(diào)度方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種網(wǎng)格中服務(wù)調(diào)度時(shí)的執(zhí)行優(yōu)化方案,主要用于解決網(wǎng)格中的服務(wù)調(diào)度性能問題,屬于分布式計(jì)算和網(wǎng)格計(jì)算應(yīng)用領(lǐng)域。
背景技術(shù):
網(wǎng)格計(jì)算被稱為下一代分布式計(jì)算,網(wǎng)格系統(tǒng)的部署涉及到不同種類的、地域上分散的、能夠動(dòng)態(tài)獲取資源的有效管理。然而,一個(gè)網(wǎng)格環(huán)境的有效性在很大程度上取決于調(diào)度系統(tǒng)的有效性和效率。調(diào)度系統(tǒng)是網(wǎng)格計(jì)算的一個(gè)重要組成部分,隨著網(wǎng)格計(jì)算環(huán)境的日益流行,其重要性也益發(fā)突出。調(diào)度程序的職責(zé)是將任務(wù)放到網(wǎng)格中的資源上執(zhí)行,理論上這聽起來似乎非常簡單,但它卻是一個(gè)相當(dāng)復(fù)雜的問題。從本質(zhì)上來說,調(diào)度是一個(gè)優(yōu)化問題,原因是在網(wǎng)格中只有有限的資源可以使用,而工作請(qǐng)求的數(shù)量可能會(huì)遠(yuǎn)遠(yuǎn)超出這些資源所能承受的能力。優(yōu)化可以以多種形式進(jìn)行,有時(shí)在所有網(wǎng)格資源之間的資源利用率非常重要,有時(shí)作業(yè)的吞吐量則會(huì)非常重要,通常都希望能平衡這些相互競(jìng)爭的目標(biāo)。同時(shí),網(wǎng)格中的資源具有分布性、異構(gòu)性、自治性和動(dòng)態(tài)性等特點(diǎn),這些特點(diǎn)使得網(wǎng)格調(diào)度比傳統(tǒng)分布式系統(tǒng)上的調(diào)度受到更多的挑戰(zhàn)。
雖然網(wǎng)格技術(shù)經(jīng)過了數(shù)十年發(fā)展得到不斷的改進(jìn)和完善,但是隨著網(wǎng)格技術(shù)和Web Service技術(shù)的相結(jié)合,對(duì)調(diào)度系統(tǒng)又提出了更高的要求。調(diào)度不僅僅在局限于以往的作業(yè)調(diào)度,還涉及到服務(wù)調(diào)度。
服務(wù)組合已成為網(wǎng)格研究領(lǐng)域的熱點(diǎn),目前對(duì)于服務(wù)組合執(zhí)行性能的優(yōu)化主要集中在組合的設(shè)計(jì)階段和運(yùn)行階段,其優(yōu)化的效果有限。如果能在服務(wù)組合執(zhí)行前,將其執(zhí)行規(guī)模有效地降低,那么必然能優(yōu)化整個(gè)服務(wù)組合的執(zhí)行性能,而這正是優(yōu)化處理模塊的設(shè)計(jì)初衷。
當(dāng)前,對(duì)于服務(wù)組合的優(yōu)化主要集中于兩個(gè)方面一是靜態(tài)優(yōu)化。強(qiáng)調(diào)整個(gè)網(wǎng)格系統(tǒng)的性能,主要采用一些啟發(fā)式算法比如遺傳算法,蟻群算法;二是動(dòng)態(tài)優(yōu)化??紤]應(yīng)用的需求,比如根據(jù)資源的性能動(dòng)態(tài)選擇資源。而這兩方面各有利弊,靜態(tài)優(yōu)化需要提前確定服務(wù)組合的執(zhí)行路徑,并不能適應(yīng)網(wǎng)格的動(dòng)態(tài)性;而動(dòng)態(tài)優(yōu)化雖然考慮到網(wǎng)格的動(dòng)態(tài)性,但不能從總體把握整個(gè)服務(wù)組合的執(zhí)行進(jìn)展。而且這兩種優(yōu)化都只是對(duì)當(dāng)前資源的優(yōu)化組合,其優(yōu)化的效果有限,并沒有降低整個(gè)服務(wù)的執(zhí)行規(guī)模。用戶一般利用網(wǎng)格豐富的資源來執(zhí)行大型的應(yīng)用,服務(wù)的長期運(yùn)行對(duì)于服務(wù)組合的成功執(zhí)行有著極大的影響,如果可以降低整個(gè)服務(wù)組合的規(guī)模那么服務(wù)組合的成功率必然會(huì)大大提高,另外其執(zhí)行時(shí)間也必然會(huì)隨之縮短。
發(fā)明內(nèi)容
本發(fā)明目的是提供一種優(yōu)化的服務(wù)網(wǎng)格調(diào)度方法,通過最大化利用已有信息,降低整個(gè)服務(wù)的執(zhí)行規(guī)模,提高服務(wù)執(zhí)行的效率和吞吐量。
為達(dá)到上述目的,本發(fā)明采用的技術(shù)方案是一種優(yōu)化的服務(wù)網(wǎng)格調(diào)度方法,設(shè)立數(shù)據(jù)庫用于保存執(zhí)行過的服務(wù)、其輸入數(shù)據(jù)范圍及結(jié)果,調(diào)度方法包括以下步驟 (1)把用戶提交的作業(yè)根據(jù)服務(wù)的描述分解為n個(gè)服務(wù)sw1,sw2,……,swn,并形成作業(yè)描述文件提交給調(diào)度器,其中,n為自然數(shù),由用戶提交的作業(yè)中的描述確定; (2)對(duì)于服務(wù)swi,其中i為1~n,調(diào)度器首先根據(jù)輸入數(shù)據(jù)判斷其類型,如果不是范圍型服務(wù),則執(zhí)行步驟(5);否則執(zhí)行步驟(3); (3)檢索所述數(shù)據(jù)庫,判斷該服務(wù)對(duì)該輸入數(shù)據(jù)是否已經(jīng)執(zhí)行過并保存了結(jié)果,如果不是則執(zhí)行步驟(5),否則執(zhí)行步驟(4); (4)從數(shù)據(jù)庫中獲取相應(yīng)的執(zhí)行結(jié)果,判斷是否是基于全部輸入數(shù)據(jù)的執(zhí)行結(jié)果,如果是則執(zhí)行步驟(6),否則修改輸入數(shù)據(jù)集合,執(zhí)行步驟(5); (5)調(diào)度器調(diào)度運(yùn)行所需服務(wù),獲得結(jié)果;如是范圍型服務(wù),將服務(wù)、輸入數(shù)據(jù)范圍及結(jié)果存入數(shù)據(jù)庫; (6)如果i<n,調(diào)度器獲取下一個(gè)服務(wù)swi+1,返回步驟(2)執(zhí)行下一個(gè)服務(wù);否則調(diào)度器結(jié)束調(diào)度。
本申請(qǐng)發(fā)明人分析了目前大多數(shù)網(wǎng)格平臺(tái)上的服務(wù),提出了范圍型服務(wù)RaS(Range Service)的概念;并根據(jù)RaS輸入?yún)?shù)的信息和并行處理思想,提出了網(wǎng)格環(huán)境下參數(shù)優(yōu)化的設(shè)計(jì)方案。該方案可有效地利用服務(wù)的歷史執(zhí)行數(shù)據(jù),優(yōu)化當(dāng)前服務(wù)的執(zhí)行。從而在服務(wù)組合執(zhí)行前,就可大大降低服務(wù)的執(zhí)行規(guī)模,有利于縮短服務(wù)組合的執(zhí)行時(shí)間,提高服務(wù)組合執(zhí)行的成功率。
在面向服務(wù)的網(wǎng)格中,比如在中文信息處理(或氣象平臺(tái))的網(wǎng)格平臺(tái)上,經(jīng)常會(huì)遇到這樣的狀況用戶user1對(duì)06年4月到06年6月的數(shù)據(jù)進(jìn)行分析,而五分鐘后用戶user2需要下載06年2月到06年9月的數(shù)據(jù)??梢钥吹?,user2所請(qǐng)求的數(shù)據(jù)實(shí)際上包括了user1用戶所要處理的數(shù)據(jù),如果可以利用user1的數(shù)據(jù),那么必然可以大大減少user2的服務(wù)執(zhí)行規(guī)模并縮短服務(wù)的執(zhí)行時(shí)間?,F(xiàn)在的問題是如何判斷服務(wù)可以通過其參數(shù)來減少服務(wù)的規(guī)模。
目前服務(wù)網(wǎng)格環(huán)境下的服務(wù)可以分為兩種類型范圍型和松散型。范圍型服務(wù)是指服務(wù)的輸入?yún)?shù)之間形成一個(gè)區(qū)間。松散型則是指輸入?yún)?shù)之間有著較為松散獨(dú)立的關(guān)系,參數(shù)之間不能構(gòu)成一個(gè)區(qū)間。本發(fā)明主要是針對(duì)范圍型服務(wù)進(jìn)行優(yōu)化,而對(duì)于松散型的服務(wù)仍然按照原執(zhí)行流程處理。
根據(jù)用戶提交的服務(wù)請(qǐng)求,網(wǎng)格為用戶選擇合適的服務(wù)為其執(zhí)行并返回執(zhí)行的結(jié)果。而在服務(wù)網(wǎng)格中服務(wù)實(shí)際上是指一組功能和接口(即輸入輸出參數(shù)一致)都相同的服務(wù)集合。為了降低服務(wù)執(zhí)行的復(fù)雜度,將盡可能從服務(wù)歷史執(zhí)行數(shù)據(jù)庫中讀取數(shù)據(jù)。根據(jù)用戶請(qǐng)求的數(shù)據(jù)從數(shù)據(jù)庫中選擇數(shù)據(jù)有以下三種情況 ①相交 用戶所請(qǐng)求的數(shù)據(jù)與歷史數(shù)據(jù)庫中的數(shù)據(jù)有重合的部分。
②包含 用戶所請(qǐng)求的數(shù)據(jù)恰巧在數(shù)據(jù)庫中存在并有效。
③相離 在數(shù)據(jù)庫中不存在當(dāng)前用戶請(qǐng)求的數(shù)據(jù)。對(duì)于該類數(shù)據(jù)在調(diào)用完服務(wù)返回給用戶數(shù)據(jù)的同時(shí)也會(huì)在數(shù)據(jù)庫中保存。
本發(fā)明在調(diào)度中充分利用了上述①、②兩種情況,可大大減少該類服務(wù)組合的執(zhí)行規(guī)模和時(shí)間。
上述技術(shù)方案中,所述步驟(5)中,調(diào)度器調(diào)度運(yùn)行所需服務(wù)的方法,可以采用現(xiàn)有技術(shù),優(yōu)選的方法,包括如下步驟, a)對(duì)于每一個(gè)需要調(diào)度的服務(wù),調(diào)度器計(jì)算其在布置了該服務(wù)的各個(gè)節(jié)點(diǎn)上運(yùn)行的可靠性Re,計(jì)算方法是, 其中,
公式(1)中,succip表示在資源X上運(yùn)行服務(wù)p是否成功,用公式(2)表示;n是網(wǎng)格中計(jì)算機(jī)的節(jié)點(diǎn)數(shù); b)調(diào)度器根據(jù)公式(3)、(4)和(5)計(jì)算在布置了該服務(wù)的各個(gè)節(jié)點(diǎn)上的預(yù)計(jì)運(yùn)行時(shí)間, 其中Testi是指第i次調(diào)用該資源上服務(wù)實(shí)例時(shí)估計(jì)執(zhí)行時(shí)間;Tiexc是指第i次調(diào)用該資源上服務(wù)實(shí)例時(shí)實(shí)際執(zhí)行時(shí)間;βn是標(biāo)準(zhǔn)方差;γ表示最近一次的估計(jì)執(zhí)行時(shí)間與歷史實(shí)際執(zhí)行時(shí)間對(duì)當(dāng)前時(shí)間估計(jì)的影響力,其取值由下式確定 γ=Texc/Test(Test>2Texc) (5) γ=1-Texc/Test (Texc<Test≤2Texc) γ=Test/Texc(Test≤Texc) c)調(diào)度器根據(jù)公式(6)對(duì)各個(gè)節(jié)點(diǎn)的性能進(jìn)行實(shí)時(shí)評(píng)測(cè) Mp=ρ(1-Cpuload)+(1-ρ)(1-Netload(a,b))0≤ρ≤1(6) 其中Cpuload表示Cpu的負(fù)載;Netload(a,b)代表該網(wǎng)絡(luò)的負(fù)載,ρ代表權(quán)重; d)根據(jù)公式(7)計(jì)算每個(gè)資源節(jié)點(diǎn)X的評(píng)估值, 選擇Eval值最大的節(jié)點(diǎn)調(diào)度運(yùn)行所需服務(wù)。
上述技術(shù)方案中,所述步驟c)中,權(quán)重ρ取0.75。
由于上述技術(shù)方案運(yùn)用,本發(fā)明與現(xiàn)有技術(shù)相比具有下列優(yōu)點(diǎn) 1.本發(fā)明提出了范圍型服務(wù)的概念,通過對(duì)服務(wù)參數(shù)的合理分析并根據(jù)當(dāng)前網(wǎng)格中服務(wù)的狀況,采用了并行處理的思想,來優(yōu)化服務(wù)的執(zhí)行;優(yōu)化處理模塊的設(shè)計(jì)獨(dú)立于服務(wù)的執(zhí)行,可適用于各種服務(wù)網(wǎng)格平臺(tái)中;通過對(duì)服務(wù)組合中范圍型服務(wù)的優(yōu)化,有效地提高組合的成功率并減少服務(wù)的執(zhí)行時(shí)間。
2.本發(fā)明可組合基于歷史反饋的網(wǎng)格服務(wù)調(diào)度方法,進(jìn)一步提高網(wǎng)格調(diào)度的效率。
圖1是實(shí)施例一中執(zhí)行優(yōu)化的流程示意圖; 圖2是實(shí)施例一中執(zhí)行優(yōu)化的一個(gè)例子。
具體實(shí)施例方式 下面結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步描述 實(shí)施例一參見附圖1至附圖2所示,一種優(yōu)化的服務(wù)網(wǎng)格調(diào)度方法,設(shè)立數(shù)據(jù)庫用于保存執(zhí)行過的服務(wù)、其輸入數(shù)據(jù)范圍及結(jié)果,調(diào)度方法包括以下步驟 (1)用戶通過Portal提交了一個(gè)作業(yè); Portal把用戶提交的作業(yè)根據(jù)服務(wù)的描述分解為n個(gè)服務(wù)sw1,sw2,……,swn,并形成作業(yè)描述文件提交給調(diào)度器,其中,n為自然數(shù),由用戶提交的作業(yè)中的描述確定; (2)對(duì)于服務(wù)swi,其中i為1~n,調(diào)度器首先根據(jù)輸入數(shù)據(jù)判斷其類型,如果不是范圍型服務(wù),則執(zhí)行步驟(5);否則執(zhí)行步驟(3); (3)檢索所述數(shù)據(jù)庫,判斷該服務(wù)對(duì)該輸入數(shù)據(jù)是否已經(jīng)執(zhí)行過并保存了結(jié)果,如果不是則執(zhí)行步驟(5),否則執(zhí)行步驟(4); (4)從數(shù)據(jù)庫中獲取相應(yīng)的執(zhí)行結(jié)果,判斷是否是基于全部輸入數(shù)據(jù)的執(zhí)行結(jié)果,如果是則執(zhí)行步驟(6),否則修改輸入數(shù)據(jù)集合,執(zhí)行步驟(5); (5)調(diào)度器調(diào)度運(yùn)行所需服務(wù),獲得結(jié)果;如是范圍型服務(wù),將服務(wù)、輸入數(shù)據(jù)范圍及結(jié)果存入數(shù)據(jù)庫; (6)如果i<n,調(diào)度器獲取下一個(gè)服務(wù)swi+1,返回步驟(2)執(zhí)行下一個(gè)服務(wù);否則調(diào)度器結(jié)束調(diào)度。
在面向服務(wù)的網(wǎng)格中,比如在中文信息處理(或氣象平臺(tái))的網(wǎng)格平臺(tái)上,經(jīng)常會(huì)遇到這樣的狀況用戶user1對(duì)06年4月到06年6月的數(shù)據(jù)進(jìn)行分析,而五分鐘后用戶user2需要下載06年2月到06年9月的數(shù)據(jù)。可以看到,user2所請(qǐng)求的數(shù)據(jù)實(shí)際上包括了user1用戶所要處理的數(shù)據(jù),如果可以利用user1的數(shù)據(jù),那么必然可以大大減少user2的服務(wù)執(zhí)行規(guī)模并縮短服務(wù)的執(zhí)行時(shí)間?,F(xiàn)在的問題是如何判斷服務(wù)可以通過其參數(shù)來減少服務(wù)的規(guī)模。
目前服務(wù)網(wǎng)格環(huán)境下的服務(wù)可以分為兩種類型范圍型和松散型。范圍型服務(wù)是指服務(wù)的輸入?yún)?shù)之間形成一個(gè)區(qū)間。松散型則是指輸入?yún)?shù)之間有著較為松散獨(dú)立的關(guān)系,參數(shù)之間不能構(gòu)成一個(gè)區(qū)間。本發(fā)明主要是針對(duì)范圍型服務(wù)進(jìn)行優(yōu)化,而對(duì)于松散型的服務(wù)仍然按照原執(zhí)行流程處理。加入優(yōu)化處理模塊后的系統(tǒng)執(zhí)行流程圖如圖1所示。
根據(jù)用戶提交的服務(wù)請(qǐng)求,網(wǎng)格為用戶選擇合適的服務(wù)為其執(zhí)行并返回執(zhí)行的結(jié)果。而在服務(wù)網(wǎng)格中服務(wù)實(shí)際上是指一組功能和接口(即輸入輸出參數(shù)一致)都相同的服務(wù)集合。為了降低服務(wù)執(zhí)行的復(fù)雜度,將盡可能從服務(wù)歷史執(zhí)行數(shù)據(jù)庫中讀取數(shù)據(jù)。根據(jù)用戶請(qǐng)求的數(shù)據(jù)從數(shù)據(jù)庫中選擇數(shù)據(jù)有以下三種情況 ①相交 用戶所請(qǐng)求的數(shù)據(jù)與歷史數(shù)據(jù)庫中的數(shù)據(jù)有重合的部分。
②包含 用戶所請(qǐng)求的數(shù)據(jù)恰巧在數(shù)據(jù)庫中存在并有效。
③相離 在數(shù)據(jù)庫中不存在當(dāng)前用戶請(qǐng)求的數(shù)據(jù)。對(duì)于該類數(shù)據(jù)在調(diào)用完服務(wù)返回給用戶數(shù)據(jù)的同時(shí)也會(huì)在數(shù)據(jù)庫中保存。
服務(wù)產(chǎn)生的數(shù)據(jù)文件類型也可以影響優(yōu)化的效果。數(shù)據(jù)文件可分為兩種可分解和不可分解。可分解是指服務(wù)可以根據(jù)用戶的要求返回松散的結(jié)果。否則屬于不可分解,對(duì)于該類型要涉及到數(shù)據(jù)文件內(nèi)部的劃分很難實(shí)現(xiàn),需要了解數(shù)據(jù)文件的內(nèi)容結(jié)構(gòu)??梢钥吹?,可分解的數(shù)據(jù)文件有利于用戶的數(shù)據(jù)共享。為了避免產(chǎn)生不可分解的文件,本發(fā)明設(shè)計(jì)了預(yù)處理模塊用于分解用戶的參數(shù),使其產(chǎn)生的數(shù)據(jù)文件是離散的數(shù)據(jù)文件,最大程度的提高數(shù)據(jù)文件的重用性以及服務(wù)的并行處理。
整個(gè)參數(shù)優(yōu)化的處理流程如圖1所示,服務(wù)的參數(shù)在預(yù)處理模塊時(shí)已進(jìn)行了相應(yīng)的處理,圖2給出了一個(gè)簡單例子,其中虛方框表示數(shù)據(jù)庫中沒有對(duì)應(yīng)的數(shù)據(jù);橢圓型表示調(diào)用相應(yīng)服務(wù)的實(shí)例(在這里的服務(wù)實(shí)例是指提供相同功能的服務(wù))。S1_da1中的da表示數(shù)據(jù),S1_Inst1中的Inst表示實(shí)例的含義。服務(wù)執(zhí)行流程如下 1.分解用戶的服務(wù)請(qǐng)求,確定可用的數(shù)據(jù)庫數(shù)據(jù)和需要調(diào)用服務(wù)才能獲得的數(shù)據(jù)。
2.查詢用戶所要調(diào)用的服務(wù)在目前網(wǎng)格環(huán)境中的個(gè)數(shù)ServNum;根據(jù)輸入?yún)?shù)的情況對(duì)其進(jìn)行合理的分割形成多個(gè)輸入?yún)?shù),然后請(qǐng)求多個(gè)服務(wù)并行處理用戶的請(qǐng)求。比如當(dāng)前用戶請(qǐng)求m個(gè)月的數(shù)據(jù),數(shù)據(jù)庫中有n個(gè)月的數(shù)據(jù),因此只需要獲得(m-n)個(gè)月的數(shù)據(jù)即可滿足用戶的請(qǐng)求。根據(jù)當(dāng)前的ServNum來決定如何并行調(diào)用服務(wù)。如果ServNum>=(m-n),則將同時(shí)調(diào)用(m-n)個(gè)服務(wù)并行處理這(m-n)個(gè)月的數(shù)據(jù)。否則,將同時(shí)調(diào)用ServNum個(gè)服務(wù),每個(gè)服務(wù)平均被調(diào)用
次。
3.將服務(wù)產(chǎn)生的數(shù)據(jù)(比如S1_da4)作為輸入數(shù)據(jù)傳給下個(gè)服務(wù)(S2_Inst2)。并將該數(shù)據(jù)寫入數(shù)據(jù)庫中相應(yīng)的位置,并將PreFlag置為前一個(gè)服務(wù)所對(duì)應(yīng)記錄的Tag值(假設(shè)數(shù)據(jù)S1_da4的Tag值是2,其PreFlag值為2。因此在插入數(shù)據(jù)S2_da4時(shí),設(shè)置S2_da4.PreFlag=S1_da4.Tag=2。
4.在所有的服務(wù)執(zhí)行完后,將產(chǎn)生的ResNum個(gè)數(shù)據(jù)文件打包發(fā)送給用戶。
顯而易見,當(dāng)用戶在沒有預(yù)處理模塊的情況下調(diào)用服務(wù),其所產(chǎn)生數(shù)據(jù)文件是不可分解的,不利于其后續(xù)用戶的數(shù)據(jù)共享。而由于在預(yù)處理模塊中對(duì)參數(shù)的合理分割并采用了并行處理,可以高效的產(chǎn)生離散的數(shù)據(jù)文件(在預(yù)處理時(shí)對(duì)參數(shù)的分解有多種形式,這里只是介紹了最簡單的一種);在服務(wù)的執(zhí)行過程中所產(chǎn)生的數(shù)據(jù)文件將存入到數(shù)據(jù)庫中,并記錄其順序,便可在服務(wù)組合中實(shí)現(xiàn)數(shù)據(jù)共享。
比如,根據(jù)用戶請(qǐng)求需要對(duì)06年1月到5月的數(shù)據(jù)進(jìn)行分析和加工,而分析和加工的過程對(duì)應(yīng)到網(wǎng)格上的服務(wù)即為S1,S2。假設(shè)在數(shù)據(jù)庫中存在調(diào)用S1所產(chǎn)生的前三個(gè)月的數(shù)據(jù)S1_da1,S1_da2,S1_da3,以及利用S1_da1和S1_da2作為輸入?yún)?shù)調(diào)用S2所產(chǎn)生的數(shù)據(jù)S2_da1和S2_da2。因此只需要利用S1產(chǎn)生4,5月的數(shù)據(jù)S1_da4和S1_da5,以及調(diào)用S2產(chǎn)生3,4,5月對(duì)應(yīng)的數(shù)據(jù)S2_da3,S2_da4,S2_da5即可。在調(diào)用服務(wù)產(chǎn)生數(shù)據(jù)后隨即將數(shù)據(jù)更新到數(shù)據(jù)庫中,在更新數(shù)據(jù)時(shí)應(yīng)注意PreFlag的設(shè)置。
可以看到,在圖2所示的服務(wù)組合例子中充分復(fù)用數(shù)據(jù)庫原有的數(shù)據(jù),可大大減少該類服務(wù)組合的執(zhí)行規(guī)模和時(shí)間。
實(shí)施例二一種優(yōu)化的服務(wù)網(wǎng)格調(diào)度方法,設(shè)立數(shù)據(jù)庫用于保存執(zhí)行過的服務(wù)、其輸入數(shù)據(jù)范圍及結(jié)果,調(diào)度方法包括以下步驟 (1)把用戶提交的作業(yè)根據(jù)服務(wù)的描述分解為n個(gè)服務(wù)sw1,sw2,……,swn,并形成作業(yè)描述文件提交給調(diào)度器,其中,n為自然數(shù),由用戶提交的作業(yè)中的描述確定; (2)對(duì)于服務(wù)swi,其中i為1~n,調(diào)度器首先根據(jù)輸入數(shù)據(jù)判斷其類型,如果不是范圍型服務(wù),則執(zhí)行步驟(5);否則執(zhí)行步驟(3); (3)檢索所述數(shù)據(jù)庫,判斷該服務(wù)對(duì)該輸入數(shù)據(jù)是否已經(jīng)執(zhí)行過并保存了結(jié)果,如果不是則執(zhí)行步驟(5),否則執(zhí)行步驟(4); (4)從數(shù)據(jù)庫中獲取相應(yīng)的執(zhí)行結(jié)果,判斷是否是基于全部輸入數(shù)據(jù)的執(zhí)行結(jié)果,如果是則執(zhí)行步驟(6),否則修改輸入數(shù)據(jù)集合,執(zhí)行步驟(5); (5)調(diào)度器調(diào)度運(yùn)行所需服務(wù),獲得結(jié)果;如是范圍型服務(wù),將服務(wù)、輸入數(shù)據(jù)范圍及結(jié)果存入數(shù)據(jù)庫; (6)如果i<n,調(diào)度器獲取下一個(gè)服務(wù)swi+1,返回步驟(2)執(zhí)行下一個(gè)服務(wù);否則調(diào)度器結(jié)束調(diào)度。
所述步驟(5)中,調(diào)度器調(diào)度運(yùn)行所需服務(wù)的方法,包括如下步驟, a)對(duì)于每一個(gè)需要調(diào)度的服務(wù),調(diào)度器計(jì)算其在布置了該服務(wù)的各個(gè)節(jié)點(diǎn)上運(yùn)行的可靠性Re,計(jì)算方法是, 其中,
公式(1)中,succip表示在資源X上運(yùn)行服務(wù)p是否成功,用公式(2)表示;n是網(wǎng)格中計(jì)算機(jī)的節(jié)點(diǎn)數(shù); b)調(diào)度器根據(jù)公式(3)、(4)和(5)計(jì)算在布置了該服務(wù)的各個(gè)節(jié)點(diǎn)上的預(yù)計(jì)運(yùn)行時(shí)間, 其中Testi是指第i次調(diào)用該資源上服務(wù)實(shí)例時(shí)估計(jì)執(zhí)行時(shí)間;Tiexc是指第i次調(diào)用該資源上服務(wù)實(shí)例時(shí)實(shí)際執(zhí)行時(shí)間;βn是標(biāo)準(zhǔn)方差;γ表示最近一次的估計(jì)執(zhí)行時(shí)間與歷史實(shí)際執(zhí)行時(shí)間對(duì)當(dāng)前時(shí)間估計(jì)的影響力,其取值由下式確定 γ=Texc/Test(Test>2Texc)(5) γ=1-Texc/Test (Texc<Test≤2Texc) γ=Test/Texc(Test≤Texc) c)調(diào)度器根據(jù)公式(6)對(duì)各個(gè)節(jié)點(diǎn)的性能進(jìn)行實(shí)時(shí)評(píng)測(cè) Mp=ρ(1-Cpuload)+(1-ρ)(1-Netload(a,b))0≤ρ≤1(6) 其中Cpuload表示Cpu的負(fù)載;Netload(a,b)代表該網(wǎng)絡(luò)的負(fù)載,ρ代表權(quán)重; d)根據(jù)公式(7)計(jì)算每個(gè)資源節(jié)點(diǎn)X的評(píng)估值, 選擇Eval值最大的節(jié)點(diǎn)調(diào)度運(yùn)行所需服務(wù)。
上述技術(shù)方案中,所述步驟c)中,權(quán)重ρ取0.75。
權(quán)利要求
1.一種優(yōu)化的服務(wù)網(wǎng)格調(diào)度方法,其特征在于設(shè)立數(shù)據(jù)庫用于保存執(zhí)行過的服務(wù)、其輸入數(shù)據(jù)范圍及結(jié)果,調(diào)度方法包括以下步驟
(1)把用戶提交的作業(yè)根據(jù)服務(wù)的描述分解為n個(gè)服務(wù)sw1,sw2,……,swn,并形成作業(yè)描述文件提交給調(diào)度器,其中,n為自然數(shù),由用戶提交的作業(yè)中的描述確定;
(2)對(duì)于服務(wù)swi,其中i為1~n,調(diào)度器首先根據(jù)輸入數(shù)據(jù)判斷其類型,如果不是范圍型服務(wù),則執(zhí)行步驟(5);否則執(zhí)行步驟(3);
(3)檢索所述數(shù)據(jù)庫,判斷該服務(wù)對(duì)該輸入數(shù)據(jù)是否已經(jīng)執(zhí)行過并保存了結(jié)果,如果不是則執(zhí)行步驟(5),否則執(zhí)行步驟(4);
(4)從數(shù)據(jù)庫中獲取相應(yīng)的執(zhí)行結(jié)果,判斷是否是基于全部輸入數(shù)據(jù)的執(zhí)行結(jié)果,如果是則執(zhí)行步驟(6),否則修改輸入數(shù)據(jù)集合,執(zhí)行步驟(5);
(5)調(diào)度器調(diào)度運(yùn)行所需服務(wù),獲得結(jié)果;如是范圍型服務(wù),將服務(wù)、輸入數(shù)據(jù)范圍及結(jié)果存入數(shù)據(jù)庫;
(6)如果i<n,調(diào)度器獲取下一個(gè)服務(wù)swi+1,返回步驟(2)執(zhí)行下一個(gè)服務(wù);否則調(diào)度器結(jié)束調(diào)度。
2.根據(jù)權(quán)利要求1所述的服務(wù)網(wǎng)格調(diào)度方法,其特征在于所述步驟(5)中,調(diào)度器調(diào)度運(yùn)行所需服務(wù)的方法,包括如下步驟,
a)對(duì)于每一個(gè)需要調(diào)度的服務(wù),調(diào)度器計(jì)算其在布置了該服務(wù)的各個(gè)節(jié)點(diǎn)上運(yùn)行的可靠性Re,計(jì)算方法是,
其中,
公式(1)中,succip表示在資源X上運(yùn)行服務(wù)p是否成功,用公式(2)表示;n是網(wǎng)格中計(jì)算機(jī)的節(jié)點(diǎn)數(shù);
b)調(diào)度器根據(jù)公式(3)、(4)和(5)計(jì)算在布置了該服務(wù)的各個(gè)節(jié)點(diǎn)上的預(yù)計(jì)運(yùn)行時(shí)間,
其中Testi是指第i次調(diào)用該資源上服務(wù)實(shí)例時(shí)估計(jì)執(zhí)行時(shí)間;Tiexc是指第i次調(diào)用該資源上服務(wù)實(shí)例時(shí)實(shí)際執(zhí)行時(shí)間;βn是標(biāo)準(zhǔn)方差;γ表示最近一次的估計(jì)執(zhí)行時(shí)間與歷史實(shí)際執(zhí)行時(shí)間對(duì)當(dāng)前時(shí)間估計(jì)的影響力,其取值由下式確定
γ=Texc/Test(Test>2Texc)(5)
γ=1-Texc/Test (Texc<Test≤2Texc)
γ=Test/Texc(Test≤Texc)
c)調(diào)度器根據(jù)公式(6)對(duì)各個(gè)節(jié)點(diǎn)的性能進(jìn)行實(shí)時(shí)評(píng)測(cè)
Mp=ρ(1-Cpuload)+(1-ρ)(1-Netload(a,b))0≤ρ≤1(6)
其中Cpuload表示Cpu的負(fù)載;Netload(a,d)代表該網(wǎng)絡(luò)的負(fù)載,ρ代表權(quán)重;
d)根據(jù)公式(7)計(jì)算每個(gè)資源節(jié)點(diǎn)X的評(píng)估值,
選擇Eval值最大的節(jié)點(diǎn)調(diào)度運(yùn)行所需服務(wù)。
3.根據(jù)權(quán)利要求2所述的服務(wù)網(wǎng)格調(diào)度方法,其特征在于所述步驟c)中,權(quán)重ρ取0.75。
全文摘要
本發(fā)明公開了一種優(yōu)化的服務(wù)網(wǎng)格調(diào)度方法,其特征在于設(shè)立數(shù)據(jù)庫用于保存執(zhí)行過的服務(wù)、其輸入數(shù)據(jù)范圍及結(jié)果,調(diào)度方法是把用戶提交的作業(yè)根據(jù)服務(wù)的描述分解為n個(gè)服務(wù),并形成作業(yè)描述文件提交給調(diào)度器;對(duì)于范圍型服務(wù),檢索數(shù)據(jù)庫,獲取已執(zhí)行服務(wù)的結(jié)果;對(duì)未執(zhí)行過的數(shù)據(jù),調(diào)度器調(diào)度運(yùn)行所需服務(wù),獲得結(jié)果;如是范圍型服務(wù),將服務(wù)、輸入數(shù)據(jù)范圍及結(jié)果存入數(shù)據(jù)庫;如果i<n,調(diào)度器獲取下一個(gè)服務(wù)swi+1,返回步驟(2)執(zhí)行下一個(gè)服務(wù);否則調(diào)度器結(jié)束調(diào)度。本發(fā)明通過對(duì)服務(wù)組合中范圍型服務(wù)的優(yōu)化,有效地提高組合的成功率并減少服務(wù)的執(zhí)行時(shí)間。
文檔編號(hào)G06F9/46GK101187883SQ20071019145
公開日2008年5月28日 申請(qǐng)日期2007年12月19日 優(yōu)先權(quán)日2007年12月19日
發(fā)明者朱巧明, 李培峰, 蘭 許, 貢正仙, 釗 劉, 鎣 李 申請(qǐng)人:蘇州大學(xué)