亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于開(kāi)源框架的軟件重構(gòu)方法與流程

文檔序號(hào):11519404閱讀:468來(lái)源:國(guó)知局

本發(fā)明涉及云計(jì)算,特別涉及一種基于開(kāi)源框架的軟件重構(gòu)方法。



背景技術(shù):

云計(jì)算把it資源、數(shù)據(jù)、應(yīng)用以服務(wù)的形式通過(guò)網(wǎng)絡(luò)提供給用戶,以其部署時(shí)間短、風(fēng)險(xiǎn)低、使用方便和可定制等優(yōu)勢(shì)在各行業(yè)得到了廣泛的普及與應(yīng)用,推動(dòng)了it產(chǎn)業(yè)的升級(jí)和電子商務(wù)經(jīng)濟(jì)的發(fā)展。如何快速地創(chuàng)建面向大規(guī)模租戶的云端應(yīng)用,實(shí)現(xiàn)租戶復(fù)雜多元的個(gè)性化需求是亟待解決的問(wèn)題?,F(xiàn)有的方法大多數(shù)集中在云端應(yīng)用模型的架構(gòu)方面,對(duì)于跨多個(gè)云數(shù)據(jù)中心間的優(yōu)化部署以及云端應(yīng)用模型在粒度劃分方面尚無(wú)有效先例。



技術(shù)實(shí)現(xiàn)要素:

為解決上述現(xiàn)有技術(shù)所存在的問(wèn)題,本發(fā)明提出了一種基于開(kāi)源框架的軟件重構(gòu)方法,包括:

在完成云端應(yīng)用的開(kāi)發(fā)并部署運(yùn)行后,通過(guò)負(fù)載測(cè)試確定其每個(gè)組件的最大并發(fā)用戶數(shù)和最大資源消耗量,

通過(guò)不同負(fù)載下的性能測(cè)試來(lái)測(cè)量每個(gè)組件在穩(wěn)定負(fù)載區(qū)間內(nèi)的各種服務(wù)質(zhì)量指標(biāo)取值和在云環(huán)境的vm上的資源消耗量,并確定每個(gè)組件及其實(shí)例的不同負(fù)載下的動(dòng)態(tài)服務(wù)質(zhì)量和資源消耗量;

在應(yīng)用運(yùn)行階段,使用監(jiān)控工具來(lái)獲取每個(gè)組件實(shí)例在每種負(fù)載模式下的實(shí)際服務(wù)質(zhì)量指標(biāo)取值和資源消耗量,并通過(guò)監(jiān)控?cái)?shù)據(jù)來(lái)調(diào)整每個(gè)組件的動(dòng)態(tài)服務(wù)質(zhì)量和云資源消耗量。

優(yōu)選地,針對(duì)特定云端應(yīng)用,采用鄰接矩陣來(lái)表示其組件關(guān)系圖,并根據(jù)組件的部署方案,得到劃分后的組件關(guān)系圖的鄰接矩陣,表示在vm網(wǎng)絡(luò)圖中各個(gè)組件所需的vm之間的通信量。

優(yōu)選地,在組件優(yōu)化部署時(shí),引入二維數(shù)組來(lái)表示云端應(yīng)用組件關(guān)系圖的鄰接矩陣,對(duì)依據(jù)部署方案得到的組件關(guān)系圖的鄰接矩陣進(jìn)行求和,計(jì)算出vm網(wǎng)絡(luò)的通信量;

優(yōu)選地,將組件優(yōu)化部署方法的問(wèn)題模型表示為:

mincost(vm)=p(vmij)

minrt(lvm)=rt(vmij,vmst)

rres(c)<rres(vmij);

其中p(vmij)為虛擬機(jī)vmij的價(jià)格,rres(vmij)為虛擬機(jī)vmij的資源提供量,c為組件集合,lvm為虛擬機(jī)之間的通信鏈路集合,rt(vmij,vmst)為vmij到vmst的通信量;

上述問(wèn)題模型表示任意vm中所部署的組件的cpu、內(nèi)存、存儲(chǔ)的資源消耗總量不超過(guò)該vm的資源提供能力;在滿足cost(vm)最低的前提下,選擇通信量rt(lvm)最低的組件部署方案。

