專利名稱:一種計算機和虛擬機環(huán)境中應用程序部署和運行的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機領(lǐng)域中應用程序的部署和運行,特別是指一種計算機和 虛擬機環(huán)境中應用程序部署和運行的方法。
背景技術(shù):
在網(wǎng)絡發(fā)達的今天,有眾多的開源軟件或共享軟件供大家下載使用,人們 因此節(jié)省了很多的軟件費用。與此同時,這些開源軟件或共享軟件也給人們帶 了許多問題,如,運行這些軟件的計算機會因此而感染上病毒、木馬等,有時 由于這些軟件的兼容性問題,會造成用戶的計算機死機或藍屏,同時這些軟件 還會對運行這些軟件的計算機中的用戶數(shù)據(jù)的安全性帶來威脅。
基于上述問題,人們努力尋找一種完美的解決辦法,既能得到這些軟件給 人們帶來的好處和便利,又能避免這些軟件給用戶帶來的潛在的負面影響,或 者使這些軟件的負面影響最小化。人們采用虛擬化技術(shù),如圖l所示,在計算
機硬件系統(tǒng)之上利用虛擬機管理器(Virtual Machine Monitor, VMM)創(chuàng)建虛 擬機,在虛擬機中安裝相應的客戶操作系統(tǒng),然后再在客戶操作系統(tǒng)中安裝上 述開源軟件或者共享軟件,而用戶較為信任的其它軟件,可安裝在主操作系統(tǒng) 或者另一個客戶操作系統(tǒng)中運行。通常情況下,主操作系統(tǒng)和客戶操作系統(tǒng)之 間是相互隔離的,這樣可以很好地解決上述共享軟件或開源軟件的兼容性問題 和病毒、木馬等負面影響。
然而,這種做法也有一定局限性。首先,建立虛擬機環(huán)境,并在客戶操作 系統(tǒng)中安裝運行軟件比較繁瑣,對用戶的技術(shù)水平要求較高;其次,客戶操作 系統(tǒng)性能較差,如能證明某個軟件沒有木馬、病毒等負面影響,用戶常常還是 將該軟件在主機環(huán)境中運行。
發(fā)明人在實現(xiàn)本發(fā)明的過程中,發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在如下問題
用戶常常需要在多個操作系統(tǒng)中安裝應用程序,并需要將用戶數(shù)據(jù)從客戶
6操作系統(tǒng)到主操作系統(tǒng)相互遷移,這樣不僅使用戶的工作變得復雜,而且隔離 環(huán)境中用戶數(shù)據(jù)版本之間的不一致,對用戶也是一個:t兆戰(zhàn)。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種計算機和虛擬機環(huán)境中應用程序部 署和運行的方法。使應用程序只需安裝一次,用戶工作數(shù)據(jù)無需在操作系統(tǒng)之 間遷移,簡化用戶工作。
為解決上述技術(shù)問題,本發(fā)明的實施例提供技術(shù)方案如下
一種計算機,包括
硬件平臺,
虛擬機管理單元,安裝有虛擬機管理器,位于所述硬件平臺之上; 第一操作單元,安裝有第一操作系統(tǒng),位于所述^/f牛平臺之上; 第二操作單元,安裝有第二操作系統(tǒng),所述第二操作系統(tǒng)安裝在所述虛擬
機管理器上,通過所述虛擬機管理器與所述第一操作系統(tǒng)連接;所述第一操作
單元包括
第一存儲器,用于存儲第一應用程序的安裝文件;
應用程序虛擬化運行組件模塊,與所述第一存儲器和所述虛擬機管理器分 別連接,用于處理所述第 一應用程序的安裝文件運行時所產(chǎn)生的第 一安裝信 息,得到笫二安裝信息,將所述第二安裝信息通過所述虛擬機管理器輸入至所 述第二操作系統(tǒng),并在所述第二操作系統(tǒng)中根據(jù)所述第二安裝信息建立第二應 用程序及所述第二應用程序運行所依賴的軟硬件環(huán)境,啟動第二應用程序;通 過所述虛擬機管理器獲取所述第二應用程序的讀/寫操:作請求,通過所述虛擬 機管理器向所述第二操作系統(tǒng)返回相應的讀/寫操作結(jié)果。
優(yōu)選的,所述應用程序虛擬化運行組件模塊包括
第一處理模塊,與所述第一存儲器連接,用于監(jiān)控所述第一應用程序的安 裝文件的運行過程,并保存所述安裝文件運行時所產(chǎn)生的第一安裝信息,得到 第二安裝信息;
第二處理模塊,與所述第一處理模塊和所述虛擬機管理器分別連接,用于
7在監(jiān)控到所述第一應用程序虛擬化運行時,啟動所述虛擬機管理器,并將所述 第二安裝信息通過所述虛擬4^管理器輸入至所述第二^t喿作系統(tǒng),并在所述第二 操作系統(tǒng)中根據(jù)所述第二安裝信息建立第二應用程序及所述第二應用程序運
行所依賴的軟硬件環(huán)境,啟動第二應用程序;
第三處理模塊,與所述虛擬機管理器連接,用于通過所述虛擬機管理器獲 取所述第二應用程序的讀/寫操作請求,根據(jù)所述讀/寫操作請求獲得相應的讀/ 寫操作結(jié)果,通過所述虛擬機管理器向所述第二操作系統(tǒng)返回所述讀/寫操作 結(jié)果。
優(yōu)選的,所述第一才喿作單元還包括第二存儲器,與所述第三處理模塊連 接,用于存儲用戶的原始工作數(shù)據(jù);
所述第三處理模塊通過所述虛擬機管理器獲取所述第二應用程序的讀4喿
作請求后,根據(jù)所述讀操作請求對所述用戶的工作數(shù)據(jù)進行相應的讀操作,獲 得讀操作結(jié)果,并通過所述虛擬機管理器向所述第二纟喿作系統(tǒng)返回所述讀操作 結(jié)果。
優(yōu)選的,所述第一操作單元還包括第三存儲器,與所述第二存儲器和所 述第三處理模塊分別連接,用于存儲所述用戶的工作數(shù)據(jù)的備份數(shù)據(jù)以及所述 第三處理模塊通過所述虛擬機管理器獲取所述第二應用程序的寫操作請求后, 根據(jù)所述寫操作請求對所述備份數(shù)據(jù)的寫操作結(jié)果。
優(yōu)選的,所述應用程序虛擬化運行組件模塊還包括一應用程序運行數(shù)據(jù) 庫,與所述第一處理模塊、所述第二處理模塊和所述第三處理模塊分別連接, 用于存儲所述第二安裝信息、所述第一應用程序運行依賴的軟硬件環(huán)境信息和 所述原始工作數(shù)據(jù)、所述備份數(shù)據(jù)的信息。
優(yōu)選的,所述應用程序虛擬化運行組件模塊,用于對所述應用程序運行數(shù) 據(jù)庫中存儲的信息進行緩存。
優(yōu)選的,所述第一操作系統(tǒng)和所述第二操作系統(tǒng)為兼容的操作系統(tǒng)。 優(yōu)選的,所述第一操作系統(tǒng)和所述第二操作系統(tǒng)為相同的操作系統(tǒng)。 優(yōu)選的,所述虛擬機管理器安裝在所述硬件平臺上,所述第一操作單元安 裝在所述虛擬機管理器上。優(yōu)選的,所述虛擬機管理器中包括一安全信息通道,連接在所述應用程序 虛擬化運行組件模塊和所述第二操作系統(tǒng)之間,用于傳輸在所述應用程序虛擬 化運行組件模塊和所述第二操作系統(tǒng)之間傳輸?shù)臄?shù)據(jù)。
優(yōu)選的,所述第一操作單元安裝在所述硬件平臺上,所述虛擬機管理器和 所述第二操作單元安裝在所述第 一操作單元中。
為解決上述技術(shù)問題,本發(fā)明的實施例還提供一種虛擬機環(huán)境中應用程序
部署和運行的方法,包括如下步驟
處理第 一操作系統(tǒng)中第 一應用程序的安裝文件在運行時所產(chǎn)生的第 一安 裝信息,得到第二安裝信息;
將所述第二安裝信息通過虛擬機管理器輸入至第二4喿作系統(tǒng);
在所述第二操作系統(tǒng)中根據(jù)所述第二安裝信息建立第二應用程序及所述 第二應用程序運行所依賴的軟硬件環(huán)境,并啟動所述第二應用程序;
獲取通過所述虛擬機管理器傳來的所述第二應用程序的讀/寫操作請求;
根據(jù)所述讀/操作請求獲取相應的讀/寫操作結(jié)果;
將所述讀/寫操作結(jié)果通過所述虛擬機管理器返回至所述第二操作系統(tǒng)。
優(yōu)選的,所述處理第 一操作系統(tǒng)中的第 一應用程序的安裝文件在運行時所 產(chǎn)生的第 一安裝信息的步驟具體為
監(jiān)控第 一操作系統(tǒng)中的第 一應用程序的安裝文件的安裝過程,保存所述安 裝文件運行時所產(chǎn)生的第一安裝信息,得到第二安裝信息。
優(yōu)選的,所述將所述第二安裝信息通過虛擬機管理器輸入至第二操作系統(tǒng) 的步驟具體為
在監(jiān)控到所述第一應用程序虛擬化運行時,啟動所述虛擬機管理器,并將 所述第二安裝信息通過所述虛擬機管理器輸入至所述第二操作系統(tǒng)。
優(yōu)選的,所述根據(jù)所述讀/寫操作請求獲取相應的讀/寫操作結(jié)果的步驟具 體為
根據(jù)所述讀操作請求讀取所述第 一才喿作系統(tǒng)中的用戶的工作數(shù)據(jù),獲取讀 操作結(jié)果;或者
根據(jù)所述寫操作請求對所述第一操作系統(tǒng)中的用戶的工作數(shù)據(jù)的備份數(shù)
9據(jù)進行寫操作,獲得寫操作結(jié)果。
本發(fā)明的實施例具有以下有益效果
上述技術(shù)方案通過在第一操作單元中設置應用程序虛擬化運行組件模塊, 該模塊在監(jiān)控到第 一才喿作系統(tǒng)中虛擬化運行第 一應用程序的安裝文件時,將該 第 一應用程序的安裝文件運行時所產(chǎn)生的第 一安裝信息,處理后生成第二安裝 信息,并將該第二安裝信息映射到第二操作系統(tǒng),在第二操作系統(tǒng)中建立第二 應用程序以及該第二應用程序運行所依賴的軟硬件環(huán)境,并啟動第二應用程 序,該模塊并通過虛擬機管理器獲得該第二應用程序的I/0(讀/寫)請求,以 及根據(jù)該I/O請求通過虛擬機管理器返回I/O操作結(jié)果,使用戶只需在第一操 作系統(tǒng)環(huán)境中安裝應用程序和保存用戶工作數(shù)據(jù),卻能夠在多個操作系統(tǒng)環(huán)境 (如第二操作系統(tǒng))中運行該應用程序、操作用戶工作數(shù)據(jù),無需將數(shù)據(jù)在第 一操作系統(tǒng)和第二操作系統(tǒng)之間進行遷移,使用戶的工作變得筒單許多。
圖1為現(xiàn)有的虛擬機系統(tǒng)結(jié)構(gòu)圖2為本發(fā)明的實施例計算機的結(jié)構(gòu)示意圖3為圖2所示的計算機的一具體結(jié)構(gòu)示意圖4為圖3所示的計算機的工作流程示意圖5為圖3所示的計算機的工作流程示意圖6為圖2所示的計算機另一具體結(jié)構(gòu)示意圖7為圖6所示的計算機的工作流程示意圖8為圖6所示的計算機的工作流程示意圖9為本發(fā)明的實施例虛擬環(huán)境中應用程序運行的方法流程示意圖。
具體實施例方式
為使本發(fā)明的實施例要解決的技術(shù)問題、技術(shù)方案和優(yōu)點更加清楚,下面 將結(jié)合附圖及具體實施例進行詳細描述。
本發(fā)明的實施例針對現(xiàn)有技術(shù)中用戶常常需要在多個操作系統(tǒng)中安裝應用程序,并需要將用戶工作數(shù)據(jù)從虛擬機操作系統(tǒng)到主操作系統(tǒng)相互遷移,使 用戶的工作復雜并造成隔離環(huán)境中用戶數(shù)據(jù)版本的不一致的問題,提供一種計 算機以及虛擬機環(huán)境中應用程序部署和運行的方法。
如圖2所示,本發(fā)明的實施例計算機,包括硬件平臺;虛擬機管理單元, 安裝有虛擬機管理器,位于該硬件平臺之上;第一操作單元,安裝有第一操作 系統(tǒng),位于該硬件平臺之上;第二操作單元,安裝有第二操作系統(tǒng),第二操作 系統(tǒng)安裝在該虛擬機管理器上,并通過該虛擬機管理器與第一操作系統(tǒng)連接; 其中該第一操作單元包括第一存儲器,用于存儲第一應用程序的安裝文件;
應用程序虛擬化運行組件模塊,與上述第一存儲器和上述虛擬機管理器分 別連接,用于處理第一應用程序的安裝文件運行時所產(chǎn)生的第一安裝信息,得 到第二安裝信息,將第二安裝信息通過該虛擬機管理器輸入至第二操作系統(tǒng), 并在第二操作系統(tǒng)中根據(jù)第二安裝信息建立第二應用程序以及第二應用程序 運行時所依賴的軟硬件環(huán)境,啟動第二應用程序;并通過虛擬機管理器獲取第 二應用程序的讀/寫操作請求,通過虛擬機管理器向第二操作系統(tǒng)返回相應的 讀/寫操作結(jié)果。
上述方案通過在第 一操作系統(tǒng)中安裝應用程序,并利用第 一操作系統(tǒng)中的 應用程序虛擬化運行組件模塊將該應用程序的安裝文件運行時所產(chǎn)生的安裝 信息映射到第二才喿作系統(tǒng)中,在第二操作系統(tǒng)中建立第二應用程序以及第二應 用程序運行時所依賴的軟硬件環(huán)境,并通過該第一操作系統(tǒng)中應用程序虛擬化 運行組件和虛擬機管理器實現(xiàn)第二應用程序的所有讀/寫操作請求,用戶只需 在一個操作系統(tǒng)環(huán)境中(如第 一操作系統(tǒng))安裝應用程序和保存用戶工作數(shù)據(jù), 卻能夠在多個操作系統(tǒng)環(huán)境(如第二操作系統(tǒng))中運行該應用程序、操作用戶 工作數(shù)據(jù),使用戶的工作變得筒單許多。
目前的虛擬機系統(tǒng)有兩種實現(xiàn)方式, 一種實現(xiàn)方式以XEN為代表,如圖 3所示在電腦硬件平臺上直接運行虛擬機管理器,虛擬機管理器上再運行操作 系統(tǒng),該操作系統(tǒng)可以為主操作系統(tǒng),也可以為由該虛擬機管理器虛擬出來的 客戶操作系統(tǒng),該客戶操作系統(tǒng)可以為多個,應用程序則運行在虛擬操作系統(tǒng) 中,這類實現(xiàn)方式為Type I;另 一種實現(xiàn)方式以WMware和Virtua舊ox為代表,如圖6所示,電腦硬件上直接運行主機操作系統(tǒng),在主機操作系統(tǒng)中運行虛擬 機管理器,虛擬機管理器上再運行虛擬操作系統(tǒng),應用程序可運行在主機操作 系統(tǒng)和虛擬操:作系統(tǒng)中,這類實現(xiàn)方式為TypeII。
下面分別針對上述兩種實現(xiàn)方式就圖2所示的方案進行詳細介紹 如圖3所示,為圖2所示的計算機的一種實施例,在該實施例中,虛擬機 管理器直接安裝在硬件平臺上;第一操作單元和第二操作單元均安裝在虛擬機 管理器上,其中,第一操作單元中安裝的第一^t喿作系統(tǒng)可以為主操作系統(tǒng),也 可以為虛擬出來的客戶操作系統(tǒng),第二操作單元中安裝的第二操作系統(tǒng)也可以 為多個;在該實施例中,虛擬機管理器中包括一安全信息通道,連接在應用程 序虛擬化運行組件模塊和第二操作系統(tǒng)之間,用于傳輸在應用程序虛擬化運行 組件模塊和第二操作系統(tǒng)之間傳輸?shù)臄?shù)據(jù)。
上述應用程序虛擬化運行組件模塊具體包括
第一處理^^莫塊,與第一存儲器連接,用于監(jiān)控第一應用程序的安裝文件的 運行過程,并保存安裝文件在運行過程中所產(chǎn)生的第一安裝信息,如該第一應 用程序運行時需要的可執(zhí)行文件、注冊表項、配置文件和數(shù)據(jù)等信息,得到第 二安裝信息;
第二處理模塊,與第一處理模塊和虛擬機管理器分別連接,用于在監(jiān)控到 該第一應用程序虛擬化運行時,啟動虛擬機管理器,并將上述第二安裝信息通 過虛擬機管理器輸入至第二操作系統(tǒng),并在第二操作系統(tǒng)中根據(jù)第二安裝信息 建立第二應用程序以及該第二應用程序運行所依賴的軟硬件環(huán)境,并啟動該第 二應用程序,該第二應用程序由于是根據(jù)第一應用程序的安裝文件運行時所產(chǎn) 生的安裝信息建立的,因此可以認為該第二應用程序和第 一應用程序是相同的 應用程序,如一些開源軟件或者共享軟件等;
第三處理模塊,與虛擬機管理器中的安全信息通道連接,用于通過虛擬機 管理器中的安全信息通道獲取第二應用程序的讀/寫操作請求,根據(jù)該讀/寫操 作請求獲得相應的讀/寫操作結(jié)果,通過虛擬機管理器的安全信息通道向第二 操作系統(tǒng)中的第二應用程序返回讀/寫操作結(jié)果。
上述第一操作單元還包括第二存儲器,與第三處理模塊連接,用于存儲用戶的原始工作數(shù)據(jù);第三處理模塊通過虛擬機管理器中的安全信息通道獲取 第二應用程序的讀操作請求后,根據(jù)該讀操作請求對用戶的工作數(shù)據(jù)進行相應 的讀操作,獲得讀操作結(jié)果,并通過虛擬機管理器向第二操作系統(tǒng)中的第二應 用程序返回讀操作結(jié)果。特別地,對某項數(shù)據(jù)第一次進行寫操作時,第三處理 模塊首先對第三存儲器中數(shù)據(jù)進行備份,然后所有讀/寫4喿作都是在備份數(shù)據(jù) 中進行。
上述第一操作單元還包括第三存儲器,與第二存儲器和第三處理模塊分 別連接,該第三存儲器為一個暫存工作區(qū),可以為指定的目錄或隨機存儲器等, 用于存儲用戶的工作數(shù)據(jù)的備份數(shù)據(jù)以及第三處理模塊通過虛擬機管理器的 安全信息通道獲取第二應用程序的寫操作請求后,根據(jù)該寫操作請求對備份數(shù) 據(jù)的寫操作結(jié)果。該實施例中,第三處理模塊對第三存儲器中的備份數(shù)據(jù)進行 寫操作,而不是直接操作第二存儲器中用戶原始工作數(shù)據(jù),保證用戶原始工作 數(shù)據(jù)的安全。
在上述應用程序虛擬化運行組件模塊中,還包括一應用程序運行數(shù)據(jù)庫, 與第一處理模塊、第二處理模塊和第三處理模塊分別連接,用于存儲第一處理 模塊處理后得到的第二安裝信息、第一應用程序運行依賴環(huán)境和第三存儲器存 儲的用戶原始工作數(shù)據(jù)以及該原始工作數(shù)據(jù)的備份數(shù)據(jù)信息。當?shù)谌幚砟K 獲得第二應用程序的讀/寫操作請求后,可以首先查詢該應用程序運行數(shù)據(jù)庫, 得到讀/寫請求實際對應的可執(zhí)行文件、配置文件、用戶工作數(shù)據(jù)以及備份數(shù)
據(jù)的信息等,然后再進行讀/寫操作。
為進一步地提高系統(tǒng)的性能,該應用程序虛擬化運行組件模塊還可包括一 緩存,用于對上述應用程序運行數(shù)據(jù)庫中存儲的信息進行緩存,減少查詢應用 程序數(shù)據(jù)庫的步驟,提高第二應用程序的讀/寫操作效率。
為了更進一步地提高系統(tǒng)的性能,上述第一操作系統(tǒng)和第二操作系統(tǒng)為兼 容的操作系統(tǒng),較佳的,該第一操作系統(tǒng)和第二操作系統(tǒng)為相同的操作系統(tǒng)。 這樣,在第一操作系統(tǒng)和第二操作系統(tǒng)交互過程中,避免由于操作系統(tǒng)不兼容 帶來的其他問題。
下面再將圖3所示的計算機的應用程序虛擬化運行的方法流程進行詳細
13描述
1 )在第一操作單元(如XEN的Domain0 )中,安裝有第一操作系統(tǒng),使用虛擬機管理器建立一個虛擬操作系統(tǒng)(如圖中的第二操作系統(tǒng)),并在其中安裝與第一操作系統(tǒng)兼容的運行、操作環(huán)境。
2) 在第一操作單元中,安裝應用程序虛擬化運行組件模塊,并設定第一存儲器,用于存儲第一應用程序的安裝文件;第二存儲器,用于存儲用戶的工作數(shù)據(jù);第三存儲器,該第三存儲器為暫存工作區(qū),用于存儲用戶數(shù)據(jù)的備份數(shù)據(jù);在應用程序虛擬化運行組件模塊中還設定有第一處理模塊,第二處理模塊,第三處理模塊以及應用程序運行數(shù)據(jù)庫。
3) 用戶在第一操作系統(tǒng)中安裝應用程序(如開源軟件或者共享軟件等)時,應用程序虛擬化運行組件模塊中的第一處理模塊會分析、監(jiān)控應用程序運行所依賴的可執(zhí)行文件、注冊表項、配置文件和數(shù)據(jù)等,并保存在應用程序運行數(shù)據(jù)庫中,第三存儲器的信息也保存在該應用程序運行數(shù)據(jù)庫中。(參見圖4中A過程)
4) 用戶在第一操作系統(tǒng)中以虛擬化形式運行第一應用程序時,應用程序虛擬化組件模塊中的第二處理模塊會啟動虛擬機管理器,并將應用程序運行所依賴的可執(zhí)行文件、注冊表信息、配置文件和數(shù)據(jù)等信息注入到第二操作系統(tǒng)中,在第二操作系統(tǒng)中建立第二應用程序以用該第二應用程序運行所依賴的環(huán)境,并啟動該第二應用程序。(參見圖4中B過程)
5) 當應用程序在第二操作系統(tǒng)中運行時,虛擬機管理器會截獲第二應用程序的1/0操作,將I/0操作通過虛擬機管理器內(nèi)部的安全信息通道傳送給第一操作單元中的應用程序虛擬化運行組件模塊,該應用程序虛擬化運行組件模塊查詢應用程序運行數(shù)據(jù)庫,得到1/0請求實際對應的可執(zhí)行文件、配置文件、用戶工作數(shù)據(jù)以及暫存工作區(qū)等。(參見圖5中C過程)
6) 對于讀的操作,應用程序虛擬化運行組件模塊會直接操作第一操作單元中的第二存儲器中的用戶原始工作數(shù)據(jù),并通過虛擬機管理器中的安全信息通道返回讀操作結(jié)果。(參見圖5中的D過程)
7) 對于寫的操作,應用程序虛擬化運行組件模塊會在第三存儲器中備份
14第一操作系統(tǒng)中用戶的原始工作數(shù)據(jù),然后操作備份數(shù)據(jù)并通過虛擬機管理器 中安全信息通道返回操作結(jié)果。 一旦對原始工作數(shù)據(jù)進行了備份,備份數(shù)據(jù)的 信息也加入應用程序運行數(shù)據(jù)庫中,以后的1/0操作在本次應用虛擬化運行期
間就只對備份數(shù)據(jù)進行。(參見圖5中的D過程)
8) 為提高性能,應用程序虛擬化運行組件模塊可以對應用程序運行數(shù)據(jù) 庫中的信息進行cache處理,減少一個查詢軟件運行數(shù)據(jù)庫的步驟。
9) 應用程序以虛擬化形式運行完畢后,用戶可以自己決定是否合并第一 操作系統(tǒng)中的第二存儲器中的用戶的原始工作數(shù)據(jù)和第三存儲器中的備份數(shù) 據(jù)。
如圖6所示,為圖2所示的方案的另一種實施例,該實施例中,第一操作 單元直接安裝在硬件平臺上;虛擬機管理器和第二4喿作單元安裝在第一操作單 元中,第二操作單元安裝在虛擬機管理器上。第一操作單元的結(jié)構(gòu)和第二操作 單元的結(jié)構(gòu)均和上述圖3所示的第一操作單元和第二才喿作單元相同,在此不再 贅述。
下面再將圖6所示的計算機的應用程序虛擬化運行的方法流程進行詳細 描述
1) 在第一操作單元(主機環(huán)境)中,安裝有第一操作系統(tǒng),利用虛擬機 管理器建立一個第二操作系統(tǒng)(虛擬機),并在其中安裝與第一操作系統(tǒng)兼容 的運行、操作環(huán)境。
2) 在第一操作單元中,安裝應用程序虛擬化運行組件模塊,并設定第一 存儲器,用于存儲第一應用程序的安裝文件;第二存儲器,用于存儲用戶的工 作數(shù)據(jù);第三存儲器,該第三存儲器為暫存工作區(qū),用于存儲用戶數(shù)據(jù)的備份 數(shù)據(jù);在應用程序虛擬化運行組件模塊中還設定有第一處理模塊,第二處理模 塊,第三處理模塊以及應用程序運行數(shù)據(jù)庫。
3) 用戶在第一操作系統(tǒng)中安裝第一應用程序時,應用程序虛擬化運行組 件模塊中的第 一處理模塊會分析、監(jiān)控第 一應用程序運行所依賴的可執(zhí)行文 件、注冊表項、配置文件和數(shù)據(jù)等信息,并保存在應用程序運行數(shù)據(jù)庫中。第 三存儲器的信息也保存在應用程序運行數(shù)據(jù)庫中。(參見圖7中A過程)
154) 用戶在第一操作系統(tǒng)中以虛擬化形式運行第一應用程序時,應用程序 虛擬化組件模塊中的第二處理模塊會啟動建立的虛擬機管理器,并將第一應用 程序運行所依賴的可執(zhí)行文件、注冊表項、配置文件和數(shù)據(jù)等信息通過虛擬機 管理器映射到第二操作系統(tǒng)中,在第二操作系統(tǒng)中建立第二應用程序以及第二 應用程序運行所依賴的軟硬件環(huán)境,并啟動該第二應用程序。(參見圖7中B 過程)
5) 當?shù)诙贸绦蛟诘诙僮飨到y(tǒng)運行時,虛擬機管理器會截獲該第二 應用程序的1/0操作請求,應用程序虛擬化運行組件模塊中的第三處理模塊在 獲得第二應用程序的I/O操作請求時,查詢應用程序運行數(shù)據(jù)庫,得到I/O請 求實際對應的可執(zhí)行文件、配置文件、用戶工作數(shù)據(jù)以及暫存工作區(qū)等。(參 見圖8中C過程)
6) 對于讀的操作,虛擬機管理器會將第二應用程序的1/0操作重定向到 第 一操作單元中第二存儲器實際的用戶原始工作數(shù)據(jù)。(參見圖8中的D過程)
7) 對于寫的操作,虛擬機管理器會在第三存儲器中備份第一操作系統(tǒng)中 的用戶原始工作數(shù)據(jù),并將I/0操作重定向到第三存儲器中的備份數(shù)據(jù)。 一旦 對原始數(shù)據(jù)進行了備份,備份數(shù)據(jù)的信息也加入應用程序運行數(shù)據(jù)庫,以后的 I/O操作在本次應用虛擬化運行期間就只對備份數(shù)據(jù)進行。(參見圖8中的D 過程)
8) 為提高性能,可在虛擬機管理器中對應用程序運行數(shù)據(jù)庫中的信息進 行cache處理。這樣,虛擬機管理器截獲I/0請求操作后可直挨重定向到主機 環(huán)境中實際的可執(zhí)行文件、配置和用戶工作數(shù)據(jù)。(參見圖8中的D過程)
9) 應用程序以虛擬化形式運行完畢后,用戶可以自己決定是否合并主機 環(huán)境中的用戶原始工作數(shù)據(jù)和第三存儲器中的備份數(shù)據(jù)。
綜上,本發(fā)明的上述實施例通過在第一操作單元中設置應用程序虛擬化運 行組件模塊,用于監(jiān)控第一操作系統(tǒng)中的應用程序的安裝過程,并將相關(guān)的安 裝信息映射至第二操作系統(tǒng),在第二操作系統(tǒng)中根據(jù)該安裝信息建立第二應用 程序以及該第二應用程序運行所依賴的軟硬件環(huán)境,使用戶在第二操作系統(tǒng)中 不安裝應用程序就可以對第 一操作系統(tǒng)中的用戶數(shù)據(jù)進行訪問,使應用程序只需要在第一操作系統(tǒng)中安裝一次,用戶數(shù)據(jù)也保存在第一操作系統(tǒng)環(huán)境中,不 需要在第 一操作系統(tǒng)和第二操作系統(tǒng)中遷移,使得用戶在第 一操作系統(tǒng)和第二 操作泉統(tǒng)中運行應用程序的工作簡化很多。另外,這樣的結(jié)構(gòu)還使計算機具有 更好的安全性。由于虛擬機技術(shù)提供近乎物理硬件級別上的隔離性,不但虛擬
化運行的應用程序不會影響第一操作系統(tǒng)(指XEN的Domain0和VMware、 Virtuaffiox的主機環(huán)境,而且第一操作系統(tǒng)也不會影響虛擬化運行的應用程序, 是一種比應用程序虛擬化技術(shù)安全級別更高的方案;另外,本發(fā)明的實施例還 給第一操作系統(tǒng)環(huán)境增加一個應用虛擬化運行的特性。用戶不需要完成建立虛 擬化環(huán)境、安裝和運行軟件等復雜操作,以虛擬化方式運行應用程序也只需要 一個選擇,用戶界面簡單而友好,使用戶操作簡單。另外,第一存儲器中用戶 原始工作數(shù)據(jù)和第二存儲器中的備份工作數(shù)據(jù)在同 一個操作系統(tǒng)單元中,用戶 進行數(shù)據(jù)整合也相對容易。
如圖9所示,本發(fā)明的實施例還提供一種虛擬環(huán)境中應用程序運行的方 法,包括如下步驟
步驟S91 ,處理第 一操作系統(tǒng)中的第 一應用程序的安裝文件在運行時所產(chǎn) 生的第一安裝信息,得到第二安裝信息;
步驟S92,將第二安裝信息通過虛擬機管理器輸入至第二操作系統(tǒng); 步驟S93,在第二操作系統(tǒng)中根據(jù)該第二安裝信息建立第二應用程序以及 該第二應用程序運行所依賴的軟硬件環(huán)境,并啟動第二應用程序;
步驟S94,獲取通過虛擬機管理器傳來的第二應用程序的讀/寫操作請求; 步驟S95,根據(jù)讀/操作請求獲取相應的讀/寫操作結(jié)果; 步驟S96,將讀/寫操作結(jié)果通過虛擬機管理器返回至第二操作系統(tǒng)。 上述步驟S91具體為監(jiān)控第 一操作系統(tǒng)中的第 一應用程序的安裝文件的 安裝過程,保存安裝文件在運行過程中所產(chǎn)生的第一安裝信息,得到第二安裝 信息,將該第二安裝信息存儲到應用程序運行數(shù)據(jù)庫中。
上述步驟S92具體為在監(jiān)控到虛擬化運行第一應用程序時,啟動虛擬機 管理器,并將應用程序運行數(shù)據(jù)庫中的第二安裝信息通過虛擬機管理器輸入至 第二操作系統(tǒng)。上述步驟S95具體為根據(jù)讀操作請求讀取位于第一操作系統(tǒng)中的用戶的 工作數(shù)據(jù),獲取讀操作結(jié)果;或者根據(jù)寫操作請求對位于第一操作系統(tǒng)中的用 戶的工作數(shù)據(jù)的備份數(shù)據(jù)進行寫操作,獲得寫操作結(jié)果。
本發(fā)明的上述方法的實施例,通過將第 一操作系統(tǒng)中的第 一應用程序的安 裝信息通過虛擬機管理器映射到第二操作系統(tǒng)中,并在第二操作系統(tǒng)中根據(jù)該 安裝信息建立第二應用程序以及該第二應用程序運行所依賴的軟硬件環(huán)境,并 啟動第二應用程序,第 一操作系統(tǒng)可以通過虛擬機管理器獲得第二應用程序?qū)?第 一操作系統(tǒng)中用戶數(shù)據(jù)的讀/寫操作訪問,并通過虛擬機管理器向第二操作 系統(tǒng)返回讀/寫操作系統(tǒng)結(jié)果,用戶工作數(shù)據(jù)依然保存在第一操作系統(tǒng)中,使 用戶無需在第二操作系統(tǒng)中安裝應用程序即可對第 一操作系統(tǒng)中的用戶進行 訪問,這樣用戶工作數(shù)據(jù)就無需在第一操作系統(tǒng)和第二操作系統(tǒng)間進行遷移, 簡化了用戶的工作,且使計算機的虛擬化環(huán)境更加安全。
以上所述是本發(fā)明的優(yōu)選實施方式,應當指出,對于本技術(shù)領(lǐng)域的普通技 術(shù)人員來說,在不脫離本發(fā)明所述原理的前提下,還可以作出若干改進和潤飾, 這些改進和潤飾也應^L為本發(fā)明的保護范圍。
18
權(quán)利要求
1.一種計算機,包括硬件平臺,虛擬機管理單元,安裝有虛擬機管理器,位于所述硬件平臺之上;第一操作單元,安裝有第一操作系統(tǒng),位于所述硬件平臺之上;第二操作單元,安裝有第二操作系統(tǒng),所述第二操作系統(tǒng)安裝在所述虛擬機管理器上,并通過所述虛擬機管理器與所述第一操作系統(tǒng)連接;其特征在于,所述第一操作單元包括第一存儲器,用于存儲第一應用程序的安裝文件;應用程序虛擬化運行組件模塊,與所述第一存儲器和所述虛擬機管理器分別連接,用于處理所述第一應用程序的安裝文件運行時所產(chǎn)生的第一安裝信息,得到第二安裝信息,將所述第二安裝信息通過所述虛擬機管理器輸入至所述第二操作系統(tǒng),并在所述第二操作系統(tǒng)中根據(jù)所述第二安裝信息建立第二應用程序及所述第二應用程序運行所依賴的軟硬件環(huán)境,啟動第二應用程序;通過所述虛擬機管理器獲取所述第二應用程序的讀/寫操作請求,通過所述虛擬機管理器向所述第二操作系統(tǒng)返回相應的讀/寫操作結(jié)果。
2. 根據(jù)權(quán)利要求1所述的計算機,其特征在于,所述應用程序虛擬化運 行組件模塊包括第一處理模塊,與所述第一存儲器連接,用于監(jiān)控所述第一應用程序的安 裝文件的運行過程,并保存所述安裝文件運行時所產(chǎn)生的第一安裝信息,得到 第二安裝信息;第二處理模塊,與所述第一處理模塊和所述虛擬機管理器分別連接,用于 在監(jiān)控到所述第一應用程序虛擬化運行時,啟動所述虛擬機管理器,并將所述 第二安裝信息通過所述虛擬機管理器輸入至所述第二4喿作系統(tǒng),并在所述第二 操作系統(tǒng)中根據(jù)所述第二安裝信息建立第二應用程序及所述第二應用程序運 行所依賴的軟硬件環(huán)境,啟動第二應用程序;第三處理模塊,與所述虛擬機管理器連接,用于通過所述虛擬機管理器獲取所述第二應用程序的讀/寫操作請求,根據(jù)所述讀/寫操作請求獲得相應的讀/ 寫操作結(jié)果,通過所述虛擬機管理器向所述第二操作系統(tǒng)返回所述讀/寫操作 結(jié)果。
3. 根據(jù)權(quán)利要求2所述的計算機,其特征在于,所述第一操作單元還包 括第二存儲器,與所述第三處理模塊連接,用于存儲用戶的原始工作數(shù)據(jù);所述第三處理模塊通過所述虛擬機管理器獲取所述第二應用程序的讀操 作請求后,根據(jù)所述讀操作請求對所述用戶的工作數(shù)據(jù)進行相應的讀操作,獲 得讀操作結(jié)果,并通過所述虛擬機管理器向所述第二操作系統(tǒng)返回所述讀操作 結(jié)果。
4. 根據(jù)權(quán)利要求3所述的計算機,其特征在于,所述第一操作單元還包 括第三存儲器,與所述第二存儲器和所述第三處理模塊分別連接,用于存儲 所述用戶的工作數(shù)據(jù)的備份數(shù)據(jù)以及所述第三處理^t塊通過所述虛擬機管理 器獲取所述第二應用程序的寫操作請求后,根據(jù)所述寫操作請求對所述備份數(shù) 據(jù)的寫操作結(jié)果。
5. 根據(jù)權(quán)利要求4所述的計算機,其特征在于,所述應用程序虛擬化運行組件模塊還包括一應用程序運行數(shù)據(jù)庫,與所述第一處理模塊、所述第二處理模塊和所述第三處理模塊分別連接,用于存儲所述第二安裝信息、所述第一應用程序運行依賴的軟硬件環(huán)境信息和所述原始工作數(shù)據(jù)、所述備份數(shù)據(jù)的信 白
6. 根據(jù)權(quán)利要求5所述的計算機,其特征在于,所述應用程序虛擬化運 行組件模塊,用于對所述應用程序運行數(shù)據(jù)庫中存儲的信息進行緩存。
7. 根據(jù)權(quán)利要求1所述的計算機,其特征在于,所述第一操作系統(tǒng)和所 述第二操作系統(tǒng)為兼容的操作系統(tǒng)。
8. 根據(jù)權(quán)利要求7所述的計算機,其特征在于,所述第一操作系統(tǒng)和所 述第二操作系統(tǒng)為相同的操作系統(tǒng)。
9. 根據(jù)權(quán)利要求1 8任一項所述的計算機,其特征在于,所述虛擬機管 理器安裝在所述硬件平臺上,所述第一操作單元安裝在所述虛擬機管理器上。
10. 根據(jù)權(quán)利要求9所述的計算機,其特征在于,所述虛擬機管理器中包括一安全信息通道,連接在所述應用程序虛擬化運行組件模塊和所述第二操作 系統(tǒng)之間,用于傳輸在所述應用程序虛擬化運行組件模塊和所述第二操作系統(tǒng) 之間傳輸?shù)臄?shù)據(jù)。
11. 根據(jù)權(quán)利要求1 8任一項所述的計算機,其特征在于,所述第一操作單元安裝在所述硬件平臺上,所述虛擬機管理器和所述第二操作單元安裝在 所述第一操作單元中。
12. —種虛擬機環(huán)境中應用程序部署和運行的方法,其特征在于,包括如 下步驟處理第 一操作系統(tǒng)中第 一應用程序的安裝文件在運行時所產(chǎn)生的第 一安 裝信息,得到第二安裝信息;將所述第二安裝信息通過虛擬機管理器輸入至第二操作系統(tǒng);在所述第二操作系統(tǒng)中根據(jù)所述第二安裝信息建立第二應用程序及所述 第二應用程序運行所依賴的軟硬件環(huán)境,并啟動第二應用程序;獲耳又通過所述虛擬機管理器傳來的所述第二應用程序的讀/寫操作請求;根據(jù)所述讀/操作請求獲取相應的讀/寫操作結(jié)果;將所述讀/寫操作結(jié)果通過所述虛擬機管理器返回至所述第二操作系統(tǒng)。
13. 根據(jù)權(quán)利要求12所述的方法,其特征在于,所述處理第一操作系統(tǒng) 中的第 一應用程序的安裝文件在運行時所產(chǎn)生的第 一安裝信息,得到第二安裝 信息的步驟具體為監(jiān)控第 一操作系統(tǒng)中的第 一應用程序的安裝文件的安裝過程,保存所述安 裝文件運行時所產(chǎn)生的第一安裝信息,得到第二安裝信息。
14. 根據(jù)權(quán)利要求12所述的方法,其特征在于,所述將所述第二安裝信 息通過虛擬機管理器輸入至第二操作系統(tǒng)的步驟具體為在監(jiān)控到所述第一應用程序虛擬化運行時,啟動所述虛擬機管理器,并將 所述第二安裝信息通過所述虛擬機管理器輸入至所述第二操作系統(tǒng)。
15. 根據(jù)權(quán)利要求12所述的方法,其特征在于,所述根據(jù)所述讀/寫操作 請求獲取相應的讀/寫操作結(jié)果的步驟具體為根據(jù)所述讀操作請求讀取所述第 一操作系統(tǒng)中的用戶的工作數(shù)據(jù),獲取讀操作結(jié)果;或者根據(jù)所述寫操作請求對所述第一操作系統(tǒng)中的用戶的工作數(shù)據(jù)的備份數(shù)據(jù)進行寫操作,獲得寫操作結(jié)果。
全文摘要
本發(fā)明提供一種計算機和虛擬機環(huán)境中應用程序部署和運行的方法。計算機包括硬件平臺,虛擬機管理器,第一操作系統(tǒng);第二操作系統(tǒng),通過虛擬機管理器與第一操作系統(tǒng)連接;第一操作系統(tǒng)包括第一存儲器,用于存儲第一應用程序的安裝文件;應用程序虛擬化運行組件模塊,與第一存儲器和虛擬機管理器分別連接,用于處理第一應用程序運行時的安裝信息,將安裝信息通過虛擬機管理器輸入第二操作系統(tǒng),在第二操作系統(tǒng)中根據(jù)安裝信息建立第二應用程序及其運行環(huán)境;通過虛擬機管理器獲取第二應用程序的讀/寫操作請求,通過虛擬機管理器向第二操作系統(tǒng)返回相應的讀/寫操作結(jié)果。本發(fā)明使用戶工作數(shù)據(jù)無需在操作系統(tǒng)間遷移,簡化用戶工作。
文檔編號G06F9/445GK101655798SQ20081011854
公開日2010年2月24日 申請日期2008年8月18日 優(yōu)先權(quán)日2008年8月18日
發(fā)明者余家忠 申請人:聯(lián)想(北京)有限公司