两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

虛擬容器的部署和管理的制作方法

文檔序號(hào):6594721閱讀:174來源:國(guó)知局
專利名稱:虛擬容器的部署和管理的制作方法
技術(shù)領(lǐng)域
本發(fā)明通常涉及信息技術(shù)(IT)系統(tǒng),尤其是涉及用于在企業(yè)環(huán)境中部署和管理 應(yīng)用程序的系統(tǒng)和方法。
背景技術(shù)
企業(yè)環(huán)境包括多個(gè)管理端點(diǎn),例如用戶工作站、開關(guān)和路由器。該企業(yè)環(huán)境由對(duì)管 理端點(diǎn)執(zhí)行各種信息技術(shù)(IT)任務(wù)的管理計(jì)算機(jī)管理。這些任務(wù)可包括在端點(diǎn)上部署或 管理軟件應(yīng)用程序,或可包括保持端點(diǎn)安全。企業(yè)往往希望將應(yīng)用程序安全地部署到具有特定的配置的管理端點(diǎn)。還希望以安 全和受控的方式在管理端點(diǎn)上運(yùn)行應(yīng)用程序,例如符合許可限制或防止用戶不知不覺地改 變端點(diǎn)的配置。以輕便的方式部署應(yīng)用程序以便應(yīng)用程序的正確運(yùn)行不依賴于端點(diǎn)的特定 配置也可能是優(yōu)選的。所需要的是用于以安全、受控和輕便的方式將軟件安裝并維持在管理端點(diǎn)上的系 統(tǒng)和方法。

發(fā)明內(nèi)容
上述的需要由用于使用容器在管理端點(diǎn)上虛擬化應(yīng)用程序的系統(tǒng)、方法和計(jì)算機(jī) 程序產(chǎn)品滿足。管理端點(diǎn)從IT自動(dòng)化裝置接收虛擬化容器。虛擬化容器包括應(yīng)用程序和 虛擬化模塊。虛擬化模塊包括用于虛擬化應(yīng)用程序的計(jì)算機(jī)程序指令。由應(yīng)用程序在執(zhí)行 期間進(jìn)行的操作系統(tǒng)API調(diào)用被攔截,且計(jì)算機(jī)程序指令的一部分基于該操作系統(tǒng)API調(diào) 用被執(zhí)行。計(jì)算機(jī)程序指令更改應(yīng)用程序的行為,以實(shí)現(xiàn)應(yīng)用程序的文件和數(shù)據(jù)的虛擬化。 虛擬化容器以及可支持虛擬化容器的部署和更新的代理,可從IT自動(dòng)化裝被部署及更新。