本發(fā)明相比現(xiàn)有技術(shù),具有以下優(yōu)點(diǎn):

本發(fā)明提出了一種基于開(kāi)源框架的軟件重構(gòu)方法,實(shí)現(xiàn)了跨多個(gè)云數(shù)據(jù)中心間的應(yīng)用優(yōu)化部署,并且提高了云端應(yīng)用的動(dòng)態(tài)服務(wù)質(zhì)量,降低了虛擬機(jī)的資源消耗量。

附圖說(shuō)明

圖1是根據(jù)本發(fā)明實(shí)施例的基于開(kāi)源框架的軟件重構(gòu)方法的流程圖。

具體實(shí)施方式

下文與圖示本發(fā)明原理的附圖一起提供對(duì)本發(fā)明一個(gè)或者多個(gè)實(shí)施例的詳細(xì)描述。結(jié)合這樣的實(shí)施例描述本發(fā)明,但是本發(fā)明不限于任何實(shí)施例。本發(fā)明的范圍僅由權(quán)利要求書(shū)限定,并且本發(fā)明涵蓋諸多替代、修改和等同物。在下文描述中闡述諸多具體細(xì)節(jié)以便提供對(duì)本發(fā)明的透徹理解。出于示例的目的而提供這些細(xì)節(jié),并且無(wú)這些具體細(xì)節(jié)中的一些或者所有細(xì)節(jié)也可以根據(jù)權(quán)利要求書(shū)實(shí)現(xiàn)本發(fā)明。

本發(fā)明的一方面提供了一種基于開(kāi)源框架的軟件重構(gòu)方法。圖1是根據(jù)本發(fā)明實(shí)施例的基于開(kāi)源框架的軟件重構(gòu)方法流程圖。

本發(fā)明基于改進(jìn)的云端應(yīng)用架構(gòu)。整體架構(gòu)包括表現(xiàn)模塊、控制模塊、應(yīng)用模塊、vm模塊、物理模塊。表現(xiàn)模塊作為云端應(yīng)用的系統(tǒng)門戶為租戶提供注冊(cè)、租用服務(wù),租戶通過(guò)表現(xiàn)模塊發(fā)送服務(wù)請(qǐng)求。控制模塊根據(jù)租戶的定制需求將租戶分配到云端應(yīng)用中相對(duì)應(yīng)的組件上,租戶通過(guò)訪問(wèn)特定個(gè)或多個(gè)組件來(lái)實(shí)現(xiàn)自身的需求。同時(shí),控制模塊對(duì)組成云端應(yīng)用的各個(gè)組件進(jìn)行資源消耗和服務(wù)質(zhì)量指標(biāo)的監(jiān)控。根據(jù)監(jiān)控日志,對(duì)云端應(yīng)用的組件數(shù)量進(jìn)行調(diào)整。應(yīng)用模塊由一組組件及組件間連接關(guān)系組成一個(gè)組件化的云端應(yīng)用,為租戶提供服務(wù)。組件庫(kù)提供組成云端應(yīng)用的組件。vm模塊封裝了組件獨(dú)立運(yùn)行的環(huán)境。部署在不同vm中的組件通過(guò)vm間的網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)的通信。數(shù)據(jù)服務(wù)器是一類特殊的vm,云端應(yīng)用的各個(gè)組件都操作同一個(gè)數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)部署在數(shù)據(jù)服務(wù)器上。物理模塊的基礎(chǔ)設(shè)施用于提供vm,vm的來(lái)源包括云端應(yīng)用提供商自身的基礎(chǔ)設(shè)施,和提供vm租用服務(wù)的基礎(chǔ)設(shè)施提供商。

