在運行時間映射應用依賴性的制作方法
【專利摘要】提供了用于映射應用依賴性的系統(tǒng)、方法和機器可讀且可執(zhí)行指令。映射應用依賴性可以包括用使得應用能夠運行的多個應用依賴性定義應用模型以及定義平臺模型,所述平臺模型定義由服務器提供的多個能力。映射應用依賴性還可以包括創(chuàng)建拓撲模型,所述拓撲模型在所述應用保持獨立于服務器的同時通過將多個應用依賴性映射到多個能力來在運行時間將應用模型映射到平臺模型。
【專利說明】在運行時間映射應用依賴性
【背景技術】
[0001]作為私有或公共云的云服務正在獲得勢頭。維持運行在云系統(tǒng)和其它類型的系統(tǒng)上的應用的可用性是至關重要的?;旌显葡到y(tǒng)正在變得日益流行,因為私有云系統(tǒng)尋求擴展到公共云功能性中。私有云系統(tǒng)到公共云系統(tǒng)的綁定可以影響運行在混合云系統(tǒng)上的應用的可用性。
【專利附圖】
【附圖說明】
[0002]圖1圖示了根據本公開的使用拓撲模型實現的混合云系統(tǒng)的示例。
[0003]圖2圖示了根據本公開的部署堆棧(stack)的示例。
[0004]圖3圖示了根據本公開的應用依賴性(dependency)映射的示例。
[0005]圖4圖示了根據本公開的在部署時間的標簽解析的示例。
[0006]圖5是圖示了根據本公開的用于在運行時間(runtime)映射應用依賴性的方法的示例的流程圖。
[0007]圖6圖示了根據本公開的與用于在運行時間映射應用依賴性的處理資源進行通信的計算機可讀介質的示例的框圖。
【具體實施方式】
[0008]本公開的示例可以包括用于在運行時間映射應用依賴性的方法和系統(tǒng)。用于在運行時間映射應用依賴性的示例方法可以包括用多個應用依賴性定義使得應用能夠運行的應用模型以及定義平臺模型,所述平臺模型定義由服務器提供的多個能力。用于在運行時間映射應用依賴性的示例方法還可以包括創(chuàng)建拓撲模型,所述拓撲模型在所述應用保持獨立于服務器的同時通過將多個應用依賴性映射到多個能力來在運行時間將應用模型映射到平臺模型。
[0009]本文中的附圖遵循其中最先的一個或多個數字對應于繪制圖號碼并且其余數字標識圖中的元件或組件的編號慣例。不同附圖之間的相似元件或組件可以通過使用相似數字來標識。例如,108可以引用圖1中的元件“08”并且相似元件在圖3中可以被引用為308。
[0010]如本文所使用的,“一個”或“多個”某物可以指代一個或多個這樣的事物。例如,“多個小部件(widget)”可以指代一個或多個小部件。
[0011]混合云系統(tǒng)可以組合兩個或更多云系統(tǒng)。例如,混合云系統(tǒng)可以組合私有云系統(tǒng)和公共云系統(tǒng)。公共云系統(tǒng)可以包括使應用、儲存和/或其它資源通過服務提供商對一般公眾可用的云系統(tǒng)。私有云系統(tǒng)可以包括單獨由一個實體操作以供該實體使用的云系統(tǒng)。
[0012]混合云系統(tǒng)可以通過組合兩個或更多云系統(tǒng)的資源來組合兩個或更多云系統(tǒng)。例如,混合云系統(tǒng)可以將私有云系統(tǒng)的硬件資源與公共云系統(tǒng)的監(jiān)視資源組合。
[0013]與第一云系統(tǒng)相關聯的硬件資源和軟件資源可以限制第二云系統(tǒng)中應用的使用。例如,如果第一云系統(tǒng)與第一操作系統(tǒng)(OS)相關聯,則第二云系統(tǒng)只能夠使用與第二云系統(tǒng)兼容的監(jiān)視資源(例如,應用)。在本公開的多個示例中,混合云系統(tǒng)可以在不限制應用的使用的情況下組合彼此獨立的兩個或更多云系統(tǒng)。
[0014]圖1圖示了根據本公開的使用拓撲模型實現的混合云系統(tǒng)的示例。混合云系統(tǒng)100可以包括公共云系統(tǒng)102和私有云系統(tǒng)104。
[0015]公共云系統(tǒng)102可以包括多個能力。例如,公共云系統(tǒng)102可以包括運行手冊自動化(run book automation, RBA)月艮務器106-1和監(jiān)視服務器106-2。RBA月艮務器106-1可以關于工作流(例如能力)進行定義、構建、編制(orchestrate)、管理和報告。此外,RBA服務器106-1可以定制系統(tǒng)的自動化。監(jiān)視服務器106-2可以管理多個對象。例如,監(jiān)視服務器106-2可以管理應用、服務器和/或監(jiān)視服務器可以從其接收多個消息的任何其它對象。
[0016]私有云104可以包括多個能力。例如,私有云可以包括部署服務器106-3和作為服務(IaaS)服務器106-4的基礎設施。部署服務器106_3可以部署應用(例如能力)。IaaS服務器106-4可以包括供應(provision)系統(tǒng)基礎設施的能力。
[0017]服務器可以包括提供或請求多個資源的任何系統(tǒng)。服務器可以包括硬件基礎設施。服務器還可以包括軟件基礎設施。與服務器相關聯的能力可以參考服務器能夠提供的服務和/或資源。服務器能夠通過與服務器相關聯的硬件基礎設施和/或通過與服務器相關聯的軟件基礎設施來提供服務和/或資源。
[0018]多個能力還可以包括與服務器相關聯的屬性。公開屬性可以包括提供與服務器相關聯的多個參數。所述參數可以包括源自于提供特定能力的第一服務器的參數和源自于不提供特定能力的第二服務器的參數。例如,主控網頁的第一服務器可以針對端口號而查詢第二服務器。第二服務器可以向第一服務器提供端口號。第一服務器然后可以向應用提供端口號(例如參數)而不管端口號源自于哪里。也就是說,第一服務器可以提供能力而不管端口號(例如能力)源自于哪里。
[0019]在本公開的多個示例中,拓撲模型108可以允許應用使用公共云系統(tǒng)102和私有云系統(tǒng)104的能力。也就是說,拓撲模型108可以在不要求應用被配置成任何特定系統(tǒng)的情況下促進公共云系統(tǒng)102和私有云系統(tǒng)104中的不同服務器之間的交互。
[0020]圖2圖示了根據本公開的部署堆棧的示例。部署堆棧220可以包括硬件堆棧222、OS堆棧224、中間件堆棧226和/或應用堆棧228。部署堆棧220可以包括更多或更少的堆棧。另外,部署堆棧220可以包括傳達其它功能的不同堆棧。例如,部署堆棧220可以包括共享應用堆棧228的多個應用。
[0021]硬件堆棧222可以包括硬件基礎設施。硬件基礎設施可以包括與計算相關聯的多個硬件組件。例如,硬件基礎設施可以包括物理服務器、物理網絡、處理器、存儲器和/或有助于計算的任何數目的硬件組件。硬件基礎設施可以包括比所列舉的那些更多或更少的組件。硬件基礎設施還可以包括在軟件中模擬的硬件基礎設施。例如,硬件基礎設施可以包括硬件虛擬化。硬件虛擬化模擬硬件基礎設施,例如模擬的計算機環(huán)境。
[0022]OS堆棧224可以包括運行在硬件系統(tǒng)(例如硬件基礎設施)上的多個OS。OS可以向應用提供多個基礎服務?;A服務可以提供對硬件基礎設施的訪問。然而,OS不限于基礎服務并且可以包括多個服務。
[0023]中間件堆棧226可以包括中間件。中間件包括向應用提供超出OS堆棧224提供的那些的服務的軟件。例如,中間件可以包括向應用提供超出硬件堆棧222和/或OS堆棧224提供的那些的服務和/或資源的多個應用、庫和/或配置。
[0024]應用堆棧228可以包括多個應用。多個應用可以包括中間件堆棧226、0S堆棧224和/或硬件堆棧222所支持的應用。在本公開的多個示例中,應用堆棧228可以包括能夠被分類為中間件的應用。例如,諸如web (網絡)主控應用之類的應用可以在第一組情形之下被分類為中間件,因為它可以向不同應用提供服務和/或資源。然而,諸如web主控應用之類的應用可以在第二組情形之下被分類為獨立應用,因為web主控應用可以依賴于中間件。
[0025]部署堆棧220可以在子堆棧(例如硬件堆棧222、0S堆棧224、中間件堆棧226和/或應用堆棧228)之間定義多個依賴性。例如,部署堆棧220可以定義OS堆棧224中的OS可以在硬件堆棧222中的硬件基礎設施上具有的依賴性。部署堆棧220還可以定義中間件堆棧226中的中間件可以在OS和/或硬件基礎設施上具有的多個依賴性。此外,部署堆棧220可以定義應用堆棧228中的應用可以在中間件、OS和/或硬件基礎設施上具有的多個依賴性。
[0026]部署堆棧220還可以在單獨的子堆棧內定義多個依賴性。例如,硬件基礎設施的第一子集可以依賴于硬件基礎設施的第二子集,其中硬件基礎設施的第一子集和硬件基礎設施的第二子集可以是硬件堆棧222的部分。
[0027]部署堆棧220可以對子堆棧之間的依賴性和子堆棧內的依賴性進行排序。依賴性的次序可以包括多個不同的次序并且不限于排序的單個方法。在本公開的示例中,依賴性的次序可以包括對硬件堆棧222依賴性給予第一優(yōu)先級,對OS堆棧224依賴性給予第二優(yōu)先級,對中間件堆棧226依賴性給予第三優(yōu)先級,并且對應用堆棧228依賴性給予第四優(yōu)先級。
[0028]圖3圖示了根據本公開的應用依賴性映射的示例??梢灶愃朴趫D1中的拓撲模型108的拓撲模型308可以在運行時間將多個應用模型依賴性映射到多個平臺模型能力。
[0029]應用模型332可以定義應用的多個配置單元和多個配置單元的依賴性。多個配置單元可以定義構成應用的多個應用層。例如,應用模型332可以包括應用層336-1和數據庫層336-2(—般被稱為層336)。應用層336-1可以定義應用的核心組件,而數據庫層336-2可以定義應用和數據庫之間的交互。層336可以定義它們自身之間的多個依賴性。例如,應用層336-1可以依賴于數據庫層336-2。層336還可以定義應用模型332外的多個依賴性。
[0030]平臺模型334可以描述能夠通過提供多個能力來支持多個應用的環(huán)境。平臺模型可以包括多個層級(tier)。層級可以包括提供硬件基礎設施、OS和/或中間件能力的服務器的配置。層級內的服務器可以駐留在共有網絡配置中。多個層級可以包括服務器的多個不同配置。例如,平臺模型334可以包括tomcat層級338-1和MySQL層級338-2。tomcat層級338-1可以包括主控web應用的能力。MySQL層級338-2可以包括初始化和管理數據庫的能力。層級提供的能力可以在運行時間由服務器的配置來提供。此外,層級提供的能力可以在基礎設施供應之后(例如在運行時間之后)提供。
[0031]拓撲模型可以提供多個應用依賴性的實現以使得應用可以部署在特定層級(例如服務器的配置)上。拓撲模型可以特定于層級和應用。例如,第一拓撲模型可以將應用模型映射到第一平臺模型并且第二拓撲模型可以將應用映射到第二平臺模型,其中第一平臺模型和第二平臺模型可以不同。
[0032]在圖3中,拓撲模型308可以將與應用層336-1相關聯的依賴性映射到與tomcat層級338-1相關聯的能力。例如,如果依賴性被定義為Java web應用的安裝,則Tomcat層級338-1可以提供安裝java web應用的能力。拓撲模型308可以將與DB層336_2相關聯的依賴性映射到與MySQL層級338-2相關聯的能力。例如,如果依賴性被定義為初始化數據庫,則MySQL層級338-2可以提供初始化數據庫的能力。
[0033]拓撲模型308可以通過部署堆棧的使用來實現依賴性。部署堆??梢远x其中可以實現依賴性的次序。例如,在部署堆棧的示例中,java web應用依賴性的安裝可以在數據庫依賴性的初始化之前被實現??商鎿Q地,數據庫依賴性的初始化可以在java web應用依賴性的安裝之前被實現。
[0034]拓撲模型可以在運行時間映射和實現多個依賴性。在本公開的多個示例中,運行時間可以包括當應用發(fā)起執(zhí)行時的時間。在一些示例中,運行時間可以包括操作執(zhí)行時間。例如,操作執(zhí)行時間可以包括在其處部署應用的時間。
[0035]圖4圖示了根據本公開的在部署時間的標簽解析的示例??梢灶愃朴趫D3中的應用模型332的應用模型432可以通過多個標簽440-1定義多個依賴性??梢灶愃朴趫D3中的平臺模型334的平臺模型434可以通過多個標簽440-1定義多個能力。
[0036]標簽可以允許應用模型保持獨立于平臺模型。標簽可以在不要求應用和層級之間的通信的情況下允許依賴性和能力的通信。例如,層級可以允許應用模型重映射到多個平臺模型而不改變應用模型,因為應用未被配置成任何特定的層級。
[0037]當應用模型在依賴性上放置標簽時,它可以創(chuàng)建與平臺模型的契約(contract)。平臺模型可以向應用模型(例如應用層)保證與標簽相關聯的多個能力在運行時間(例如部署時間)將是可用的。標簽可以允許應用層創(chuàng)建參考由平臺模型提供的能力(例如服務和/或資源)的參考變量。標簽可以允許參考變量來參考能力,即便應用層并不知曉將在哪里和/或如何實現該能力。參考變量可以后綁定(late binding)。后綁定包括在運行時間(例如部署時間和/或操作執(zhí)行時間)解析參考變量。此外,應用層可以通過多個標簽來參考參數而不綁定到特定平臺。
[0038]例如,應用層436可以用http_port標簽對參考變量Param_Port加標簽442-1。平臺模型434中的tomcat層級438可以對表示端口的端口號(例如8080)加標簽442-2。應用層436可以對參考變量Param_Port加標簽而不綁定到特定平臺層級。標簽可以通過將被加標簽(例如http_port標簽)的Param_Port參考變量映射到用對應標簽(例如http_port標簽)加標簽的端口號8080來在部署時間解析標簽444。
[0039]圖5是圖示了根據本公開的用于在運行時間映射應用依賴性的方法的示例的流程圖。在550處,可以用使得應用能夠運行的多個應用依賴性來定義應用模型。在554處,平臺模型可以被定義由服務器提供的多個能力。在554處,可以創(chuàng)建拓撲模型,其中拓撲模型可以在應用保持獨立于服務器的同時通過將多個應用依賴性映射到多個能力來在運行時間將應用模型映射到平臺模型。
[0040]在本公開的多個示例中,可以在運行時間將應用模型映射到平臺模型。映射可以包括對多個依賴性進行排序并且在運行時間解析依賴性。應用模型可以使用多個標簽創(chuàng)建多個依賴性。通過多個標簽創(chuàng)建多個依賴性可以允許應用保持獨立于服務器??梢酝ㄟ^參考變量而創(chuàng)建依賴性??梢栽诓粚⒖甲兞拷壎ǖ教囟ǚ掌鞯那闆r下對參考變量加標簽。應用可以保持獨立,因為應用可以創(chuàng)建依賴性而無需應用與服務器進行通信。
[0041]圖6圖示了根據本公開的與用于平臺運行時間抽象的處理資源進行通信的計算機可讀介質的示例的框圖。計算機可讀介質688 (例如,有形、非臨時介質)和/或存儲器資源686可以存儲由處理資源684可執(zhí)行以定義690應用模型的指令集??梢詧?zhí)行指令以定義692平臺模型??梢詧?zhí)行指令以創(chuàng)建694將應用模型映射到平臺模型的拓撲模型。
[0042]可以用使得多個應用能夠運行的多個應用依賴性來定義690應用模型。使得多個應用能夠運行的多個應用依賴性可以包括在多個應用內的應用依賴性和在多個應用與多個服務器之間的應用依賴性??梢杂枚x多個能力的多個層級來定義692平臺模型,其中層級包括服務器群組。層級可以包括具有相同OS和相同中間件的服務器群組。拓撲模型可以在應用模型獨立于平臺模型的同時通過將多個應用依賴性映射到多個能力來將應用模型映射到平臺模型。拓撲模型可以通過使用部署堆棧來解析應用依賴性。部署堆??梢远x應用依賴性的排序,其中應用依賴性的排序可以定義能夠以其解析多個應用依賴性的次序。多個應用可以定義依賴性的優(yōu)先級。依賴性的優(yōu)先級可以提供用于應用依賴性的排序的基礎。拓撲模型可以創(chuàng)建在多個應用依賴性和平臺模型提供的多個能力之間的映射。
[0043]可以在數字電子電路或計算機硬件中(例如通過執(zhí)行存儲在計算機可讀存儲介質中的指令)實現本文所描述的方法、技術、系統(tǒng)和裝置。實現這些技術的裝置可以包括適當的輸入和輸出設備、計算機處理器和/或存儲指令以供處理器執(zhí)行的有形計算機可讀存儲介質。
[0044]實現本文所公開的技術的過程可以由運行存儲在有形計算機可讀存儲介質上的指令的處理器執(zhí)行以用于通過在輸入數據上進行操作并且生成適當的輸出來執(zhí)行期望的功能。適合的處理器包括(作為示例)通用和專用微處理器二者。用于存儲可執(zhí)行指令的適合的計算機可讀存儲設備包括所有形式的非易失性存儲器,其包括(作為示例)半導體存儲器設備,諸如可擦除可編程只讀存儲器(EPR0M)、電可擦除可編程只讀存儲器(EEPROM)和閃速存儲器設備;磁盤,諸如固定盤、軟盤和可移除盤;其它磁媒體,包括磁帶;以及光學媒體,諸如壓縮盤(CD)或數字視頻盤(DVD)。前述中的任何一個可以通過特殊設計的專用集成電路(ASIC)補充或被并入在其中。
[0045]盡管所公開的技術的操作可以在本文中被描述為以某一次序和/或在某些組合中執(zhí)行,但是在一些實現方式中,各個操作可以以不同次序重布置,與本文所描述的其它操作組合和/或被消除,并且仍可以獲得期望結果。相似地,所公開的系統(tǒng)中的組件可以以不同的方式進行組合和/或由其它組件替換或補充并且仍可以獲得期望結果。
[0046]以上說明書、示例和數據提供方法和應用的描述,以及本公開的系統(tǒng)和方法的使用。由于可以在不脫離本公開的系統(tǒng)和方法的精神和范圍的情況下做出許多示例,因此該說明書僅僅闡述眾多可能的實施例配置和實現方式中的一些。
【權利要求】
1.一種用于在運行時間映射應用依賴性的方法,包括: 用使得應用能夠運行的多個應用依賴性定義應用模型; 定義平臺模型,其定義由服務器提供的多個能力;以及 創(chuàng)建拓撲模型,所述拓撲模型在所述應用保持獨立于服務器的同時通過將多個應用依賴性映射到多個能力來在運行時間將應用模型映射到平臺模型。
2.權利要求1的方法,其中創(chuàng)建在運行時間將應用模型映射到平臺模型的拓撲模型包括當所述應用發(fā)起執(zhí)行時將應用模型映射到平臺模型。
3.權利要求1的方法,其中所述應用保持獨立于服務器包括所述拓撲模型在不要求所述應用與服務器進行通信的情況下解析應用依賴性。
4.權利要求3的方法,其中所述拓撲模型通過向被所述應用用于參考多個能力的多個參考變量提供多個值來解析應用依賴性。
5.一種存儲用于在運行時間映射應用依賴性的指令的非臨時計算機可讀介質,所述指令由計算機可執(zhí)行以使所述計算機: 用使得多個應用能夠運行的多個應用依賴性定義應用模型; 用定義多個能力的多個層級定義平臺模型,其中層級包括服務器群組;以及 創(chuàng)建拓撲模型,所 述拓撲模型在應用模型保持獨立于平臺模型的同時通過將多個應用依賴性映射到多個能力來在運行時間將應用模型映射到平臺模型。
6.權利要求5的介質,其中使得多個應用能夠運行的多個應用依賴性包括多個應用內的應用依賴性和在多個應用與定義多個層級的多個服務器之間的應用依賴性。
7.權利要求5的介質,其中在運行時間將應用模型映射到平臺模型的拓撲模型使用部署堆棧來解析應用依賴性。
8.權利要求7的介質,其中所述部署堆棧包括應用依賴性的排序,其中應用依賴性的排序定義以其解析多個應用依賴性的次序。
9.權利要求5的介質,其中所述拓撲模型包括多個應用依賴性和多個層級之間的映射。
10.權利要求5的介質,其中包括服務器群組的層級包括具有相同操作系統(tǒng)(OS)和相同中間件的服務器群組。
11.一種在運行時間映射應用依賴性的系統(tǒng),包括: 用使得多個應用能夠運行的多個所請求的參數來定義應用模型; 定義包括包含多個服務器參數的多個層級的平臺模型,其中層級包括提供相同操作系統(tǒng)(OS)和相同中間件的服務器群組;以及 創(chuàng)建拓撲模型,所述拓撲模型在應用模型保持獨立于平臺模型的同時通過借由多個標簽將多個所請求的參數映射到多個服務器參數來在運行時間將應用模型映射到平臺模型。
12.權利要求11的系統(tǒng),其中所述多個應用通過將多個依賴性置于通過多個標簽支持平臺模型的平臺上來定義多個所請求的參數。
13.權利要求12的系統(tǒng),其中所述多個標簽在多個應用和平臺之間創(chuàng)建契約,其中所述契約向多個應用保證對應于所請求的參數的多個服務器參數將在部署處可用。
14.權利要求12的系統(tǒng),其中所述多個標簽允許多個應用通過多個參考變量而利用與所述平臺對應的多個平臺特定屬性。
15.權 利要求11的系統(tǒng),其中所述參考變量在運行時間解析。
【文檔編號】G06F9/44GK104081338SQ201280068665
【公開日】2014年10月1日 申請日期:2012年4月27日 優(yōu)先權日:2012年4月27日
【發(fā)明者】T.S.特里普, H.L.懷森亨特, E.科爾尼克, K.E.斯潘塞, P.費德勒, J.瓦納, K.L.威爾遜 申請人:惠普發(fā)展公司,有限責任合伙企業(yè)