欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于諸如web應(yīng)用之類的服務(wù)器應(yīng)用的虛擬環(huán)境的制作方法

文檔序號:6359775閱讀:194來源:國知局
專利名稱:用于諸如web應(yīng)用之類的服務(wù)器應(yīng)用的虛擬環(huán)境的制作方法
用于諸如WEB應(yīng)用之類的服務(wù)器應(yīng)用的虛擬環(huán)境背景虛擬化指的是物理硬件對虛擬機的執(zhí)行然后在虛擬機上運行操作系統(tǒng)和應(yīng)用。虛擬機可以表示硬件功能的最少共同點或者可以表示易于為其準(zhǔn)備操作系統(tǒng)(OS)和應(yīng)用的公知配置。許多數(shù)據(jù)中心使用虛擬化來隨著資源需求增長、為了維護周期、以及平衡物理服務(wù)器負(fù)載而能夠容易地將虛擬機移動到新的物理硬件。虛擬化對于許多情形是有用的,但也可能施加由于許多虛擬機爭用相同資源(例如,中央處理單元(CPU)、存儲器和網(wǎng)絡(luò)接口卡(NIC))而出現(xiàn)的限制。應(yīng)用虛擬化在單個應(yīng)用的級別上提供虛擬環(huán)境,將該應(yīng)用與底層OS隔離,類似于虛擬機將OS與底層硬件隔離的方式。例如,操作系統(tǒng)可本機地運行一些應(yīng)用,而同時提供運行其它應(yīng)用的虛擬環(huán)境。這可以允許操作系統(tǒng)例如運行為不同操作系統(tǒng)所設(shè)計的應(yīng)用。應(yīng)用虛擬化在主機操作系統(tǒng)中本機運行的應(yīng)用和在虛擬環(huán)境中運行的應(yīng)用之間模糊了對 用戶的區(qū)別。例如,兩類應(yīng)用可以并排出現(xiàn)在操作系統(tǒng)外殼所提供的任務(wù)欄或菜單中。例如,微軟應(yīng)用虛擬化(Application Virtualization (App-V))將應(yīng)用轉(zhuǎn)換成未安裝且與其他應(yīng)用不沖突的集中管理的虛擬服務(wù)。在物理環(huán)境中,每一應(yīng)用依賴于其操作系統(tǒng)(OS)來獲得某一范圍的服務(wù),包括存儲器分配、設(shè)備驅(qū)動程序以及更多。應(yīng)用及其OS之間的不兼容性可通過服務(wù)器虛擬化或是呈現(xiàn)虛擬化來解決一但OS的同一實例上所安裝的兩個應(yīng)用之間的不兼容性是由應(yīng)用虛擬化來解決的。虛擬化服務(wù)器應(yīng)用通常比其他應(yīng)用更難。不同于通常由用戶通過運行專用可執(zhí)行程序從操作系統(tǒng)外殼啟動的客戶機應(yīng)用,服務(wù)器應(yīng)用可包括操作系統(tǒng)服務(wù)、工作者進程(worker processes)、以及按需或以某種時間表運行的daemon。管理員意欲虛擬化服務(wù)器應(yīng)用,以使得它們就像將文件包或分組復(fù)制到計算機系統(tǒng)(如xcopy可部署)一樣容易部署。諸如微軟因特網(wǎng)信息服務(wù)器(HS)之類的服務(wù)器組件不原生地支持使用該組件運行的應(yīng)用的應(yīng)用虛擬化。企業(yè)意欲將像IIS應(yīng)用之類的服務(wù)器應(yīng)用虛擬化成更為動態(tài)的一一他們可不用每次重新安裝應(yīng)用而將應(yīng)用在機器之間帶來帶去。這對于企業(yè)來說是生產(chǎn)力的節(jié)約,因為他們能以低得多的開銷來進行負(fù)載平衡或維護他們的服務(wù)器。HS具有web應(yīng)用(如web站點)的概念,這些web應(yīng)用運行在應(yīng)用池內(nèi)。IIS在創(chuàng)建工作者進程來響應(yīng)于對網(wǎng)站的請求時指定該應(yīng)用池名。一個問題是應(yīng)用名上可能存在沖突。例如,管理員可能想要在單個服務(wù)器上虛擬化若干HS應(yīng)用,其中每個應(yīng)用(或應(yīng)用池)具有標(biāo)準(zhǔn)名“默認(rèn)”。今天這樣做引起沖突,從而僅第一個這樣的web應(yīng)用將正確地運行。概述本文描述了應(yīng)用虛擬化系統(tǒng),該應(yīng)用虛擬化系統(tǒng)使得諸如web應(yīng)用之類的服務(wù)器應(yīng)用能夠容易地可部署,將應(yīng)用及其狀態(tài)與系統(tǒng)分開,以及允許應(yīng)用被容易地移動到另一服務(wù)器。該應(yīng)用虛擬化系統(tǒng)提供了一種隔離諸如web服務(wù)器應(yīng)用池名之類的沖突以及允許提供沖突信息的多個應(yīng)用獨立地運行且避免沖突的方式。該應(yīng)用虛擬化系統(tǒng)接收應(yīng)用準(zhǔn)備會話的通知,并監(jiān)控該會話以收集該應(yīng)用使用以在客戶機上運行的配置信息。該應(yīng)用虛擬化系統(tǒng)存儲所收集的信息直到要被虛擬化的該應(yīng)用被部署為止。當(dāng)管理員稍后部署該應(yīng)用時,系統(tǒng)取回(retrieve)所存儲的信息并使用該信息以及來自客戶機的信息來重構(gòu)元數(shù)據(jù)并虛擬化該應(yīng)用。該應(yīng)用虛擬化系統(tǒng)在封裝時提取請求以及存儲關(guān)于web應(yīng)用的元數(shù)據(jù),如應(yīng)用的應(yīng)用池的名稱。一旦稍后部署該web應(yīng)用,該系統(tǒng)咨詢所存儲的元數(shù)據(jù)以將該web應(yīng)用置于與虛擬化環(huán)境相關(guān)聯(lián)的正確的應(yīng)用池中。提供本概述以便以簡化形式介紹將在以下詳細(xì)描述中進一步描述的一些概念。本概述并不旨在標(biāo)識所要求保護主題的關(guān)鍵特征或必要特征,也不旨在用于限制所要求保護主題的范圍。附圖
簡述圖I是示出在一個實施例中的應(yīng)用虛擬化系統(tǒng)的組件的框圖。圖2是示出在一個實施例中的準(zhǔn)備服務(wù)器應(yīng)用來虛擬化的應(yīng)用虛擬化系統(tǒng)的處 理的流程圖。圖3是示出在一個實施例中的部署和虛擬化服務(wù)器應(yīng)用的應(yīng)用虛擬化系統(tǒng)的處理的流程圖。圖4是示出在一個實施例中的操作環(huán)境以及應(yīng)用虛擬化系統(tǒng)的實現(xiàn)組件的框圖。詳細(xì)描述本文描述了應(yīng)用虛擬化系統(tǒng),該應(yīng)用虛擬化系統(tǒng)使得諸如web應(yīng)用之類的服務(wù)器應(yīng)用能夠容易地可部署,將應(yīng)用及其狀態(tài)與系統(tǒng)分開,以及允許應(yīng)用被容易地移動到另一服務(wù)器。該應(yīng)用虛擬化系統(tǒng)提供了一種隔離諸如web服務(wù)器應(yīng)用池名之類的沖突以及允許提供沖突信息的多個應(yīng)用獨立地運行且避免沖突的方式。虛擬化應(yīng)用一般涉及三個步驟元數(shù)據(jù)提取、元數(shù)據(jù)存儲和重構(gòu)、以及對請求的運行時管理。元數(shù)據(jù)提取是知曉應(yīng)用何時被準(zhǔn)備來虛擬化以及監(jiān)控該應(yīng)用以提取配置信息的過程。配置信息可包括應(yīng)用將其自身束縛于操作系統(tǒng)或其他應(yīng)用的任何方式。該應(yīng)用虛擬化系統(tǒng)接收應(yīng)用準(zhǔn)備會話的通知,并監(jiān)視該會話以收集該應(yīng)用使用以在客戶機上運行的配置信息。例如,該系統(tǒng)可在該應(yīng)用的安裝之前和之后獲取配置信息的快照,并將差異存儲為應(yīng)用元數(shù)據(jù)。該應(yīng)用虛擬化系統(tǒng)存儲所收集的信息直到要被虛擬化的該應(yīng)用被部署為止。當(dāng)管理員稍后部署該應(yīng)用時,系統(tǒng)取回所存儲的信息并使用該信息以及來自客戶機的信息來重構(gòu)元數(shù)據(jù)并虛擬化該應(yīng)用。例如,對于微軟TM IIS,系統(tǒng)可捕捉IIS分配給該應(yīng)用的應(yīng)用池名,并將該應(yīng)用池名存儲為關(guān)于該應(yīng)用的元數(shù)據(jù)以在部署期間使用以及可能進行修改。一旦稍后部署該web應(yīng)用,該系統(tǒng)咨詢所存儲的元數(shù)據(jù)以將該web應(yīng)用置于與虛擬化環(huán)境相關(guān)聯(lián)的正確的應(yīng)用池中。從而,該應(yīng)用虛擬化系統(tǒng)允許多個服務(wù)器應(yīng)用并排地在同一物理計算機硬件和操作系統(tǒng)上虛擬化地運行。存在許多不同類型的服務(wù)器應(yīng)用,如NT服務(wù)、COM+應(yīng)用、麗I提供程序、SharePoint應(yīng)用、以及web (如IIS)應(yīng)用。各自在虛擬化它們時具有它們自己的挑戰(zhàn)。尤其是,web應(yīng)用給出了這里所解決的某些專門挑戰(zhàn)。第一個挑戰(zhàn)是web服務(wù)器控制web應(yīng)用何時啟動,且被創(chuàng)建來運行web應(yīng)用的進程是本機安裝的可執(zhí)行程序。對于NT服務(wù)來說,容易基于其文件路徑來確定該服務(wù)是否應(yīng)被虛擬化。如果文件路徑在虛擬包A中,則虛擬化層可在該包的虛擬環(huán)境中啟動NT服務(wù)。如果路徑在虛擬包B中,則虛擬化層可在那個虛擬環(huán)境中啟動NT服務(wù),以此類推。如果路徑不屬于任何虛擬包,則該服務(wù)不被虛擬化。對于像微軟TM IIS之類的典型web服務(wù)器,可執(zhí)行程序路徑對于該服務(wù)器所主持的所有web站點或web應(yīng)用來說都是相同的,即到諸如IIS的w3wp. exe之類的工作者進程的路徑。然而,工作者進程的參數(shù)可不同,如包括應(yīng)用池名。該應(yīng)用虛擬化系統(tǒng)修改虛擬化層來使用該信息來檢測要虛擬化的web應(yīng)用以及修改如何虛擬化這些應(yīng)用。例如,該系統(tǒng)確保應(yīng)用池名不重疊,且維護應(yīng)用池名與虛擬包之間的映射。當(dāng)工作者進程被創(chuàng)建時,系統(tǒng)在該映射中查找應(yīng)用池名以確定該工作者進程是否應(yīng)被虛擬化。另一挑戰(zhàn)涉及如何虛擬化不具有與之相關(guān)聯(lián)的應(yīng)用池的web服務(wù)器虛擬目錄(不同于web應(yīng)用)。該系統(tǒng)通過將虛擬目錄轉(zhuǎn)換成web應(yīng)用并將應(yīng)用池與該web應(yīng)用相關(guān)聯(lián)來解決該挑戰(zhàn)。另一挑戰(zhàn)涉及在部署web應(yīng)用時如何防止配置沖突。Web配置可在IIS以及其他web服務(wù)器中的不同級別處被應(yīng)用。配置可被應(yīng)用于服務(wù)器、web站點、以及以層級結(jié)構(gòu)源于web站點的web應(yīng)用和虛擬目錄。Web應(yīng)用安裝程序能夠自由地在任何級別配置web服務(wù)器。如果該應(yīng)用虛擬化系統(tǒng)按原樣捕捉該配置并在同一級部署它,則該系統(tǒng)可能造成沖突并可能破壞本地安裝的或其他虛擬web應(yīng)用。該問題的一種解決方案是捕捉在我們所關(guān) 注的web應(yīng)用上做出的配置改變,并在部署期間在web應(yīng)用級別應(yīng)用這些配置改變,以便不影響系統(tǒng)上的其他web應(yīng)用。這些和其他細(xì)節(jié)在本文中進一步被描述。應(yīng)用虛擬化子系統(tǒng)的主要責(zé)任是監(jiān)控、虛擬化、注冊、以及運行時虛擬化。這些中的每一個在本文中被分開地描述。監(jiān)控涉及監(jiān)視安裝進程以檢測對計算機系統(tǒng)做出的改變。在某些實施例中,稱為定序器的應(yīng)用負(fù)責(zé)監(jiān)控應(yīng)用虛擬化的階段。某些子系統(tǒng)可掛鉤應(yīng)用編程接口(API)來監(jiān)控該安裝,而其他子系統(tǒng)可比較安裝前和安裝后計算機系統(tǒng)狀態(tài)的快照來檢測改變。前者的示例是虛擬服務(wù)子系統(tǒng)掛鉤CreateService OAPI來檢測新操作系統(tǒng)服務(wù)何時被安裝程序添加。另一方面,在先前的示例中所描述的IIS子系統(tǒng)可通過比較安裝之前和之后的IIS配置來收集其使用的信息。例如,微軟工具MSD印Ioy允許用戶運行束縛于特定web服務(wù)器的what-if部署。相同的工具可與該應(yīng)用虛擬化系統(tǒng)一起使用來比較快照,以及生成機器無關(guān)的元數(shù)據(jù)段,如可擴展標(biāo)記語言文件化的(如sav providers, xml)。在監(jiān)控結(jié)束時,系統(tǒng)移除在全局水平設(shè)置的任何web服務(wù)器配置,并將該配置應(yīng)用于個體web應(yīng)用,以幫助在部署期間防止沖突。此外,如果頂級web虛擬目錄在監(jiān)控期間被創(chuàng)建了,則系統(tǒng)將這些轉(zhuǎn)換成與應(yīng)用池相關(guān)聯(lián)的web應(yīng)用,這將允許該虛擬目錄在部署時被虛擬化。虛擬化涉及向準(zhǔn)備應(yīng)用來虛擬化的管理員示出關(guān)于應(yīng)用做出的改變的可視指示。定序器以一系列標(biāo)簽顯示監(jiān)控期間檢測到的改變。該應(yīng)用虛擬化系統(tǒng)可調(diào)用用于虛擬化特定應(yīng)用類型的子系統(tǒng),而每個子系統(tǒng)可提供用于虛擬化的適合于該子系統(tǒng)的用戶接口。這消除了對在虛擬化階段期間定序器具有每個子系統(tǒng)的顯式知識的需要。子系統(tǒng)的虛擬化接口負(fù)責(zé)在應(yīng)用虛擬化系統(tǒng)的虛擬化應(yīng)用為它們創(chuàng)建的窗口中顯式它們的結(jié)果。注冊涉及準(zhǔn)備目標(biāo)計算機系統(tǒng)來運行虛擬應(yīng)用。盡管虛擬應(yīng)用未被安裝在客戶機上,但某些信息被發(fā)布給客戶機以提供無縫的用戶體驗(例如使得應(yīng)用顯露在開始菜單中或使得web應(yīng)用在web服務(wù)器元數(shù)據(jù)庫(metabase)中可用)。應(yīng)用虛擬化系統(tǒng)將監(jiān)控期間由該子系統(tǒng)收集的信息發(fā)布到客戶機上的何時的配置位置。例如,虛擬web應(yīng)用向web服務(wù)器注冊它們的應(yīng)用配置和應(yīng)用池信息。此外,注冊過程的一部分涉及將應(yīng)用池名與某一虛擬應(yīng)用相關(guān)聯(lián)。當(dāng)在客戶機上實例化該web應(yīng)用時,客戶機將截取創(chuàng)建新web服務(wù)器工作者進程的請求,且對于某一虛擬應(yīng)用來說如果該工作者進程的應(yīng)用池名匹配,則該工作者進程在合適的虛擬環(huán)境中被創(chuàng)建。該子系統(tǒng)與注冊緊密相關(guān)的另一責(zé)任是配置。注冊是執(zhí)行一次的;然而配置可在系統(tǒng)注冊其組件之后發(fā)生許多次。注冊的示例是創(chuàng)建web站點、應(yīng)用和本文所述的應(yīng)用池。配置項的示例是數(shù)據(jù)庫連接串。如果應(yīng)用的后端數(shù)據(jù)庫被移動,則該值可能需要在應(yīng)用被注冊之后改變。可適用的子系統(tǒng)負(fù)責(zé)應(yīng)用任何子系統(tǒng)特定的配置值,如要求對要被應(yīng)用的子系統(tǒng)的專門知識的配置(例如可能需要通過調(diào)用專門API來設(shè)置)。運行時虛擬化指的是在虛擬化應(yīng)用的運行時對函數(shù)的掛鉤和改變函數(shù)的行為,使得應(yīng)用能夠訪問其資源,就好像它被本地的安裝在客戶機上。運行時虛擬化也指代做出關(guān)于特定系統(tǒng)進程(即不是虛擬應(yīng)用的包的一部分的進程)是否應(yīng)被虛擬化的決策。例如,基于命令行上傳遞的應(yīng)用池名,IIS子系統(tǒng)確定IIS工作者進程(如w3wp. exe)是否應(yīng)被虛擬 化。圖I是示出在一個實施例中的應(yīng)用虛擬化系統(tǒng)的組件的框圖。系統(tǒng)100包括監(jiān)控組件110、包創(chuàng)建組件120、應(yīng)用包存儲130、應(yīng)用部署組件140、沖突管理組間150、以及應(yīng)用執(zhí)行環(huán)境160。這些組件中的每一個都在此處進一步詳細(xì)討論。監(jiān)控組件110監(jiān)控被準(zhǔn)備來虛擬化的應(yīng)用,以檢測與該應(yīng)用相關(guān)聯(lián)的配置數(shù)據(jù)。監(jiān)控組件110可迭代地通過注冊的子系統(tǒng),詢問每個子系統(tǒng)該子系統(tǒng)是否對處理當(dāng)前應(yīng)用感興趣。組件110調(diào)用指示出對該應(yīng)用進程感興趣的一個或多個子系統(tǒng),使得這些子系統(tǒng)能夠監(jiān)控該應(yīng)用做出的子系統(tǒng)特定的配置改變。監(jiān)控組件110還可提供快照服務(wù)來獲得監(jiān)控前和監(jiān)控后應(yīng)用的快照,以檢測應(yīng)用做出的配置改變。包創(chuàng)建組件120創(chuàng)建用于存儲與正被準(zhǔn)備來虛擬化的應(yīng)用有關(guān)的配置數(shù)據(jù)的包。包可包括各種容器文件格式,容器文件格式可包括壓縮、驗證、加密或其他處理,以便使得包更小或提供包的創(chuàng)作者的安全性或必然性。例如,包可以是ZIP、CAB或適用于在單個文件內(nèi)存儲許多文件和設(shè)置的其他檔案文件格式。包創(chuàng)建組件120在新應(yīng)用被準(zhǔn)備來虛擬化時創(chuàng)建包,并可存儲通用配置信息和應(yīng)用特定的配置信息,如由自定義虛擬化子系統(tǒng)檢測到的應(yīng)用特定的配置信息。應(yīng)用包存儲130在對正被準(zhǔn)備來虛擬化的應(yīng)用的監(jiān)控與將虛擬化的應(yīng)用到一個或多個目標(biāo)計算機系統(tǒng)的部署之間存儲應(yīng)用包。應(yīng)用包存儲130可包括各種存儲介質(zhì),如文件系統(tǒng)、基于網(wǎng)絡(luò)的存儲、基于云的存儲服務(wù)、數(shù)據(jù)庫等等。應(yīng)用部署組件140將應(yīng)用包部署到目標(biāo)計算機系統(tǒng),使得目標(biāo)計算機系統(tǒng)可調(diào)用虛擬化的應(yīng)用。組件140可在目標(biāo)系統(tǒng)上執(zhí)行應(yīng)用特定的配置,如添加文件類型關(guān)聯(lián)、添加到應(yīng)用包的鏈接、執(zhí)行操作系統(tǒng)服務(wù)配置、以及添加web服務(wù)器配置信息。應(yīng)用部署組件140可調(diào)用與應(yīng)用包相關(guān)聯(lián)的子系統(tǒng)來執(zhí)行子系統(tǒng)特定的注冊任務(wù),來準(zhǔn)備虛擬化的應(yīng)用以在目標(biāo)計算機系統(tǒng)上運行。沖突管理組件150檢測與虛擬化的應(yīng)用相關(guān)聯(lián)的配置數(shù)據(jù),以及修改該配置數(shù)據(jù)以避免與配置成在目標(biāo)計算機系統(tǒng)上運行的其他虛擬或非虛擬應(yīng)用的沖突。例如,組件150為指定命名應(yīng)用池以在其中執(zhí)行的web服務(wù)器應(yīng)用檢測名稱沖突。組件150還可從管理員接收確定用于管理沖突的行為的信息。例如,在web應(yīng)用的命名沖突的情況下,管理員可取代默認(rèn)行為并指定特定的名稱。應(yīng)用執(zhí)行環(huán)境160提供了虛擬化的應(yīng)用和目標(biāo)計算機系統(tǒng)的主機操作系統(tǒng)之間的間接級別。包裝器可以非常瘦,從而允許應(yīng)用幾乎本機地運行,諸如在應(yīng)用被設(shè)計成在主機操作系統(tǒng)上運行時。另選地或另外地,包裝器可提供API,并且滿足為其它操作系統(tǒng)或操作系統(tǒng)版本設(shè)計的應(yīng)用所預(yù)期的其它約束條件。因此,應(yīng)用執(zhí)行環(huán)境160向虛擬應(yīng)用提供使用主機操作系統(tǒng)的可用資源來為其設(shè)計應(yīng)用的環(huán)境。應(yīng)用執(zhí)行環(huán)境160還調(diào)用合適的子系統(tǒng)(或多個子系統(tǒng))來提供在運行時對虛擬化的應(yīng)用的子系統(tǒng)特定的處理。實現(xiàn)應(yīng)用虛擬化系統(tǒng)的計算設(shè)備可包括中央處理單元、存儲器、輸入設(shè)備(如鍵盤和定點設(shè)備)、輸出設(shè)備(如顯示設(shè)備)、以及存儲設(shè)備(如盤驅(qū)動器或其他非易失性存儲介質(zhì))。存儲器和存儲設(shè)備是可以用實現(xiàn)或啟用該系統(tǒng)的計算機可執(zhí)行指令(如軟件)來編碼的計算機可讀存儲介質(zhì)。此外,數(shù)據(jù)結(jié)構(gòu)和消息結(jié)構(gòu)可被存儲或經(jīng)由諸如通信鏈路上的信號等數(shù)據(jù)傳輸介質(zhì)傳送??梢允褂酶鞣N通信鏈路,諸如因特網(wǎng)、局域網(wǎng)、廣域網(wǎng)、點對點撥號連接、蜂窩電話網(wǎng)絡(luò)等。 該系統(tǒng)的實施例可以在各種操作環(huán)境中實現(xiàn),這些操作環(huán)境包括個人計算機、月艮務(wù)器計算機、手持式或膝上型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、可編程消費電子產(chǎn)品、數(shù)碼相機、網(wǎng)絡(luò)PC、小型計算機、大型計算機、包括任何上述系統(tǒng)或設(shè)備的分布式計算環(huán)境等。計算機系統(tǒng)可以是蜂窩電話、個人數(shù)字助理、智能電話、個人計算機、可編程消費電子設(shè)備、數(shù)碼相機等。該系統(tǒng)可以在由一個或多個計算機或其他設(shè)備執(zhí)行的諸如程序模塊等計算機可執(zhí)行指令的通用上下文中描述。一般而言,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等等。通常,程序模塊的功能可在各個實施例中按需進行組合或分布。圖2是示出在一個實施例中的準(zhǔn)備服務(wù)器應(yīng)用來虛擬化的應(yīng)用虛擬化系統(tǒng)的處理的流程圖。在框210開始,系統(tǒng)接收指示來開始監(jiān)控要被虛擬化的服務(wù)器應(yīng)用。例如,管理員在將web應(yīng)用安裝到測試服務(wù)器上之前可啟動本文所述的定序器。系統(tǒng)可獲取開始快照以存儲服務(wù)器應(yīng)用的安裝之前測試服務(wù)器的狀態(tài),用于與在安裝之后獲取的結(jié)束快照進行比較,以檢測由服務(wù)器應(yīng)用在安裝期間做出的配置改變。在框220繼續(xù),系統(tǒng)開始服務(wù)器應(yīng)用的安裝。管理員可運行設(shè)置程序,而系統(tǒng)可檢測新進程的創(chuàng)建并將核虛擬化系統(tǒng)注入到該進程中。例如,如果管理員打開監(jiān)控并啟動服務(wù)器應(yīng)用,則系統(tǒng)可檢測與該服務(wù)器應(yīng)用相關(guān)聯(lián)的工作者進程的啟動,開始核虛擬化引擎,以及將核虛擬化系統(tǒng)注入到該工作者進程中,使得例如該系統(tǒng)能夠監(jiān)控API調(diào)用以及該進程的其他行為。在框230繼續(xù),系統(tǒng)在服務(wù)器應(yīng)用的安裝期間捕捉配置數(shù)據(jù)。例如,服務(wù)器應(yīng)用可提供與web或其他應(yīng)用相關(guān)聯(lián)的應(yīng)用名,用該名稱以及其他信息來配置web服務(wù)器元數(shù)據(jù)庫,等等。子系統(tǒng)可檢測該進程修改的文件和注冊表鍵,以及其他配置改變,例如微軟活動目錄(MICROSOFT ACTIVE DIRECTORY)或IIS元數(shù)據(jù)庫改變。在框240繼續(xù),系統(tǒng)結(jié)束對服務(wù)器應(yīng)用的安裝的監(jiān)控。例如,管理員可向本文所述的定序器告知安裝完成,或者系統(tǒng)可自動地檢測到安裝已經(jīng)結(jié)束。系統(tǒng)可獲取服務(wù)器應(yīng)用以及相關(guān)聯(lián)的數(shù)據(jù)的結(jié)束快照,以與早先獲取的開始快照相比較。在框250繼續(xù),系統(tǒng)存儲捕捉的配置數(shù)據(jù)供服務(wù)器應(yīng)用的后續(xù)部署期間使用。例如,系統(tǒng)可創(chuàng)建XML文件或其他數(shù)據(jù)存儲,以及將配置數(shù)據(jù)持久保存在該數(shù)據(jù)存儲中供以后取回。在框260繼續(xù),系統(tǒng)打包服務(wù)器應(yīng)用供部署,包括存儲的配置數(shù)據(jù)。例如,系統(tǒng)可創(chuàng)建應(yīng)用的檔案文件或其他壓縮表示,管理員可使用諸如xcopy或其他文件復(fù)制工具來容易地部署到其他服務(wù)器。在框260之后,這些步驟結(jié)束。圖3是示出在一個實施例中的部署和虛擬化服務(wù)器應(yīng)用的應(yīng)用虛擬化系統(tǒng)的處理的流程圖。在框310開始,系統(tǒng)接收包括用于服務(wù)器應(yīng)用的配置數(shù)據(jù)的應(yīng)用包,以部署到目標(biāo)計算機。例如,應(yīng)用包可包括文件目錄或檔案文件,如本文所述,它包括對在應(yīng)用的監(jiān)控期間檢測到的配置數(shù)據(jù)的XML或其他數(shù)據(jù)存儲。在框320繼續(xù),系統(tǒng)檢測所接收到的應(yīng)用包中的可能與目標(biāo)計算機上運行的其他應(yīng)用沖突的配置數(shù)據(jù)。例如,如果服務(wù)器應(yīng)用是web應(yīng)用,則系統(tǒng)可檢測配置數(shù)據(jù)所指定的應(yīng)用池名是否與目標(biāo)計算機上的其他web應(yīng)用
沖突或可能沖突。在框330繼續(xù),系統(tǒng)設(shè)置將允許服務(wù)器應(yīng)用在目標(biāo)計算機上運行而不與目標(biāo)計算機上的其他應(yīng)用沖突的應(yīng)用安裝參數(shù)。例如,如果系統(tǒng)在先前的步驟中檢測到?jīng)_突名,則系統(tǒng)可用修改的名稱來設(shè)置安裝參數(shù)以避免沖突。在某些實施例中,系統(tǒng)將一全局唯一標(biāo)識符(GUID)附加到應(yīng)用池名,以避免與具有相同名稱的其他應(yīng)用池沖突。系統(tǒng)還可從管理員或其他源接收指定替代安裝參數(shù)以用于配置應(yīng)用的取代信息。在框340繼續(xù),系統(tǒng)配置目標(biāo)計算機系統(tǒng)來用設(shè)置的應(yīng)用安裝參數(shù)運行服務(wù)器應(yīng)用。例如,系統(tǒng)可將配置數(shù)據(jù)寫到配置數(shù)據(jù)庫、一個或多個文件、web服務(wù)器元數(shù)據(jù)庫等,以配置應(yīng)用。對應(yīng)用進行配置將應(yīng)用準(zhǔn)備好來在目標(biāo)計算機上運行。例如,對于web應(yīng)用,配置可包括向web服務(wù)器應(yīng)用管理器(如IIS管理器)提供web應(yīng)用的虛擬目錄、端口、文件位置。在框350繼續(xù),系統(tǒng)接收指示出啟動經(jīng)配置的服務(wù)器應(yīng)用的請求的應(yīng)用執(zhí)行指示。例如,該指示可來自通過網(wǎng)絡(luò)(如要訪問由服務(wù)器主持的網(wǎng)頁)或其他源接收的請求。在某些實施例中,系統(tǒng)將組件注入到服務(wù)器應(yīng)用管理組件,以截取啟動服務(wù)器應(yīng)用的調(diào)用。例如,web服務(wù)器通常包括啟動工作者進程以處理服務(wù)器上主持的每個網(wǎng)站的管理應(yīng)用。系統(tǒng)可截取調(diào)用工作者進程的調(diào)用,使得系統(tǒng)所管理的虛擬環(huán)境能夠替代管理應(yīng)用的本機行為。在框360替代,系統(tǒng)加載與接收到的應(yīng)用執(zhí)行指示相關(guān)聯(lián)的應(yīng)用包,并在虛擬環(huán)境中執(zhí)行該應(yīng)用。系統(tǒng)可加載與應(yīng)用虛擬化系統(tǒng)相關(guān)聯(lián)的模塊或其他可執(zhí)行代碼,以允許調(diào)用重定向、API掛鉤、以及其他虛擬化動作,來向應(yīng)用提供模仿該應(yīng)用被設(shè)計用于的環(huán)境的虛擬環(huán)境。系統(tǒng)還可調(diào)用一個或多個虛擬化子系統(tǒng)來處理應(yīng)用可能做出的各種類型的請求,如文件訪問請求、注冊表訪問請求、web服務(wù)器特定的請求等等。在應(yīng)用執(zhí)行時,被虛擬化子系統(tǒng)放在適當(dāng)位置的任何掛鉤或其他間接過程允許系統(tǒng)處理要求重定向或其他處理的任何應(yīng)用請求,以允許虛擬化提供的隔離。在框360之后,這些步驟結(jié)束。圖4是示出在一個實施例中的操作環(huán)境以及應(yīng)用虛擬化系統(tǒng)的實現(xiàn)組件的框圖。在某些實施例中,應(yīng)用虛擬化系統(tǒng)使用操作系統(tǒng)驅(qū)動器430以及若干用戶模式組件來虛擬化應(yīng)用。虛擬化驅(qū)動器430 (如sftplay. sys)在操作系統(tǒng)的內(nèi)核級管理虛擬環(huán)境。該驅(qū)動器的進程管理器組件維護對虛擬環(huán)境映射的進程ID。在進程被創(chuàng)建時,進程管理器組件自動地將子進程添加到父進程的虛擬環(huán)境。進程管理器組件還向用戶模式虛擬化庫420通知虛擬進程創(chuàng)建和終止以及何時沒有進程在虛擬環(huán)境中運行。驅(qū)動器430的一個角色是執(zhí)行注冊表和文件系統(tǒng)虛擬化。當(dāng)使用虛擬化庫420首次創(chuàng)建虛擬環(huán)境時,注冊表和文件映射信息被上傳到驅(qū)動器430。驅(qū)動器430使用該信息來改變注冊表和文件系統(tǒng)API的行為,以便對于虛擬應(yīng)用440來說似乎就好像該應(yīng)用被本地安裝在目標(biāo)計算機系統(tǒng)上。用戶模式虛擬化庫420 (如osguard. lib)包含API來管理虛擬環(huán)境和進程,且是用戶模式和虛擬化驅(qū)動器430之間的接口。虛擬化庫420還具有內(nèi)建于其中的虛擬子系統(tǒng),包括虛擬文件系統(tǒng)和虛擬注冊表,這些虛擬子系統(tǒng)跨各種應(yīng)用子系統(tǒng)被使用。虛擬化庫420被用于打包虛擬應(yīng)用,以及在運行時也被使用。定序器410是管理員使用的通過監(jiān)控安裝進程來來打包虛擬應(yīng)用的應(yīng)用,而監(jiān)聽器(未示出)是在運行時管理虛擬應(yīng)用的操作系統(tǒng)服務(wù)。虛擬化運行時模塊(如sftldr. dll)是在創(chuàng)建子進程時由虛擬化庫420或其自己注入到每個虛擬進程中的庫。Detours庫被用于掛鉤虛擬應(yīng)用440進程內(nèi)的函數(shù)。某些調(diào) 用被重定向到虛擬化驅(qū)動器430用于注冊表和文件系統(tǒng)虛擬化;而其他調(diào)用做出對虛擬化庫420的RPC調(diào)用以執(zhí)行它們各自的子系統(tǒng)虛擬化。在其初始化期間,虛擬化庫420動態(tài)地加載注冊表中列出的每個子系統(tǒng)模塊,并存儲到它們的工廠接口(factory interface)的指針。當(dāng)定序器410或監(jiān)聽器使用虛擬環(huán)境管理器來創(chuàng)建虛擬環(huán)境時,工廠被用于創(chuàng)建每個子系統(tǒng)的實例。子系統(tǒng)實例被存儲在虛擬環(huán)境對象內(nèi),并可由定序器或監(jiān)聽器取回。許多子系統(tǒng)需要訪問虛擬文件系統(tǒng)和注冊表來執(zhí)行它們的虛擬化。例如,虛擬COM和虛擬服務(wù)子系統(tǒng)都需要訪問虛擬注冊表鍵來分別創(chuàng)建虛擬COM對象以及開始虛擬服務(wù)。因此,在某些實施例中,虛擬注冊表和文件系統(tǒng)子系統(tǒng)不是一般化的,而是核心組件。子系統(tǒng)可通過經(jīng)它們的監(jiān)控和運行時接口傳遞給它們的虛擬環(huán)境對象來獲得對這些核心子系統(tǒng)的訪問。監(jiān)控接口在清單450文件中存儲它檢測到的子系統(tǒng)改變。該清單450被傳遞到包括可視化接口和注冊接口的其他接口,可視化接口顯示該信息并允許該信息被編輯,而注冊接口使用該信息來注冊組件。在某些實施例中,應(yīng)用虛擬化系統(tǒng)允許管理員為虛擬化的web應(yīng)用取代應(yīng)用池名。例如,管理員可能想要配置兩個web應(yīng)用以在同一池中運行。在某些情況中,web應(yīng)用可被設(shè)計成使用特定的名稱,管理員可能修改sav providers, xml或用于存儲應(yīng)用元數(shù)據(jù)的其他位置來使用該應(yīng)用池名,使得web應(yīng)用將繼續(xù)正確地運行。在某些實施例中,應(yīng)用虛擬化系統(tǒng)在單個虛擬環(huán)境中運行多個服務(wù)器應(yīng)用。盡管本文所述的每應(yīng)用分開的虛擬環(huán)境可能在許多情況下是所希望的,但是該系統(tǒng)也可在單個環(huán)境中虛擬化多個應(yīng)用。例如,管理員可能想要節(jié)省目標(biāo)計算機系統(tǒng)的資源,或相關(guān)應(yīng)用可能想要以不被多個虛擬環(huán)境的隔離所允許的方式彼此通信。通過上述,將理解本文描述的應(yīng)用虛擬化系統(tǒng)的特定實施例只是為了說明的目的,但是,在不偏離本發(fā)明的精神和范圍的情況下,可以進行各種修改。因此,本發(fā)明只受所附權(quán)利要求限制。
權(quán)利要求
1.一種用于準(zhǔn)備web服務(wù)器應(yīng)用來虛擬化的計算機實現(xiàn)的方法,所述方法包括 接收開始監(jiān)控要被虛擬化的web服務(wù)器應(yīng)用的指示,其中所述應(yīng)用是使用具有指定特定web應(yīng)用的參數(shù)的web服務(wù)器的本機、非虛擬化的進程調(diào)用的; 開始所述web應(yīng)用的安裝; 在所述web應(yīng)用的安裝期間捕捉配置數(shù)據(jù),包括調(diào)用所述web應(yīng)用的參數(shù); 結(jié)束對所述web應(yīng)用的安裝的監(jiān)控; 存儲所捕捉的配置數(shù)據(jù)供在所述web應(yīng)用的后續(xù)部署期間使用;以及 打包所述web應(yīng)用供部署,包括所存儲的配置數(shù)據(jù), 其中,前述步驟由至少一個處理器來執(zhí)行。
2.如權(quán)利要求I所述的方法,其特征在于,接收開始監(jiān)控的指示包括檢測管理員啟動應(yīng)用監(jiān)控工具。
3.如權(quán)利要求I所述的方法,其特征在于,監(jiān)控包括獲取開始快照以存儲所述web應(yīng)用的安裝之前測試服務(wù)器的狀態(tài),以用于與在安裝之后獲取的結(jié)束快照進行比較,以檢測由所述web應(yīng)用在安裝期間做出的配置改變。
4.如權(quán)利要求I所述的方法,其特征在于,開始安裝包括檢測新進程的創(chuàng)建以及將核虛擬化系統(tǒng)注入到該進程中。
5.如權(quán)利要求I所述的方法,其特征在于,捕捉配置數(shù)據(jù)包括檢測與web應(yīng)用相關(guān)聯(lián)的應(yīng)用池名。
6.如權(quán)利要求I所述的方法,其特征在于,捕捉配置數(shù)據(jù)包括檢測由所述web應(yīng)用在安裝期間修改的一個或多個文件、注冊表值、或應(yīng)用特定的配置設(shè)置。
7.如權(quán)利要求I所述的方法,其特征在于,結(jié)束監(jiān)控包括獲取所述web應(yīng)用和相關(guān)聯(lián)的數(shù)據(jù)的結(jié)束快照,以與安裝之前獲取的開始快照進行比較。
8.如權(quán)利要求I所述的方法,其特征在于,存儲所捕捉的配置數(shù)據(jù)包括創(chuàng)建XML文件以及將所述配置數(shù)據(jù)持久保存到所述XML文件供以后取回。
9.如權(quán)利要求I所述的方法,其特征在于,打包所述web應(yīng)用包括創(chuàng)建檔案文件,所述檔案文件包含與所述web應(yīng)用相關(guān)聯(lián)的一個或多個文件和配置數(shù)據(jù)。
10.一種用于虛擬化服務(wù)器應(yīng)用的計算機系統(tǒng),所述系統(tǒng)包括 處理器和存儲器,所述處理器和存儲器被配置成執(zhí)行軟件指令; 監(jiān)控組件,所述監(jiān)控組件被配置成監(jiān)控正被準(zhǔn)備來虛擬化的應(yīng)用,以檢測與該應(yīng)用相關(guān)聯(lián)的配置數(shù)據(jù); 包創(chuàng)建組件,所述包創(chuàng)建組件被配置成創(chuàng)建用于存儲與正被準(zhǔn)備來虛擬化的應(yīng)用有關(guān)的配置數(shù)據(jù)的包; 應(yīng)用包存儲,所述應(yīng)用包存儲被配置成在對正被準(zhǔn)備來虛擬化的應(yīng)用的監(jiān)控與將虛擬化的應(yīng)用到一個或多個目標(biāo)計算機系統(tǒng)的部署之間存儲應(yīng)用包; 應(yīng)用部署組件,所述應(yīng)用部署組件被配置成將應(yīng)用包部署到目標(biāo)計算機系統(tǒng),使得所述目標(biāo)計算機系統(tǒng)可調(diào)用虛擬化的應(yīng)用; 沖突管理組件,所述沖突管理組件被配置成檢測與虛擬化的應(yīng)用相關(guān)聯(lián)的配置數(shù)據(jù),以及修改所述配置數(shù)據(jù)以避免與配置成在目標(biāo)計算機系統(tǒng)上運行的其他虛擬或非虛擬應(yīng)用的沖突;以及應(yīng)用執(zhí)行環(huán)境,所述應(yīng)用執(zhí)行環(huán)境被配置成提供了虛擬化的應(yīng)用和目標(biāo)計算機系統(tǒng)的主機操作系統(tǒng)之間的間接水平。
11.如權(quán)利要求10所述的系統(tǒng),其特征在于,所述監(jiān)控組件被進一步配置成掛鉤應(yīng)用編程接口(API)來檢測在改變被請求時由應(yīng)用做出的配置改變。
12.如權(quán)利要求10所述的系統(tǒng),其特征在于,所述應(yīng)用部署組件被進一步配置成在目標(biāo)系統(tǒng)上執(zhí)行應(yīng)用特定的配置,這包括向web應(yīng)用管理組件注冊該應(yīng)用。
13.如權(quán)利要求10所述的系統(tǒng),其特征在于,所述沖突管理組件被進一步配置成為指定命名應(yīng)用池以在其中執(zhí)行的web服務(wù)器應(yīng)用檢測名稱沖突,以及修改名稱以不與其他應(yīng)用沖突。
14.如權(quán)利要求10所述的系統(tǒng),其特征在于,所述沖突管理組件被進一步配置成從管理員接收信息,該信息取代所述組件的默認(rèn)行為以及指定特定的應(yīng)用池名以為web應(yīng)用避免命名沖突。
15.如權(quán)利要求10所述的系統(tǒng),其特征在于,所述應(yīng)用執(zhí)行環(huán)境在目標(biāo)計算機系統(tǒng)上的工作者進程中檢測應(yīng)用的啟動。
全文摘要
應(yīng)用虛擬化系統(tǒng)使得諸如web應(yīng)用之類的服務(wù)器應(yīng)用能夠容易地可部署,將應(yīng)用及其狀態(tài)與系統(tǒng)分開,以及允許應(yīng)用被容易地移動到另一服務(wù)器。該應(yīng)用虛擬化系統(tǒng)提供了一種隔離沖突以及允許提供沖突信息的多個應(yīng)用獨立地運行且避免沖突的方式。該應(yīng)用虛擬化系統(tǒng)接收應(yīng)用準(zhǔn)備會話的通知,并監(jiān)控該會話以收集該應(yīng)用使用以在客戶機上運行的配置信息。該應(yīng)用虛擬化系統(tǒng)存儲所收集的信息直到要被虛擬化的該應(yīng)用被部署為止。當(dāng)管理員稍后部署該應(yīng)用時,系統(tǒng)取回所存儲的信息并使用該信息以及來自客戶機的信息來重構(gòu)元數(shù)據(jù)并虛擬化該應(yīng)用。
文檔編號G06F9/44GK102782648SQ201180012004
公開日2012年11月14日 申請日期2011年3月2日 優(yōu)先權(quán)日2010年3月4日
發(fā)明者E·朱亞特, J·希恩, N·A·雅各布森 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
铜鼓县| 广平县| 资中县| 洛川县| 青海省| 报价| 海安县| 贵溪市| 治县。| 沂南县| 涡阳县| 双鸭山市| 武冈市| 德安县| 八宿县| 霍邱县| 宜宾县| 积石山| 沁水县| 郴州市| 垫江县| 陇川县| 新丰县| 邵阳市| 平凉市| 瑞昌市| 措勤县| 班戈县| 敦煌市| 阿克苏市| 河源市| 蓝田县| 绥芬河市| 宁明县| 晋宁县| 常宁市| 龙陵县| 金昌市| 巫山县| 凌源市| 中方县|