圖1是一個(gè)示出在一個(gè)實(shí)施方式中包括信息技術(shù)(IT)自動(dòng)化裝置的環(huán)境的高級(jí) 圖示,該信息技術(shù)自動(dòng)化裝置用于在管理端點(diǎn)106上部署并管理容器;圖2是一個(gè)示出在一個(gè)實(shí)施方式中用于充當(dāng)裝置和/或管理端點(diǎn)的計(jì)算機(jī)的高級(jí) 方框圖;圖3是一個(gè)示出在一個(gè)實(shí)施方式中的管理端點(diǎn)的方框圖;圖4是一個(gè)示出在一個(gè)實(shí)施方式中的IT自動(dòng)化裝置的方框圖;圖5是一個(gè)示出在一個(gè)實(shí)施方式中用于使用容器來虛擬化應(yīng)用程序的方法的流 程圖6是一個(gè)示出在一個(gè)實(shí)施方式中用于在企業(yè)環(huán)境中管理容器的方法的流程圖。附圖僅為了說明的目的而描述本發(fā)明的實(shí)施方式。本領(lǐng)域技術(shù)人員將容易從下面 的描述中認(rèn)識(shí)到,可使用本文所示的結(jié)構(gòu)和方法的可選實(shí)施方式而不偏離本文所述的發(fā)明 的原理。
具體實(shí)施例方式圖1是一個(gè)示出在一個(gè)實(shí)施方式中包括用于在管理端點(diǎn)106上部署和管理容器 108的信息技術(shù)(IT)自動(dòng)化裝置102(裝置)的環(huán)境100的高級(jí)圖示。也稱為端點(diǎn)的管理 端點(diǎn)106是計(jì)算設(shè)備,例如用戶工作站或路由器。裝置102可以由例如IT職員之一的操作 員配置成部署并管理各種類型的容器108。圖1示出具有一個(gè)裝置102和兩個(gè)管理端點(diǎn)106 的環(huán)境100。然而,環(huán)境100可包括與裝置102進(jìn)行通信的數(shù)千個(gè)管理端點(diǎn)106。此外,環(huán) 境100可包括多個(gè)裝置102,一些裝置可能用于備份或負(fù)載平衡目的。裝置102和管理端點(diǎn) 106通過網(wǎng)絡(luò)104,例如互聯(lián)網(wǎng)或公司內(nèi)聯(lián)網(wǎng),進(jìn)行通信。管理端點(diǎn)106包括由裝置102提供,也稱為虛擬容器的容器108。容器108可包括 在管理端點(diǎn)106上運(yùn)行的應(yīng)用程序,例如字處理器或系統(tǒng)實(shí)用程序。容器108通過在應(yīng)用 程序和管理端點(diǎn)106的操作系統(tǒng)之間添加一層來提供虛擬化。容器108可更改應(yīng)用程序的 行為,以便使應(yīng)用程序及其數(shù)據(jù)與管理端點(diǎn)106的其余部分隔離。這可增加應(yīng)用程序的輕 便性,并防止應(yīng)用程序負(fù)面地影響管理端點(diǎn)106的其余部分(例如,通過包含在應(yīng)用程序中 的惡意軟件)。容器108也可限制應(yīng)用程序的使用以符合許可限制或?yàn)榱税踩蚱渌缽?性原因。在一個(gè)實(shí)施方式中,應(yīng)用程序的行為通過攔截應(yīng)用程序?qū)Σ僮飨到y(tǒng)所提供的API 進(jìn)行的調(diào)用來更改。容器108可由裝置102產(chǎn)生并部署到端點(diǎn)106。單個(gè)容器可被部署到 很多個(gè)端點(diǎn)106,且單個(gè)端點(diǎn)可具有多個(gè)容器(例如,用于多個(gè)應(yīng)用程序)。圖2是一個(gè)示出在一個(gè)實(shí)施方式中用于充當(dāng)裝置102和/或管理端點(diǎn)106的計(jì)算 機(jī)200的高級(jí)方框圖。此圖示出了耦合到芯片集204的至少一個(gè)處理器202。此外,存儲(chǔ)器 206、存儲(chǔ)設(shè)備208、鍵盤210、圖形適配器212、指示設(shè)備214和網(wǎng)絡(luò)適配器216也耦合到芯 片集204。顯示器218耦合到圖形適配器212。在一個(gè)實(shí)施方式中,芯片集204的功能由存 儲(chǔ)控制器集線器220和I/O控制器集線器222提供。在另一實(shí)施方式中,存儲(chǔ)器206直接 耦合到處理器202而不是芯片集204。存儲(chǔ)設(shè)備208是任何計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),例如硬盤驅(qū)動(dòng)器、光盤只讀存儲(chǔ)器 (⑶-ROM)、DVD或固態(tài)存儲(chǔ)設(shè)備。存儲(chǔ)器206保存處理器202所使用的指令和數(shù)據(jù)。指示設(shè) 備214可為鼠標(biāo)、跟蹤球或其它類型的指示設(shè)備,并與鍵盤210結(jié)合使用來將數(shù)據(jù)輸入到計(jì) 算機(jī)系統(tǒng)200中。圖形適配器212在顯示器218上顯示圖像和其它信息。網(wǎng)絡(luò)適配器216 將計(jì)算機(jī)系統(tǒng)200耦合到局域網(wǎng)或廣域網(wǎng)。如在本領(lǐng)域中已知的,計(jì)算機(jī)200可具有與圖2所示的那些部件不同的和/或除 了圖2所示的那些部件以外的部件。此外,計(jì)算機(jī)200可以缺少某些示出的部件。在一個(gè) 實(shí)施方式中,充當(dāng)裝置102的計(jì)算機(jī)200缺少鍵盤210、指示設(shè)備214、圖形適配器212和/ 或顯示器218。而且,存儲(chǔ)設(shè)備208可為本地的和/或遠(yuǎn)離計(jì)算機(jī)200(例如體現(xiàn)在存儲(chǔ)區(qū) 域網(wǎng)(SAN)內(nèi))。如在本領(lǐng)域中已知的,計(jì)算機(jī)200適合于執(zhí)行用于提供本文所述的功能的計(jì)算機(jī)程序模塊。如本文使用的,術(shù)語“模塊”指用來提供規(guī)定的功能的計(jì)算機(jī)程序邏輯。因此,模 塊可以在硬件、固件和/或軟件中實(shí)現(xiàn)。在一個(gè)實(shí)施方式中,程序模塊存儲(chǔ)在存儲(chǔ)設(shè)備208 上、被裝入存儲(chǔ)器206中,并由處理器202執(zhí)行。本文所述的實(shí)體的實(shí)施方式可包括其它模塊和/或與這里所述的模塊不同的模 塊。此外,在其它實(shí)施方式中,模塊的屬性的功能可由其它或不同的模塊執(zhí)行。而且,為了 使説明更清楚和方便,“模塊”這術(shù)語有時(shí)候在這個(gè)描述中被省略。圖3是一個(gè)示出在一個(gè)實(shí)施方式中的管理端點(diǎn)106的方框圖。如上所述,管理端 點(diǎn)106可為用戶工作站。管理端點(diǎn)106執(zhí)行操作系統(tǒng)302,例如微軟Windows Vista、Mac OS X或Linux。操作系統(tǒng)302能夠運(yùn)行各種應(yīng)用程序,并提供各種應(yīng)用程序接口(API)調(diào) 用以支持應(yīng)用程序。由OS提供的API的例子包括對(duì)運(yùn)行應(yīng)用程序、訪問文件和在顯示器上 創(chuàng)建視窗的調(diào)用。操作系統(tǒng)302包括可存儲(chǔ)各種系統(tǒng)文件、應(yīng)用程序和用戶數(shù)據(jù)的文件系 統(tǒng)304。在一個(gè)實(shí)施方式中,文件系統(tǒng)304存儲(chǔ)在管理端點(diǎn)106的存儲(chǔ)設(shè)備208上。如上所述,容器108可由裝置102部署到管理端點(diǎn)106。容器108能夠在管理端點(diǎn) 上執(zhí)行應(yīng)用程序324,同時(shí)通過虛擬化為應(yīng)用程序提供封閉式環(huán)境。管理端點(diǎn)106可具有多 個(gè)容器108A和108B。容器108可執(zhí)行多個(gè)應(yīng)用程序324,雖然為了清楚起見,下面的討論 使用了單個(gè)應(yīng)用程序。容器108的應(yīng)用程序3M包括應(yīng)用程序文件3M和應(yīng)用程序設(shè)置320。這些應(yīng)用 程序文件314包括各種可執(zhí)行文件、應(yīng)用程序數(shù)據(jù)文件和應(yīng)用程序3M執(zhí)行所需要的庫(kù)。應(yīng) 用程序設(shè)置320包括對(duì)應(yīng)用程序324的設(shè)置和選項(xiàng),例如記錄值。應(yīng)用程序設(shè)置320還可 存儲(chǔ)在文件中。各種后臺(tái)程序例如Daemons或Windows服務(wù)也可通過應(yīng)用程序文件314和 /或應(yīng)用程序設(shè)置320規(guī)定。一組應(yīng)用程序文件314和應(yīng)用程序設(shè)置320最初被包括在容器108中,但應(yīng)用程 序文件和應(yīng)用程序設(shè)置可隨著時(shí)間由執(zhí)行應(yīng)用程序3M更改。在一個(gè)實(shí)施方式中,應(yīng)用程 序文件314和應(yīng)用程序設(shè)置320包括容器108的應(yīng)用程序3M所需的所有文件和設(shè)置。這 容器被稱為“完全容器化的”容器。在沒有被完全容器化的容器108中,應(yīng)用程序3M所使 用的一些文件和設(shè)置可位于容器的外部(例如,在也被操作系統(tǒng)302使用的文件系統(tǒng)304 的一部分中)。這可能對(duì)減小容器108的大小是有用的,但這也可能減少容器的獨(dú)立性、輕 便性和安全性。在一個(gè)實(shí)施方式中,應(yīng)用程序文件314和應(yīng)用程序設(shè)置320存儲(chǔ)在容器108內(nèi)的 影子復(fù)制316中。這個(gè)影子復(fù)制316包括由應(yīng)用程序3M預(yù)期的目錄結(jié)構(gòu)。在一個(gè)實(shí)施方 式中,影子復(fù)制316存儲(chǔ)在對(duì)容器108保留的文件系統(tǒng)304的目錄中。例如,在Windows操 作系統(tǒng)中,特定容器108的文件可都位于“c:\containers\containl”目錄中。如果所包含 的應(yīng)用程序3M預(yù)期庫(kù)位于“c:\windows\system32\libxx. dll”處,則該容器108所需要 的特定的庫(kù)可被存儲(chǔ)為 “c:\containers\containl\windows\system32\libxx. dll”。文件 可實(shí)際上存在于“c:\windows\system32\libxx. dll”,然而這個(gè)文件不是容器108的部分, 且不被完全容器化的容器中的應(yīng)用程序3M使用。因?yàn)閼?yīng)用程序3M只需要某些文件,一些正常包含很多文件的影子復(fù)制316的目 錄(例如,系統(tǒng)文件目錄)可只包含很少的文件。此外,一些可能是空的目錄,可在如果任 何文件需要由應(yīng)用程序3M創(chuàng)建時(shí)加以利用。空目錄提供應(yīng)用程序324的預(yù)期目錄結(jié)構(gòu)。
7在沒有被完全容器化的容器108中,如果所需要的文件沒有在影子復(fù)制316中找到,它可從 文件系統(tǒng)304的其余部分搜索到。容器108可包括用于啟動(dòng)應(yīng)用程序3 的初始用戶界面322,例如鏈結(jié)。一個(gè)鏈接 到到應(yīng)用程序文件314內(nèi)的適當(dāng)可執(zhí)行文件的鏈結(jié)免卻用戶必須行進(jìn)到影子復(fù)制316中的 位置以啟動(dòng)應(yīng)用程序324,并從用戶的觀點(diǎn)看維持應(yīng)用程序直接在操作系統(tǒng)302上運(yùn)行的 現(xiàn)象。初始用戶界面322可以是鏈結(jié)、快捷方式、URL或放置在方便的位置處例如用戶桌面 上的其它用戶界面元素。薄膜310和虛擬化模塊312與容器初始化模塊318協(xié)作實(shí)現(xiàn)容器108的虛擬化功 能。虛擬化功能可更改應(yīng)用程序功能(如應(yīng)用程序文件314和應(yīng)用程序設(shè)置320所提供的 應(yīng)用程序功能)以實(shí)現(xiàn)例如數(shù)據(jù)隔離、容器管理或應(yīng)用程序用戶接口的更改。容器初始化模塊318開始容器108的虛擬化功能。在一個(gè)實(shí)施方式中,容器初始 化模塊318在應(yīng)用程序被執(zhí)行時(shí)被調(diào)用。容器初始化模塊318確定最近執(zhí)行的應(yīng)用程序是 否是來自容器108內(nèi)的應(yīng)用程序,或是直接安裝在操作系統(tǒng)302中(即,不在容器中)的應(yīng) 用程序。如果它被確定為不在容器108中的應(yīng)用程序,則容器初始化模塊318允許應(yīng)用程 序正常執(zhí)行而不加以干預(yù)。如果它被確定為在容器108內(nèi)的應(yīng)用程序324,則容器初始化模 塊313識(shí)別容器108并執(zhí)行或啟動(dòng)該容器的虛擬化模塊312 (在下面進(jìn)一步描述)。容器初 始化模塊318接著可允許應(yīng)用程序324的執(zhí)行繼續(xù)進(jìn)行。容器初始化模塊318安裝在管理端點(diǎn)106的操作系統(tǒng)302中,并可由管理端點(diǎn)上 的多個(gè)容器108使用。在一個(gè)實(shí)施方式中,每當(dāng)新的應(yīng)用程序被啟動(dòng)時(shí),操作系統(tǒng)302就通 知容器初始化模塊318。容器初始化模塊318可與操作系統(tǒng)302掛鉤,以便接收這些通知。 在一個(gè)實(shí)施方式中,容器初始化模塊318監(jiān)控操作系統(tǒng)302的行動(dòng)以確定新的應(yīng)用程序何 時(shí)被啟動(dòng)。容器初始化模塊318可根據(jù)在文件系統(tǒng)304中的應(yīng)用程序的位置來確定應(yīng)用程 序是否容器108的一部分。在一個(gè)實(shí)施方式中,容器初始化模塊318可維持安裝在端點(diǎn)上 的容器化的應(yīng)用程序324的簽名的列表,并使用該列表來確定最近執(zhí)行的應(yīng)用程序是否被 容器化。虛擬化模塊312為特定的容器108提供虛擬化功能。虛擬化模塊312可充當(dāng)管理 應(yīng)用程序324的一種管理程序。虛擬化模塊312在執(zhí)行應(yīng)用程序3M和操作系統(tǒng)302之間 插入一層,允許根據(jù)如上所述管理政策(例如,由于安全或許可原因的限制使用,改變應(yīng)用 程序外觀,等等)控制和抑制應(yīng)用程序。在一個(gè)實(shí)施方式中,虛擬模塊312使代碼與各種OS API調(diào)用掛鉤以攔截這些調(diào)用并執(zhí)行期望的操作。在一個(gè)實(shí)施方式中,虛擬化模塊312在后 臺(tái)執(zhí)行并監(jiān)控應(yīng)用程序以攔截OS API調(diào)用。虛擬化模塊312可配置成只攔截與同一容器 108相關(guān)的來自應(yīng)用程序324的OS API調(diào)用,以盡量減少在處理器202上的任何額外的載 荷或其它系統(tǒng)性能的降低。在一個(gè)實(shí)施方式中,虛擬化模塊312攔截來自容器108的應(yīng)用程序324的OS API 調(diào)用。例如,如果應(yīng)用程序3 進(jìn)行OS API調(diào)用以將文件寫到文件系統(tǒng)304,則這個(gè)OS API 調(diào)用由虛擬化模塊312攔截。虛擬化模塊312中的代碼可接著使寫入出現(xiàn)在不同的位置 處。這可用以保持文件與影子復(fù)制316內(nèi)的容器108相關(guān)并與文件系統(tǒng)的其余部分隔離, 并且,當(dāng)應(yīng)用程序不在容器中時(shí),對(duì)用戶維持文件被寫到正常的位置的現(xiàn)象。例如,如果用 戶將文件保存到 "c:\program_files\wordprocessor\userfiles\docl. txt“,應(yīng)用程序因此進(jìn)行 OS API 調(diào)用以將文件寫到 “c:\program_files\wordprocessor\userfiles\docl. txt”,則虛擬化模塊312可攔截該調(diào)用,并更改該調(diào)用的文件名參數(shù),以使文件實(shí)際上被寫 到"c \containers\containl\program_f iles\wordprocessor\userf iles\docl. txt,,。虛 擬化模塊312可對(duì)其它文件操作例如文件讀取執(zhí)行類似的重定向。這些重定向可根據(jù)容器 是否如上所述被完全容器化或部分容器化來不同地執(zhí)行。虛擬化模塊312也可攔截并更改其它類型的OS API調(diào)用??杀桓牡钠渲幸活?的OS API調(diào)用是導(dǎo)向到管理端點(diǎn)的顯示器218的調(diào)用。例如,應(yīng)用程序視窗的標(biāo)題欄可被 更改以說明應(yīng)用程序3M在容器108中運(yùn)行。虛擬化模塊312也可為了安全或許可原因而 限制應(yīng)用程序324的使用。例如,在網(wǎng)頁(yè)瀏覽應(yīng)用程序中,如果用戶試圖下載可能危險(xiǎn)的 可執(zhí)行文件,瀏覽器所調(diào)用的從遠(yuǎn)程位置取回文件的OS API功能可被攔截,且操作可被阻 止,或可在確定是否允許OS API調(diào)用繼續(xù)進(jìn)行之前對(duì)文件執(zhí)行進(jìn)一步的檢查。當(dāng)應(yīng)用程序 3 被執(zhí)行時(shí),容器虛擬化模塊318可以調(diào)用虛擬化模塊312中的初始化功能。初始化功能 在應(yīng)用程序3M被執(zhí)行時(shí)可為特定的用戶建立用戶環(huán)境,且在應(yīng)用程序被終止時(shí)可整理環(huán) 境。初始化功能可啟動(dòng)任何所需的服務(wù)或deamons。薄膜310可包括指定容器108的行為的信息。在薄膜310中的信息可由虛擬化模 塊312讀取,以確定虛擬化模塊312在攔截API調(diào)用或初始化用戶環(huán)境時(shí)應(yīng)采取什么行動(dòng)。 薄膜310可規(guī)定對(duì)應(yīng)用程序324的各種用戶偏好,并可規(guī)定對(duì)應(yīng)用程序的外觀進(jìn)行的各種 更改。使用于網(wǎng)頁(yè)瀏覽器應(yīng)用程序時(shí),薄膜可包括被列入白名單或被列入黑名單的網(wǎng)站的 列表。當(dāng)API被網(wǎng)頁(yè)瀏覽器應(yīng)用程序調(diào)用以從用戶指定的網(wǎng)站取回?cái)?shù)據(jù)時(shí),虛擬化模塊312 可攔截該調(diào)用,并可在薄膜310中檢查網(wǎng)站的列表,以在允許API調(diào)用繼續(xù)進(jìn)行之前確定網(wǎng) 站是否被列入黑名單。薄膜310可包括基于軟件許可證或公司政策的使用限制。虛擬化模塊312可查詢 這些限制以確定是否允許特定API調(diào)用或是否允許應(yīng)用程序執(zhí)行。薄膜310還可存儲(chǔ)虛擬 化模塊312所收集的使用信息。例如,在網(wǎng)頁(yè)瀏覽器應(yīng)用程序中,每當(dāng)用戶訪問網(wǎng)站時(shí),虛 擬化模塊312可將網(wǎng)站的名稱存儲(chǔ)在薄膜310中。代理306通過網(wǎng)絡(luò)104與裝置102進(jìn)行通信,并對(duì)管理端點(diǎn)106執(zhí)行由裝置102指 示的各種管理功能,。代理306還可將來自管理端點(diǎn)106的信息提供到裝置102。代理306 可安裝在管理端點(diǎn)106上作為端點(diǎn)的初始建立過程的部分。代理306可將容器初始化模塊 318安裝在管理端點(diǎn)106上(例如,在從裝置102下載模塊之后)。代理306還可將從裝置 102接收的容器108安裝在管理端點(diǎn)106上。容器108的影子復(fù)制316可如上所述存儲(chǔ)在 容器的影子復(fù)制的指定位置處。容器108的薄膜310和虛擬化模塊312可存儲(chǔ)在用戶不可 寫入的文件系統(tǒng)304中的特定位置上。代理306也可更新裝置102所指示的容器。例如,裝置102可將命令發(fā)送到代理 306,以如上所述,將某些網(wǎng)站添加到網(wǎng)頁(yè)瀏覽器應(yīng)用程序的黑名單。響應(yīng)于該命令,代理 306可更改薄膜310中的數(shù)據(jù)以包括網(wǎng)站作為被列入黑名單的網(wǎng)站。此外,代理306可在薄 膜310中設(shè)置開關(guān),以根據(jù)來自裝置102的命令啟用或禁止應(yīng)用程序3M執(zhí)行。這允許管 理員容易啟用或禁止應(yīng)用程序3M在端點(diǎn)106上的執(zhí)行(包括在應(yīng)用程序被執(zhí)行時(shí)立即禁 用應(yīng)用程序)。代理306也可從端點(diǎn)106移除容器108。如果與容器108相關(guān)的文件限于 影子復(fù)制316,該移除可能涉及影子復(fù)制的簡(jiǎn)單刪除(以及薄膜310和虛擬化模塊312的移除),而不影響操作系統(tǒng)302或其它應(yīng)用程序。有時(shí)候,虛擬模塊312的更新可被產(chǎn)生并存儲(chǔ),用于分布在裝置102處。代理306 有時(shí)可在端點(diǎn)106處檢查裝置102以找到容器108中的虛擬化模塊312的更新版本。這個(gè) 檢查可通過例如比較版本號(hào)或文件簽名來完成。如果代理306確定有更新的虛擬化模塊 312,代理可下載其虛擬化模塊并安裝它來代替當(dāng)前的虛擬化模塊。代理306可類似地更新 薄膜310、應(yīng)用程序文件314和應(yīng)用程序設(shè)置316。用于虛擬化應(yīng)用程序的如上所述的容器108的使用可防止用戶執(zhí)行危險(xiǎn)或被禁 止的行動(dòng),并可監(jiān)控和限制應(yīng)用程序324的使用。容器108也可將應(yīng)用程序324的任何影 響(包括惡意軟件的影響)保持在影子復(fù)制316內(nèi),并保護(hù)的管理端點(diǎn)106和環(huán)境100的 其余部分。容器108還通過在部署時(shí)為影子復(fù)制316內(nèi)的應(yīng)用程序提供必要的文件來增加 應(yīng)用程序324的輕便性。在一個(gè)實(shí)施方式中,容器108可安裝在來自便攜式存儲(chǔ)設(shè)備的管 理端點(diǎn)106上。圖4是一個(gè)示出在一個(gè)實(shí)施方式中的IT自動(dòng)化裝置102的方框圖。如上所述,裝 置104可用于在管理端點(diǎn)106上創(chuàng)建、部署和管理容器108。在一個(gè)實(shí)施方式中,容器創(chuàng)建模塊402用于創(chuàng)建將被部署在管理端點(diǎn)106上的容 器108。系統(tǒng)管理員可將特定應(yīng)用程序324(例如,字處理應(yīng)用程序)的安裝程序提供到容 器創(chuàng)建模塊402。這個(gè)安裝程序可包括包含應(yīng)用程序文件以及安裝腳本或可執(zhí)行程序的程 序包。一個(gè)例子是由微軟公司創(chuàng)建的Windows安裝器所使用的“MSI”文件。系統(tǒng)管理員也 可將額外的信息提供給容器創(chuàng)建模塊402,以使它能夠執(zhí)行安裝程序并創(chuàng)建容器108。這個(gè) 額外的信息可指定運(yùn)行該安裝的操作系統(tǒng)(例如,微軟Windows)以及被提供給安裝程序的 各種選項(xiàng)或參數(shù)。額外的信息也可指定升級(jí)機(jī)器(例如,使用IP地址),安裝程序可在升級(jí) 機(jī)器上運(yùn)行來創(chuàng)建容器108。在一個(gè)實(shí)施方式中,升級(jí)機(jī)器可以是裝置104本身。容器創(chuàng)建模塊402包括捕獲模塊414,其可在升級(jí)程序上的安裝程序的執(zhí)行期間 捕獲各種事件。捕獲模塊414捕獲在安裝期間創(chuàng)建的各種文件(例如,應(yīng)用程序和庫(kù))及 其在文件系統(tǒng)內(nèi)的位置。捕獲模塊414也捕獲對(duì)環(huán)境中的設(shè)置例如保存到寄存器的設(shè)置進(jìn) 行的更改。在一個(gè)實(shí)施方式中,捕獲模塊414捕獲一些或全部安裝程序的輸入和輸?shù)某霾?作。捕獲模塊414可觀察安裝程序的運(yùn)行時(shí)間邏輯,并可確定應(yīng)用程序需要哪些文件、庫(kù)和 設(shè)置。例如,捕獲模塊414可觀察安裝程序以檢查某些庫(kù)的存在的,即使那些庫(kù)不是由安裝 程序創(chuàng)建的。捕獲模塊414也可觀察并捕獲在安裝期間創(chuàng)建的任何服務(wù)或其它實(shí)體。在一 個(gè)實(shí)施方式中,捕獲模塊414與各種系統(tǒng)調(diào)用掛鉤以執(zhí)行其監(jiān)控和捕獲功能。容器創(chuàng)建模塊402根據(jù)來自捕獲模塊414的信息來創(chuàng)建影子復(fù)制316。影子復(fù)制 316包括如捕獲模塊414所確定的各種文件、設(shè)置、服務(wù)和安裝程序所創(chuàng)建的其它實(shí)體。影 子復(fù)制316還可包括應(yīng)用程序所需的其它文件或設(shè)置。如果容器108被配置為如上所述的 “完全容器化的”容器,所有這樣的文件都可被包括。如果它不是“完全容器化的”,可從影 子復(fù)制316省略可能已經(jīng)存在于管理端點(diǎn)上(例如,在操作系統(tǒng)目錄中)的文件。在一個(gè)實(shí)施方式中,容器創(chuàng)建模塊402還接收虛擬化模塊312和薄膜310??墒?用標(biāo)準(zhǔn)或定制的發(fā)展工具創(chuàng)建并編譯包含更改各種API調(diào)用并執(zhí)行其它功能的代碼的虛 擬化模塊312??赏ㄟ^以虛擬模塊312所理解的特定格式保存系統(tǒng)管理員所指定的各種容 器設(shè)置來創(chuàng)建薄膜310。在一個(gè)實(shí)施方式中,容器創(chuàng)建模塊302將影子復(fù)制316,、虛擬模塊312和薄膜310封裝在一起以形成容器108。容器創(chuàng)建模塊402可將所創(chuàng)建的容器108存 儲(chǔ)在容器數(shù)據(jù)庫(kù)410中用于以后的部署。容器數(shù)據(jù)庫(kù)410包括容器創(chuàng)建模塊402所創(chuàng)建的容器108。這可包括影子復(fù)制 316 (包括文件和設(shè)置)、虛擬化模塊312和薄膜310。它還可包括每個(gè)容器108的各種屬 性,例如在容器內(nèi)的應(yīng)用程序的名稱,以及容器可運(yùn)行的可能的平臺(tái)和操作系統(tǒng)。系統(tǒng)管理 員可進(jìn)接到容器數(shù)據(jù)庫(kù)410,并在選擇容器108以部署到端點(diǎn)106時(shí)根據(jù)屬性搜索。部署模塊406將存儲(chǔ)在容器數(shù)據(jù)庫(kù)410中的容器108部署到不同的管理端點(diǎn)。部 署可由系統(tǒng)管理員單獨(dú)地指定,或可根據(jù)腳本或其它標(biāo)準(zhǔn)被自動(dòng)化。單個(gè)容器108可被部 署到數(shù)千個(gè)管理端點(diǎn)106。部署模塊406將容器108安裝在管理端點(diǎn)106上,并將它配置 成使得在容器內(nèi)的應(yīng)用程序3M可由用戶在管理端點(diǎn)106處容易執(zhí)行。部署也可由用戶在 管理端點(diǎn)106處發(fā)起。在這種情況下,用戶可接觸裝置102并請(qǐng)求部署。用戶可下載將容 器108——包括影子復(fù)制316、薄膜310和虛擬模塊312——安裝在管理端點(diǎn)106上的自我 執(zhí)行文件。部署模塊406可與管理端點(diǎn)106上的代理306協(xié)作以部署容器108。例如,部署模 塊406可通過網(wǎng)絡(luò)104將容器發(fā)送到代理306。如上所述,代理306將影子復(fù)制316置于 對(duì)文件系統(tǒng)304中的容器指定的特定位置處。代理306也將薄膜310和虛擬化模塊312置 于適當(dāng)?shù)奈恢锰?。代?06也例如通過將快捷方式添加到用戶的桌面來創(chuàng)建初始用戶界面 322。容器管理器408管理被部署到管理端點(diǎn)106的容器108。容器管理器408可通過 管理端點(diǎn)106上的代理306來管理容器。容器管理器408可發(fā)送啟用或禁止容器108實(shí)施 對(duì)應(yīng)用程序的使用限制的命令。這使薄膜310中的數(shù)據(jù)如上所述被更改。容器管理器408 可從薄膜310取回使用數(shù)據(jù)。容器管理器408可提供薄膜310、虛擬化模塊312或影子復(fù)制 316的更新的版本。這些更新可如上所述改變應(yīng)用程序324的行為或容器108的虛擬化功 能。容器管理器408也可使在管理端點(diǎn)上的容器重新閃爍,以使容器返回到如被部署時(shí)的 其初始狀態(tài)。這對(duì)開始發(fā)生故障且不能被容易修復(fù)的應(yīng)用程序可能是有用的。重新閃爍可 通過將容器再次部署到管理端點(diǎn)來實(shí)現(xiàn)。用戶界面模塊可用于由系統(tǒng)管理員控制容器創(chuàng)建模塊402、部署模塊406或容器 管理器408的任何一個(gè)。通過用戶界面模塊412,系統(tǒng)管理員可在環(huán)境100中將容器創(chuàng)建、 部署并管理到管理端點(diǎn)。圖5是在一個(gè)實(shí)施方式中示出用于使用容器108來虛擬化應(yīng)用程序的方法的流程 圖。在管理端點(diǎn)106處的用戶執(zhí)行容器化的應(yīng)用程序324(即具有容器108的應(yīng)用程序)。 在一個(gè)實(shí)施方式中,容器初始化模塊318識(shí)別容器化的應(yīng)用程序3M的執(zhí)行(502)。容器初 始化模塊318通過執(zhí)行容器108的虛擬化模塊312來初始化應(yīng)用程序3M的虛擬化(504)。 虛擬化模塊312可執(zhí)行設(shè)置功能,例如啟動(dòng)所需的服務(wù)或準(zhǔn)備用戶環(huán)境。虛擬化模塊312通 過例如掛鉤或監(jiān)控來自執(zhí)行應(yīng)用程序324的API調(diào)用來攔截這些調(diào)用(506)。對(duì)于被攔截 的API調(diào)用,虛擬化模塊312確定執(zhí)行關(guān)于API調(diào)用的行動(dòng)(508)。例如,虛擬化模塊312 可確定允許調(diào)用未改變地繼續(xù)進(jìn)行,阻止調(diào)用,更改調(diào)用的參數(shù),或進(jìn)行其它API調(diào)用。虛 擬化模塊312可使用薄膜310中的信息來確定要執(zhí)行的行動(dòng)。虛擬化模塊312接著執(zhí)行所 確定的行動(dòng)(510)。
11
圖6是一個(gè)示出在一個(gè)實(shí)施方式中用于在企業(yè)環(huán)境100中管理容器108的方法的 流程圖。容器創(chuàng)建模塊402用于創(chuàng)建應(yīng)用程序的容器(602),其中容器108包括具有應(yīng)用 程序文件的影子復(fù)制316和用于提供虛擬化應(yīng)用程序的功能的虛擬化模塊312。影子復(fù)制 316可通過在升級(jí)機(jī)器上運(yùn)行應(yīng)用程序安裝程序來創(chuàng)建。容器108透過使用部署模塊406 被部署到管理端點(diǎn)106(604)。該部署可由用戶在管理端點(diǎn)106處發(fā)起。在管理端點(diǎn)106處 的容器108由容器管理器408管理(606)。該管理可包括例如啟用容器108、禁用容器、從 容器取回使用信息、或更新容器(包括應(yīng)用程序324、虛擬化模塊312和薄膜310)。上面的描述被包括以示出優(yōu)選實(shí)施方式的操作,且并不意味著限制本發(fā)明的范 圍。本發(fā)明的范圍僅由下面的權(quán)利要求限制。從上面的討論中,對(duì)相關(guān)領(lǐng)域的技術(shù)人員來 說,由本發(fā)明的精神和范圍包括的很多變化將是明顯的。
權(quán)利要求
1.一種用于使用容器來虛擬化計(jì)算機(jī)上的應(yīng)用程序的計(jì)算機(jī)實(shí)現(xiàn)的方法,所述方法包括從遠(yuǎn)程計(jì)算機(jī)接收虛擬化容器,所述虛擬化容器包括應(yīng)用程序和虛擬化模塊,所述虛 擬化模塊包括用于虛擬化所述應(yīng)用程序的計(jì)算機(jī)程序指令;在所述應(yīng)用程序的執(zhí)行期間攔截由所述應(yīng)用程序進(jìn)行的操作系統(tǒng)應(yīng)用程序接口(API) 調(diào)用;以及根據(jù)所述操作系統(tǒng)API調(diào)用執(zhí)行所述虛擬化模塊的所述計(jì)算機(jī)程序指令的一部分,其 中所述計(jì)算機(jī)程序指令更改所述應(yīng)用程序的行為以實(shí)現(xiàn)所述應(yīng)用程序的虛擬化。
2.如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括 確定所述應(yīng)用程序已開始執(zhí)行;以及響應(yīng)于確定所述應(yīng)用程序已開始執(zhí)行,執(zhí)行初始化功能,所述初始化功能包括為包括 在所述虛擬化容器中的所述應(yīng)用程序的用戶建立環(huán)境。
3.如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述計(jì)算機(jī)程序指令的被執(zhí)行部分防 止所述應(yīng)用程序訪問惡意軟件。
4.如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括使所述虛擬化容器重新閃爍以使所述虛擬化容器返回到其初始狀態(tài)。
5.如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括 確定新的應(yīng)用程序已開始在所述計(jì)算機(jī)上執(zhí)行;確定所述新的應(yīng)用程序是虛擬化容器的部分;以及響應(yīng)于確定所述新的應(yīng)用程序是所述虛擬化容器的部分,使用于虛擬化所述應(yīng)用程序 的所述計(jì)算機(jī)程序指令與適當(dāng)?shù)牟僮飨到y(tǒng)API調(diào)用掛鉤。
6.一種用于在計(jì)算環(huán)境中向管理端點(diǎn)提供虛擬化應(yīng)用程序的計(jì)算機(jī)實(shí)現(xiàn)的方法,所述 方法包括將代理部署到管理端點(diǎn),所述代理適合于在所述管理端點(diǎn)上執(zhí)行以支持虛擬化容器到 所述端點(diǎn)的部署;以及響應(yīng)于所述代理將包含應(yīng)用程序的虛擬化容器部署到所述管理端點(diǎn),其中所述虛擬化 容器包括計(jì)算機(jī)程序指令,當(dāng)所述計(jì)算機(jī)程序指令在所述管理端點(diǎn)上被執(zhí)行時(shí)虛擬化所述 應(yīng)用程序,所述虛擬化包括在所述應(yīng)用程序的執(zhí)行期間攔截由所述應(yīng)用程序進(jìn)行的操作系統(tǒng)應(yīng)用程序接口(API) 調(diào)用;以及更改所述應(yīng)用程序的行為以實(shí)現(xiàn)所述應(yīng)用程序的虛擬化。
7.如權(quán)利要求6所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括在所述管理端點(diǎn)處更新所部署的虛擬化容器,所述更新包括向管理端點(diǎn)提供用于虛擬 化所述應(yīng)用程序的計(jì)算機(jī)程序指令,其中所更新的計(jì)算機(jī)程序指令實(shí)現(xiàn)所述應(yīng)用程序的更 新的管理政策。
8.一種用于使用容器虛擬化計(jì)算機(jī)上的應(yīng)用程序的系統(tǒng),所述系統(tǒng)包括存儲(chǔ)可執(zhí)行計(jì)算機(jī)程序模塊的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述可執(zhí)行計(jì)算機(jī)程序模塊包括用于從遠(yuǎn)程計(jì)算機(jī)接收虛擬化容器的模塊,所述虛擬化容器包括應(yīng)用程序和虛擬化模塊,所述虛擬化模塊包括用于虛擬化所述應(yīng)用程序的計(jì)算機(jī)程序指令;用于在所述應(yīng)用程序的執(zhí)行期間攔截由所述應(yīng)用程序進(jìn)行的操作系統(tǒng)應(yīng)用程序接口 (API)調(diào)用的模塊;以及用于根據(jù)所述操作系統(tǒng)API調(diào)用執(zhí)行所述虛擬化模塊的所述計(jì)算機(jī)程序指令的一部 分的模塊,其中所述計(jì)算機(jī)程序指令更改所述應(yīng)用程序的行為以實(shí)現(xiàn)所述應(yīng)用程序的虛擬 化。
9.如權(quán)利要求8所述的系統(tǒng),還包括 用于確定所述應(yīng)用程序已開始執(zhí)行的模塊;以及用于響應(yīng)于確定所述應(yīng)用程序已開始執(zhí)行而執(zhí)行初始化功能的模塊,所述初始化功能 包括為包括在所述虛擬化容器中的所述應(yīng)用程序的用戶建立環(huán)境。
10.如權(quán)利要求8所述的系統(tǒng),其中所述計(jì)算機(jī)程序指令的被執(zhí)行部分防止所述應(yīng)用 程序訪問惡意軟件。
11.如權(quán)利要求8所述的系統(tǒng),還包括用于使所述虛擬化容器重新閃爍以使所述虛擬化容器返回到其初始狀態(tài)的模塊。
12.如權(quán)利要求8所述的系統(tǒng),還包括用于確定新的應(yīng)用程序已開始在所述計(jì)算機(jī)上執(zhí)行的模塊; 用于確定所述新的應(yīng)用程序是虛擬化容器的部分的模塊;以及 用于響應(yīng)于確定所述新的應(yīng)用程序是所述虛擬化容器的部分來使用于虛擬化所述應(yīng) 用程序的所述計(jì)算機(jī)程序指令與適當(dāng)?shù)牟僮飨到y(tǒng)API調(diào)用掛鉤的模塊。
13.一種用于在計(jì)算環(huán)境中向管理端點(diǎn)提供虛擬化應(yīng)用程序的系統(tǒng),所述系統(tǒng)包括信 息技術(shù)(IT)裝置,所述IT裝置用于將代理部署到管理端點(diǎn),所述代理適合于在所述管理端點(diǎn)上執(zhí)行以支持虛擬化容器到 所述端點(diǎn)的部署;以及響應(yīng)于所述代理將包含應(yīng)用程序的虛擬化容器部署到所述管理端點(diǎn),其中所述虛擬化 容器包括計(jì)算機(jī)程序指令,當(dāng)所述計(jì)算機(jī)程序指令在所述管理端點(diǎn)上被執(zhí)行時(shí)虛擬化所述 應(yīng)用程序,所述虛擬化包括在所述應(yīng)用程序的執(zhí)行期間攔截由所述應(yīng)用程序進(jìn)行的操作系統(tǒng)應(yīng)用程序接口(API) 調(diào)用;以及更改所述應(yīng)用程序的行為以實(shí)現(xiàn)所述應(yīng)用程序的虛擬化。
14.如權(quán)利要求13所述的系統(tǒng),其中所述IT裝置還被配置以便用于在所述管理端點(diǎn)處更新所部署的虛擬化容器,所述更新包括向管理端點(diǎn)提供用于虛擬 化所述應(yīng)用程序的計(jì)算機(jī)程序指令,其中所更新的計(jì)算機(jī)程序指令實(shí)現(xiàn)所述應(yīng)用程序的更 新的管理政策。
15.一種具有計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)具有 在其上記錄的用于使用容器虛擬化計(jì)算機(jī)上的應(yīng)用程序的可執(zhí)行計(jì)算機(jī)程序指令,所述計(jì) 算機(jī)程序產(chǎn)品包括用于從遠(yuǎn)程計(jì)算機(jī)接收虛擬化容器的模塊,所述虛擬化容器包括應(yīng)用程序和虛擬化模 塊,所述虛擬化模塊包括用于虛擬化所述應(yīng)用程序的計(jì)算機(jī)程序指令;用于在所述應(yīng)用程序的執(zhí)行期間攔截由所述應(yīng)用程序進(jìn)行的操作系統(tǒng)應(yīng)用程序接口(API)調(diào)用的模塊;以及用于根據(jù)所述操作系統(tǒng)API調(diào)用執(zhí)行所述虛擬化模塊的所述計(jì)算機(jī)程序指令的一部 分的模塊,其中所述計(jì)算機(jī)程序指令更改所述應(yīng)用程序的行為以實(shí)現(xiàn)所述應(yīng)用程序的虛擬 化。
16.如權(quán)利要求15所述的計(jì)算機(jī)程序產(chǎn)品,還包括 用于確定所述應(yīng)用程序已開始執(zhí)行的模塊;以及用于響應(yīng)于確定所述應(yīng)用程序已開始執(zhí)行而執(zhí)行初始化功能的模塊,所述初始化功能 包括為包括在所述虛擬化容器中的所述應(yīng)用程序的用戶建立環(huán)境。
17.如權(quán)利要求15所述的計(jì)算機(jī)程序產(chǎn)品,其中所述計(jì)算機(jī)程序指令的被執(zhí)行部分防 止所述應(yīng)用程序訪問惡意軟件。
18.如權(quán)利要求15所述的計(jì)算機(jī)程序產(chǎn)品,還包括用于使所述虛擬化容器重新閃爍以使所述虛擬化容器返回到其初始狀態(tài)的模塊。
19.如權(quán)利要求15所述的計(jì)算機(jī)程序產(chǎn)品,還包括用于確定新的應(yīng)用程序已開始在所述計(jì)算機(jī)上執(zhí)行的模塊; 用于確定所述新的應(yīng)用程序是虛擬化容器的部分的模塊;以及 用于響應(yīng)于確定所述新的應(yīng)用程序是所述虛擬化容器的部分來使用于虛擬化所述應(yīng) 用程序的所述計(jì)算機(jī)程序指令與適當(dāng)?shù)牟僮飨到y(tǒng)API調(diào)用掛鉤的模塊。
全文摘要
系統(tǒng)使用容器虛擬化管理端點(diǎn)上的應(yīng)用程序。管理端點(diǎn)從IT自動(dòng)化裝置接收虛擬化容器。虛擬化容器包括應(yīng)用程序和虛擬化模塊。虛擬化模塊包括用于虛擬化應(yīng)用程序的計(jì)算機(jī)程序指令。應(yīng)用程序在執(zhí)行期間所進(jìn)行的操作系統(tǒng)API調(diào)用被攔截,且計(jì)算機(jī)程序指令的一部分基于操作系統(tǒng)API調(diào)用而被執(zhí)行。計(jì)算機(jī)程序指令更改應(yīng)用程序的行為以實(shí)現(xiàn)應(yīng)用程序的文件和數(shù)據(jù)虛擬化。虛擬化容器以及可支持虛擬化容器的部署和更新的代理,可從IT自動(dòng)化裝置被部署及更新。
文檔編號(hào)G06F3/00GK102150105SQ200980135139
公開日2011年8月10日 申請(qǐng)日期2009年9月9日 優(yōu)先權(quán)日2008年9月9日
發(fā)明者M·R·格雷, M·卡辛, M·賴特 申請(qǐng)人:凱思網(wǎng)絡(luò)公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
腾冲县| 诸暨市| 新郑市| 广州市| 蒙自县| 广汉市| 台东县| 南宫市| 林周县| 东兴市| 湘西| 宜阳县| 丹凤县| 鄂托克旗| 班玛县| 绥芬河市| 桑日县| 循化| 秀山| 观塘区| 兰坪| 全南县| 云和县| 韩城市| 姜堰市| 红河县| 南安市| 紫金县| 阿拉尔市| 叶城县| 永康市| 峨边| 交口县| 田东县| 嫩江县| 九台市| 石首市| 阿合奇县| 重庆市| 平阴县| 独山县|