用于基于服務(wù)的軟件系統(tǒng)的資源分配方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,具體地,涉及一種用于基于服務(wù)的軟件系統(tǒng)的資源分配 方法及裝置。
【背景技術(shù)】
[0002] 為了能夠靈活的適應(yīng)業(yè)務(wù)的變更,進(jìn)一步使軟件系統(tǒng)具備可靈活配置、動(dòng)態(tài) 重構(gòu)等特點(diǎn),越來(lái)越多的分布式軟件系統(tǒng)采用了面向服務(wù)的架構(gòu)(Service-Oriented Architecture,簡(jiǎn)稱S0A)。這類基于S0A構(gòu)建的系統(tǒng)也稱為基于服務(wù)的軟件系統(tǒng) (service-based software system,簡(jiǎn)稱SBS)。這類系統(tǒng)由若干組件服務(wù)以及指定服務(wù)執(zhí) 行順序的控制流程組成。例如,圖1示出了一示例SBS的架構(gòu)示意圖,如圖1所示,該SBS 系統(tǒng)可以包括五個(gè)組件服務(wù),分別是組件服務(wù)S1、組件服務(wù)S2、組件服務(wù)S3、組件服務(wù)S4和 組件服務(wù)S5。并且,指定服務(wù)執(zhí)行順序的控制流程可以如圖1中的箭頭所示。
[0003] 服務(wù)等級(jí)協(xié)議(service level agreement,簡(jiǎn)稱SLA)定義了施加于系統(tǒng)的服務(wù) 質(zhì)量(QoS)需求,例如,吞吐量、延遲時(shí)間、所需成本等等。為了滿足給定的SLA,需要為SBS 對(duì)應(yīng)的工作流選取適當(dāng)?shù)慕M件服務(wù),并為組件服務(wù)分配適當(dāng)?shù)挠?jì)算資源使其達(dá)到SLA要求 的服務(wù)質(zhì)量。因此,如何有效地為SBS分配計(jì)算資源是云環(huán)境下運(yùn)行SBS的關(guān)鍵。
[0004] 目前,用于SBS的資源分配方法是將每個(gè)組件服務(wù)對(duì)應(yīng)的計(jì)算資源劃分為不同粒 度,并找到不同粒度的資源對(duì)應(yīng)的組件服務(wù)的質(zhì)量。之后,通過(guò)搜索不同的資源分配量與組 件服務(wù)對(duì)應(yīng)的質(zhì)量,找到能夠滿足SLA的組件服務(wù)及其對(duì)應(yīng)的資源分配量來(lái)構(gòu)建SBS實(shí)例。 這類方法存在兩個(gè)問(wèn)題:
[0005] 首先,隨著資源分配量與服務(wù)質(zhì)量劃分的粒度越細(xì),搜索出滿足SLA的資源分配 量所需的時(shí)間越大。假設(shè)一個(gè)SBS由m個(gè)組件服務(wù)構(gòu)成,每個(gè)組件服務(wù)的CPU資源被劃分 為k個(gè)等級(jí),那么搜索所需要的時(shí)間為0(mk),其復(fù)雜度為指數(shù)級(jí)。顯然,很多情況下難以對(duì) 該問(wèn)題進(jìn)行求解。
[0006] 其次,目前的方法將QoS參數(shù)歸一化為一個(gè)效用函數(shù),進(jìn)而選取出能夠使效用函 數(shù)最大的組件服務(wù)以及服務(wù)對(duì)應(yīng)的資源分配量。這種處理方式忽略了 QoS參數(shù)是互相沖突 的,例如,吞吐量越高,資源分配量越大,相應(yīng)的價(jià)格也越高。因此,對(duì)于互相沖突的QoS參 數(shù)并不存在唯一的解決方案。
【發(fā)明內(nèi)容】
[0007] 本發(fā)明的目的是提供一種用于基于服務(wù)的軟件系統(tǒng)的資源分配方法及裝置,以實(shí) 現(xiàn)基于多目標(biāo)的資源分配。
[0008] 為了實(shí)現(xiàn)上述目的,本發(fā)明提供一種用于基于服務(wù)的軟件系統(tǒng)的資源分配方法, 該方法包括:獲取針對(duì)該系統(tǒng)的組件服務(wù)的多個(gè)不同的資源配置計(jì)劃,形成初始資源配置 計(jì)劃集合,其中,每個(gè)資源配置計(jì)劃包括所述組件服務(wù)的資源配置策略;將所述初始資源配 置計(jì)劃集合中的各個(gè)資源配置計(jì)劃按照支配等級(jí)進(jìn)行劃分,形成多個(gè)資源配置計(jì)劃子集, 其中,同一資源配置計(jì)劃子集中的資源配置計(jì)劃具有相同的支配等級(jí);根據(jù)具有最高支配 等級(jí)的資源配置計(jì)劃子集,獲取目標(biāo)資源配置計(jì)劃集合;從所述目標(biāo)資源配置計(jì)劃集合中 獲取針對(duì)所述組件服務(wù)的目標(biāo)資源配置策略;以及根據(jù)所述目標(biāo)資源配置策略為所述組件 服務(wù)分配資源。
[0009] 可選地,所述每個(gè)資源配置計(jì)劃包括多個(gè)所述資源配置策略,其中,每個(gè)資源配置 策略針對(duì)一種用戶類型。
[0010] 可選地,所述方法還包括:在所述根據(jù)具有最高支配等級(jí)的資源配置計(jì)劃子集,獲 取目標(biāo)資源配置計(jì)劃集合之后,并在所述從所述目標(biāo)資源配置計(jì)劃集合中獲取針對(duì)所述組 件服務(wù)的目標(biāo)資源配置策略之前,判斷實(shí)際循環(huán)次數(shù)是否等于預(yù)設(shè)的循環(huán)次數(shù),其中,所述 實(shí)際循環(huán)次數(shù)的初始值為〇,所述預(yù)設(shè)的循環(huán)次數(shù)大于或等于1 ;在所述實(shí)際循環(huán)次數(shù)不等 于所述預(yù)設(shè)的循環(huán)次數(shù)的情況下,將所述實(shí)際循環(huán)次數(shù)加1,并將所述目標(biāo)資源配置計(jì)劃集 合作為新的初始資源配置計(jì)劃集合后,重新執(zhí)行所述將所述初始資源配置計(jì)劃集合中的各 個(gè)資源配置計(jì)劃按照支配等級(jí)進(jìn)行劃分,形成多個(gè)資源配置計(jì)劃子集,直到所述實(shí)際循環(huán) 次數(shù)等于所述預(yù)設(shè)的循環(huán)次數(shù)為止。
[0011] 可選地,所述將所述初始資源配置計(jì)劃集合中的各個(gè)資源配置計(jì)劃按照支配等級(jí) 進(jìn)行劃分,形成多個(gè)資源配置計(jì)劃子集,包括:確定所述各個(gè)資源配置計(jì)劃之間的支配關(guān) 系,其中,在所述支配關(guān)系中,支配方的支配等級(jí)高于受支配方的支配等級(jí);按照所述支配 關(guān)系,將具有相同支配等級(jí)的資源配置計(jì)劃劃分成一個(gè)資源配置計(jì)劃子集,其中,同一資源 配置計(jì)劃子集中的資源配置計(jì)劃之間互不支配,并且,具有較高支配等級(jí)的資源配置計(jì)劃 子集中的任一資源配置計(jì)劃能夠支配具有較低支配等級(jí)的資源配置計(jì)劃子集中的全部資 源配置計(jì)劃。
[0012] 可選地,所述確定所述各個(gè)資源配置計(jì)劃之間的支配關(guān)系,包括:從所述初始資源 配置計(jì)劃集合中選取第一資源配置計(jì)劃和第二資源配置計(jì)劃;確定第一參數(shù)集和第二參數(shù) 集,其中,所述第一參數(shù)集包括所述組件服務(wù)在所述第一資源配置計(jì)劃包括的資源配置策 略下的服務(wù)質(zhì)量參數(shù)和所需資源總量,所述第二參數(shù)集包括所述組件服務(wù)在所述第二資源 配置計(jì)劃包括的資源配置策略下的服務(wù)質(zhì)量參數(shù)和所需資源總量;根據(jù)所述第一參數(shù)集確 定第三參數(shù)集,以及根據(jù)所述第二參數(shù)集確定第四參數(shù)集,其中,所述第三參數(shù)集包括所述 組件服務(wù)在所述第一資源配置計(jì)劃下的服務(wù)質(zhì)量參數(shù)和所需資源總量,所述第四參數(shù)集包 括所述組件服務(wù)在所述第二資源配置計(jì)劃下的服務(wù)質(zhì)量參數(shù)和所需資源總量;分別判斷所 述第一參數(shù)集和所述第二參數(shù)集是否滿足預(yù)設(shè)的參數(shù)閾值條件;當(dāng)所述第一參數(shù)集和所述 第二參數(shù)集中的一者滿足所述參數(shù)閾值條件,而另一者不滿足所述參數(shù)閾值條件時(shí),確定 滿足所述參數(shù)閾值條件的參數(shù)集所對(duì)應(yīng)的資源配置計(jì)劃支配不滿足所述參數(shù)閾值條件的 參數(shù)集所對(duì)應(yīng)的資源配置計(jì)劃;當(dāng)所述第一參數(shù)集和所述第二參數(shù)集均滿足所述參數(shù)閾值 條件時(shí),判斷所述第三參數(shù)集和所述第四參數(shù)集是滿足第一預(yù)設(shè)條件還是第二預(yù)設(shè)條件, 其中,所述第一預(yù)設(shè)條件為所述第三參數(shù)集中的每種參數(shù)不劣于所述第四參數(shù)集中的同種 參數(shù),并且所述第三參數(shù)集中的至少一種參數(shù)優(yōu)于所述第四參數(shù)集中的同種參數(shù);所述第 二預(yù)設(shè)條件為所述第四參數(shù)集中的每種參數(shù)不劣于所述第三參數(shù)集中的同種參數(shù),并且所 述第四參數(shù)集中的至少一種參數(shù)優(yōu)于所述第三參數(shù)集中的同種參數(shù);當(dāng)所述第三參數(shù)集和 所述第四參數(shù)集滿足所述第一預(yù)設(shè)條件時(shí),確定所述第一資源配置計(jì)劃支配所述第二資源 配置計(jì)劃;當(dāng)所述第三參數(shù)集和所述第四參數(shù)集滿足所述第二預(yù)設(shè)條件時(shí),確定所述第二 資源配置計(jì)劃支配所述第一資源配置計(jì)劃;當(dāng)所述第三參數(shù)集和所述第四參數(shù)集不滿足所 述第一預(yù)設(shè)條件、且不滿足所述第二預(yù)設(shè)條件時(shí),或者當(dāng)所述第一參數(shù)集和所述第二參數(shù) 集均不滿足所述參數(shù)閾值條件時(shí),確定所述第一資源配置計(jì)劃和所述第二資源配置計(jì)劃之 間互不支配;重復(fù)執(zhí)行所述從所述初始資源配置計(jì)劃集合中選取第一資源配置計(jì)劃和第二 資源配置計(jì)劃,直到確定出所述各個(gè)資源配置計(jì)劃之間的支配關(guān)系為止,其中,每次選取的 第一資源配置計(jì)劃和第二資源配置計(jì)劃不全相同。
[0013] 可選地,所述每個(gè)資源配置計(jì)劃包括多個(gè)所述資源配置策略,其中,每個(gè)資源配置 策略針對(duì)一種用戶類型;以及所述第一參數(shù)集包括所述組件服務(wù)在所述第一資源配置計(jì)劃 包括的各個(gè)資源配置策略下的吞吐量、延遲時(shí)間、所需成本和所需資源總量;所述第二參數(shù) 集包括所述組件服務(wù)在所述第二資源配置計(jì)劃包括的各個(gè)資源配置策略下的吞吐量、延遲 時(shí)間、所需成本和所需資源總量;所述第三參數(shù)集包括所述組件服務(wù)在所述第一資源配置 計(jì)劃下的吞吐量、延遲時(shí)間、所需成本和所需資源總量;所述第四參數(shù)集包括所述組件服務(wù) 在所述第二資源配置計(jì)劃下的吞吐量、延遲時(shí)間、所需成本和所需資源總量。
[0014] 可選地,所述參數(shù)閾值條件包括:
[0020] 其中,X1表示資源配置計(jì)劃包括的第1個(gè)資源配置策略,該第1個(gè)資源配置策略針 對(duì)第1種用戶類型;L表示用戶類型總數(shù);
> 表示所述組件服務(wù)在資源配置計(jì)劃包 括的第1個(gè)資源配置策略X1下的所需資源總量;
> 表示所述組件服務(wù)在資源配置 計(jì)劃包括的第1個(gè)資源配置策略X1下的吞吐量;
表示所述組件服務(wù)在資源配置計(jì) 劃包括的第1個(gè)資源配置策略X1下的延遲時(shí)間;
> 表示所述組件服務(wù)在資源配置計(jì) 劃包括的第1個(gè)資源配置策略X1下的所需成本;C __表示預(yù)設(shè)的針對(duì)所述系統(tǒng)的所需資 源總量閾值
,表示預(yù)設(shè)的針對(duì)第1種用戶類型的吞吐量閾值;。.表示預(yù)設(shè)的針 對(duì)第1種用戶類型的延遲時(shí)間閾值;
表示預(yù)設(shè)的針對(duì)第1種用戶類型的所需成本閾值; (;_表示預(yù)設(shè)的針對(duì)所述系統(tǒng)的所需成本閾值。
[0021] 可選地,所述根據(jù)具有最高支配等級(jí)的資源配置計(jì)劃子集,獲取目標(biāo)資源配置計(jì) 劃集合,包括:從所述具有最高支配等級(jí)的資源配置計(jì)劃子集中選取多個(gè)資源配置計(jì)劃進(jìn) 行交叉變異,生成多個(gè)衍生資源配置計(jì)劃;將所生成的多個(gè)衍生資源配置計(jì)劃形成為衍生 資源配置計(jì)劃集合;將所述具有最高支配等級(jí)的資源配置計(jì)劃子集與所述衍生資源配置計(jì) 劃集合的并集形成為所述目標(biāo)資源配置計(jì)劃集合。
[0022] 可選地,所述從所述目標(biāo)資源配置計(jì)劃集合中獲取針對(duì)所述組件服務(wù)的目標(biāo)資源 配置策略,包括:按照所述目標(biāo)資源配置計(jì)劃集合中的每個(gè)資源配置計(jì)劃的優(yōu)先級(jí)從高到 低的順序,獲取預(yù)定數(shù)量的資源配置計(jì)劃作為候選資源配置計(jì)劃;獲取用戶類型信息;從 每個(gè)候選資源配置計(jì)劃中,篩選出與所述用戶類型信息相匹配的資源配置策略;獲取用戶 對(duì)資源配置的偏好設(shè)置信息;從所述與所述用戶類型信息相匹配的資源配置策略中,篩選 出與所述偏好設(shè)置信息相匹配的資源配置策略,作為所述目標(biāo)資源配置策略。
[0023] 本發(fā)明還提供一種用于基于服務(wù)的軟件系統(tǒng)的資源分配裝置,該裝置包括:第一 獲取模塊,用于獲取針對(duì)該系統(tǒng)的組件服務(wù)的多個(gè)不同的資源配置計(jì)劃,形成初始資源配 置計(jì)劃集合,其中,每個(gè)資源配置計(jì)劃包括所述組件服務(wù)的資源配置策略;子集劃分模塊, 用于將所述初始資源配置計(jì)劃集合中的各個(gè)資源配置計(jì)劃按照支配等級(jí)進(jìn)行劃分,形成多 個(gè)資源配置計(jì)劃子集,其中,同一資源配置計(jì)劃子集中的資源配置計(jì)劃具有相同的支配等 級(jí);第二獲取模塊,用于根據(jù)具有最高支配等級(jí)的資源配置計(jì)劃子集,獲取目標(biāo)資源配置計(jì) 劃集合;第三獲取模塊,用于從所述目標(biāo)資源配置計(jì)劃集合中獲取針對(duì)所述組件服務(wù)的目 標(biāo)資源配置策略;以及資源分配模塊,用于根據(jù)所述目標(biāo)資源配置策略為所述組件服務(wù)分 配資源。
[0024] 可選地,所述每個(gè)資源配置計(jì)劃包括多個(gè)所述資源配置策略,其中,每個(gè)資源配置 策略針對(duì)一種用戶類型。
[0025] 可選地,所述裝置還包括:判斷模塊,用于在所述根據(jù)具有最高支配等級(jí)的資源配 置計(jì)劃子集,獲取目標(biāo)資源配置計(jì)劃集合之后,并在所述從所述目標(biāo)資源配置計(jì)劃集合中 獲取針對(duì)所述組件服務(wù)的目標(biāo)資源配置策略之前,判斷實(shí)際循環(huán)次數(shù)是否等于預(yù)設(shè)的循環(huán) 次數(shù),其中,所述實(shí)際循環(huán)次數(shù)的初始值為〇,所述預(yù)設(shè)的循環(huán)次數(shù)大