在該架構(gòu)下,云端應(yīng)用提供商首先選擇vm來(lái)部署云端應(yīng)用的各個(gè)組件;隨后當(dāng)有租戶訪問(wèn)時(shí),控制模塊用于分配租戶訪問(wèn)相應(yīng)組件,實(shí)現(xiàn)租戶的需求;云端應(yīng)用提供商通過(guò)監(jiān)控的情況調(diào)整云端應(yīng)用中組件的數(shù)量,即選擇vm為負(fù)載最高的組件部署多個(gè)實(shí)例,之后通過(guò)控制模塊把訪問(wèn)該組件的租戶分配到各個(gè)相同的實(shí)例上,以此提高整個(gè)云端應(yīng)用的性能。

對(duì)于以組件化形式組織的云端應(yīng)用,采用本發(fā)明提出的云端應(yīng)用模型進(jìn)行描述,其建模方法如下所示。

步驟1:對(duì)由多個(gè)組件組成的云端應(yīng)用,依據(jù)該云端應(yīng)用向租戶提供的所有可定制功能及功能間的關(guān)系,建立該云端應(yīng)用的功能模型;

步驟2:將功能模型中功能與實(shí)現(xiàn)該功能的組件進(jìn)行映射,確立該云端應(yīng)用的組件模型,根據(jù)確定的功能模型和組件模型,在未有租戶進(jìn)行定制時(shí),建立初始態(tài)的云端應(yīng)用模型;

步驟3:當(dāng)租戶對(duì)云端應(yīng)用進(jìn)行定制后,根據(jù)租戶的定制需求,確定每個(gè)租戶的特征模型,根據(jù)租戶特征模型中各個(gè)特征的含義,對(duì)初始態(tài)的云端應(yīng)用模型進(jìn)行調(diào)整,即確定組件模型中各個(gè)組件需要部署的實(shí)例數(shù)量;

步驟4:根據(jù)現(xiàn)有租戶的特征模型和調(diào)整后的組件模型,建立運(yùn)行態(tài)的云端應(yīng)用模型。

在應(yīng)用開(kāi)發(fā)階段,完成云端應(yīng)用的開(kāi)發(fā)并部署運(yùn)行后,首先通過(guò)負(fù)載測(cè)試確定其每個(gè)組件的最大并發(fā)用戶數(shù)和最大資源消耗量,然后通過(guò)不同負(fù)載下的性能測(cè)試來(lái)測(cè)量每個(gè)組件在穩(wěn)定負(fù)載區(qū)間內(nèi)的各種服務(wù)質(zhì)量指標(biāo)取值和在云環(huán)境的vm上的資源消耗量,并通過(guò)對(duì)測(cè)試數(shù)據(jù)的分析,確定每個(gè)組件及其實(shí)例的在不同負(fù)載下的動(dòng)態(tài)服務(wù)質(zhì)量和在云設(shè)施上的資源消耗量。在應(yīng)用運(yùn)行階段,通過(guò)監(jiān)控工具來(lái)獲取每個(gè)組件實(shí)例在每種負(fù)載模式下的實(shí)際服務(wù)質(zhì)量指標(biāo)取值和資源消耗量,并通過(guò)對(duì)監(jiān)控?cái)?shù)據(jù)的分析來(lái)調(diào)整每個(gè)組件的動(dòng)態(tài)服務(wù)質(zhì)量和云資源消耗量。

針對(duì)特定云端應(yīng)用,采用鄰接矩陣來(lái)表示其組件關(guān)系圖,并根據(jù)組件的部署方案,得到劃分后的組件關(guān)系圖的鄰接矩陣,此矩陣即表示在vm網(wǎng)絡(luò)圖中各個(gè)組件所需的vm之間的通信量。本發(fā)明在組件優(yōu)化部署方法時(shí),引入二維數(shù)組來(lái)表示云端應(yīng)用組件關(guān)系圖的鄰接矩陣,對(duì)依據(jù)部署方案得到的組件關(guān)系圖的鄰接矩陣進(jìn)行求和,計(jì)算出vm網(wǎng)絡(luò)的通信量。即將組件優(yōu)化部署方法的問(wèn)題模型表示為:

