專利名稱:軟件產(chǎn)品的多維建模的制作方法
技術(shù)領(lǐng)域:
本實施例涉及用于管理軟件產(chǎn)品的技術(shù)。更具體而言,本實施例涉及一種有助于在資源集合上配備、部署和執(zhí)行軟件產(chǎn)品的多維模型。
背景技術(shù):
近期的計算趨勢已經(jīng)使數(shù)據(jù)和服務(wù)的處理和消耗向云計算系統(tǒng)轉(zhuǎn)變。這樣的云計算系統(tǒng)允許軟件提供商在共享基礎(chǔ)結(jié)構(gòu)資源、比如服務(wù)器、網(wǎng)絡(luò)設(shè)備、平臺虛擬化軟件和/或數(shù)據(jù)中心空間上部署、執(zhí)行和管理軟件產(chǎn)品(offering)。另外,可以動態(tài)配備和/或縮放這樣的資源、因此實現(xiàn)將資源作為服務(wù)來消耗。例如云計算提供商可以向多個云計算客戶提供虛擬化的存儲裝置、網(wǎng)絡(luò)和/或計算資源。云計算客戶可以在虛擬化的資源上部署軟件產(chǎn)品并且僅針對軟件產(chǎn)品所消耗的資源向云計算提供商付費。因此,云計算客戶可以避免與購買、設(shè)立和/或管理下層硬件和軟件關(guān)聯(lián)的資本開支。另外,基礎(chǔ)結(jié)構(gòu)資源的集中和共享可以改進資源的利用率和管理開銷。因此,用于動態(tài)分配和配置軟件產(chǎn)品所使用的基礎(chǔ)結(jié)構(gòu)資源的機制可以有助于軟件產(chǎn)品的部署、執(zhí)行和管理。
發(fā)明內(nèi)容
公開的實施例提供一種有助于部署和執(zhí)行軟件產(chǎn)品的系統(tǒng)。在操作期間,該系統(tǒng)獲得軟件產(chǎn)品的服務(wù)定義和可用于由軟件產(chǎn)品使用的資源的資源定義。接著,該系統(tǒng)通過將來自服務(wù)定義的第一要素集合映射到來自資源定義的第二要素集合來創(chuàng)建軟件產(chǎn)品的多維模型。最后,該系統(tǒng)在無需用戶人工配置資源的情況下使用多維模型來管理軟件產(chǎn)品的部署和執(zhí)行。在一些實施例中,服務(wù)定義包含拓撲或者策略。在一些實施例中,拓撲包括一個或者多個層、服務(wù)部件集合和連接集合。在一些實施例中,創(chuàng)建軟件產(chǎn)品的多維模型包括從服務(wù)定義中標(biāo)識與軟件產(chǎn)品關(guān)聯(lián)的要求集合,并且基于要求集合向服務(wù)部件分配來自資源定義的資源的子集。在一些實施例中,使用多維模型來管理軟件產(chǎn)品的部署和執(zhí)行包括以下中的至少一個:(i)在分配的資源上自動地部署軟件產(chǎn)品;(ii)使得能夠標(biāo)識分配的資源;(iii)有助于在執(zhí)行軟件產(chǎn)品期間標(biāo)識故障;以及并且(iv)管理與軟件產(chǎn)品或者資源關(guān)聯(lián)的改變。在一些實施例中,資源定義包含資源、資源群集、安全性區(qū)段、托管分段和位置中的至少一項。在一些實施例中,資源中的每個資源是計算資源、網(wǎng)絡(luò)資源或者存儲資源。在一些實施例中,資源中的每個資源是物理資源或者虛擬資源。
圖1示出根據(jù)一個實施例的系統(tǒng)的示意圖。圖2示出根據(jù)一個實施例的用于軟件產(chǎn)品的服務(wù)定義。圖3示出根據(jù)一個實施例的資源定義的結(jié)構(gòu)。圖4示出根據(jù)一個實施例的軟件產(chǎn)品的多維模型。圖5示出了圖示根據(jù)一個實施例的有助于部署和執(zhí)行軟件產(chǎn)品的過程的流程圖。圖6示出根據(jù)一個實施例的計算機系統(tǒng)。在附圖中,相似標(biāo)號指代相同附圖要素。
具體實施例方式呈現(xiàn)下文描述以使本領(lǐng)域技術(shù)人員能夠?qū)崿F(xiàn)和運用實施例,并且在特定應(yīng)用及其要求的背景中提供下文描述。本領(lǐng)域技術(shù)人員將容易清楚對公開的實施例的各種修改,并且這里定義的一般原理可以應(yīng)用于其它實施例和應(yīng)用,而未脫離本公開內(nèi)容的精神實質(zhì)和范圍。因此,本發(fā)明不限于所示實施例、但是將被賦予與這里公開的原理和特征一致的最廣范圍。通常在計算機可讀存儲介質(zhì)上存儲在這一具體實現(xiàn)方式中描述的數(shù)據(jù)結(jié)構(gòu)和代碼,該計算機可讀存儲介質(zhì)可以是可以存儲用于由計算機系統(tǒng)使用的代碼和/或數(shù)據(jù)的任何設(shè)備或者介質(zhì)。計算機可讀存儲介質(zhì)包括但不限于易失性存儲器、非易失性存儲器、磁和光學(xué)存儲設(shè)備、比如盤驅(qū)動、磁帶、CD (緊致盤)、DVD(數(shù)字萬用盤或者數(shù)字視頻盤)或者現(xiàn)在已知或者以后開發(fā)的能夠存儲代碼和/或數(shù)據(jù)的其它介質(zhì)??梢詫⒃诰唧w實現(xiàn)方式章節(jié)中描述的方法和過程具體化為代碼和/或數(shù)據(jù),該代碼和/或數(shù)據(jù)可以在如上文描述的計算機可讀存儲介質(zhì)中存儲。在計算機系統(tǒng)讀取和執(zhí)行在計算機可讀存儲介質(zhì)上存儲的代碼和/或數(shù)據(jù)時,計算機系統(tǒng)執(zhí)行具體化為數(shù)據(jù)結(jié)構(gòu)和代碼并且在計算機可讀存儲介質(zhì)內(nèi)存儲的方法和過程。另外,可以在硬件模塊或者裝置中包括這里描述的方法和過程。這些模塊或者裝置可以包括但不限于專用集成電路(ASIC)芯片、現(xiàn)場可編程門陣列(FPGA)、在特定時間執(zhí)行特定軟件模塊或者代碼段的專用或者共享處理器和/或現(xiàn)在已知或者以后開發(fā)的其它可編程邏輯器件。在激活硬件模塊或者裝置時,它們執(zhí)行在它們內(nèi)包括的方法和過程。公開的實施例提供一種用于有助于部署和執(zhí)行軟件產(chǎn)品的方法和系統(tǒng)。軟件產(chǎn)品可以對應(yīng)于在一個或者多個服務(wù)器上部署的并且通過網(wǎng)絡(luò)連接來訪問的應(yīng)用。例如軟件產(chǎn)品可以向軟件產(chǎn)品的用戶提供web應(yīng)用、分布式應(yīng)用和/或web服務(wù)。更具體而言,公開的實施例提供一種用于創(chuàng)建軟件產(chǎn)品的多維模型并且使用多維模型以管理軟件產(chǎn)品的部署和執(zhí)行的方法和系統(tǒng)。多維模型可以包括軟件產(chǎn)品的服務(wù)定義和可用于由軟件產(chǎn)品使用的資源的資源定義。為了創(chuàng)建多維模型,可以將來自服務(wù)定義的第一要素集合映射到來自資源定義的第二要素集合。映射可以表示向來自服務(wù)定義的服務(wù)部件分配來自資源定義的資源。因此,多維模型可以提供軟件產(chǎn)品所使用的所有軟件和硬件部件以及在部件之間的相互關(guān)系和/或依賴性的全面視圖。多維模型反過來可以允許在無需用戶人工配置資源的情況下管理軟件產(chǎn)品的部署和執(zhí)行。例如多維模型可以有助于在資源上自動部署軟件產(chǎn)品、標(biāo)識向軟件產(chǎn)品分配的資源、標(biāo)識在執(zhí)行軟件產(chǎn)品期間的故障和/或管理與軟件產(chǎn)品或者資源關(guān)聯(lián)的改變。圖1示出根據(jù)一個實施例的系統(tǒng)的示意圖。如圖1中所示,該系統(tǒng)包括管理裝置102、建模裝置104和配備裝置116。下文進一步具體討論這些部件中的每個部件。在一個或者多個實施例中,圖1的系統(tǒng)用來管理軟件產(chǎn)品在資源(例如資源I122、資源m 124、資源I 126、資源η 128)集合上的部署和執(zhí)行。軟件產(chǎn)品可以對應(yīng)于為用戶集合執(zhí)行任務(wù)的軟件程序。例如軟件產(chǎn)品可以允許用戶在項目上協(xié)作、上報收入稅、管理個人或者小企業(yè)財務(wù)和/或?qū)δ繕?biāo)數(shù)據(jù)集合執(zhí)行數(shù)據(jù)挖掘。另外,可以使用客戶端-服務(wù)器架構(gòu)來實現(xiàn)軟件產(chǎn)品??梢栽谝粋€或者多個服務(wù)器上(例如在數(shù)據(jù)中心中)部署和執(zhí)行軟件產(chǎn)品的部件,并且從使用本地安裝的可執(zhí)行文件、命令行接口和/或web瀏覽器和網(wǎng)絡(luò)連接從其它機器訪問軟件產(chǎn)品的部件。換而言之,可以使用通過因特網(wǎng)訪問的云計算系統(tǒng)來實現(xiàn)軟件產(chǎn)品。為了使得能夠執(zhí)行軟件產(chǎn)品,與軟件產(chǎn)品的創(chuàng)建、部署和/或執(zhí)行關(guān)聯(lián)的用戶可以確定與軟件產(chǎn)品關(guān)聯(lián)的要求集合。用戶然后可以向軟件產(chǎn)品中的部件分配云計算系統(tǒng)中的資源(例如資源I 122、資源m 124、資源I 126、資源η 128)并且以允許執(zhí)行的軟件產(chǎn)品滿足要求的方式配置分配的資源。例如用于軟件產(chǎn)品的開發(fā)團隊可以提供如下策略,該策略指定軟件產(chǎn)品中的可用性、可靠性、可縮放性、安全性和/或響應(yīng)時間水平。云計算系統(tǒng)的管理員可以通過向軟件產(chǎn)品分配充分基礎(chǔ)結(jié)構(gòu)資源和/或配置資源以提供軟件產(chǎn)品中的冗余性、安全性和/或負荷平衡必需水平來保證與策略相符。本領(lǐng)域技術(shù)人員將理解云計算系統(tǒng)可以使用虛擬化以在共享資源集合上部署和執(zhí)行軟件產(chǎn)品。具體而言,多個調(diào)配(orchestration)工具(例如調(diào)配工具I 118、調(diào)配工具z 120)可以用來虛擬化/或配備云計算系統(tǒng)中的不同類型的資源。例如虛擬機監(jiān)視器可以通過創(chuàng)建和執(zhí)行虛擬機作為物理服務(wù)器的抽象來分配和/或管理計算資源。類似地,虛擬文件器(filer)可以將來自多種存儲設(shè)備的存儲資源組合成資源池并且從資源池分配邏輯存儲卷。最后,網(wǎng)絡(luò)路由器和/或交換機可以將網(wǎng)絡(luò)資源分區(qū)(partition)成虛擬局域網(wǎng)(VLAN),這些VLAN連接云計算系統(tǒng)中的物理和/或虛擬計算和/或存儲資源。另外,每個調(diào)配工具可以包括用于響應(yīng)于軟件產(chǎn)品和/或資源需求的改變來動態(tài)重新配備資源的功能。例如虛擬機監(jiān)視器可以實例化新虛擬機以使得能夠向軟件產(chǎn)品添加新web服務(wù)器。虛擬機監(jiān)視器也可以向虛擬機分配物理計算資源(例如處理器、存儲器等)集合以使得能夠在資源上執(zhí)行web服務(wù)器。最后,如果web服務(wù)器的資源要求改變和/或用來執(zhí)行web范圍的物理資源(例如服務(wù)器)變得超負荷,則虛擬機監(jiān)視器可以將虛擬機移向不同物理資源集合。換而言之,軟件產(chǎn)品對資源的使用可以由多個獨立作用的相異調(diào)配工具管理。因此,云計算系統(tǒng)可能缺乏在軟件產(chǎn)品中的軟件部件與用來執(zhí)行軟件部件的硬件資源之間的依賴性的全面視圖。例如,一旦調(diào)配工具開始重新定位和/或重新配備向軟件產(chǎn)品分配的資源,則云計算系統(tǒng)可能失去對資源的跟蹤。這樣的依賴性信息的缺乏可能引起在跟蹤和管理事件時的問題和/或云計算系統(tǒng)中的故障。例如云計算系統(tǒng)中的服務(wù)器停機可能需要管理員的人工干預(yù)以確定受停機影響的軟件和硬件部件集合和/或執(zhí)行使得能夠從服務(wù)器停機中恢復(fù)的糾正動作。
在一個或者多個實施例中,圖1的系統(tǒng)通過創(chuàng)建軟件產(chǎn)品的多維模型108并且使用多維模型108以管理軟件產(chǎn)品的部署和執(zhí)行來減少與關(guān)聯(lián)軟件產(chǎn)品中的要求和依賴性關(guān)聯(lián)的復(fù)雜性。如圖1中所示,可以根據(jù)軟件產(chǎn)品的服務(wù)定義110和可用于由于軟件產(chǎn)品使用的資源的資源定義130創(chuàng)建多維模型108??梢詮呐c軟件產(chǎn)品的創(chuàng)建和/或開發(fā)關(guān)聯(lián)的用戶(例如開發(fā)人員、設(shè)計師等)獲得服務(wù)定義110。更具體而言,服務(wù)定義110可以對應(yīng)于在軟件產(chǎn)品的配置、拓撲、策略和/或服務(wù)質(zhì)量(QoS)屬性方面對軟件產(chǎn)品的邏輯表示。因此,服務(wù)定義110的要素(例如要素I 112、要素X 114)可以包括一個或者多個層(tier)、服務(wù)部件集合和/或連接集合。例如軟件產(chǎn)品的設(shè)計師可以通過向由管理裝置102提供的用戶接口中輸入與軟件產(chǎn)品關(guān)聯(lián)的層數(shù)、安全性水平、軟件開發(fā)生命周期階段和/或軟件棧來提供服務(wù)定義110。下文關(guān)于圖2進一步具體討論服務(wù)定義110。另一方面,可以從云計算系統(tǒng)的管理員和/或調(diào)配工具獲得資源定義130,并且資源定義130對應(yīng)于在云計算系統(tǒng)中的可用基礎(chǔ)結(jié)構(gòu)資源的位置、狀態(tài)和/或利用方面對資源的邏輯表示和/或劃分。資源定義130的要素(例如要素I 132、要素y 134)因此可以表示云計算系統(tǒng)中的物理和/或虛擬資源、資源群集、安全性區(qū)段、托管分段和/或位置。例如管理員可以人工地用云計算系統(tǒng)中的物理的和/或虛擬資源的清單來填充資源定義,或者配備裝置116可以從調(diào)配工具(例如虛擬機監(jiān)視器、虛擬文件管理器)接收對云計算系統(tǒng)中的資源的改變(例如添加新資源、去除現(xiàn)有資源)的通知,并且相應(yīng)地更新資源定義130。下文關(guān)于圖3進一步具體討論資源定義130。為了創(chuàng)建多維模型108,建模裝置104可以將來自服務(wù)定義110的第一要素(例如要素I 112,要素X 114)集合映射到來自資源定義130的第二要素(例如要素I 132、要素y 134)集合。映射可以表示第一要素集合對第二要素集合的依賴性。例如從服務(wù)定義110中的服務(wù)部件到資源定義130中的資源的映射可以指示調(diào)配工具對資源向服務(wù)部件的分配。下文關(guān)于圖4進一步具體描述多維模型108。在一個或者多個實施例中,多維模型108的創(chuàng)建涉及到從服務(wù)定義110標(biāo)識與軟件產(chǎn)品關(guān)聯(lián)的要求集合以及隨后基于要求向服務(wù)定義110中的服務(wù)部件分配來自資源定義130的資源的子集。具體而言,管理裝置102可以根據(jù)服務(wù)定義110中的策略集合確定軟件產(chǎn)品的要求并且在工作分解結(jié)構(gòu)106中存儲要求。策略可以包括軟件開發(fā)生命周期策略、安全性策略、軟件模板策略、QoS策略和/或結(jié)構(gòu)策略。要求因此可以指定為了滿足策略而需要的資源數(shù)量和/或配置。接著,配備裝置116可以使用工作分解結(jié)構(gòu)106以自動配備用于由軟件產(chǎn)品使用的資源集合而無需用戶(例如管理員)人工配置資源。例如配備裝置116可以使用工作分解結(jié)構(gòu)106以創(chuàng)建用于托管軟件產(chǎn)品的服務(wù)容器集合。配備裝置116繼而可以通過請求來自對應(yīng)調(diào)配工具的所需軟件數(shù)量和/或配置來向服務(wù)容器分配資源。向軟件產(chǎn)品自動配備資源在與本申請相同的發(fā)明人并且與本申請同日提交、標(biāo)題為“Automatic Provisioningof Resources to Software Offerings”、具有待定序列號和待定申請日(代理案號INTU-115592)、通過引用而結(jié)合于此的共同未決非臨時申請中討論。如先前提到的那樣,多維模型108可以包括在服務(wù)定義110中的服務(wù)部件與資源定義130中的資源之間的依賴性。因而建模裝置104可以通過將配備裝置116分配的資源映射到資源被分配到的服務(wù)部件來創(chuàng)建多維模型108。建模裝置104也可以基于對配備的資源的改變來更新映射。例如向服務(wù)部件配備的資源可以在分配新資源、取消分配當(dāng)前分配的資源和/或不同物理資源集合用來執(zhí)行虛擬化的資源(例如虛擬機、邏輯卷、VLAN等)時改變。配備裝置116可以通過查詢和/或監(jiān)視調(diào)配工具來獲得這樣的改變。配備裝置116也可以使用改變以更新資源定義130。繼而可以經(jīng)由建模裝置104向多維模型108傳播更新。由于多維模型108包含軟件產(chǎn)品中的服務(wù)部件、資源和依賴性的最新表示,所以圖1的系統(tǒng)可以有助于管理云計算環(huán)境內(nèi)的軟件產(chǎn)品。例如多維模型108可以有助于在分配的資源上自動部署軟件產(chǎn)品、標(biāo)識向軟件產(chǎn)品分配的資源、標(biāo)識在執(zhí)行軟件產(chǎn)品期間的故障和/或管理與軟件產(chǎn)品或者資源關(guān)聯(lián)的改變。換而言之,多維模型108的創(chuàng)建和更新可以減少與軟件產(chǎn)品中的配置管理、故障診斷和補救、部署和/或資源配備關(guān)聯(lián)的復(fù)雜性和/或開銷。圖2示出根據(jù)一個實施例的用于軟件產(chǎn)品的服務(wù)定義。如上文描述的那樣,服務(wù)定義可以對應(yīng)于在軟件產(chǎn)品的配置、拓撲、策略和/或QoS屬性方面對軟件產(chǎn)品的邏輯表示。因而服務(wù)定義的創(chuàng)建可以始于實例化根產(chǎn)品節(jié)點202,該節(jié)點表示服務(wù)產(chǎn)品。產(chǎn)品節(jié)點202可以包含與軟件產(chǎn)品的開發(fā)和/或所有權(quán)有關(guān)的信息。例如產(chǎn)品節(jié)點202可以包括軟件產(chǎn)品的名稱、負責(zé)開發(fā)軟件產(chǎn)品的組(例如團隊、企業(yè)單位等)、軟件產(chǎn)品屬于的項目和/或與軟件產(chǎn)品關(guān)聯(lián)的軟件開發(fā)聲明周期階段(例如開發(fā)、預(yù)生產(chǎn)、生產(chǎn))。接著,連接到產(chǎn)品節(jié)點202的多個層節(jié)點204-208可以定義軟件要約的拓撲。更具體而言,層節(jié)點204-208可以指示在軟件產(chǎn)品的客戶端-服務(wù)器架構(gòu)中使用的層數(shù)。例如,如果圍繞單個邏輯層開發(fā)軟件產(chǎn)品,則服務(wù)定義可以包括一個層節(jié)點。另一方面,服務(wù)定義可以包括用于表示三層架構(gòu)的呈現(xiàn)、應(yīng)用和數(shù)據(jù)層的三個層節(jié)點(例如層節(jié)點204-208)。最后,如果軟件產(chǎn)品包括多于一個應(yīng)用層、數(shù)據(jù)層和/或呈現(xiàn)層,則服務(wù)定義可以包括多于三個層節(jié)點。另外,在層204-208以下的服務(wù)節(jié)點210-240的集合可以表示啟用和/或?qū)崿F(xiàn)軟件產(chǎn)品的功能的服務(wù)部件。例如服務(wù)節(jié)點210-240可以表示服務(wù)器操作系統(tǒng)、軟件棧(例如應(yīng)用服務(wù)器和web服務(wù)器)、數(shù)據(jù)庫管理系統(tǒng)、認證服務(wù)、支付系統(tǒng)和/或移動服務(wù)。此外,軟件產(chǎn)品中的依賴性可以由在成對服務(wù)節(jié)點210-240之間和/或在節(jié)點210-240與層節(jié)點204-208之間的連接表示。如圖2中所示,在服務(wù)與層節(jié)點之間的連接可以指示與服務(wù)節(jié)點210-214對應(yīng)的服務(wù)是層節(jié)點204表示的第一層的(例如該第一層使用的)依賴性。連接也可以指示與服務(wù)節(jié)點216-220對應(yīng)的服務(wù)是層節(jié)點206表示的第二層的依賴性。最后,連接可以指示與服務(wù)節(jié)點222-226對應(yīng)的服務(wù)是層節(jié)點208表示的第三層的依賴性。在服務(wù)節(jié)點228、230、232和234與服務(wù)節(jié)點210、212、216和218之間的一對一連接可以表示一個服務(wù)對僅一個其它服務(wù)的依賴性,而在服務(wù)節(jié)點224與服務(wù)節(jié)點236-240之間的多對一連接可以指示一個服務(wù)對多個服務(wù)的依賴性。例如在成對服務(wù)節(jié)點210與228,212與230、216與232以及218與234之間的連接可以表示與在操作系統(tǒng)上執(zhí)行軟件棧關(guān)聯(lián)的依賴性。另一方面,一個服務(wù)節(jié)點224到多個服務(wù)節(jié)點236-240的連接可以表示數(shù)據(jù)庫實例對關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)和一個或者多個操作系統(tǒng)的依賴性。
與產(chǎn)品節(jié)點202 —樣,層節(jié)點204-208和服務(wù)節(jié)點210-240可以包括與節(jié)點表示的部件和/或?qū)酉嚓P(guān)的信息。例如每個層節(jié)點204-208可以標(biāo)識軟件產(chǎn)品中的架構(gòu)層(例如“web服務(wù)器”、“應(yīng)用服務(wù)器”、“數(shù)據(jù)庫”),并且每個服務(wù)節(jié)點210-240可以包括對應(yīng)服務(wù)部件的名稱和/或版本(例如JBoss (JBoss 是Red Hat公司的注冊商標(biāo))、Red HatEnterprise Linux(RHEL)、Oracle Database llg)。另外,每個節(jié)點(例如產(chǎn)品節(jié)點202、層節(jié)點204-208、服務(wù)節(jié)點210-240)可以與諸如安全策略、軟件模板策略、QoS策略和/或結(jié)構(gòu)策略之類的一個或者多個策略關(guān)聯(lián)。如在上文引用的申請中討論的那樣,策略可以影響工作分解結(jié)構(gòu)(例如圖1的工作分解結(jié)構(gòu)106)的創(chuàng)建,該工作分解結(jié)構(gòu)然后用來向服務(wù)節(jié)點210-240表示的服務(wù)部件動態(tài)地分配資源。圖3示出根據(jù)一個實施例的資源定義的結(jié)構(gòu)。資源定義可以對應(yīng)于在云計算系統(tǒng)中的可用基礎(chǔ)設(shè)施資源的位置、狀態(tài)和/或利用方面對資源的邏輯表示和/或劃分。換而言之,資源定義可以提供云計算系統(tǒng)的從下至上的視圖,該視圖始于根資源池節(jié)點302,該節(jié)點表示軟件產(chǎn)品可以使用的基礎(chǔ)設(shè)施資源集合。因此,資源池節(jié)點302可以包括標(biāo)識云計算系統(tǒng)和/或云計算系統(tǒng)的特定資源池的名稱。在一個或者多個實施例中,云計算系統(tǒng)中的資源的劃分由資源定義中的連接集合表示。更具體而言,每個連接可以是從資源定義中的第一節(jié)點到第二節(jié)點的有向邊。第一節(jié)點因此可以表示資源定義中的容器,并且第二節(jié)點可以表示用于容器的資源。因而,連接到資源池節(jié)點302的位置節(jié)點304-306的集合可以表示將資源池劃分成資源的不同物理位置。例如每個位置節(jié)點可以包括云計算系統(tǒng)中的數(shù)據(jù)中心的名稱和/或該數(shù)據(jù)中心的物理位置(例如地址、地理坐標(biāo)等)。每個位置節(jié)點304-306繼而可以連接到托管分段節(jié)點308-310的集合。托管分段節(jié)點308-310可以表示將數(shù)據(jù)中心劃分成多個托管分段。每個托管分段可以對應(yīng)于數(shù)據(jù)中心中的固定大小的物理計算、存儲和網(wǎng)絡(luò)資源塊。也可以將托管分段劃分成子分段,這些子分段表示用于軟件產(chǎn)品的軟件開發(fā)生命周期的不同階段(例如開發(fā)、預(yù)生產(chǎn)、生產(chǎn))。另外,托管分段可以與不同功率和/或冷卻要求關(guān)聯(lián)。例如數(shù)據(jù)中心可以包含各自具有三個機架的三個托管分段;一個托管分段可以具有低功率和/或冷卻要求,一個托管分段可以具有適度功率和/或冷卻要求,并且一個托管分段(例如高性能托管分段)可以具有高功率和/或冷卻要求。托管分段節(jié)點308-310因此可以允許基于軟件產(chǎn)品的軟件開發(fā)生命周期階段和/或軟件產(chǎn)品中的QoS要求、比如可靠性、可用性、響應(yīng)時間和/或可縮放性分配云計算系統(tǒng)中的資源。每個托管分段節(jié)點308-310也可以參考安全性區(qū)段節(jié)點312-314。安全性區(qū)段節(jié)點312-314可以表示將托管分段劃分成安全、非安全和/或公共安全性區(qū)段。如同托管分段,每個安全性區(qū)段可以包括固定數(shù)目的物理資源。因而安全性區(qū)段節(jié)點312-314可以用來根據(jù)與軟件產(chǎn)品關(guān)聯(lián)的安全性策略限制對資源的基于網(wǎng)絡(luò)的訪問。繼續(xù)資源定義,每個安全性區(qū)段節(jié)點312-314可以連接到資源群集結(jié)點316-318的集合,而每個資源群集節(jié)點316-318可以連接到資源節(jié)點320-322的集合。資源群集節(jié)點316-318和資源節(jié)點320-322可以分別表示安全性區(qū)段內(nèi)的相異資源群集以及每個資源群集中的物理和/或虛擬資源。例如計算資源群集可以包括物理服務(wù)器和/或虛擬機的非重疊集合,存儲資源群集可以包括物理上相異的文件器和/或邏輯上相異的虛擬文件器,并且網(wǎng)絡(luò)資源群集可以包括物理或者虛擬負荷平衡器、交換機、防火墻和/或網(wǎng)絡(luò)接口卡(NIC)的相異集合。資源群集節(jié)點316-318和資源節(jié)點320-322還可以有助于基于軟件產(chǎn)品的策略和/或要求向軟件產(chǎn)品配置和/或配備資源。例如用于軟件產(chǎn)品的服務(wù)定義可以指定在軟件產(chǎn)品中使用應(yīng)用服務(wù)器、數(shù)據(jù)庫和多個web服務(wù)器。為了實行服務(wù)定義中的安全性策略,可以從安全區(qū)段配備用于數(shù)據(jù)庫的資源(例如以防范對數(shù)據(jù)的未授權(quán)訪問),可以從非安全區(qū)段配備用于應(yīng)用服務(wù)器的資源,并且可以從公共安全性分段配備用于web服務(wù)器的資源(例如以使得能夠由web服務(wù)器托管公共網(wǎng)站)。另外可以將web服務(wù)器映射到不同資源群集以滿足與軟件產(chǎn)品中的響應(yīng)時間和/或容錯性關(guān)聯(lián)的QoS要求。圖4示出根據(jù)一個實施例的軟件產(chǎn)品的多維模型。多維模型可以包括多個要素402-490,和映射492的集合。具體而言,要素402-440可以形成軟件產(chǎn)品的服務(wù)定義、諸如圖2的服務(wù)定義。因此,要素402可以對應(yīng)于服務(wù)定義中的產(chǎn)品節(jié)點,要素404-408可以對應(yīng)于層節(jié)點,并且要素410-440可以對應(yīng)于服務(wù)節(jié)點。反言之,要素442-490可以形成可用于由軟件產(chǎn)品使用的資源的資源定義。例如要素490可以是資源池節(jié)點,要素486-488可以是位置節(jié)點,并且要素478-484可以是托管分段節(jié)點。沿著相同路線,要素474-476可以是安全性區(qū)段節(jié)點,要素466-472可以是資源群集節(jié)點,并且要素442-464可以是資源節(jié)點。映射492可以表示向來自服務(wù)定義的服務(wù)部件分配來自資源定義的物理和/或虛擬資源。例如要素442-450可以表示在與要素442-458表示的資源的位置分離的位置(例如數(shù)據(jù)中心)駐留的物理和/或虛擬計算資源,要素456-458可以表示物理和/或虛擬存儲資源,并且要素460-464可以表示物理和/或虛擬資源。因此,映射492可以指示向要素428-434表示的服務(wù)部件各自分配一個計算資源、一個網(wǎng)絡(luò)資源和一個存儲資源。映射492也可以示出要素436-438表示的服務(wù)部件共享要素460表示的物理和/或虛擬資源并且向要素440表示的服務(wù)部件給予對要素464表示的物理和/或虛擬資源的完全使用。缺乏向要素448和462的映射可以指示在資源定義中存在未分配的資源。如果軟件產(chǎn)品的針對響應(yīng)時間、可用性和/或可靠性的要求增加,則隨后可以向軟件產(chǎn)品分配這樣的未分配的資源。另一方面,如果軟件產(chǎn)品無需附加基礎(chǔ)設(shè)施資源,則可以在向不同軟件產(chǎn)品配備資源時使用未分配的資源。圖5示出如下流程圖,該流程示根據(jù)一個實施例的有助于部署和執(zhí)行軟件產(chǎn)品的過程的流程圖。在一個或者多個實施例中,可以省略、重復(fù)和/或按照不同順序執(zhí)行步驟中的一個或者多個步驟。因而不應(yīng)解釋圖5中所示具體步驟布置為限制本技術(shù)的范圍。首先,獲得軟件產(chǎn)品的服務(wù)定義和可用于由軟件產(chǎn)品使用的資源的資源定義(操作502)。服務(wù)定義可以由軟件產(chǎn)品的開發(fā)關(guān)聯(lián)的用戶提供,而資源定義可以由與用于軟件產(chǎn)品的基礎(chǔ)結(jié)構(gòu)資源的管理關(guān)聯(lián)的用戶和/或調(diào)配工具提供。接著通過將來自服務(wù)定義的第一要素集合映射到來自資源集合的第二要素集合來創(chuàng)建軟件產(chǎn)品的多維模型(操作504)。映射可以表示向軟件產(chǎn)品中的服務(wù)部件配備物理和/或虛擬計算、網(wǎng)絡(luò)和存儲資源。因而多維模型可以提供軟件所使用的軟件和/或硬件部件以及在部件之間的依賴性的全面視圖。
多維模型繼而可以在無需用戶人工配置資源的情況下用來管理軟件產(chǎn)品的部署和執(zhí)行(操作506)。例如多維模型可以使得能夠標(biāo)識向軟件產(chǎn)品分配的資源以及在分配的資源上自動部署軟件產(chǎn)品。在執(zhí)行軟件產(chǎn)品期間更新多維模型還可以有助于標(biāo)識軟件產(chǎn)品中的故障和/或管理與軟件產(chǎn)品或者資源關(guān)聯(lián)的改變。圖6示出根據(jù)一個實施例的計算機系統(tǒng)600。計算機系統(tǒng)600包括處理器602、存儲器604、存儲裝置606和/或在電子計算設(shè)備中發(fā)現(xiàn)的其它部件。處理器602可以支持與計算機系統(tǒng)600中的其它處理器的并行處理和/或多線程操作。計算機系統(tǒng)600也可以包括輸入/輸出(I/O)設(shè)備、比如鍵盤608、鼠標(biāo)610和顯示器612。計算機系統(tǒng)600可以包括用于執(zhí)行本實施例的各種部件的功能。具體而言,計算機系統(tǒng)600可以包括如下0S(未示出)以及為用戶執(zhí)行專門化任務(wù)的一個或者多個應(yīng)用,該OS協(xié)調(diào)計算機系統(tǒng)600上的硬件和軟件資源的使用。為了為用戶執(zhí)行任務(wù),應(yīng)用可以從OS獲得對計算機系統(tǒng)600上的硬件資源的使用以及通過OS提供的硬件和/或軟件框架與
用戶交互。具體而言,計算機系統(tǒng)600可以提供一種用于有助于部署和執(zhí)行軟件產(chǎn)品的系統(tǒng)。該系統(tǒng)可以包括獲得軟件產(chǎn)品的服務(wù)定義的管理裝置。該系統(tǒng)也可以包括建模裝置,該建模裝置通過將來自服務(wù)定義的第一要素集合映射到來自可用于由軟件產(chǎn)品使用的資源的資源定義的第二要素集合來創(chuàng)建軟件產(chǎn)品的多維模型。多維模型繼而可以在無需用戶人工配置資源的情況下由管理裝置用來管理軟件產(chǎn)品的部署和執(zhí)行。此外,計算機系統(tǒng)600的一個或者多個部件可以遠程定位并且通過網(wǎng)絡(luò)連接到其它部件。本實施例的一些部分(例如管理裝置、建模裝置等)也可以位于實現(xiàn)這些實施例的分布式系統(tǒng)的不同節(jié)點上。例如可以使用如下云計算系統(tǒng)來實現(xiàn)本實施例,該云計算系統(tǒng)提供用于管理軟件產(chǎn)品在資源集合上的部署和執(zhí)行的多維模型。已經(jīng)僅出于示例和描述的目的而呈現(xiàn)各種實施例的前文描述。它們并非旨在于窮舉本發(fā)明或者使本發(fā)明限于公開的形式。因而本領(lǐng)域技術(shù)人員將清楚許多修改和變化。此夕卜,上文公開內(nèi)容并非旨在于限制本發(fā)明。
權(quán)利要求
1.一種用于有助于部署和執(zhí)行軟件產(chǎn)品的計算機實現(xiàn)的方法,包括: 獲得所述軟件產(chǎn)品的服務(wù)定義和可用于由所述軟件產(chǎn)品使用的資源的資源定義;通過將來自所述服務(wù)定義的第一要素集合映射到來自所述資源定義的第二要素集合來創(chuàng)建所述軟件產(chǎn)品的多維模型;以及 在無需用戶人工配置所述資源的情況下使用所述多維模型來管理所述軟件產(chǎn)品的部署和執(zhí)行。
2.根據(jù)權(quán)利要求1所述的計算機實現(xiàn)的方法,其中所述服務(wù)定義包括拓撲和策略中的至少一項。
3.根據(jù)權(quán)利要求2所述的計算機實現(xiàn)的方法,其中所述拓撲包括一個或者多個層、月艮務(wù)部件集合和連接集合。
4.根據(jù)權(quán)利要求3所述的計算機實現(xiàn)的方法,其中創(chuàng)建所述軟件產(chǎn)品的所述多維模型包括: 從所述服務(wù)定義標(biāo)識與所述軟件產(chǎn)品相關(guān)聯(lián)的要求集合;以及 基于所述要求集合向所述服務(wù)部件分配來自所述資源定義的所述資源的子集。
5.根據(jù)權(quán)利要求4所述的計算機實現(xiàn)的方法,其中使用所述多維模型來管理所述軟件產(chǎn)品的部署和執(zhí)行包括以下中的至少一個: 在所述分配的資源上自動地部署所述軟件產(chǎn)品; 使得能夠標(biāo)識所述分配的資源; 有助于在執(zhí)行所述軟件產(chǎn)品期間標(biāo)識故障;以及 管理與所述軟件產(chǎn)品或者所述資源相關(guān)聯(lián)的改變。
6.根據(jù)權(quán)利要求1所述的計算機實現(xiàn)的方法,其中所述資源定義包括資源、資源群集、安全性區(qū)段、托管分段和位置中的至少一項。
7.根據(jù)權(quán)利要求1所述的計算機實現(xiàn)的方法,其中所述資源中的每個資源是計算資源、網(wǎng)絡(luò)資源和存儲資源中的至少一個。
8.根據(jù)權(quán)利要求1所述的計算機實現(xiàn)的方法,其中所述資源中的每個資源是物理資源和虛擬資源中的至少一個。
9.一種用于有助于部署和執(zhí)行軟件產(chǎn)品的系統(tǒng),包括: 管理裝置,被配置為獲得所述軟件產(chǎn)品的服務(wù)定義;以及 建模裝置,被配置為通過將來自所述服務(wù)定義的第一要素集合映射到來自可用于由所述軟件產(chǎn)品使用的資源的資源定義的第二要素集合來創(chuàng)建所述軟件產(chǎn)品的多維模型, 其中所述多維模型在無需用戶人工配置所述資源的情況下由所述管理裝置用來管理所述軟件產(chǎn)品的部署和執(zhí)行。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其中所述服務(wù)定義包括拓撲和策略中的至少一項。
11.根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述拓撲包括一個或者多個層、服務(wù)部件集合和連接集合。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),其中創(chuàng)建所述軟件產(chǎn)品的所述多維模型包括: 從所述服務(wù)定義標(biāo)識與所述軟件產(chǎn)品相關(guān)聯(lián)的要求集合;以及 基于所述要求集合向所述服務(wù)部件分配來自所述資源定義的所述資源的子集。
13.根據(jù)權(quán)利要求12所述的系統(tǒng),其中使用所述多維模型來管理所述軟件產(chǎn)品的部署和執(zhí)行包括以下中的至少一個: 在所述分配的資源上自動地部署所述軟件產(chǎn)品; 使得能夠標(biāo)識所述分配的資源; 有助于在執(zhí)行所述軟件產(chǎn)品期間標(biāo)識故障;以及 管理與所述軟件產(chǎn)品或者所述資源相關(guān)聯(lián)的改變。
14.根據(jù)權(quán)利要求9所述的系統(tǒng),其中所述資源定義包括資源、資源群集、安全性區(qū)段、托管分段和位置中的至少一項。
15.根據(jù)權(quán)利要求9所述的系統(tǒng),其中所述資源中的每個資源是計算資源、網(wǎng)絡(luò)資源和存儲資源中的至少一個。
16.根據(jù)權(quán)利要求9所述的系統(tǒng),其中所述資源中的每個資源是物理資源和虛擬資源中的至少一個。
17.一種存儲指令的計算機可讀存儲介質(zhì),所述指令在由計算機執(zhí)行時使所述計算機執(zhí)行用于有助于部署和執(zhí)行軟件產(chǎn)品的方法,所述方法包括: 獲得所述軟件產(chǎn)品的服務(wù)定義和可用于由所述軟件產(chǎn)品使用的資源的資源定義;通過將來自所述服務(wù)定 義的第一要素集合映射到來自所述資源定義的第二要素集合來創(chuàng)建所述軟件產(chǎn)品的多維模型;以及 在無需用戶人工配置所述資源的情況下使用所述多維模型來管理所述軟件產(chǎn)品的部署和執(zhí)行。
18.根據(jù)權(quán)利要求17所述的計算機可讀存儲介質(zhì),其中所述服務(wù)定義包括拓撲和策略中的至少一項。
19.根據(jù)權(quán)利要求18所述的計算機可讀存儲介質(zhì),其中所述拓撲包括一個或者多個層、服務(wù)部件集合和連接集合。
20.根據(jù)權(quán)利要求19所述的計算機可讀存儲介質(zhì),其中創(chuàng)建所述軟件產(chǎn)品的所述多維模型包括: 從所述服務(wù)定義標(biāo)識與所述軟件產(chǎn)品相關(guān)聯(lián)的要求集合;以及 基于所述要求集合向所述服務(wù)部件分配來自所述資源定義的所述資源的子集。
21.根據(jù)權(quán)利要求20所述的計算機可讀存儲介質(zhì),其中使用所述多維模型來管理所述軟件產(chǎn)品的部署和執(zhí)行包括以下中的至少一個: 在所述分配的資源上自動地部署所述軟件產(chǎn)品; 使得能夠標(biāo)識所述分配的資源; 有助于在執(zhí)行所述軟件產(chǎn)品期間標(biāo)識故障;以及 管理與所述軟件產(chǎn)品或者所述資源相關(guān)聯(lián)的改變。
22.根據(jù)權(quán)利要求17所述的計算機可讀存儲介質(zhì),其中所述資源定義包括資源、資源群集、安全性區(qū)段、托管分段和位置中的至少一項。
23.根據(jù)權(quán)利要求17所述的計算機可讀存儲介質(zhì),其中所述資源中的每個資源是計算資源、網(wǎng)絡(luò)資源和存儲資源中的至少一個。
24.根據(jù)權(quán)利要求17所述的計算機可讀存儲介質(zhì),其中所述資源中的每個資源是物理資源和虛擬資源中的至少一個。
全文摘要
公開的實施例提供一種有助于部署和執(zhí)行軟件產(chǎn)品的系統(tǒng)。在操作期間,該系統(tǒng)獲得軟件產(chǎn)品的服務(wù)定義和可用于由軟件產(chǎn)品使用的資源的資源定義。接著,該系統(tǒng)通過將來自服務(wù)定義的第一要素集合映射到來自資源定義的第二要素集合來創(chuàng)建軟件產(chǎn)品的多維模型。最后,該系統(tǒng)在無需用戶人工配置資源的情況下使用多維模型來管理軟件產(chǎn)品的部署和執(zhí)行。
文檔編號G06F9/44GK103180823SQ201180050765
公開日2013年6月26日 申請日期2011年4月5日 優(yōu)先權(quán)日2011年2月22日
發(fā)明者J·拉巴特, R·瓦拉德哈拉簡, W·W·勞, T·C·畢肖普 申請人:因特偉特公司