專利名稱:用于描述應(yīng)用程序以獲得可管理性和高效擴(kuò)展部署的系統(tǒng)和方法
用于描述應(yīng)用程序以獲得可管理性和高效擴(kuò)展部署的系統(tǒng)
和方法背景各計(jì)算機(jī)應(yīng)用程序被開發(fā)成在特定計(jì)算平臺上操作。傳統(tǒng)上,計(jì)算平臺被設(shè)計(jì)成 控制單個(gè)計(jì)算機(jī),并且結(jié)果,針對該計(jì)算平臺設(shè)計(jì)的應(yīng)用程序也被設(shè)計(jì)成在單個(gè)計(jì)算機(jī)上 操作。因特網(wǎng)引入了將計(jì)算機(jī)程序部署到計(jì)算機(jī)的新方式。盡管部署方法改變了,但最終 用戶仍然期望計(jì)算機(jī)應(yīng)用程序同樣地操作,而不論它們是通過因特網(wǎng)部署的還是駐留在最 終用戶的計(jì)算機(jī)上的。概述本發(fā)明的各實(shí)施例涉及用于操作可伸縮計(jì)算平臺的系統(tǒng)、方法和計(jì)算機(jī)存儲介 質(zhì)。接收描述所請求的服務(wù)的服務(wù)描述。在接收到該服務(wù)描述后,作出對所需資源和可用 資源的判定。將維持服務(wù)的部署所需的資源映射到計(jì)算平臺的可用資源以便可以部署該服 務(wù)。用服務(wù)的每一個(gè)部署來修改實(shí)例描述以允許服務(wù)的持續(xù)部署。提供本概述是為了以簡化的形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的一些概 念。本概述不旨在標(biāo)識所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于幫助確定 所要求保護(hù)的主題的范圍。附圖簡述以下參考附圖詳細(xì)描述本發(fā)明,附圖中
圖1是適用于實(shí)現(xiàn)本發(fā)明的各實(shí)施例的示例性計(jì)算環(huán)境的框圖;圖2是示出根據(jù)本發(fā)明的一實(shí)施例的用于操作可伸縮計(jì)算平臺的示例性系統(tǒng)的 框圖;圖3是示出根據(jù)本發(fā)明的一實(shí)施例的用于操作可伸縮計(jì)算平臺的示例性方法的 流程圖;圖4是根據(jù)本發(fā)明的各實(shí)施例的表示服務(wù)描述通過各部件的生命周期的示圖;圖5是根據(jù)本發(fā)明的一實(shí)施例的示例性拓?fù)浣Y(jié)構(gòu)的圖形表示;圖6是根據(jù)本發(fā)明的一實(shí)施例的表示負(fù)載平衡信道的框圖;圖7是根據(jù)本發(fā)明的一實(shí)施例的表示有狀態(tài)交換機(jī)信道的框圖;圖8是根據(jù)本發(fā)明的一實(shí)施例的表示無狀態(tài)交換機(jī)信道的框圖;以及圖9是根據(jù)本發(fā)明的一實(shí)施例的服務(wù)部署演變的流程圖。詳細(xì)描述此處用細(xì)節(jié)來描述本發(fā)明的各實(shí)施例的主題以滿足法定要求。然而,該描述本身 并非旨在限制本專利的范圍。相反,發(fā)明人設(shè)想所要求保護(hù)的主題還可結(jié)合其他當(dāng)前或未 來技術(shù)按照其他方式來具體化,以包括不同的步驟或類似于本文中所描述的步驟的步驟組 合。此外,盡管術(shù)語“步驟”和/或“框”可在此處用于指示所采用的方法的不同元素,但除 非而且僅當(dāng)明確描述了各個(gè)步驟的順序時(shí),該術(shù)語不應(yīng)被解釋為意味著此處公開的各個(gè)步 驟之中或之間的任何特定順序。本發(fā)明的各實(shí)施例涉及用于操作可伸縮計(jì)算平臺的系統(tǒng)、方法和計(jì)算機(jī)存儲介質(zhì)。接收描述所請求的服務(wù)的服務(wù)描述。在接收到該服務(wù)描述后,作出對所需資源和可用 資源的判定。將維持服務(wù)的部署所需的資源映射到計(jì)算平臺的可用資源以便可以部署該服 務(wù)。用服務(wù)的每一個(gè)部署來修改實(shí)例描述以允許服務(wù)的持續(xù)部署。在另一方面,本發(fā)明提供一種用于操作可伸縮計(jì)算平臺的方法。該方法包括接收 對一個(gè)或多個(gè)服務(wù)的請求,其中一服務(wù)合同與對該服務(wù)的請求相關(guān)聯(lián)。這些服務(wù)中的每一 個(gè)都包括元素和信道,并且其中該信道是負(fù)載平衡器信道、有狀態(tài)交換機(jī)信道、以及無狀態(tài) 交換機(jī)信道中的至少一個(gè)。該方法還包括接收對一個(gè)或多個(gè)服務(wù)的服務(wù)描述,其中服務(wù)描 述包括應(yīng)用程序配置設(shè)置、系統(tǒng)配置設(shè)置、以及資源引用中的至少一個(gè)。該方法繼續(xù)確定部 署一個(gè)或多個(gè)服務(wù)所需的資源以及確定可伸縮計(jì)算平臺的至少一個(gè)可用資源,以下產(chǎn)生第 一實(shí)例描述。一旦確定了所需資源和可用資源,則該方法包括映射這些資源以及部署一個(gè) 或多個(gè)服務(wù)以生成結(jié)果。該方法隨后繼續(xù)傳輸所部署的服務(wù)結(jié)果。在又一方面,本發(fā)明提供一種用于操作可伸縮計(jì)算平臺的方法。該方法包括接收 對一個(gè)或多個(gè)服務(wù)的附加請求,確定部署這些服務(wù)所需的資源,確定可伸縮計(jì)算平臺的至 少一個(gè)可用資源,產(chǎn)生第二實(shí)例描述,將部署這些服務(wù)所需的資源映射到可伸縮計(jì)算平臺 的可用資源,部署這些服務(wù)以生成結(jié)果并傳送該結(jié)果。該方法還能夠修改第一實(shí)例描述和 第二實(shí)例描述以反映部署這些服務(wù)所需的資源到可伸縮計(jì)算平臺的至少一個(gè)可用資源的 映射。本發(fā)明的再一方面提供一種包含在其上包含計(jì)算機(jī)可執(zhí)行指令的一個(gè)或多個(gè)計(jì) 算機(jī)存儲介質(zhì)上的計(jì)算機(jī)系統(tǒng),該指令用于執(zhí)行一種操作可伸縮計(jì)算平臺的方法。該方法 包括接收對服務(wù)的請求的接收組件、確定部署該服務(wù)所需的資源的資源確定組件、映射部 署該服務(wù)所需的資源的資源映射組件、以及與部署該服務(wù)所需的映射資源相關(guān)聯(lián)地部署該 服務(wù)的部署組件,其中該請求包括具有部署與其相關(guān)聯(lián)的服務(wù)所需的資源的描述的服務(wù)描 述。在簡要描述了本發(fā)明的各實(shí)施例的概覽后,以下描述適于實(shí)現(xiàn)本發(fā)明的各實(shí)施例 的示例性操作環(huán)境。大體上參考附圖,并且首先具體參考圖1,示出了適用于實(shí)現(xiàn)本發(fā)明的各實(shí)施例的 示例性操作環(huán)境,并將其概括指定為計(jì)算設(shè)備100。計(jì)算設(shè)備100只是合適的計(jì)算環(huán)境的一 個(gè)示例,并且不旨在對本發(fā)明的使用范圍或功能提出任何限制。也不應(yīng)將計(jì)算環(huán)境100解 釋為對所示出的任一模塊/組件或其組合有任何依賴性或要求。各實(shí)施例可以在計(jì)算機(jī)代碼或機(jī)器可使用指令的一般上下文中描述,機(jī)器可使用 指令包括由計(jì)算機(jī)或諸如個(gè)人數(shù)據(jù)助理或其他手持式設(shè)備等其他機(jī)器執(zhí)行的諸如程序模 塊等的計(jì)算機(jī)可執(zhí)行指令。一般而言,包括例程、程序、對象、模塊、數(shù)據(jù)結(jié)構(gòu)等的程序模塊 指的是執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的代碼。各實(shí)施例可以在各種系統(tǒng)配置中實(shí) 施,這些系統(tǒng)配置包括手持式設(shè)備、消費(fèi)電子產(chǎn)品、通用計(jì)算機(jī)、專用計(jì)算設(shè)備等等。各實(shí)施 例也可以在其中任務(wù)由通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行的分布式計(jì)算環(huán)境中實(shí)施。繼續(xù)參考圖1,計(jì)算設(shè)備100包括直接或間接耦合以下設(shè)備的總線110 存儲器 112、一個(gè)或多個(gè)處理器114、一個(gè)或多個(gè)呈現(xiàn)模塊116、輸入/輸出(I/O)端口 118、I/O模 塊120、和說明性電源122。總線110可以是一條或多條總線(諸如地址總線、數(shù)據(jù)總線、或 其組合)。盡管為了清楚起見圖1的各框用線條示出,但是在實(shí)際上,各模塊的輪廓并不是那樣清楚,并且比喻性地來說,線條更精確地將是灰色的和模糊的。例如,可以將諸如顯示 設(shè)備等的呈現(xiàn)模塊認(rèn)為是I/O模塊。而且,處理器具有存儲器。發(fā)明人關(guān)于此點(diǎn)認(rèn)識到,這 是本領(lǐng)域的特性,并且重申,圖1的圖示只是例示可結(jié)合一個(gè)或多個(gè)實(shí)施例來使用的示例 性計(jì)算設(shè)備。諸如“工作站”、“服務(wù)器”、“膝上型計(jì)算機(jī)”、“手持式設(shè)備”等分類之間沒有區(qū) 別,它們?nèi)慷急徽J(rèn)為是在圖1的范圍之內(nèi)的并且被稱為“計(jì)算機(jī)”或“計(jì)算設(shè)備”。計(jì)算設(shè)備100通常包括各種計(jì)算機(jī)可讀介質(zhì)。作為示例而非限制,計(jì)算機(jī)可讀 介質(zhì)可以包括隨機(jī)存取存儲器(RAM);只讀存儲器(ROM);電可擦除可編程只讀存儲器 (EEPROM);閃存或其他它存儲器技術(shù);CDR0M、數(shù)字多功能盤(DVD)或其他光或全息介質(zhì);磁 帶盒、磁帶、磁盤存儲或其他磁存儲設(shè)備;載波或可用于對所需信息進(jìn)行編碼并且可由計(jì)算 設(shè)備100訪問的任何其他介質(zhì)。存儲器112包括易失性和/或非易失性存儲器形式的計(jì)算機(jī)存儲介質(zhì)。存儲器可 以是可移動的、不可移動的或其組合。示例性硬件設(shè)備包括固態(tài)存儲器、硬盤驅(qū)動器、光盤 驅(qū)動器等。計(jì)算設(shè)備100包括從諸如存儲器112或I/O模塊120等各種實(shí)體讀取數(shù)據(jù)的一 個(gè)或多個(gè)處理器。呈現(xiàn)模塊116向用戶或其他設(shè)備呈現(xiàn)數(shù)據(jù)指示。示例性呈現(xiàn)模塊包括顯 示設(shè)備、揚(yáng)聲器、打印模塊、振動模塊等等。I/O端口 118允許計(jì)算設(shè)備100在邏輯上耦合 至包括I/O模塊120的其他設(shè)備,其中某些設(shè)備可以是內(nèi)置的。說明性模塊包括話筒、操縱 桿、游戲手柄、圓盤式衛(wèi)星天線、掃描儀、打印機(jī)、無線設(shè)備等等。參考圖2,示出了例示根據(jù)本發(fā)明的一實(shí)施例的用于可伸縮計(jì)算平臺的示例性系 統(tǒng)200的框圖。計(jì)算平臺200只是合適的計(jì)算平臺的一個(gè)示例,并且不旨在對本發(fā)明的使 用范圍或功能提出任何限制。也不應(yīng)將計(jì)算平臺200解釋為對所示出的任一模塊/組件或 其組合有任何依賴性或要求。繼續(xù)參考圖2,計(jì)算平臺200包含接收組件212、服務(wù)描述生成組件214、資源確定 組件216、資源映射組件218、部署組件220,它們?nèi)冀?jīng)由網(wǎng)絡(luò)210彼此通信。網(wǎng)絡(luò)210可 以包括但不限于,一個(gè)或多個(gè)局域網(wǎng)(LAN)和/或廣域網(wǎng)(WAN)。這樣的聯(lián)網(wǎng)環(huán)境常見于辦 公室、企業(yè)范圍計(jì)算網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中。因此,網(wǎng)絡(luò)210不在此進(jìn)一步描述。計(jì)算平臺200的一示例性實(shí)施例將各組件組裝成實(shí)例化器(instantiator) 240和 部署器(employer) 250。資源確定組件216被組裝到實(shí)例化器240中。資源映射組件218 和部署組件220被組裝到部署器250中。盡管計(jì)算平臺200的所示實(shí)施例將本發(fā)明的各組 件組裝成所標(biāo)識的特定部件,但本領(lǐng)域技術(shù)人員可以理解和明白,各部件不限于實(shí)例化器 240和部署器250。本領(lǐng)域技術(shù)人員還可以理解和明白,各組件不限于所標(biāo)識的特定部件, 各組件也完全不必組裝。接收組件212接收對服務(wù)的請求。該服務(wù)是結(jié)構(gòu)化實(shí)體,其中該結(jié)構(gòu)是通過由接 收組件212接收到的服務(wù)描述來確定的。使接收到的服務(wù)描述適合與被請求的服務(wù)相關(guān)聯(lián) 的服務(wù)合同。服務(wù)描述呈現(xiàn)一組配置設(shè)置、一系列輸入接口、以及對其他服務(wù)的接口的一系 列依賴性。為了使該服務(wù)成為結(jié)構(gòu)化實(shí)體,其包括角色、群、以及信道的結(jié)構(gòu)化集合。角色提 供計(jì)算機(jī)程序的模板描述。角色是通過指示實(shí)現(xiàn)該角色的計(jì)算機(jī)代碼、該角色所需的主存 環(huán)境、配置設(shè)置、該角色的端點(diǎn)集、以及它們的性能的模型來描述的。角色的配置設(shè)置可包 括由該角色的所有實(shí)例共享的集體設(shè)置或?yàn)樵摻巧拿恳粚?shí)例所特有的個(gè)別設(shè)置。另外, 角色的描述中包括的端點(diǎn)集還被分類成輸入端點(diǎn)和輸出端點(diǎn)。角色的輸出端點(diǎn)提供從源元素到目標(biāo)元素的輸入端點(diǎn)的連接點(diǎn)。角色實(shí)例通過其端點(diǎn)進(jìn)行通信。角色實(shí)例也由其描述 中包括的資源來定義。角色也可被編組成一組角色以形成一個(gè)群。最小群大小由單個(gè)角色 組成。因此,當(dāng)不需要區(qū)分群和角色時(shí),這兩者可被描述成元素。服務(wù)還包括信道。信道在 各元素之間通過這些元素的端點(diǎn)來建立連接。接收組件212接收對服務(wù)和服務(wù)描述的請求。服務(wù)描述包括約束如何配置和部署 服務(wù)的信息以及可用來分析該服務(wù)的性能的信息。另外,服務(wù)描述提供足夠信息使得本發(fā) 明可以分配并協(xié)調(diào)維持服務(wù)的部署所需的資源。系統(tǒng)描述和實(shí)例描述包括概述該服務(wù)的元素和信道。實(shí)例描述由資源確定組件 216產(chǎn)生,以合并概述包括在接收到的服務(wù)描述中的服務(wù)以及被確定為是部署該服務(wù)的特 定實(shí)例所需要的資源的元素和信道。各元素和各信道之間的關(guān)系的描述表示該服務(wù)的拓?fù)?結(jié)構(gòu)。該拓?fù)浣Y(jié)構(gòu)描述各信道連接各個(gè)元素的各端點(diǎn)。如果信道或元素改變,則該服務(wù)的拓 撲結(jié)構(gòu)也改變。服務(wù)的拓?fù)浣Y(jié)構(gòu)包括涉及供該服務(wù)正確地運(yùn)作的元素的連接性、該元素的 輸入端點(diǎn)與一服務(wù)的輸入接口之間的路由、該元素的輸出端點(diǎn)與一服務(wù)的依賴性之間的路 由、所需要的每一元素的最小副本數(shù)量、與應(yīng)當(dāng)發(fā)生以避免中斷該服務(wù)的維護(hù)有關(guān)的方針、 可用來評估服務(wù)性能的性能參數(shù)的描述、將正確的映射通知給部署器250的角色之間的仿 射的指示、以及元素之間的配置設(shè)置的傳播的指示的信息。系統(tǒng)描述中包括的幫助定義拓?fù)浣Y(jié)構(gòu)的信道可以采取各種形式。信道可以是負(fù)載 平衡器信道、有狀態(tài)交換機(jī)信道、以及無狀態(tài)交換機(jī)信道中的任一個(gè)。負(fù)載平衡器信道將來 自源元素的一個(gè)輸出端點(diǎn)連接到目標(biāo)元素的輸入端點(diǎn)。來自源元素的通信量根據(jù)與該信道 相關(guān)聯(lián)的某一策略而被重新分配到目標(biāo)元素之一??梢源_定通信量的分配的策略的示例包 括但不限于,均勻分布、最小成本路由、最短時(shí)間路由、仿射相關(guān)路由、或便于兩個(gè)元素之間 的連接的任何其他分配方案。負(fù)載平衡器信道具有處理任何數(shù)量的輸入端點(diǎn)和輸出端點(diǎn)的 容量。源元素只需包括與負(fù)載平衡信道的負(fù)載平衡器相關(guān)聯(lián)的虛擬地址的信息。負(fù)載平衡 器隨后將連接重新分配到多個(gè)目標(biāo)元素而不論目標(biāo)元素的數(shù)量。根據(jù)本發(fā)明的一實(shí)施例的示例性負(fù)載平衡信道在圖6的框圖中示出并被概括地 表示成參考標(biāo)號610。期望多個(gè)源元素620、622和624與多個(gè)目標(biāo)元素630和632建立負(fù) 載平衡器信道連接。然而,多個(gè)源元素620、622和624不具有用于與目標(biāo)元素630和632 建立直接連接的必需信息。相反,源元素620、622和624具有定向到負(fù)載平衡器610的虛 擬地址。源元素620、622和624因此與負(fù)載平衡器610相連接。負(fù)載平衡器610隨后基于 分配給該特定負(fù)載平衡器信道的策略將連接重新分配到目標(biāo)元素630和632。第二類信道是有狀態(tài)交換機(jī)信道。有狀態(tài)交換機(jī)信道與“m”個(gè)不同地址相關(guān)聯(lián), 其中“m”是目標(biāo)元素的實(shí)例的數(shù)量。在利用有狀態(tài)交換機(jī)信道時(shí),源元素知道“m”個(gè)目標(biāo) 元素的數(shù)量。源元素隨后選擇目標(biāo)元素的該“m”個(gè)實(shí)例之一來與其進(jìn)行連接。源元素因此 包括對與其進(jìn)行連接的哪一“m”實(shí)例的指定。信道內(nèi)的路由器隨后將該連接定向到適當(dāng)?shù)?目標(biāo)元素。一示例性而非限制性實(shí)施例允許源元素在每一源元素實(shí)例的配置中存儲“m”個(gè) 地址,并包括具有所請求的目標(biāo)連接的所選“m”地址。有狀態(tài)交換機(jī)內(nèi)的路由器隨后將該 連接定向到適當(dāng)?shù)哪繕?biāo)元素。一示例性有狀態(tài)交換機(jī)在圖7的框圖中示出。有狀態(tài)交換機(jī)信道包括路由器710, 多個(gè)源元素720、722、和724,以及多個(gè)目標(biāo)元素730和732。源元素720,722和724中的每一個(gè)都知道兩個(gè)目標(biāo)元素730和732。因此,源元素720、722和724中的每一個(gè)做出選擇 以將它們的連接定向到一個(gè)或多個(gè)特定目標(biāo)元素。該連接被定向到路由器710,路由器710 將該連接分配給適當(dāng)?shù)哪繕?biāo)元素730和/或732。第三類信道,無狀態(tài)交換機(jī)信道,需要源元素在目標(biāo)元素之中進(jìn)行選擇。與有狀態(tài) 交換機(jī)信道不同,無狀態(tài)交換機(jī)信道不需要從源元素配置目標(biāo)元素地址。因此,無狀態(tài)交換 機(jī)信道允許源元素確定需要與目標(biāo)元素進(jìn)行連接,但在該連接中并未標(biāo)識所選目標(biāo)元素。 無狀態(tài)交換機(jī)信道中包括的路由器基于通信協(xié)議、另一元素提供的指令、或另一分配定向 器將源元素與目標(biāo)元素相連接。一示例性無狀態(tài)交換機(jī)信道在圖8的框圖中示出。無狀態(tài)交換機(jī)信道包括路由器 810和源元素820、822和824以及目標(biāo)元素830和832。源元素820、822和824中的每一 個(gè)都知道兩個(gè)目標(biāo)元素830和832。自源元素820、822和824的連接不包括供路由器810 用于將連接分配給所標(biāo)識的目標(biāo)元素830或832的分配指示。相反,在這一示例性實(shí)施例 中,路由器810基于從替換信道接收到的通信來分配該連接。結(jié)果,源元素820、822和824 之間的連接是基于路由器810接收到的分配指示而連接到目標(biāo)元素830和832的。本領(lǐng)域普通技術(shù)人員可以理解和明白,圖6、圖7和圖8中包括的示例性實(shí)施例本 質(zhì)上是示例性的,并且關(guān)于源元素、目標(biāo)元素、連接元素的信道、或在每一信道內(nèi)建立的連 接的數(shù)量都不旨在是限制性的。除包括服務(wù)的拓?fù)浣Y(jié)構(gòu)之外,服務(wù)描述還可包括配置設(shè)置和資源引用。配置設(shè)置 包括應(yīng)用程序配置設(shè)置和系統(tǒng)配置設(shè)置。應(yīng)用程序配置設(shè)置是元素的定義的一部分,并且 因此應(yīng)用程序配置的聲明和所得解釋是元素的語義和行為所固有的。元素的應(yīng)用程序配置 設(shè)置可以是按實(shí)例的或者是共同設(shè)置。共同設(shè)置由元素的所有實(shí)例共享。按實(shí)例設(shè)置對元 素的每一唯一實(shí)例而言可以具有不同的設(shè)置。第二類配置設(shè)置是系統(tǒng)配置設(shè)置。系統(tǒng)配置設(shè)置是嵌入或合并在一角色群內(nèi)的元 素的屬性。與元素的定義所固有的應(yīng)用程序配置設(shè)置不同,系統(tǒng)配置設(shè)置改為由計(jì)算平臺 來解釋和利用。系統(tǒng)配置設(shè)置的分配處于計(jì)算平臺的控制之下,該計(jì)算平臺在分配給該系 統(tǒng)配置設(shè)置的策略內(nèi)操作。資源引用也可以包括在服務(wù)描述中。資源引用指示對訪問計(jì)算平臺提供的資源中 的一些的需求??捎觅Y源的種類由計(jì)算平臺規(guī)定。資源的示例包括符合特定應(yīng)用程序接口 的本地文件系統(tǒng)空間,如文件、目錄、以及驅(qū)動器集合資源。另外,日志流和事件計(jì)數(shù)器是由 計(jì)算平臺變?yōu)榭捎玫馁Y源的示例。返回圖2,實(shí)例化器240包括資源確定組件216。實(shí)例化器240的角色是創(chuàng)建基于 服務(wù)描述和實(shí)例描述進(jìn)行部署的服務(wù)。實(shí)例化器向部署器250提供服務(wù)的演變實(shí)例以通過 部署組件220和資源映射組件218來進(jìn)行部署。實(shí)例化器240利用為要部署的服務(wù)的實(shí)例 所確定的資源以及服務(wù)描述來產(chǎn)生實(shí)例描述,以允許服務(wù)的初始部署或服務(wù)的漸進(jìn)部署。 不論其是初始部署還是漸進(jìn)部署,實(shí)例化器240都確定服務(wù)的可用性。實(shí)例化器240根據(jù) 與部署器250的協(xié)定利用資源確定組件216來確定部署服務(wù)所需的資源以及部署該服務(wù)的 可用資源。資源確定組件216評估服務(wù)描述并確定應(yīng)當(dāng)如何配置該服務(wù)以縮放該服務(wù)來提 供足夠的服務(wù)容量以滿足該服務(wù)的當(dāng)前需求。為了配置該服務(wù)來進(jìn)行縮放部署,資源確定 組件部分地評估滿足該服務(wù)的實(shí)例的需求所需的資源。資源確定組件216隨后基于資源確定組件216對提供足夠的服務(wù)容量所需和可用的資源的確定來產(chǎn)生實(shí)例描述。部署器250接收實(shí)例化器240所提供的實(shí)例描述。部署器250利用資源映射組件 218來將服務(wù)描述中詳細(xì)描述的所需資源映射到物理設(shè)備和它們相關(guān)聯(lián)的連接設(shè)置。資源 可被映射到的物理設(shè)備的示例包括但不限于圖1的計(jì)算設(shè)備100。另外,并且支持圖1的計(jì) 算設(shè)備100,資源可被映射到的物理設(shè)備是通常與數(shù)據(jù)中心相關(guān)聯(lián)的設(shè)備,僅作為示例包括 交換機(jī)、服務(wù)器、機(jī)架式設(shè)備、路由器、虛擬計(jì)算設(shè)備、遠(yuǎn)程計(jì)算設(shè)備、對等計(jì)算設(shè)備、專用計(jì) 算設(shè)備、以及可分配計(jì)算設(shè)備。本領(lǐng)域普通技術(shù)人員可以理解和明白,所列出的物理設(shè)備不 旨在限制服務(wù)描述所需的資源可被映射到的物理設(shè)備的范圍。物理設(shè)備的連接設(shè)置可包括 物理設(shè)備的IP地址或其他標(biāo)識協(xié)議。部署組件220部署服務(wù)。部署組件220利用資源映射組件218所執(zhí)行的所需資源 和可用資源的映射來部署資源確定組件216所產(chǎn)生的實(shí)例描述中所描述的服務(wù)。實(shí)例化器 240和部署器250利用可伸縮計(jì)算平臺200的各組件來部署服務(wù)。對該服務(wù)的每一新實(shí)例 重復(fù)實(shí)例化器240和部署器250的各個(gè)動作所定義的循環(huán)。該服務(wù)的每一新實(shí)例用各種方 式來利用可伸縮計(jì)算平臺200的各組件以便在不發(fā)生服務(wù)斷開的情況下以所需容量高效 地提供該服務(wù)?,F(xiàn)在參考圖3,根據(jù)本發(fā)明的一實(shí)施例的用于操作可伸縮計(jì)算平臺的示例性方法 300的流程圖。一開始,如在框310所示,接收對服務(wù)的初始請求。對服務(wù)的初始請求包括 服務(wù)合同和服務(wù)描述。服務(wù)合同概述要部署的服務(wù)的邊界。該邊界包括服務(wù)描述將考慮和 遵循的要求、限制、和約束。接收到的對服務(wù)的請求可包括服務(wù)描述以及服務(wù)合同,或?qū)Ψ?務(wù)的請求可以獨(dú)立于服務(wù)描述和服務(wù)合同來接收。如此,構(gòu)想了接收到對服務(wù)的請求、服務(wù) 合同、以及服務(wù)描述的任何和全部組合。如在框310所示,接收對服務(wù)的請求,并且如在框 315所示,接收服務(wù)描述。一旦接收到服務(wù)描述,則如在框320所示,確定維持該服務(wù)所需的 配置和資源,如在框325所示,確定可用資源。在確定了維持該服務(wù)所需的資源和部署該服 務(wù)的可用資源后,如在框330所示,產(chǎn)生該服務(wù)的實(shí)例描述。如在框3340所示,將所需資源 映射到可用資源。如在框350所示,資源的映射允許部署在服務(wù)描述中描述的服務(wù)。在部 署了服務(wù)后,如在框360所示,生成并傳送結(jié)果。如果接收到對該服務(wù)的附加請求,則如在框384所示,該方法返回以產(chǎn)生實(shí)例描 述,如在框330所示。如果未接收到附加請求,則該方法等待重新生成實(shí)例描述的機(jī)會。這 在框382處指示。對于該服務(wù)的每一附加請求,部署該服務(wù)的新實(shí)例。在接收到附加請求后重新生 成實(shí)例描述允許可伸縮計(jì)算平臺針對實(shí)例描述的所需資源的變化以及用于部署的可用資 源的變化進(jìn)行調(diào)整。另外,重新生成實(shí)例描述允許將改進(jìn)、新要求、性能改變、以及維護(hù)與該 服務(wù)的每一新實(shí)例相合并。這允許可伸縮計(jì)算平臺提供服務(wù)的持續(xù)部署,同時(shí)伸縮部署并 合并新實(shí)例描述的各元素。現(xiàn)在參考圖4,示出了表示服務(wù)描述通過各部件的生命周期的示意圖并被概括地 指定為參考標(biāo)號400。開發(fā)階段410包括接收對新服務(wù)或?qū)ΜF(xiàn)有服務(wù)的改進(jìn)的請求。在開 發(fā)器階段410,還可引入新要求。對新服務(wù)的請求、對改進(jìn)的請求、以及新要求都被合并到開 發(fā)器的服務(wù)描述以定義服務(wù)。將開發(fā)器的服務(wù)描述傳遞到實(shí)例化器部件階段420,在那里確 定所需資源和可用資源并且將開發(fā)器的服務(wù)描述更改成實(shí)例描述。將該實(shí)例描述傳遞到部署部件階段430。部署實(shí)例描述所概述的服務(wù)。獲得監(jiān)視信息和數(shù)據(jù)中心改變,如物理設(shè)備 信息。隨后將監(jiān)視信息、數(shù)據(jù)中心改變、以及部署狀態(tài)傳送到實(shí)例化部件,并且開發(fā)將合并 到它們相應(yīng)的實(shí)例描述以用于該服務(wù)的稍后實(shí)例。現(xiàn)在參考圖5,示出了示例性拓?fù)浣Y(jié)構(gòu)的圖形表示并概括地指定為參考標(biāo)號500。 如先前參考圖2所討論的,該拓?fù)浣Y(jié)構(gòu)提供對該服務(wù)的各元素與各信道之間的關(guān)系的描 述。拓?fù)浣Y(jié)構(gòu)500包括元素及其相關(guān)聯(lián)的配置值,如參考標(biāo)號502、504、508、510、512、516 和518所示。另外,信道在參考標(biāo)號506和參考標(biāo)號514處表示。拓?fù)浣Y(jié)構(gòu)500示出在參 考標(biāo)號502和504處表示的元素與在參考標(biāo)號508、510和512處表示的元素相連接。在這 兩組元素之間是信道,如在參考標(biāo)號506處所示。該信道將連接分配給在508、510和512 處表示的元素的適當(dāng)輸入端點(diǎn)。這些元素從它們的輸出端點(diǎn)連接到在514處表示的信道。 信道514隨后將這些連接分配給在參考標(biāo)號516和518處表示的元素。所得拓?fù)浣Y(jié)構(gòu)500 包括在概述該服務(wù)的元素、信道、以及配置值的服務(wù)描述中。現(xiàn)在參考圖9,示出了服務(wù)部署演變的流程圖,并概括地指定為參考標(biāo)號900。如 參考標(biāo)號910所示,服務(wù)部署演變900以對新服務(wù)的請求開始,該請求造成服務(wù)的創(chuàng)建。如 參考標(biāo)號920所示,部署該服務(wù),作為服務(wù)的第一實(shí)例930。服務(wù)生命周期如參考圖3和圖 4所描述的那樣繼續(xù)。服務(wù)描述隨服務(wù)的每一實(shí)例改變。如參考標(biāo)號940所示,接收對該服 務(wù)的第二請求并部署該服務(wù),作為服務(wù)的第二實(shí)例950。該周期針對服務(wù)的“η”個(gè)實(shí)例來繼 續(xù)960。在該服務(wù)的第“η”個(gè)實(shí)例后,將該服務(wù)從可伸縮計(jì)算平臺刪除,如參考標(biāo)號970所
7J\ ο如可以看到的,本發(fā)明的各實(shí)施例涉及用于操作可伸縮計(jì)算平臺的系統(tǒng)、方法和 計(jì)算機(jī)存儲介質(zhì)。接收描述所請求的服務(wù)的服務(wù)描述。在接收到該服務(wù)描述后,作出對所 需資源和可用資源的判定。產(chǎn)生實(shí)例描述。將維持服務(wù)的部署所需的資源映射到計(jì)算平臺 的可用資源以便可以部署該服務(wù)。用服務(wù)的每一個(gè)部署來修改實(shí)例描述以允許服務(wù)的持續(xù)
部署ο參考各具體實(shí)施例描述了本發(fā)明,各具體實(shí)施例在所有方面都旨在是說明性的而 非限制性的。在不背離本發(fā)明范圍的情況下各替換實(shí)施例對本發(fā)明所屬領(lǐng)域的普通技術(shù)人 員將變得顯而易見。從前述內(nèi)容可知,本發(fā)明很好地適用于實(shí)現(xiàn)前述的所有目的和目標(biāo),并且具有對 于該系統(tǒng)和方式是顯而易見且固有的其他優(yōu)點(diǎn)??梢岳斫?,特定的特征和子組合是有用的, 并且可以在不參考其他特征和子組合的情況下使用。這由權(quán)利要求書所構(gòu)想并在其范圍之 內(nèi)。
權(quán)利要求
一種包括在其上具有計(jì)算機(jī)可執(zhí)行指令的一個(gè)或多個(gè)計(jì)算機(jī)存儲介質(zhì)上的計(jì)算機(jī)系統(tǒng),所述計(jì)算機(jī)可執(zhí)行指令用于執(zhí)行一種操作可伸縮計(jì)算平臺的方法,所述系統(tǒng)包括接收對服務(wù)的請求和服務(wù)描述的接收組件(212),所述服務(wù)描述具有部署與其相關(guān)聯(lián)的服務(wù)所需的一個(gè)或多個(gè)資源的描述;確定部署所述服務(wù)所需的一個(gè)或多個(gè)資源的資源確定組件(216);基于所述服務(wù)描述和所述一個(gè)或多個(gè)資源來產(chǎn)生實(shí)例描述的實(shí)例描述產(chǎn)生組件(240);映射部署所述服務(wù)所需的一個(gè)或多個(gè)資源的資源映射組件(218);以及與部署所述服務(wù)所需的一個(gè)或多個(gè)所映射的資源相關(guān)聯(lián)地部署所述服務(wù)的部署組件(220)。
2.如權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述實(shí)例描述包括多個(gè)元素和一個(gè) 或多個(gè)信道。
3.如權(quán)利要求2所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述多個(gè)元素中的每一個(gè)是角色和 群中的至少一個(gè)。
4.如權(quán)利要求2所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述一個(gè)或多個(gè)信道中的每一個(gè)在 所述多個(gè)元素中的兩個(gè)之間建立連接。
5.如權(quán)利要求4所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述一個(gè)或多個(gè)信道中的每一個(gè)是 負(fù)載平衡器信道、有狀態(tài)交換機(jī)信道、以及無狀態(tài)交換機(jī)信道之一。
6.如權(quán)利要求5所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述一個(gè)或多個(gè)信道中的至少一個(gè) 是負(fù)載平衡器信道,并且其中所述系統(tǒng)還包括所述負(fù)載平衡器信道用來確定所述多個(gè)元素 中的兩個(gè)的一個(gè)或多個(gè)端點(diǎn)的負(fù)載平衡組件。
7.如權(quán)利要求5所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述一個(gè)或多個(gè)信道中的至少一個(gè) 是有狀態(tài)交換機(jī)信道,并且其中所述系統(tǒng)還包括所述有狀態(tài)交換機(jī)信道用來連接所述多個(gè) 元素中的兩個(gè)的有狀態(tài)交換組件。
8.如權(quán)利要求5所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述一個(gè)或多個(gè)信道中的至少一個(gè) 是無狀態(tài)交換機(jī)信道,并且其中所述系統(tǒng)還包括所述無狀態(tài)交換機(jī)信道用來連接所述多個(gè) 元素中的兩個(gè)的無狀態(tài)交換組件。
9.一個(gè)或多個(gè)其上包含計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)存儲介質(zhì),所述計(jì)算機(jī)可執(zhí)行指令 用于執(zhí)行一種操作可伸縮計(jì)算平臺的方法,所述方法包括接收對一個(gè)或多個(gè)服務(wù)的第一請求(310),其中所述請求包括對所述一個(gè)或多個(gè)服務(wù) 的服務(wù)描述;確定部署所述一個(gè)或多個(gè)服務(wù)所需的資源(320); 確定所述可伸縮計(jì)算平臺的至少一個(gè)可用資源(325);至少基于所述服務(wù)描述、所需資源、以及所述至少一個(gè)可用資源來產(chǎn)生第一實(shí)例描述 (330);將部署所述一個(gè)或多個(gè)服務(wù)所需的至少一個(gè)資源映射到所述可伸縮計(jì)算平臺的所述 至少一個(gè)可用資源(340);部署所述一個(gè)或多個(gè)服務(wù)以生成結(jié)果(350);以及 傳送所述結(jié)果。
10.如權(quán)利要求9所述的一個(gè)或多個(gè)計(jì)算機(jī)存儲介質(zhì),其特征在于,接收到的對服務(wù)的 第一請求和接收到的服務(wù)描述是作為一次接收或作為多次接收來接收的。
11.如權(quán)利要求9所述的一個(gè)或多個(gè)計(jì)算機(jī)存儲介質(zhì),其特征在于,所述一個(gè)或多個(gè)服 務(wù)中的每一個(gè)包括至少一個(gè)信道和多個(gè)元素。
12.如權(quán)利要求9所述的一個(gè)或多個(gè)計(jì)算機(jī)存儲介質(zhì),其特征在于,所述至少一個(gè)信道 是負(fù)載平衡器信道、有狀態(tài)交換機(jī)信道、以及無狀態(tài)交換機(jī)信道之一。
13.如權(quán)利要求12所述的一個(gè)或多個(gè)計(jì)算機(jī)存儲介質(zhì),其特征在于,所述至少一個(gè)信 道是負(fù)載平衡器信道,并且其中所述方法還包括確定所述多個(gè)元素的一個(gè)或多個(gè)端點(diǎn)。
14.如權(quán)利要求12所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述至少一個(gè)信道是有狀態(tài)交換 機(jī)信道和無狀態(tài)交換機(jī)信道之一,并且其中所述方法還包括連接所述多個(gè)元素。
15.如權(quán)利要求9所述的一個(gè)或多個(gè)計(jì)算機(jī)存儲介質(zhì),其特征在于,所述一個(gè)或多個(gè)元 素中的每一個(gè)是角色和群中的至少一個(gè)。
16.如權(quán)利要求9所述的一個(gè)或多個(gè)計(jì)算機(jī)存儲介質(zhì),其特征在于,所述方法還包括接收對所述一個(gè)或多個(gè)服務(wù)的附加請求;以及產(chǎn)生對所述一個(gè)或多個(gè)服務(wù)的附加實(shí)例描述。
17.如權(quán)利要求9所述的一個(gè)或多個(gè)計(jì)算機(jī)存儲介質(zhì),其特征在于,所述第一實(shí)例描述 包括應(yīng)用程序配置設(shè)置、系統(tǒng)配置設(shè)置、以及資源引用中的至少一個(gè)。
18.—個(gè)或多個(gè)其上包含計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)存儲介質(zhì),所述計(jì)算機(jī)可執(zhí)行指 令用于執(zhí)行一種操作可伸縮計(jì)算平臺的方法,所述方法包括接收對一個(gè)或多個(gè)服務(wù)的請求(310),其中所述一個(gè)或多個(gè)服務(wù)中的每一個(gè)都包括元 素和信道,并且其中所述信道是負(fù)載平衡器信道、有狀態(tài)交換機(jī)信道、以及無狀態(tài)交換機(jī)信 道中的至少一個(gè);接收對所述一個(gè)或多個(gè)服務(wù)的服務(wù)描述(315),其中所述服務(wù)描述包括應(yīng)用程序配置 設(shè)置、系統(tǒng)配置設(shè)置、以及資源引用中的至少一個(gè);確定與所述一個(gè)或多個(gè)服務(wù)的服務(wù)描述相關(guān)聯(lián)地部署所述一個(gè)或多個(gè)服務(wù)所需的資 源(320);確定所述可伸縮計(jì)算平臺的至少一個(gè)可用資源(325);至少基于所述服務(wù)描述、所需資源、以及所述至少一個(gè)可用資源來產(chǎn)生第一實(shí)例描述 (330);將部署所述一個(gè)或多個(gè)服務(wù)所需的至少一個(gè)資源映射到所述可伸縮計(jì)算平臺的所述 至少一個(gè)可用資源(340);部署所述一個(gè)或多個(gè)服務(wù)以生成結(jié)果(350);以及傳送所述結(jié)果。
19.如權(quán)利要求18所述的一個(gè)或多個(gè)計(jì)算機(jī)存儲介質(zhì),其特征在于,所述方法還包括接收對所述一個(gè)或多個(gè)服務(wù)的附加請求;產(chǎn)生對所述一個(gè)或多個(gè)服務(wù)的附加實(shí)例描述;確定與所述一個(gè)或多個(gè)服務(wù)的附加實(shí)例描述相關(guān)聯(lián)地部署所述一個(gè)或多個(gè)服務(wù)所需 的至少一個(gè)資源;確定所述可伸縮計(jì)算平臺的至少一個(gè)可用資源;將部署所述一個(gè)或多個(gè)服務(wù)所需的至少一個(gè)資源映射到所述可伸縮計(jì)算平臺的所述 至少一個(gè)可用資源;部署所述一個(gè)或多個(gè)服務(wù)以生成結(jié)果;以及 傳送所述結(jié)果。
20.如權(quán)利要求19所述的一個(gè)或多個(gè)計(jì)算機(jī)存儲介質(zhì),其特征在于,修改所述第一實(shí) 例描述和所述附加實(shí)例描述以反映部署所述一個(gè)或多個(gè)服務(wù)所需的資源到所述可伸縮計(jì) 算平臺的至少一個(gè)可用資源的映射。
全文摘要
提供了用于操作可伸縮計(jì)算平臺的系統(tǒng)、方法和計(jì)算機(jī)存儲介質(zhì)。接收描述所請求的服務(wù)的服務(wù)描述。在接收到該服務(wù)描述后,作出對所需資源和可用資源的判定。產(chǎn)生實(shí)例描述。將維持服務(wù)的部署所需的資源映射到計(jì)算平臺的可用資源以便可以部署該服務(wù)。用服務(wù)的每一個(gè)部署來修改實(shí)例描述以允許服務(wù)的持續(xù)部署。
文檔編號G06F9/00GK101925887SQ200980103816
公開日2010年12月22日 申請日期2009年1月7日 優(yōu)先權(quán)日2008年1月28日
發(fā)明者J·伯納布-奧班, Y·A·哈利迪 申請人:微軟公司