其中p(vmij)為虛擬機(jī)vmij的價(jià)格,rres(vmij)為虛擬機(jī)vmij的資源提供量,c為組件集合,lvm為虛擬機(jī)之間的通信鏈路集合,rt(vmij,vmst)為vmij到vmst的通信量。上述問(wèn)題模型表示任意vm中所部署的組件的cpu、內(nèi)存、存儲(chǔ)的資源消耗總量不超過(guò)該vm的資源提供能力;在滿足cost(vm)最低的前提下,選擇通信量rt(lvm)最低的組件部署方案。

以下采用智能搜索算法對(duì)組件優(yōu)化部署方法進(jìn)行實(shí)現(xiàn)。采用整數(shù)方式進(jìn)行編碼,即染色體的每個(gè)基因表示一個(gè)組件實(shí)例,染色體的長(zhǎng)度為組件集合c的規(guī)模大小,每個(gè)基因的取值表示該基因代表的組件實(shí)例所部署在的vm實(shí)例的編號(hào)。然后進(jìn)行初始化:

步驟1:針對(duì)組件關(guān)系圖,根據(jù)其組件集合的大小確定染色體的長(zhǎng)度;

步驟2:對(duì)染色體的每個(gè)基因,在滿足組件部署問(wèn)題的資源約束條件下,隨機(jī)一個(gè)vm實(shí)例的編號(hào)作為該基因的取值,并記錄該編號(hào)的vm實(shí)例所屬的vm類型;

步驟3:隨機(jī)產(chǎn)生染色體的校驗(yàn)序列,即染色體上基因校驗(yàn)的順序;

步驟4:按校驗(yàn)的順序判斷染色體上的基因所代表的組件實(shí)例能否部署在該基因取值所代表的vm實(shí)例上。滿足組件部署資源約束條件,執(zhí)行步驟7,否則執(zhí)行步驟5;

步驟5:在所有基因?qū)?yīng)的全部vm實(shí)例編號(hào)中,為該基因隨機(jī)一個(gè)新的取值,如果該基因代表的組件實(shí)例能部署在新的取值所代表的vm實(shí)例上,執(zhí)行步驟7,否則執(zhí)行步驟6;

步驟6:為該基因分配一個(gè)未使用的vm實(shí)例,在已使用的全部vm實(shí)例編號(hào)之外,給該基因一個(gè)新的取值,并記錄該取值所代表vm實(shí)例的類型。

步驟7:判斷染色體校驗(yàn)是否結(jié)束,如果未結(jié)束,回到步驟4,否則,校驗(yàn)結(jié)束,計(jì)算該隨機(jī)方案下所使用vm實(shí)例的總成本和vm實(shí)例間的通信量并記錄。

對(duì)染色體中的基因進(jìn)行遺傳操作。包括染色體選擇、基因重組、染色體變異、染色體修復(fù),其具體步驟如下:

從當(dāng)前種群中任選兩條染色體作為父染色體;

對(duì)這兩個(gè)父染色體,隨機(jī)產(chǎn)生兩個(gè)數(shù)字i和j作為重組的起始位置和重組部分的長(zhǎng)度。

交換兩個(gè)父染色體重組部分對(duì)應(yīng)位置的基因取值,產(chǎn)生兩個(gè)新的子染色體。

在產(chǎn)生的當(dāng)前子染色體中,隨機(jī)選擇變異的基因,刪除該基因的取值。在所有基因?qū)?yīng)的全部vm實(shí)例編號(hào)中,為該基因搜索一個(gè)新的取值;如果搜索不到這樣的vm編號(hào),為該基因分配一個(gè)未使用的vm實(shí)例,在已使用的全部vm實(shí)例編號(hào)之外,給該基因一個(gè)新的取值,并記錄該取值所代表的vm實(shí)例的vm類型。

對(duì)產(chǎn)生的所有子染色體上的每個(gè)基因所代表的組件實(shí)例ci,獲取該基因的取值即vm編號(hào)j,檢驗(yàn)vmj的資源提供量是否滿足部署在該vm上的所有組件資源消耗總量,如果不滿足條件,將組件實(shí)例ci從vmj中取出,即代表組件實(shí)例ci的基因取值變?yōu)榭眨膙mj減掉組件實(shí)例ci的資源消耗量;

