用于描述云環(huán)境從屬物的元應(yīng)用程序的制作方法
【專利摘要】在一些示例中,描述了用于在目標供應(yīng)商環(huán)境中重建源供應(yīng)商服務(wù)環(huán)境的方法。該方法可包括使用描述源供應(yīng)商環(huán)境中的服務(wù)的服務(wù)元應(yīng)用程序標識服務(wù)的內(nèi)部直接從屬物。該方法還可包括訪問描述該內(nèi)部直接從屬物的從屬物元應(yīng)用程序。該方法還可包括在目標供應(yīng)商環(huán)境中根據(jù)從屬物元應(yīng)用程序建立所述內(nèi)部直接從屬物。該方法還可包括獲取服務(wù)的鏡像。該方法還可包括將服務(wù)的鏡像安裝在目標供應(yīng)商環(huán)境中。該方法還可包括根據(jù)服務(wù)元應(yīng)用程序?qū)⑺惭b的服務(wù)的鏡像配置為依賴于內(nèi)部直接從屬物。
【專利說明】用于描述云環(huán)境從屬物的元應(yīng)用程序
【背景技術(shù)】
[0001] 除非在本文中另外表明,否則這里所描述的材料對于本申請中的權(quán)利要求來說不 是現(xiàn)有技術(shù)并且不由于包括在本部分中而被承認是現(xiàn)有技術(shù)。
[0002] 云計算在近年來已變得很受歡迎。云計算通常涉及在位于應(yīng)用的相應(yīng)用戶的遠程 位置的計算環(huán)境中的通用服務(wù)器上執(zhí)行應(yīng)用。
[0003] 存在各種云計算供應(yīng)商。不同的供應(yīng)商經(jīng)常有不同的供應(yīng)商環(huán)境,包括不同應(yīng)用 程序編程接口(API)和/或基礎(chǔ)設(shè)施。對于一些應(yīng)用來說,一個供應(yīng)商環(huán)境可能與另一供 應(yīng)商環(huán)境不兼容。
[0004] 一些用戶可能希望將應(yīng)用從源云的源提供商環(huán)境遷移到目標云的不同的目標供 應(yīng)商環(huán)境。源供應(yīng)商環(huán)境和目標供應(yīng)商環(huán)境之間的差異可能如此顯著以至于用戶可能不得 不在目標供應(yīng)商環(huán)境中基本上重建相應(yīng)的應(yīng)用以將該應(yīng)用遷移到目標供應(yīng)商環(huán)境中。由于 源和目標供應(yīng)商環(huán)境之間的兼容性問題而導(dǎo)致的與重建應(yīng)用或以其它方式遷移應(yīng)用相關(guān) 聯(lián)的困難可能阻止用戶將應(yīng)用遷移到目標供應(yīng)商環(huán)境,即使對于用戶來說將該應(yīng)用遷移到 目標供應(yīng)商環(huán)境在其它方面、例如就成本和/或性能而言可能是有益的。
【發(fā)明內(nèi)容】
[0005] 本文中所述的技術(shù)一般地涉及在潛在不兼容的源和目標供應(yīng)商環(huán)境之間遷移服 務(wù)。
[0006] 在一些示例中,描述了用于在目標供應(yīng)商環(huán)境中重建源供應(yīng)商服務(wù)環(huán)境的方法。 該方法可包括使用描述源供應(yīng)商環(huán)境中的服務(wù)的服務(wù)元應(yīng)用程序標識所述服務(wù)的內(nèi)部直 接從屬物(dependency)。該方法還可包括訪問描述該內(nèi)部直接從屬物的從屬物元應(yīng)用程 序。該方法還可包括在目標供應(yīng)商環(huán)境中根據(jù)從屬物元應(yīng)用程序建立所述內(nèi)部直接從屬 物。該方法還可包括獲取服務(wù)的鏡像。該方法還可包括將服務(wù)的鏡像安裝在目標供應(yīng)商環(huán) 境中。該方法還可包括根據(jù)服務(wù)元應(yīng)用程序?qū)⒎?wù)的所安裝的鏡像配置為依賴于內(nèi)部直接 從屬物。
[0007] 在一些示例中,描述了一種具有存儲于其上的計算機可讀指令的計算機可讀存儲 介質(zhì),所述計算機可讀指令可被計算裝置執(zhí)行以執(zhí)行操作。該操作可包括使用描述源供應(yīng) 商環(huán)境中的服務(wù)的服務(wù)元應(yīng)用程序標識所述服務(wù)的內(nèi)部直接從屬物。該操作還可包括訪問 描述該內(nèi)部直接從屬物的從屬物元應(yīng)用程序。該操作還可包括在目標供應(yīng)商環(huán)境中根據(jù)從 屬物元應(yīng)用程序建立所述內(nèi)部直接從屬物。該操作還可包括獲取服務(wù)的鏡像。該操作還可 包括將服務(wù)的鏡像安裝在目標供應(yīng)商環(huán)境中。該操作還可包括根據(jù)服務(wù)元應(yīng)用程序?qū)⑺?裝的服務(wù)的鏡像配置為依賴于內(nèi)部直接從屬物。
[0008] 在一些示例中,描述了一系統(tǒng)包括處理裝置和具有存儲于其上的重建代理的計算 機可讀存儲介質(zhì)。重建代理包括可被處理裝置執(zhí)行以執(zhí)行操作的計算機可讀指令。該操作 可包括使用描述源供應(yīng)商環(huán)境中的服務(wù)的服務(wù)元應(yīng)用程序標識所述服務(wù)的內(nèi)部直接從屬 物。該操作還可包括訪問描述該內(nèi)部直接從屬物的從屬物元應(yīng)用程序。該操作還可包括在 目標供應(yīng)商環(huán)境中根據(jù)從屬物元應(yīng)用程序建立所述內(nèi)部直接從屬物。該操作還可包括獲取 服務(wù)的鏡像。該操作還可包括將服務(wù)的鏡像安裝在目標供應(yīng)商環(huán)境中。該操作還可包括根 據(jù)服務(wù)元應(yīng)用程序?qū)⑺惭b的服務(wù)的鏡像配置為依賴于內(nèi)部直接從屬物。
[0009] 前述概要僅僅是說明性的,而并不意圖以任何方式是限制性的。除了說明性的方 面,上述實施例和特征、另外的方面、實施例和特征將通過參考附圖和下面的詳細描述而變 得顯而易見。
【專利附圖】
【附圖說明】
[0010] 在附圖中:
[0011] 圖1是其中服務(wù)可被從源供應(yīng)商環(huán)境遷移到目標供應(yīng)商環(huán)境的示例運行環(huán)境的 框圖;
[0012] 圖2是圖1的服務(wù)的示例實施例的框圖;
[0013] 圖3A是可被實施在圖1的運行環(huán)境中的示例元應(yīng)用程序的框圖;
[0014] 圖3B示出可對應(yīng)于圖3A的元應(yīng)用程序的示例服務(wù)元應(yīng)用程序;
[0015] 圖3C示出可對應(yīng)于圖3A的元應(yīng)用程序的示例從屬物元應(yīng)用程序;
[0016] 圖4示出用于在目標供應(yīng)商環(huán)境中重建源供應(yīng)商服務(wù)環(huán)境的示例方法的流程圖; 以及
[0017] 圖5是示出被布置用于在目標供應(yīng)商環(huán)境中重建源供應(yīng)商服務(wù)環(huán)境的示例計算 裝置的框圖;
[0018] 所有附圖都是依照本文所描述的至少一些實施例來安排的。
【具體實施方式】
[0019] 在以下詳細描述中,對附圖進行參考,所述附圖形成詳細描述的一部分。除非上下 文另外指示,否則在附圖中,相似的符號通常標識相似的部件。在詳細描述、附圖和權(quán)利要 求中描述的說明性實施例并不意味著是限制性的。在不脫離本文所提供的主題的精神或范 圍的情況下,可以利用其它實施例,以及可以進行其它改變。將易于理解的是,如在本文中 一般地描述的和在圖中示出的那樣,本公開的各方面可以以廣泛多樣的不同配置被布置、 替代、組合、分割和設(shè)計,所有這些在本文中都被明確地構(gòu)想。
[0020] 本文中所述的一些實施例一般地涉及在潛在不兼容的源和目標供應(yīng)商環(huán)境之間 遷移服務(wù)。描述服務(wù)的服務(wù)元應(yīng)用程序可在遷移服務(wù)之前被提供。例如,服務(wù)元應(yīng)用程序 可標識服務(wù)的一個或多個內(nèi)部直接從屬物和/或服務(wù)的環(huán)境上下文和配置。描述服務(wù)的內(nèi) 部直接從屬物的從屬物元應(yīng)用程序也可在遷移之前被提供。
[0021] 目標供應(yīng)商環(huán)境中的或與其相關(guān)聯(lián)的重建代理可使用服務(wù)元應(yīng)用程序來標識該 服務(wù)的內(nèi)部直接從屬物以及環(huán)境上下文和配置,獲取與所標識的內(nèi)部直接從屬物相對應(yīng)的 從屬物元應(yīng)用程序,以及獲取該服務(wù)的鏡像。重建代理然后可根據(jù)從屬物元應(yīng)用程序建立 內(nèi)部直接從屬物并根據(jù)服務(wù)元應(yīng)用程序配置該服務(wù)的鏡像。
[0022] 圖1是根據(jù)本文中所述的至少一些實施例布置的,其中服務(wù)可被從源供應(yīng)商環(huán)境 遷移到目標供應(yīng)商環(huán)境的示例運行環(huán)境的框圖。在所示的實施例中,運行環(huán)境100包括網(wǎng) 絡(luò)102、源供應(yīng)商環(huán)境104、目標供應(yīng)商環(huán)境106、元應(yīng)用程序庫108以及鏡像庫110。
[0023] 通常,網(wǎng)絡(luò)102可包括實現(xiàn)源供應(yīng)商環(huán)境104、目標供應(yīng)商環(huán)境106、元應(yīng)用程序庫 108和/或鏡像庫110之間的通信的一個或多個廣域網(wǎng)(WAN)和/或局域網(wǎng)(LAN)。在一 些實施例中,網(wǎng)絡(luò)102包括互聯(lián)網(wǎng),包括由多個WAN和/或LAN之間的邏輯和物理連接形成 的全球互聯(lián)網(wǎng)絡(luò)。可替換地或附加地,網(wǎng)絡(luò)102可包括一個或多個蜂窩RF網(wǎng)絡(luò)和/或一個 或多個有線和/或無線網(wǎng)絡(luò),諸如但不限于802. XX網(wǎng)絡(luò)、藍牙接入點、無線接入點、基于IP 的網(wǎng)絡(luò),等等。網(wǎng)絡(luò)102也可包括使一種類型的網(wǎng)絡(luò)能夠與另一種類型的網(wǎng)絡(luò)對接的服務(wù) 器。
[0024] 源供應(yīng)商環(huán)境104可包括云計算環(huán)境,云計算環(huán)境包括源供應(yīng)商環(huán)境104的用戶 所擁有的或與其相關(guān)聯(lián)的資源112A和一個或多個服務(wù)114A。
[0025] 舉例來說且非限制性地,資源112A可包括諸如一個或多個中央處理單元(CPU)的 處理資源、諸如一個或多個存儲裝置的存儲資源、諸如網(wǎng)絡(luò)接口控制器(NIC)或其它通信 接口裝置的其它資源,和/或其它合適的計算機資源。
[0026] 服務(wù)114A可在源供應(yīng)商環(huán)境104的資源112A上運行。在一些實施例中,服務(wù)114A 可包括特定版本的特定軟件。服務(wù)114A可包括但不限于:Web (網(wǎng)絡(luò))服務(wù)器、應(yīng)用服務(wù)器 或數(shù)據(jù)庫實例。服務(wù)114A的更多特定示例可包括但不限于:基于C++的應(yīng)用、基于PHP超 文本預(yù)處理器(PHP)的應(yīng)用、我的結(jié)構(gòu)化查詢語言(MySQL)服務(wù)器數(shù)據(jù)庫等,或它們的任意 組合。服務(wù)114A可被配置為服務(wù)于來自被配置為經(jīng)由網(wǎng)絡(luò)102與服務(wù)114進行通信的客 戶端裝置(未示出)的請求。
[0027] 服務(wù)114A在源供應(yīng)商環(huán)境104內(nèi)可具有包括例如一個或多個內(nèi)部直接從屬物和/ 或環(huán)境上下文和配置的服務(wù)環(huán)境。服務(wù)114A在源供應(yīng)商環(huán)境104內(nèi)的服務(wù)環(huán)境在本文中 可被稱為"源供應(yīng)商服務(wù)環(huán)境"。
[0028] 服務(wù)114A的持有者或與其相關(guān)聯(lián)的其它用戶可能希望將服務(wù)114A從源供應(yīng)商環(huán) 境104遷移到另一供應(yīng)商環(huán)境,諸如目標供應(yīng)商環(huán)境106。例如,如果目標供應(yīng)商環(huán)境106 相比于源供應(yīng)商環(huán)境104以大約相同或更少的錢提供類似的或者更好的條件,或因為任何 其它理由,服務(wù)114A的持有者或與其相關(guān)聯(lián)的其它用戶可能希望將服務(wù)114A遷移到目標 供應(yīng)商環(huán)境106 (如在116處表不的)。
[0029] 類似于源供應(yīng)商環(huán)境104,目標供應(yīng)商環(huán)境106可包括云計算環(huán)境,該云計算環(huán)境 包括資源112B。資源112B可包括處理資源、存儲資源和/或其它合適的計算機資源。
[0030] 目標供應(yīng)商環(huán)境106可以額外地包括服務(wù)114B。服務(wù)114B可包括來自源供應(yīng)商 環(huán)境104的服務(wù)114A在目標供應(yīng)商環(huán)境106中的實例。雖然目標供應(yīng)商環(huán)境106在所示 實施例中包括單個服務(wù)114B,但更通常的情況是目標供應(yīng)商環(huán)境106可包括任意數(shù)目的服 務(wù),其中的一些可能已被從諸如源供應(yīng)商環(huán)境104的其它供應(yīng)商環(huán)境遷移到了目標供應(yīng)商 環(huán)境106。
[0031] 目標供應(yīng)商環(huán)境106可額外地包括重建代理118或可能已與其相關(guān)聯(lián)。重建代理 118通常可被配置為根據(jù)被包括在服務(wù)114A的元應(yīng)用程序中的信息在目標供應(yīng)商環(huán)境106 中為服務(wù)114B重建服務(wù)114A的源供應(yīng)商服務(wù)環(huán)境。在一些實施例中,重建代理118可作 為可被資源112B的處理裝置執(zhí)行以創(chuàng)建源供應(yīng)商服務(wù)環(huán)境和/或執(zhí)行本文中所述的其它 操作的計算機可讀指令被存儲在資源112B的計算機可讀存儲介質(zhì)上。
[0032] 可選地,目標供應(yīng)商環(huán)境106還可包括元應(yīng)用程序解析器120。元應(yīng)用程序解析器 120可被配置為解析元應(yīng)用程序以從其提取可被重建代理118用來在目標供應(yīng)商環(huán)境106 中重建服務(wù)的源供應(yīng)商服務(wù)環(huán)境的信息。
[0033] 元應(yīng)用程序庫108可包括一個或多個元應(yīng)用程序122A、122B,在下文中被統(tǒng)稱為 "元應(yīng)用程序122"。通常,元應(yīng)用程序122中的每個可描述服務(wù)或服務(wù)的從屬物。描述相 應(yīng)服務(wù)的每個元應(yīng)用程序122在本文中可被稱為"服務(wù)元應(yīng)用程序" 122A,而描述服務(wù)的相 應(yīng)從屬物的每個元應(yīng)用程序122在本文中可被稱為"從屬物元應(yīng)用程序122B"。雖然圖1 將元應(yīng)用程序庫108示出為包括單個的服務(wù)元應(yīng)用程序122A和單個的從屬物元應(yīng)用程序 122B,但是元應(yīng)用程序庫108更通常地可包括任意數(shù)目的服務(wù)元應(yīng)用程序122A和任意數(shù)目 的從屬物元應(yīng)用程序122B。
[0034] 元應(yīng)用程序庫108中的每個元應(yīng)用程序122可包括指向鏡像庫110中的相應(yīng)鏡像 的位置或其它位置的指針,諸如統(tǒng)一資源定位符(URL)、統(tǒng)一資源標識符(URI)或合適的其 它指針??商鎿Q地或附加地,每個服務(wù)元應(yīng)用程序122A可包括指向元應(yīng)用程序庫108中的 相應(yīng)從屬物元應(yīng)用程序122B的位置或其它位置的指針。
[0035] 鏡像庫110可包括一個或多個鏡像124A、124B,在下文中統(tǒng)稱為"鏡像124"。每個 鏡像124可包括服務(wù)的鏡像或服務(wù)的從屬物的鏡像。包括服務(wù)的鏡像的每個鏡像124在本 文中可被稱為"服務(wù)鏡像" 124A,而包括服務(wù)的從屬物的鏡像的每個鏡像124在本文中可被 稱為"從屬物鏡像124B"。雖然圖1將鏡像庫110示出為包括單個的服務(wù)鏡像124A和單個 的從屬物鏡像124B,但鏡像庫110更通常地可包括任意數(shù)目的服務(wù)鏡像124A和任意數(shù)目的 從屬物鏡像124B。
[0036] 在一些實施例中,元應(yīng)用程序庫108和/或鏡像庫110其中之一或它們兩者可被 包括在源供應(yīng)商環(huán)境104中或可與源供應(yīng)商環(huán)境104相關(guān)聯(lián)。可替換地或附加地,元應(yīng)用 程序庫108和/或鏡像庫110其中之一或它們兩者可被包括在目標供應(yīng)商環(huán)境106中或可 與目標供應(yīng)商環(huán)境106相關(guān)聯(lián)。可替換地或附加地,元應(yīng)用程序庫108和/或鏡像庫110 其中之一或它們兩者可被包括在第三方供應(yīng)商內(nèi)或可與第三方供應(yīng)商相關(guān)聯(lián)。
[0037] 在操作中并在將服務(wù)114A遷移116到目標供應(yīng)商環(huán)境106之前,描述服務(wù)114A 的服務(wù)元應(yīng)用程序可被建立并存儲在元應(yīng)用程序庫108中作為服務(wù)元應(yīng)用程序122A。服務(wù) 元應(yīng)用程序122A可由例如持有者或與服務(wù)114A相關(guān)聯(lián)的其它用戶來建立。可替換地或附 加地,服務(wù)元應(yīng)用程序122A可至少部分地通過自動發(fā)現(xiàn)過程或由一些其它用戶(無論其是 否與服務(wù)114A相關(guān)聯(lián))來建立。
[0038] 服務(wù)元應(yīng)用程序122A可包括指向服務(wù)114A的鏡像的指針,其可作為服務(wù)鏡像 124A被存儲在鏡像庫110中。
[0039] 服務(wù)114A可包括源供應(yīng)商環(huán)境104中的至少一個內(nèi)部直接從屬物。例如,服務(wù) 114A可包括基于C++的應(yīng)用,在這種情況下,服務(wù)114A可包括至少一個內(nèi)部直接從屬物,該 內(nèi)部直接從屬物包括C++庫或多個C++庫。作為另一示例,服務(wù)114A可包括Web服務(wù)器, 該Web服務(wù)器包括基于PHP的應(yīng)用和/或MySQL服務(wù)器數(shù)據(jù)庫,在這種情況下,服務(wù)114A 可包括多個內(nèi)部直接從屬物,該多個內(nèi)部直接從屬物包括Zend PHP框架、Apache網(wǎng)絡(luò)服務(wù) 框架或PHP引擎。因此,服務(wù)114A可包括至少一個內(nèi)部直接從屬物,包括但不限于:C++庫、 操作系統(tǒng)、Zend PHP框架。Apache網(wǎng)絡(luò)服務(wù)框架或PHP引擎。
[0040] 描述從屬物的從屬物元應(yīng)用程序可作為從屬物元應(yīng)用程序122B被建立并存儲在 元應(yīng)用程序庫108中。類似于服務(wù)元應(yīng)用程序122A,從屬物元應(yīng)用程序122B可以全部或部 分地由服務(wù)114A的持有者、或與其相關(guān)聯(lián)的其它用戶、或者由自動發(fā)現(xiàn)過程、或一些其它 用戶來建立。
[0041] 服務(wù)元應(yīng)用程序122A可包括指向從屬物元應(yīng)用程序122B的指針。從屬物元應(yīng)用 程序122B可包括指向從屬物的鏡像的指針,其可作為從屬物鏡像124B被存儲在鏡像庫110 中。
[0042] 在持有者或與服務(wù)114A相關(guān)聯(lián)的其它用戶準備好將服務(wù)114A遷移到目標供應(yīng)商 環(huán)境106之后,服務(wù)元應(yīng)用程序122A可被提供給目標供應(yīng)商環(huán)境106,或更特別地被提供給 重建代理118。在一些實施例中,提供服務(wù)元應(yīng)用程序122A到重建代理118可包括向重建 代理118提供指向元應(yīng)用程序庫108中的服務(wù)元應(yīng)用程序122A的指針。響應(yīng)于收到指針, 重建代理118可從所指示的位置獲取服務(wù)元應(yīng)用程序122A。
[0043] 重建代理118可使用服務(wù)元應(yīng)用程序122A在目標供應(yīng)商環(huán)境106中重建源供應(yīng) 商服務(wù)環(huán)境。例如,在這些和其它實施例中,重建代理118通常可分析服務(wù)元應(yīng)用程序122A 以標識服務(wù)114A的內(nèi)部從屬物和配置以及環(huán)境上下文和配置。被標識的信息然后可被 重建代理118用來獲取服務(wù)鏡像124A、與服務(wù)114A的內(nèi)部從屬物對應(yīng)的任何從屬物鏡像 124B,并提供具有被標識的環(huán)境上下文和配置的服務(wù)鏡像124A。被配置的服務(wù)鏡像124A然 后可作為服務(wù)114B在目標供應(yīng)商環(huán)境106中被啟動。
[0044] -些服務(wù)遷移程序可實施時間和/或資源密集圖表匹配算法以找到具有最接近 源供應(yīng)商環(huán)境104中的服務(wù)114A的鏡像的結(jié)構(gòu)的最佳匹配鏡像。與此相對照,本文中所述 的一些實施例可以使用相應(yīng)服務(wù)元應(yīng)用程序122A中的指針在無需執(zhí)行時間和/或資源密 集匹配算法的情況下標識并定位服務(wù)114A的特定鏡像,例如,服務(wù)鏡像124A。
[0045] 附加地,諸如基于C++的應(yīng)用的一些服務(wù)如果在目標供應(yīng)商環(huán)境中未被配置為具 有與在源供應(yīng)商環(huán)境中相同的諸如C++庫的內(nèi)部直接從屬物的話可能經(jīng)歷編譯錯誤或執(zhí) 行錯誤。而一些服務(wù)遷移程序針對服務(wù)和/或其內(nèi)部直接從屬物實施近似鏡像匹配,這樣 的服務(wù)遷移程序在服務(wù)的正確編譯和/或執(zhí)行取決于幾乎完全相同的匹配的情況下可能 是不適合的。然而,本文中所述的一些實施例包括將服務(wù)鏡像124A配置為在目標供應(yīng)商 環(huán)境106中具有與在源供應(yīng)商環(huán)境104中相同的內(nèi)部直接從屬物。本文中所述的一些實施 例由于可以提供指向特定鏡像的指針而可以免除近似鏡像匹配。特別地,服務(wù)元應(yīng)用程序 122A和任何相應(yīng)從屬物元應(yīng)用程序中的指針可允許配置服務(wù)鏡像124A,并且因此允許將 服務(wù)114B配置為在目標供應(yīng)商環(huán)境106中具有與在服務(wù)提供商環(huán)境104中幾乎完全相同 的內(nèi)部直接從屬物。
[0046] 圖2是根據(jù)本文中所述的至少一些實施例的圖1的服務(wù)114A的示例實施例的框 圖。服務(wù)114A可具有源供應(yīng)商服務(wù)環(huán)境200,源供應(yīng)商服務(wù)環(huán)境200包括一個或多個內(nèi)部 直接從屬物202和環(huán)境上下文和配置204。
[0047] 正如以前提到的,每個內(nèi)部直接從屬物可包括但不限于:C++庫、操作系統(tǒng)、Zend PHP框架、Apache網(wǎng)絡(luò)服務(wù)框架或PHP引擎。
[0048] 環(huán)境上下文和配置204通??砂ㄓ糜诎l(fā)起服務(wù)114A的配置。更詳細地,環(huán)境 上下文和配置204可包括但不限于:運行時期數(shù)據(jù)庫源配置、外部服務(wù)器從屬物、外部網(wǎng)絡(luò) 從屬物、配置文件、服務(wù)114A的鏡像的部署殼(cbploy shell)、服務(wù)114A的鏡像的啟動殼 (startup shell)或服務(wù)114A的系統(tǒng)環(huán)境。
[0049] 服務(wù)的內(nèi)部直接從屬物可包括類似于圖2的源供應(yīng)商服務(wù)環(huán)境200的源供應(yīng)商從 屬物環(huán)境。例如,特定內(nèi)部直接從屬物的源供應(yīng)商從屬物環(huán)境可包括一個或多個內(nèi)部直接 從屬物以及該特定內(nèi)部直接從屬物的環(huán)境上下文和配置。
[0050] 圖3A是根據(jù)本文中所述的至少一些實施例布置的、可被實施在圖1的運行環(huán)境中 的示例元應(yīng)用程序300的框圖。元應(yīng)用程序300可對應(yīng)于圖1的服務(wù)元應(yīng)用程序122A或 從屬物元應(yīng)用程序122B。元應(yīng)用程序300可以描述源供應(yīng)商環(huán)境中的服務(wù),在這種情況下 它可被稱為服務(wù)元應(yīng)用程序,或者它可以描述服務(wù)的內(nèi)部直接從屬物,在這種情況下其可 被稱為從屬物元應(yīng)用程序。
[0051] 在所說明的實施例中,元應(yīng)用程序300包括自參考組成部分302、環(huán)境組成部分 304和從屬物組成部分306。
[0052] 自參考組成部分302通常包括有關(guān)元應(yīng)用程序300的信息。例如,自參考組成部 分302可標識元應(yīng)用程序300的版本以及/或者可包括標識元應(yīng)用程序300的持有者和/ 或元應(yīng)用程序300的修改歷史的純文本。可替換地或附加地,自參考組成部分302可指定 元應(yīng)用程序300本身和/或元應(yīng)用程序300所描述的相應(yīng)服務(wù)或內(nèi)部直接從屬物的鏡像的 位置,例如,通過包括指向元應(yīng)用程序300本身的指針和/或指向該鏡像的指針來指定。鏡 像的指定位置可包括諸如圖1的鏡像庫110的鏡像庫中的位置,以及/或者元應(yīng)用程序300 的指定位置可包括諸如圖1的元應(yīng)用程序庫108的元應(yīng)用程序庫中的位置。
[0053] 環(huán)境組成部分304可包括與用于發(fā)起元應(yīng)用程序300所描述的服務(wù)或內(nèi)部直接 從屬物的配置相對應(yīng)的參數(shù)。例如,如果元應(yīng)用程序300所描述的服務(wù)包括服務(wù)114A,那 么環(huán)境組成部分304可包括圖2的環(huán)境上下文和配置204的參數(shù)。在操作中,元應(yīng)用程序 300所描述的服務(wù)或內(nèi)部直接從屬物的所安裝的鏡像可根據(jù)環(huán)境組成部分304中描述服務(wù) 或內(nèi)部直接從屬物的配置的參數(shù)被配置。服務(wù)或內(nèi)部直接從屬物的配置可指定以下中的至 少一個:運行時期數(shù)據(jù)庫源配置、外部服務(wù)器從屬物、外部網(wǎng)絡(luò)從屬物、服務(wù)或內(nèi)部從屬物 的鏡像的部署殼、鏡像的啟動殼或服務(wù)或內(nèi)部直接從屬物的系統(tǒng)環(huán)境。
[0054] 從屬物組成部分306可包括相應(yīng)服務(wù)的一個或多個內(nèi)部直接從屬物或元應(yīng)用程 序300所描述的內(nèi)部直接從屬物的列表或以其它方式對它們進行標識。例如,如果元應(yīng)用 程序300描述的服務(wù)包括服務(wù)114A,則從屬物組成部分306可包括圖2的服務(wù)114A的一個 或多個內(nèi)部直接從屬物202的列表??商鎿Q地或附加地,從屬物組成部分306可為從屬物 組成部分306中所標識的每個內(nèi)部直接從屬物指定描述相應(yīng)內(nèi)部直接從屬物的從屬物元 應(yīng)用程序的位置。例如,從屬物組成部分306可包括指向諸如圖1的元應(yīng)用程序庫108的 元應(yīng)用程序庫中的一個或多個對應(yīng)從屬物元應(yīng)用程序的一個或多個指針。
[0055] 在一些實施例中,元應(yīng)用程序300可以以可擴展標記語言(XML)格式或其它合適 的格式被定義。
[0056] 圖3B是根據(jù)本文中所述的至少一些實施例布置的、可對應(yīng)于圖3A的元應(yīng)用程序 300的示例服務(wù)元應(yīng)用程序300A的框圖。在所說明的實施例中,服務(wù)元應(yīng)用程序300A以 XML格式被定義并包括自參考組成部分302A、環(huán)境組成部分304A和從屬物組成部分306A。 在一些實施例中,服務(wù)元應(yīng)用程序300A可額外地包括服務(wù)元應(yīng)用程序300A所描述的特定 服務(wù)308的名稱或以其它方式標識該特定服務(wù)308。
[0057] 自參考組成部分302A可包括指向服務(wù)308的鏡像的指針310。指針310可指定 服務(wù)308的鏡像的位置和/或可被重建代理用來在重建相應(yīng)源供應(yīng)商服務(wù)環(huán)境時獲取服務(wù) 308的鏡像。
[0058] 自參考組成部分302A可額外地包括指向服務(wù)元應(yīng)用程序300A本身的指針312。 指針312可指定諸如圖1的元應(yīng)用程序庫108的元應(yīng)用程序庫中的服務(wù)元應(yīng)用程序300A 的位置。
[0059] 環(huán)境組成部分304A可包括描述可被用于在目標供應(yīng)商環(huán)境中發(fā)起服務(wù)308的服 務(wù)308的外部上下文和配置的各種參數(shù)314。
[0060] 在一些實施例中,從屬物組成部分306A可包括服務(wù)308的特定內(nèi)部直接從屬物 316的名稱或以其它方式標識該特定內(nèi)部直接從屬物316。雖然在圖3B中示出了單個內(nèi)部 直接從屬物316,但更通常地服務(wù)元應(yīng)用程序300A可包括一個或多個內(nèi)部直接從屬物316。 可替換地或附加地,從屬物組成部分306A可包括指向與內(nèi)部直接從屬物316相對應(yīng)的從屬 元應(yīng)用程序的指針318。指針318可指定諸如圖1的元應(yīng)用程序庫108的元應(yīng)用程序庫中 的從屬物元應(yīng)用程序的位置。
[0061] 圖3C示出根據(jù)本文中所述的至少一些實施例布置的、可對應(yīng)于圖3A的元應(yīng)用程 序300的示例從屬物元應(yīng)用程序300B的框圖。在所說明的實施例中,從屬物元應(yīng)用程序 300B以XML格式被定義并包括自參考組成部分302B、環(huán)境組成部分304B和從屬物組成部 分306B。在一些實施例中,從屬物元應(yīng)用程序300B可額外地包括從屬物元應(yīng)用程序300B 所描述的特定內(nèi)部直接從屬物320的名稱或以其它方式標識該內(nèi)部直接從屬物320。內(nèi)部 直接從屬物320在所說明的實施例中可包括Apache網(wǎng)絡(luò)服務(wù)框架。
[0062] 自參考組成部分302B可包括指向內(nèi)部直接從屬物320的鏡像的指針322。指針 322可指定內(nèi)部直接從屬物320的鏡像的位置和/或可被重建代理用來在重建從屬于該內(nèi) 部直接從屬物320的服務(wù)的相應(yīng)源供應(yīng)商服務(wù)環(huán)境時獲取內(nèi)部直接從屬物320的鏡像。
[0063] 自參考組成部分302B可額外地包括指向從屬物元應(yīng)用程序300B本身的指針324。 指針324可指定諸如圖1的元應(yīng)用程序庫108的元應(yīng)用程序庫中的從屬物元應(yīng)用程序的位 置。
[0064] 環(huán)境組成部分304B可包括描述可被用于在目標供應(yīng)商環(huán)境中發(fā)起內(nèi)部直接從屬 物320的內(nèi)部直接從屬物320的外部上下文和配置的各種參數(shù)326。
[0065] 在一些實施例中,從屬物組成部分306B可包括內(nèi)部直接從屬物320的特定內(nèi)部直 接從屬物328的名稱或以其它方式標識該特定內(nèi)部直接從屬物328。雖然在圖3C中示出了 單個內(nèi)部直接從屬物328,但更通常地從屬物元應(yīng)用程序300B可包括一個或多個內(nèi)部直接 從屬物328??商鎿Q地或附加地,從屬物組成部分306B可包括指向與內(nèi)部直接從屬物328 相對應(yīng)的從屬元應(yīng)用程序的指針330。指針330可指定諸如圖1的元應(yīng)用程序庫108的元 應(yīng)用程序庫中的從屬物元應(yīng)用程序的位置。
[0066] 表1包括重建算法的偽代碼表示,其可在諸如圖1的目標供應(yīng)商環(huán)境106的目標 供應(yīng)商環(huán)境中被實施,以在將服務(wù)從源供應(yīng)商服務(wù)環(huán)境遷移到目標供應(yīng)商環(huán)境時重建源供 應(yīng)商環(huán)境,并且其通??膳c之前的描述一致。
[0067]
【權(quán)利要求】
1. 一種用于在目標供應(yīng)商環(huán)境中重建源供應(yīng)商服務(wù)環(huán)境的方法,該方法包括: 使用描述源供應(yīng)商環(huán)境中的服務(wù)的服務(wù)元應(yīng)用程序標識所述服務(wù)的內(nèi)部直接從屬 物; 訪問描述所述內(nèi)部直接從屬物的從屬物元應(yīng)用程序; 在目標供應(yīng)商環(huán)境中根據(jù)所述從屬物元應(yīng)用程序建立所述內(nèi)部直接從屬物; 獲取所述服務(wù)的鏡像; 將所述服務(wù)的鏡像安裝在所述目標供應(yīng)商環(huán)境中;以及 根據(jù)所述服務(wù)元應(yīng)用程序?qū)⑺龇?wù)的所安裝的所述鏡像配置為依賴于所述內(nèi)部直 接從屬物。
2. 根據(jù)權(quán)利要求1所述的方法,還包括從所述服務(wù)的持有者接收所述服務(wù)元應(yīng)用程 序。
3. 根據(jù)權(quán)利要求2所述的方法,其中所述服務(wù)元應(yīng)用程序是由所述服務(wù)的所述持有者 建立的。
4. 根據(jù)權(quán)利要求2所述的方法,其中所述服務(wù)元應(yīng)用程序至少部分地是由自動發(fā)現(xiàn)過 程建立的。
5. 根據(jù)權(quán)利要求1所述的方法,其中在所述目標供應(yīng)商環(huán)境中根據(jù)所述從屬物元應(yīng)用 程序建立所述內(nèi)部直接從屬物包括: 獲取所述內(nèi)部直接從屬物的鏡像; 安裝所述內(nèi)部直接從屬物的所述鏡像;以及 根據(jù)所述從屬物元應(yīng)用程序配置所述內(nèi)部直接從屬物的所安裝的所述鏡像。
6. 根據(jù)權(quán)利要求1所述的方法,還包括根據(jù)所述服務(wù)元應(yīng)用程序的環(huán)境組成部分中的 一個或多個參數(shù)配置所述服務(wù)的所安裝的所述鏡像。
7. 根據(jù)權(quán)利要求6所述的方法,其中所述服務(wù)元應(yīng)用程序的所述環(huán)境組成部分描述所 述服務(wù)的配置。
8. 根據(jù)權(quán)利要求7所述的方法,其中所述服務(wù)的所述配置指定以下中的至少一個:運 行時期數(shù)據(jù)庫源配置、外部服務(wù)器從屬物、外部網(wǎng)絡(luò)從屬物、所述服務(wù)的所述鏡像的部署 殼、所述服務(wù)的所述鏡像的啟動殼或所述服務(wù)的系統(tǒng)環(huán)境。
9. 根據(jù)權(quán)利要求1所述的方法,其中所述服務(wù)的所述鏡像包括在所述服務(wù)元應(yīng)用程序 中被標識的特定版本的特定軟件。
10. 根據(jù)權(quán)利要求1所述的方法,其中訪問所述從屬物元應(yīng)用程序包括從元應(yīng)用程序 庫中的位置獲取所述從屬物元應(yīng)用程序,所述位置在所述服務(wù)元應(yīng)用程序的從屬物組成部 分中被指定。
11. 根據(jù)權(quán)利要求1所述的方法,其中獲取所述服務(wù)的鏡像包括從鏡像庫中的位置獲 取所述服務(wù)的所述鏡像,所述位置在所述服務(wù)元應(yīng)用程序的自參考組成部分中被指定。
12. 根據(jù)權(quán)利要求1所述的方法,其中所述服務(wù)包括以下中的至少一個:Web服務(wù)器、基 于C++的應(yīng)用、基于PHP的應(yīng)用或MySQL服務(wù)器數(shù)據(jù)庫。
13. 根據(jù)權(quán)利要求1所述的方法,其中所述內(nèi)部直接從屬物包括以下中的至少一個: C++庫、操作系統(tǒng)、Zend PHP框架、Apache網(wǎng)絡(luò)服務(wù)框架或PHP引擎。
14. 根據(jù)權(quán)利要求1所述的方法,還包括:在標識所述內(nèi)部直接從屬物之前,解析所述 服務(wù)元應(yīng)用程序以從中提取所述服務(wù)的內(nèi)部從屬物和配置。
15. 根據(jù)權(quán)利要求1所述的方法,其中所述從屬物組成部分指定所述服務(wù)的多個內(nèi)部 直接從屬物,所述方法還包括針對所述多個內(nèi)部直接從屬物中的每一個如下進行迭代: 當所述內(nèi)部直接從屬物未存儲在執(zhí)行該迭代的重建代理本地時,通過從元應(yīng)用程序庫 獲取描述所述內(nèi)部直接從屬物的從屬物元應(yīng)用程序來訪問描述所述從屬物元應(yīng)用程序;以 及 基于所述從屬物元應(yīng)用程序建立所述內(nèi)部直接從屬物; 其中所述服務(wù)的所安裝的所述鏡像被配置為依賴于所述多個內(nèi)部直接從屬物的全部。
16. 根據(jù)權(quán)利要求1所述的方法,還包括根據(jù)被安裝且被配置的所述鏡像在所述目標 供應(yīng)商環(huán)境中開始所述服務(wù)。
17. -種具有存儲于其上的計算機可讀指令的計算機可讀存儲介質(zhì),所述計算機可讀 指令可被計算裝置執(zhí)行以執(zhí)行操作,所述操作包括: 使用描述源供應(yīng)商環(huán)境中的服務(wù)的服務(wù)元應(yīng)用程序標識所述服務(wù)的內(nèi)部直接從屬 物; 訪問描述所述內(nèi)部直接從屬物的從屬物元應(yīng)用程序; 在目標供應(yīng)商環(huán)境中根據(jù)所述從屬物元應(yīng)用程序建立所述內(nèi)部直接從屬物; 獲取所述服務(wù)的鏡像; 將所述服務(wù)的鏡像安裝在所述目標供應(yīng)商環(huán)境中;以及 根據(jù)所述服務(wù)元應(yīng)用程序?qū)⑺龇?wù)的所安裝的所述鏡像配置為依賴于所述內(nèi)部直 接從屬物。
18. 根據(jù)權(quán)利要求17所述的計算機可讀存儲介質(zhì),其中在所述目標供應(yīng)商環(huán)境中根據(jù) 所述從屬物元應(yīng)用程序建立所述內(nèi)部直接從屬物包括: 獲取所述內(nèi)部直接從屬物的鏡像; 安裝所述內(nèi)部直接從屬物的所述鏡像;以及 根據(jù)所述從屬物元應(yīng)用程序配置所述內(nèi)部直接從屬物的所安裝的所述鏡像。
19. 根據(jù)權(quán)利要求17所述的計算機可讀存儲介質(zhì),所述操作還包括根據(jù)所述元應(yīng)用程 序的環(huán)境組成部分中的一個或多個參數(shù)配置所述服務(wù)的所安裝的所述鏡像。
20. 根據(jù)權(quán)利要求19所述的計算機可讀存儲介質(zhì),其中所述服務(wù)元應(yīng)用程序的所述環(huán) 境組成部分描述所述服務(wù)的外部從屬物。
21. 根據(jù)權(quán)利要求17所述的計算機可讀存儲介質(zhì),其中所述服務(wù)的所述鏡像包括在所 述服務(wù)元應(yīng)用程序中被標識的特定版本的特定軟件。
22. -種系統(tǒng),包括: 處理裝置; 具有存儲于其上的重建代理的計算機可讀存儲介質(zhì),所述重建代理包括計算機可讀指 令,所述計算機可讀指令可被所述處理裝置執(zhí)行以執(zhí)行操作,所述操作包括: 使用描述源供應(yīng)商環(huán)境中的服務(wù)的服務(wù)元應(yīng)用程序標識所述服務(wù)的內(nèi)部直接從屬 物; 訪問描述所述內(nèi)部直接從屬物的從屬物元應(yīng)用程序; 在目標供應(yīng)商環(huán)境中根據(jù)所述從屬物元應(yīng)用程序建立所述內(nèi)部直接從屬物; 獲取所述服務(wù)的鏡像; 將所述服務(wù)的鏡像安裝在所述目標供應(yīng)商環(huán)境中;以及 根據(jù)所述服務(wù)元應(yīng)用程序?qū)⑺龇?wù)的所安裝的所述鏡像配置為依賴于所述內(nèi)部直 接從屬物。
23. 根據(jù)權(quán)利要求22所述的系統(tǒng),還包括: 鏡像庫,其被配置為通信地耦合到所述處理裝置,所述鏡像庫具有存儲于其中的所述 服務(wù)的所述鏡像;以及 元應(yīng)用程序庫,其被配置為通信地耦合到所述處理裝置,所述元應(yīng)用程序庫具有存儲 于其中的所述服務(wù)元應(yīng)用程序和所述從屬物元應(yīng)用程序。
24. 根據(jù)權(quán)利要求22所述的系統(tǒng),還包括存儲在所述計算機可讀存儲介質(zhì)上的元應(yīng)用 程序解析器,所述元應(yīng)用程序解析器包括計算機可讀指令,所述計算機可讀指令可被所述 處理裝置執(zhí)行以執(zhí)行操作,所述操作包括:解析所述服務(wù)元應(yīng)用程序以從中提取所述服務(wù) 的內(nèi)部從屬物和配置。
25. 根據(jù)權(quán)利要求22所述的系統(tǒng),其中所述服務(wù)元應(yīng)用程序包括指明所述服務(wù)元應(yīng)用 程序的持有者并包括所述服務(wù)元應(yīng)用程序的修改歷史的自參考組成部分。
26. 根據(jù)權(quán)利要求22所述的系統(tǒng),其中所述從屬物元應(yīng)用程序的位置是由所述服務(wù)元 應(yīng)用程序的從屬物組成部分中的統(tǒng)一資源標識符(URI)指定的,以及所述服務(wù)的所述鏡像 的位置是由所述服務(wù)元應(yīng)用程序的自參考組成部分中的URI指定的。
27. 根據(jù)權(quán)利要求22所述的系統(tǒng),其中所述服務(wù)的所述鏡像包括在所述服務(wù)元應(yīng)用程 序中被標識的特定版本的特定軟件。
【文檔編號】H04L29/08GK104272704SQ201280073080
【公開日】2015年1月7日 申請日期:2012年5月10日 優(yōu)先權(quán)日:2012年5月10日
【發(fā)明者】徐世杰, 宋學(xué)鋒 申請人:英派爾科技開發(fā)有限公司