對(duì)染色體上取值為空的每個(gè)基因所代表的組件實(shí)例ci,若存在某個(gè)組件實(shí)例ck,與ci為相同類型組件并且ck所在的vm實(shí)例上還能部署ci,則將ci部署到該vm實(shí)例上。否則把ci部署到能夠滿足其部署約束條件的vm實(shí)例上。

輸入組件關(guān)系圖g=(c,e),vm類型集合,每個(gè)組件的資源消耗量,每種類型vm的資源提供量。通過(guò)以下過(guò)程得到組件部署方案,vm的最低總成本cost(vm),組件部署方案在最低總成本下的最低通信量rt(lvm):

步驟1:設(shè)定方法的參數(shù),包括種群大小,遺傳操作進(jìn)化代數(shù),選擇操作概率,變異操作概率;

步驟2:通過(guò)解的初始化,對(duì)種群中的每個(gè)染色體完成初始化和校驗(yàn),并計(jì)算每條染色體所代表部署方案的總成本、通信量及成本適應(yīng)度;

步驟3:將當(dāng)前種群按照成本適應(yīng)度排序,從中選擇成本適應(yīng)度函數(shù)值最低的染色體放入新種群里;

步驟4:通過(guò)遺傳操作,對(duì)當(dāng)前種群中的染色體進(jìn)行選擇、重組、變異、修復(fù)操作,計(jì)算產(chǎn)生的新染色體所代表部署方案的總成本、通信量及成本適應(yīng)度,并將其放入新種群中;

步驟5:選擇成本適應(yīng)度最好的染色體作為近似最優(yōu)解,根據(jù)該染色體計(jì)算得到所使用的vm實(shí)例的編號(hào)和每種類型vm實(shí)例的數(shù)量。若存在多個(gè)成本適應(yīng)度最好的染色體,則選擇通信量最低的染色體作為最優(yōu)解;

步驟6:根據(jù)選出的染色體最優(yōu)解確定了所用vm實(shí)例的編號(hào)和所使用的vm實(shí)例的類型和每種類型的數(shù)量。隨機(jī)選取染色體最優(yōu)解的i個(gè)基因,在滿足組件部署問(wèn)題的資源約束條件下,對(duì)選取的每個(gè)基因,在已用的全部vm實(shí)例編號(hào)中搜索一個(gè)新值,即將選取的每個(gè)基因?qū)?yīng)的組件實(shí)例從其已部署到的vm實(shí)例中取出,在已用的全部vm實(shí)例中選擇另外一個(gè)可以部署該組件實(shí)例的vm實(shí)例進(jìn)行部署,并記錄調(diào)整后的染色體的通信量。

綜上所述,本發(fā)明提出了一種基于開(kāi)源框架的軟件重構(gòu)方法,實(shí)現(xiàn)了跨多個(gè)云數(shù)據(jù)中心間的應(yīng)用優(yōu)化部署,并且提高了云端應(yīng)用的動(dòng)態(tài)服務(wù)質(zhì)量,降低了虛擬機(jī)的資源消耗量。

顯然,本領(lǐng)域的技術(shù)人員應(yīng)該理解,上述的本發(fā)明的各模塊或各步驟可以用通用的計(jì)算系統(tǒng)來(lái)實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算系統(tǒng)上,或者分布在多個(gè)計(jì)算系統(tǒng)所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算系統(tǒng)可執(zhí)行的程序代碼來(lái)實(shí)現(xiàn),從而,可以將它們存儲(chǔ)在存儲(chǔ)系統(tǒng)中由計(jì)算系統(tǒng)來(lái)執(zhí)行。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。

應(yīng)當(dāng)理解的是,本發(fā)明的上述具體實(shí)施方式僅僅用于示例性說(shuō)明或解釋本發(fā)明的原理,而不構(gòu)成對(duì)本發(fā)明的限制。因此,在不偏離本發(fā)明的精神和范圍的情況下所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。此外,本發(fā)明所附權(quán)利要求旨在涵蓋落入所附權(quán)利要求范圍和邊界、或者這種范圍和邊界的等同形式內(nèi)的全部變化和修改例。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1