專利名稱:移動虛擬化的基礎(chǔ)設(shè)施以及基礎(chǔ)平臺的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種移動虛擬化的基礎(chǔ)設(shè)施,該移動虛擬化的基礎(chǔ)設(shè)施涉及手機(jī)用戶如何獲取在機(jī)房里的虛機(jī)(包括手機(jī)虛機(jī)及PC虛機(jī))及其上應(yīng)用的屏幕,尤其是手機(jī)虛機(jī)如何經(jīng)由模擬器QEMU在機(jī)房服務(wù)器上產(chǎn)生及如何運(yùn)用虛機(jī)池來管理大量虛機(jī)。
背景技術(shù):
隨著計(jì)算機(jī)和互聯(lián)網(wǎng)技術(shù)的進(jìn)步,出現(xiàn)了個(gè)人電腦操作系統(tǒng)虛擬化的趨勢,即個(gè)人電腦的操作系統(tǒng)不是真實(shí)地在本地運(yùn)行,而是集中在一個(gè)可虛擬大量操作系統(tǒng)的遠(yuǎn)端機(jī)房運(yùn)行,再將操作系統(tǒng)的界面通過網(wǎng)絡(luò)發(fā)送到各個(gè)終端。在個(gè)人電腦操作系統(tǒng)虛擬化的應(yīng)用領(lǐng)域中有所謂桌面虛擬化基礎(chǔ)設(shè)施(VirtualDesktop Infrastructure)的技術(shù),簡稱為VDI。 VDI的管理軟件能掌控在機(jī)房里大量的虛機(jī)所形成的虛機(jī)池,而利用RDP把桌面?zhèn)鞯絾〗K端上。V麗are公司的ESXi、思杰公司的Xen、和微軟的Hyper-V都可用做VDI的基礎(chǔ)虛擬技術(shù)。 而另一方面,當(dāng)今高端的智能手機(jī)已經(jīng)越來越像個(gè)人電腦(PC) 了,例如黑莓或蘋果iphone都可瀏覽互聯(lián)網(wǎng)、檢查電子郵件、聽音樂、看電影、照相、導(dǎo)航、或者就是打電話。手機(jī)性能需求的不斷提升,導(dǎo)致手機(jī)制作成本一直居高不下,因此近年來提出了移動虛擬化(virtual mobile)的概念,即在機(jī)房里用固網(wǎng)資源虛擬大量虛機(jī),再將屏幕傳輸至手機(jī)終端。 與傳統(tǒng)的手機(jī)技術(shù)相比,移動虛擬化的優(yōu)勢為(l)將自動化擴(kuò)充到任何會攜帶手機(jī)的人,他們可以經(jīng)由屏幕傳輸,使用運(yùn)行在機(jī)房里虛機(jī)上的PC老應(yīng)用或手機(jī)新應(yīng)用。(2)虛擬化可以增加手機(jī)安全性,例如無虞病毒攻擊或手機(jī)遺失。(3)手機(jī)虛機(jī)更易適配客戶端的真手機(jī),且傳屏數(shù)據(jù)量少,所需頻寬低。(4)可利用到機(jī)房里大量廉價(jià)的CPU、內(nèi)存、硬盤與固網(wǎng)資源。 在移動虛擬化的背景之下,提出一種可用的、高效的移動虛擬化的基礎(chǔ)設(shè)施(Virtual Mobile infrastructure, VMI),成為本領(lǐng)域亟待解決的問題。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種移動虛擬化的基礎(chǔ)設(shè)施,更確切地說是涉及企業(yè)或移動電信公司能將PC和/或手機(jī)虛機(jī)的屏幕傳到手機(jī)上的基礎(chǔ)設(shè)施。 通過虛機(jī)交換機(jī)的特征,創(chuàng)建了一個(gè)機(jī)制可利用本發(fā)明的VMI移動虛擬化基礎(chǔ)設(shè)
施獲取適配的手機(jī)屏幕以及廉價(jià)的虛機(jī)。在一個(gè)較佳實(shí)施例中,還可以套接第三方VDI開
發(fā)商的產(chǎn)品(例如Citrix XenDesktop,LeoStream,etc.),從而獲取PC虛機(jī)的屏幕。并且
由于采用虛機(jī)管理方法,企業(yè)或移動電信管理員可管理成千上萬虛機(jī)。 為了實(shí)現(xiàn)上述目的,本發(fā)明采用了一種移動虛擬化的基礎(chǔ)設(shè)施,其包括 基礎(chǔ)平臺,包括多個(gè)主機(jī),其中每一主機(jī)上使用運(yùn)行在主機(jī)操作系統(tǒng)上的QEMU進(jìn)
程虛擬至少一個(gè)具有客戶操作系統(tǒng)及內(nèi)存的手機(jī)虛機(jī);
數(shù)據(jù)管理中心,管理所述基礎(chǔ)平臺產(chǎn)生的手機(jī)虛機(jī)并向用戶分派所述手機(jī)虛機(jī);
虛機(jī)交換機(jī),連接所述基礎(chǔ)平臺及所述數(shù)據(jù)管理中心,所述虛機(jī)交換機(jī)根據(jù)來自手機(jī)客戶端的用戶請求,讓用戶選取手機(jī)虛機(jī)及運(yùn)行在手機(jī)虛機(jī)上的手機(jī)應(yīng)用;以及
基于移動終端協(xié)議的服務(wù)器,用于與手機(jī)客戶端交互。 在本發(fā)明的一實(shí)施例中,基礎(chǔ)平臺進(jìn)一步包括使客戶操作系統(tǒng)的QEMU進(jìn)程與內(nèi)核共享主機(jī)內(nèi)存的裝置。 在本發(fā)明的一實(shí)施例中,所述基礎(chǔ)平臺進(jìn)一步包括用以獲取子進(jìn)程和/或主機(jī)的性能狀態(tài)的性能代理器。 在本發(fā)明的一實(shí)施例中,所述移動虛擬化的基礎(chǔ)設(shè)施進(jìn)一步包括用以改善QEMU的軟件匪U的裝置,其中頁表查找到客戶操作系統(tǒng)內(nèi)存區(qū)虛擬地址所對應(yīng)的物理地址,再將該物理地址當(dāng)成偏移量來按位運(yùn)算匯編指令中的地址。 在本發(fā)明的一實(shí)施例中,所述基礎(chǔ)平臺進(jìn)一步包括以客戶操作系統(tǒng)源碼和平臺調(diào)試工具的開放程度來處理虛擬化的I/O設(shè)備調(diào)試預(yù)處理器,其中如果完全源碼開放就重新編譯使能直接運(yùn)行在x86平臺上,如果平臺調(diào)試工具開放則在QEMU上用工具進(jìn)行I/O驅(qū)動調(diào)試,否則用硬件開發(fā)板及BSP輔助逆向工程。 在本發(fā)明的一實(shí)施例中,所述基于移動終端協(xié)議的服務(wù)器運(yùn)行于所述基礎(chǔ)平臺的主機(jī)操作系統(tǒng)中。 在本發(fā)明的一實(shí)施例中,所述基于移動終端協(xié)議的服務(wù)器進(jìn)一步包括 在屏幕傳送前將鏡像按比例縮放、旋轉(zhuǎn)、壓縮以進(jìn)行屏幕適配的裝置; 在屏幕傳送前將之辨識鏡像改變、辨識文字,然后只傳文字及改變方塊區(qū)的裝置。 在本發(fā)明的一實(shí)施例中,所述手機(jī)客戶端包括將GPS經(jīng)緯度從數(shù)據(jù)通道傳給所
述服務(wù)器,支持回音消除及按傳收雙方頻寬、手機(jī)配備而從多種音頻加碼器談判取得最優(yōu)
方法的裝置。 在本發(fā)明的一實(shí)施例中,所述數(shù)據(jù)管理中心進(jìn)一步包括 虛機(jī)分派器,建立對話期、從虛機(jī)池取到最合適的虛機(jī)、分派虛機(jī)給手機(jī)客戶端; 虛機(jī)池管理器,以多種服務(wù)來選取虛機(jī)池中的合適虛機(jī)、返回虛機(jī)到虛機(jī)池里、檢
查虛機(jī)狀態(tài),并以背景工作的不斷檢查虛機(jī)池狀態(tài)來符合一規(guī)則引擎的規(guī)則; 虛機(jī)服務(wù)器管理器,管理多個(gè)主機(jī)并使用平臺應(yīng)用接口與所述基礎(chǔ)平臺交互;以
及 管理控制臺,用以統(tǒng)一以下資源的任意組合管理人員、組織、模板、虛機(jī)、應(yīng)用、套餐和服務(wù)器。 在本發(fā)明的一實(shí)施例中,所述規(guī)則引擎包含用來控制虛機(jī)的生成與銷毀,啟動與
停止的規(guī)則,其中所述規(guī)則可由管理員以高等計(jì)算機(jī)語言創(chuàng)建、編輯、保存、刪除。
在本發(fā)明的一實(shí)施例中,所述虛機(jī)交換機(jī)包括連接代理,提供手機(jī)客戶端接入通
道,并向手機(jī)客戶端傳輸桌面屏幕與應(yīng)用屏幕。 在本發(fā)明的一實(shí)施例中,所述連接代理的手機(jī)客戶端接入進(jìn)一步包括統(tǒng)一認(rèn)證與授權(quán)以完成kerberos安全協(xié)議與單點(diǎn)登錄。 在本發(fā)明的一實(shí)施例中,所述虛機(jī)交換機(jī)包括人員與團(tuán)體管理數(shù)據(jù)庫、應(yīng)用與套餐管理數(shù)據(jù)庫、以及虛機(jī)服務(wù)器與模板管理數(shù)據(jù)庫。
在本發(fā)明的一實(shí)施例中,還包括用以進(jìn)行模板管理的裝置,其使用模板綁定以下 設(shè)置信息的一種或幾種虛機(jī)與內(nèi)存、CPU、應(yīng)用、主機(jī)、手機(jī)操作系統(tǒng)。 在本發(fā)明的一實(shí)施例中,還包括VDI套接器,其中所述虛機(jī)交換機(jī)經(jīng)由所述VDI套 接器套接至外部VDI產(chǎn)品,以讓用戶選取運(yùn)行在外部VDI產(chǎn)品中的PC虛機(jī)及PC應(yīng)用。
在本發(fā)明的一實(shí)施例中,所述VDI套接器進(jìn)一步包括 PC連接代理,告知外部VDI產(chǎn)品用戶登錄后所取得的虛機(jī)要運(yùn)行什么應(yīng)用,等待 PC應(yīng)用代理激活了該應(yīng)用后,再通知手機(jī)客戶端準(zhǔn)備用移動終端協(xié)議接收應(yīng)用屏幕;
PC應(yīng)用代理,預(yù)先安裝在外部VDI產(chǎn)品的虛機(jī)上,當(dāng)虛機(jī)被啟動,應(yīng)用代理自己被 激活,再激活所指定的PC應(yīng)用,然后告訴PC連接代理應(yīng)用成功與否;若成功,則將應(yīng)用屏幕 傳至手機(jī)客戶端;當(dāng)手機(jī)客戶端斷開,PC應(yīng)用代理就關(guān)閉應(yīng)用。
另一方面,本發(fā)明提出一種移動虛擬化的基礎(chǔ)平臺,包括
多個(gè)主機(jī),其中每一主機(jī)包括 運(yùn)行在主機(jī)操作系統(tǒng)上的至少一 QEMU模擬器,以虛擬至少一個(gè)具有客戶操作系 統(tǒng)及內(nèi)存的手機(jī)虛機(jī); 使客戶操作系統(tǒng)的QEMU進(jìn)程與內(nèi)核共享主機(jī)內(nèi)存的裝置; 獲取子進(jìn)程和/或主機(jī)的性能狀態(tài)的性能代理器; 基于移動終端協(xié)議的服務(wù)器,用于與手機(jī)客戶端交互。
在本發(fā)明的一實(shí)施例中,上述的移動虛擬化的基礎(chǔ)平臺還包括 用以改善QEMU的軟件匪U的裝置,其中頁表查找到客戶操作系統(tǒng)內(nèi)存區(qū)虛擬地址
所對應(yīng)的物理地址,再將該物理地址當(dāng)成偏移量來按位運(yùn)算匯編指令中的地址。
在本發(fā)明的一實(shí)施例中,上述的移動虛擬化的基礎(chǔ)平臺還包括 以客戶操作系統(tǒng)源碼和平臺調(diào)試工具的開放程度來處理虛擬化的I/O設(shè)備調(diào)試
預(yù)處理器,其中如果完全源碼開放就重新編譯使能直接運(yùn)行在x86平臺上,如果平臺調(diào)試
工具開放則在QEMU上用工具進(jìn)行I/O驅(qū)動調(diào)試,否則用硬件開發(fā)板及BSP輔助逆向工程。 本發(fā)明為企業(yè)和移動電信提供了一種在移動網(wǎng)上訂閱應(yīng)用軟件的方法,該方法是
在手機(jī)操作系統(tǒng)虛擬化的基礎(chǔ)上,創(chuàng)建了移動終端協(xié)議的客戶端,讓用戶可接入、取得虛
機(jī)、運(yùn)行應(yīng)用、得到手機(jī)應(yīng)用屏幕、因而可以運(yùn)行任何手機(jī)操作系統(tǒng)及手機(jī)應(yīng)用軟件。另外,
由于套接第三方VDI產(chǎn)品,也可在手機(jī)上運(yùn)行任何PC操作系統(tǒng)及PC應(yīng)用軟件。 在本發(fā)明中,客戶用的不是啞終端而是智能手機(jī),通過遠(yuǎn)程桌面協(xié)議(Remote
desktop protocol, RDP)或與RDP兼容的移動終端協(xié)議(MobileTerminal protocol, MTP)
來獲取屏幕。屏幕不但來自于(a)PC虛機(jī)(后臺與VDI—樣,但附加手機(jī)屏幕適配器);且
可來自于(b)機(jī)房里的手機(jī)虛機(jī)。
下面參照附圖,對于熟悉本技術(shù)領(lǐng)域的人員而言,從對本發(fā)明方法的詳細(xì)描述中,
本發(fā)明的上述和其他目的、特征和優(yōu)點(diǎn)將顯而易見。
圖1A是本發(fā)明的移動虛擬化的基礎(chǔ)設(shè)施的系統(tǒng)組成框圖; 圖IB是本發(fā)明的移動虛擬化的基礎(chǔ)設(shè)施的QVisor主機(jī)層狀結(jié)構(gòu)圖; 圖2是圖1A中虛機(jī)交換機(jī)12的工作流程 圖3是圖1A中管理控制臺142的流程圖,也提供圖1中人員與團(tuán)體管理122、應(yīng)用 與套餐管理123、虛機(jī)服務(wù)器和模板管理124的管理界面; 圖4是圖3中步驟312模板管理的流程圖; 圖5是圖1A中連接代理121的流程圖; 圖6是圖5中步驟502的統(tǒng)一認(rèn)證授權(quán)系統(tǒng)(UAAS)流程圖; 圖7是圖1A中虛機(jī)分派器141的流程圖; 圖8是圖1A中虛機(jī)池管理器143的流程圖; 圖9是圖8中步驟802政策管理器的流程圖; 圖10是圖1A中虛機(jī)服務(wù)器管理器145的流程圖; 圖11是圖1A中QVisor應(yīng)用接口 146其中之"創(chuàng)建虛機(jī)"的流程圖; 圖12是圖1A中QVisor應(yīng)用接口 146其中之"克隆虛機(jī)"的流程圖; 圖13是圖1A中QVisor應(yīng)用接口 146其中之"啟動虛機(jī)"的流程圖; 圖14是圖1A中QVisor應(yīng)用接口 146其中之"停止虛機(jī)"的流程圖; 圖15是圖1A中QVisor應(yīng)用接口 146其中之"刪除虛機(jī)"的流程圖; 圖16是圖1A中QVisor應(yīng)用接口 146其中之"取得虛機(jī)狀態(tài)"的流程圖; 圖17是圖1A中QVisor應(yīng)用接口 146其中之"取得虛機(jī)"的流程圖; 圖18是圖1A中QVisor應(yīng)用接口 146其中之"取得虛機(jī)列表"的流程圖; 圖19是圖1A中QVisor應(yīng)用接口 146其中之"取得運(yùn)行虛機(jī)列表"的流程圖; 圖20是圖1A中QVisor應(yīng)用接口 146其中之"取得停止虛機(jī)列表"的流程圖; 圖21是圖1A中QVisor應(yīng)用接口 146其中之"取得虛機(jī)性能值"的流程圖; 圖22是圖IB中虛機(jī)性能代理155的流程圖; 圖23是圖1A中QVisor主機(jī)151的"共享QEMU和內(nèi)核"部分流程圖; 圖24是圖1A中QVisor主機(jī)151的"改進(jìn)QEMU Soft匪U"部分流程圖; 圖25是圖1A中QVisor主機(jī)151的"1/0設(shè)備調(diào)適預(yù)處理器"部分流程圖; 圖26是圖IB中MTP服務(wù)器152的"適配手機(jī)屏幕"部分流程圖; 圖27是圖IB中MTP服務(wù)器152的"智能傳屏"部分流程圖; 圖28是圖1A中MTP客戶端111的"手機(jī)端音頻與衛(wèi)星定位數(shù)據(jù)處理器"部分流
程圖; 圖29是圖IB中應(yīng)用代理154的流程圖。 圖30是應(yīng)用啟動與關(guān)閉時(shí)序圖。
具體實(shí)施例方式
概述 圖1A是本發(fā)明的移動虛擬化的基礎(chǔ)設(shè)施的系統(tǒng)組成框圖。此移動虛擬化的基礎(chǔ) 設(shè)施包括虛機(jī)交換機(jī)12、可選的第三方VDI產(chǎn)品13、數(shù)據(jù)管理中心14以及基礎(chǔ)平臺15 (本 發(fā)明中稱為QVisor平臺)。數(shù)據(jù)管理中心14的一個(gè)例子是申請人銷售的VMI產(chǎn)品威寧數(shù) 據(jù)中心。 圖IA所示的系統(tǒng)中,手機(jī)客戶端11通過虛機(jī)交換機(jī)12可以從數(shù)據(jù)管理中心14 取得手機(jī)虛機(jī)的屏幕。其中,數(shù)據(jù)管理中心14會與QVisor平臺15互動,而由QVisor主機(jī)151來提供多個(gè)手機(jī)虛機(jī)。在一個(gè)可選實(shí)施例中,手機(jī)客戶端11還可以從第三方VDI的產(chǎn) 品13取得PC虛機(jī)的屏幕。 虛機(jī)交換機(jī)12的作用是使應(yīng)用屏幕可以從VDI的PC虛機(jī)和VMI的手機(jī)虛機(jī)兩種 后臺傳到手機(jī)客戶端11上。典型的VMI設(shè)置是這樣的虛機(jī)交換機(jī)安裝在一個(gè)地緣的節(jié)點(diǎn) 上,同時(shí)掌控多個(gè)上述數(shù)據(jù)管理中心12和多個(gè)VDI產(chǎn)品13。這里,虛機(jī)交換機(jī)12可以讓用 戶選擇運(yùn)行在VMI (手機(jī)虛機(jī))或第三方VDI (PC虛機(jī))管理系統(tǒng)之上的應(yīng)用。
在一個(gè)例子中,VDI系統(tǒng)也可以和運(yùn)軟的專利申請"一種應(yīng)用虛擬化在公網(wǎng) 上的通用商務(wù)方法"相結(jié)合(美國專利公開號US 2008/0183641A1與中國專利公開號 CN101231731A)。申請人的銷售產(chǎn)品TRANS0D的客戶端和服務(wù)器端都可運(yùn)行在數(shù)據(jù)管理中 心里,可以輔助應(yīng)用的自動部署。 虛機(jī)交換機(jī)12的連接代理121負(fù)責(zé)與外部VDI產(chǎn)品13或VMI產(chǎn)品數(shù)據(jù)管理中心 14的接入工作。連接代理121包括PC連接代理1211與手機(jī)連接代理1212。虛機(jī)交換機(jī) 12還擁有人員與團(tuán)體管理數(shù)據(jù)庫122,應(yīng)用與套餐管理數(shù)據(jù)庫123,以及虛機(jī)服務(wù)器和模板 管理數(shù)據(jù)庫124。這些數(shù)據(jù)庫是由數(shù)據(jù)管理中心14中的管理控制臺142進(jìn)行管理。虛機(jī)交 換機(jī)12通過連接代理的統(tǒng)一認(rèn)證授權(quán)系統(tǒng)決定用戶是否有權(quán)取得所訂閱應(yīng)用的屏幕。虛 機(jī)交換機(jī)12并能判斷該應(yīng)用是從第三方的VDI后臺過來,還是從數(shù)據(jù)管理中心的QVisor 后臺過來,從而采取適當(dāng)?shù)氖謾C(jī)屏幕適配措施。 VDI第三方產(chǎn)品13是通過PC應(yīng)用代理131、 PC連接代理1211與VMI套接,形成 "VDI套接器"。 數(shù)據(jù)管理中心14是手機(jī)虛機(jī)的管理系統(tǒng),它包含了虛機(jī)分派器141、管理控制臺 142、虛機(jī)池管理器143、虛機(jī)性能監(jiān)測器144、虛機(jī)管理服務(wù)器145和QVisor應(yīng)用接口 146。 數(shù)據(jù)管理中心含有當(dāng)前所有虛機(jī)的狀態(tài),能利用虛機(jī)池管理系統(tǒng)向QVisor獲取虛機(jī),加以 分派。獲取虛機(jī)時(shí)需要通過虛機(jī)服務(wù)器管理系統(tǒng)連接到QVisor應(yīng)用接口 。 QVisor應(yīng)用接 口包含虛機(jī)的創(chuàng)建銷毀,啟動停止,虛機(jī)的獲取,虛機(jī)列表的獲取,活動虛機(jī)列表的獲取,停 止虛機(jī)列表的獲取,以及性能數(shù)據(jù)接口 。 QVisor平臺15是VMI的基礎(chǔ)技術(shù),可包含多個(gè)QVisor主機(jī)151,每個(gè)QVisor主機(jī) 運(yùn)行操作系統(tǒng)152,在操作系統(tǒng)上又可運(yùn)行性能代理154、MTP服務(wù)器153及多個(gè)QEMU的子 進(jìn)程155。在QEMU上再運(yùn)行某個(gè)移動操作系統(tǒng)156(0S),例如WinMobile, gPhone, iPhone 等。當(dāng)手機(jī)操作系統(tǒng)啟動后,其上的應(yīng)用代理157會自行啟動。QVisor平臺15的層狀組織 結(jié)構(gòu)如圖1B所示。QVisor平臺執(zhí)行性能監(jiān)測,QEMU及內(nèi)核共享,內(nèi)存分頁優(yōu)化,輸入輸出 設(shè)備調(diào)試的預(yù)處理的功能。 實(shí)現(xiàn)本發(fā)明的移動虛擬化的基礎(chǔ)設(shè)施,需要MTP客戶端111通過MTP協(xié)議與MTP服 務(wù)器端153進(jìn)行通信,其中MTP客戶端是智能手機(jī)11的一個(gè)軟件,而MTP的服務(wù)器153則 是運(yùn)行在QVisor主機(jī)151的操作系統(tǒng)上。MTP協(xié)議在下面將詳細(xì)介紹。
移動終端協(xié)議(MTP)客戶端安裝在手機(jī)上(但如果WinMobile手機(jī)已有RDP (遠(yuǎn) 程桌面)6. 0客戶端或iPhone手機(jī)已有Safari瀏覽器則不必)。該客戶端上可以看見用戶 訂閱的應(yīng)用套餐。如果用戶點(diǎn)擊套餐里的應(yīng)用,在虛機(jī)交換機(jī)12上存有用戶專有信息以資 驗(yàn)證,而后數(shù)據(jù)管理中心14會透過QVisor應(yīng)用接口 146去QVisor平臺15取得虛機(jī),這時(shí) 應(yīng)用代理157會激活應(yīng)用并把第一個(gè)應(yīng)用屏幕傳到客戶的手機(jī)上。
虛機(jī)奪換機(jī) 圖2給出了虛機(jī)交換機(jī)12的工作流程情況。虛機(jī)交換機(jī)工作流程具體包括
步驟201,用戶以登錄請求(用戶名和密碼)與所訂閱的應(yīng)用進(jìn)入虛機(jī)交換機(jī);
步驟202,判斷用戶是否訂閱了任何應(yīng)用。如是,轉(zhuǎn)入步驟204,否則必須先進(jìn)行步 驟203才能進(jìn)行步驟209 ; 步驟203,在默認(rèn)移動虛機(jī)上激活默認(rèn)移動應(yīng)用,實(shí)際是讓用戶得到移動虛機(jī)的操 作系統(tǒng)桌面; 步驟204,判斷用戶所訂閱的是否為PC應(yīng)用。如是,轉(zhuǎn)入步驟205,否則轉(zhuǎn)入步驟 207 ; 步驟205,進(jìn)入PC連接代理1211,找到最佳PC虛機(jī)并將之啟動;PC連接代理將在 下文參照圖5進(jìn)一步說明; 步驟206,通知PC應(yīng)用代理131激活PC應(yīng)用,然后轉(zhuǎn)入步驟209 ;PC應(yīng)用代理將 在下文參照圖29進(jìn)一步說明;在一例子中,如果第三方VDI產(chǎn)品可以套接,PC應(yīng)用代理131 可以用CN101231731A號專利公開的"一種應(yīng)用虛擬化在公網(wǎng)上的通用商務(wù)方法及其迷你 服務(wù)器"技術(shù)來激活并串流到PC虛機(jī)上; 步驟207,進(jìn)入移動連接代理1212 :找到最佳手機(jī)虛機(jī)并將之啟動;并通知手機(jī)應(yīng) 用代理157在虛機(jī)上激活移動應(yīng)用;移動連接代理的流程將在下文參照圖5進(jìn)一步說明;
步驟208, MTP服務(wù)器傳輸應(yīng)用的第一屏給客戶端。 圖2開始了從用戶的角度來看整個(gè)系統(tǒng)流程的說明。在步驟202判斷用戶是否訂 閱了任何應(yīng)用的時(shí)候,必須要調(diào)用數(shù)據(jù)管理中心的人員組織、應(yīng)用套餐數(shù)據(jù)庫,因此下面的 圖3給出數(shù)據(jù)管理中心的說明。圖4則是與圖3有關(guān)的一個(gè)數(shù)據(jù)管理中心的功能(模板管 理)。在說明的時(shí)候,插入了圖3與圖4這些管理員的操作,如果仍要以用戶的角度來看整 個(gè)系統(tǒng)流程,可直接跳到圖5。
數(shù)據(jù)管理中心 圖3給出了管理控制臺142的工作流程情況。管理屏幕是實(shí)現(xiàn)資源管理系統(tǒng) (Resource management system, RMS)的一種方法。資源管理系統(tǒng)的概念就是統(tǒng)一管理人 員、組織、模板、虛機(jī)、應(yīng)用、套餐和服務(wù)器。在過去,微軟的活動目錄(Active Directory, AD)對人員管理相當(dāng)風(fēng)行,但游動四方的手機(jī)用戶卻無AD管理之必要。相反地"非AD"的 輕量級電話簿接入?yún)f(xié)議(LDAP)可用來管理人員組織,甚至可實(shí)現(xiàn)多組織、多房客的數(shù)據(jù)庫 以符合電信公司的需求。VMI的管理控制臺142把上述資源整合在單一系統(tǒng)中,而后臺則用 各資源數(shù)據(jù)庫表來實(shí)現(xiàn)。流程包括 步驟301,首先是管理員進(jìn)入管理控制臺142,該管理控制臺提供一交互式界面讓 管理員進(jìn)行操作; 步驟302,判斷操作是否為管理人員及團(tuán)體。若是,轉(zhuǎn)入步驟303,否則轉(zhuǎn)入步驟
304 ; 步驟303,進(jìn)行輕量級電話簿接入?yún)f(xié)議(LDAP),其中會操作虛機(jī)交換機(jī)12中的人 員與團(tuán)體管理數(shù)據(jù)庫122; 步驟304,判斷操作是否為管理應(yīng)用及套餐。若是,轉(zhuǎn)入步驟305,否則轉(zhuǎn)入步驟
306 ;
9
步驟305,操作虛機(jī)交換機(jī)12中的應(yīng)用與套餐的數(shù)據(jù)庫123 ; 步驟306,判斷操作是否為管理虛機(jī)。若是,轉(zhuǎn)入步驟307,否則轉(zhuǎn)入步驟310 ; 步驟307,虛機(jī)服務(wù)器管理,細(xì)節(jié)見圖10,其過程大致是先轉(zhuǎn)入步驟308的QVisor
應(yīng)用接口 146,再由步驟309在QVisor主機(jī)151里創(chuàng)建、啟動、停止、刪除虛機(jī)等; 步驟308,從步驟307而來的虛機(jī)服務(wù)器管理器的各個(gè)功能會通過網(wǎng)絡(luò)服務(wù)(web
services)的方式調(diào)用QVisor應(yīng)用接口 146來創(chuàng)建、啟動、停止、刪除虛機(jī)等; 步驟309, QVisor主機(jī)151里運(yùn)行在QEMU 153上的客戶操作系統(tǒng)會被啟動或停
止; 步驟310,判斷操作是否為管理QVisor主機(jī)。若是,轉(zhuǎn)入步驟311,否則轉(zhuǎn)入步驟 312 ; 步驟311,操作QVisor主機(jī)的數(shù)據(jù)庫表; 步驟312,進(jìn)行模板管理,細(xì)節(jié)見圖4及下文的相關(guān)描述。 樽板管理 圖4是模板管理的處理流程圖。模板管理的概念就是使用模板綁定了虛機(jī)與內(nèi) 存、CPU、應(yīng)用、主機(jī)、手機(jī)操作系統(tǒng)等設(shè)置信息。與VDI不同的是,模板不再受限于活動目錄 (AD)或其他網(wǎng)絡(luò)管理工具(例如不必顧忌AD的入域及出域)。多個(gè)虛機(jī)可以有相同模板。
步驟401,管理員進(jìn)入模板管理; 步驟402,判斷操作是否為建立模板。若是,轉(zhuǎn)入步驟403,否則轉(zhuǎn)入步驟404 ;
步驟403,從界面取得模板的名字、鏡像ID(與鏡像存儲的路徑有關(guān))、模板類型 (即不同的手機(jī)操作系統(tǒng))、內(nèi)存、CPU、應(yīng)用、以及用戶指定的那些會按模板信息來安裝虛 機(jī)的主機(jī),并把這些信息在數(shù)據(jù)庫模板表里建立一條模板記錄; 步驟404,判斷操作是否為查找模板。若是,轉(zhuǎn)入步驟405,否則轉(zhuǎn)入步驟408 ;
步驟405,判斷用名字還是類型查找。若是用名字,轉(zhuǎn)入步驟406,否則轉(zhuǎn)入步驟 407 ; 步驟406,用名字過濾數(shù)據(jù)庫模板表;
步驟407,用類型查找數(shù)據(jù)庫模板表; 步驟408,判斷操作是否為更改內(nèi)存及CPU。若是,轉(zhuǎn)入步驟409,否則轉(zhuǎn)入步驟 412 ; 步驟409,虛機(jī)服務(wù)器管理,細(xì)節(jié)見圖IO及參照圖IO的描述,其過程大致是先轉(zhuǎn)入 步驟410的QVisor應(yīng)用接口 ,再由步驟411在Qvisor主機(jī)151里更改虛機(jī)內(nèi)存及CPU等;
步驟410,從步驟409而來的虛機(jī)服務(wù)器經(jīng)理的更改虛機(jī)內(nèi)存及CPU等功能會通過 web services的方式調(diào)用QVisor應(yīng)用接口來更改虛機(jī)內(nèi)存及CPU ;
步驟411,在QVisor主機(jī)151里更改虛機(jī)內(nèi)存及CPU的設(shè)置;
步驟412,非法操作,報(bào)錯。
連接代理 圖5是連接代理(connection broker)的處理流程圖。連接代理有兩種,PC連接 代理與手機(jī)連接代理。這里的流程圖在觀念上并無不同。但PC連接代理由于要接通各種第 三方VDI產(chǎn)品,所以可能有不一樣的需求。 一般而言,移動連接代理由于手機(jī)應(yīng)用啟動快, 所以等待后臺應(yīng)用屏幕不是太大的問題。PC連接代理1211是組成VDI套接器的一部分。
步驟501,首先用戶以用戶名/密碼/應(yīng)用名向服務(wù)器請求登錄; 步驟502,判斷用戶是否通過UAAS認(rèn)證授權(quán),細(xì)節(jié)見圖6。若是,轉(zhuǎn)入步驟504,否
則轉(zhuǎn)入步驟503 ; 步驟503,告訴客戶端顯示錯誤信息; 步驟504,令虛機(jī)分派器141獲取虛機(jī)IP,細(xì)節(jié)見圖7 ; 步驟505,從應(yīng)用列表查到應(yīng)用ID ; 步驟506,連接應(yīng)用,包括(a)告知虛機(jī)上的應(yīng)用代理157用戶所訂閱的應(yīng)用ID ; (b)等待,直到應(yīng)用啟動或失??;(c)通知MTP客戶端111應(yīng)用已啟動,準(zhǔn)備接收應(yīng)用的第一 屏幕,或告以啟動失敗報(bào)錯。 圖6是統(tǒng) 一 認(rèn)證授權(quán)系統(tǒng)(Unified Authentication and Authorization System, UAAS)的處理流程圖。UAAS用來執(zhí)行kerberos安全通訊協(xié)議以及單點(diǎn)登陸(Single Sign-0n,SS0) 。 Kerberos主要用于計(jì)算機(jī)網(wǎng)絡(luò)的身份鑒別(Authentication),其特點(diǎn)是用 戶只需輸入一次身份驗(yàn)證信息就可以憑借此驗(yàn)證獲得的票據(jù)(ticket-granting ticket, TGT)訪問多個(gè)服務(wù),即SSO。由于在每個(gè)客戶端Client和服務(wù)Service之間建立了共享密 鑰,使得該協(xié)議具有相當(dāng)?shù)陌踩浴?
步驟601 ,用戶向服務(wù)器請求虛機(jī); 步驟602,電信服務(wù)器得知用戶沒有票據(jù)于是向UAAS服務(wù)器詢問客戶公司代理服 務(wù)器的URL ; 步驟603, UAAS服務(wù)器告知客戶公司代理服務(wù)器的URL (UniformResource Locator,統(tǒng)一資源位置); 步驟604,電信服務(wù)器要用戶把UAAS代理服務(wù)器重定向?yàn)橛脩艄敬矸?wù)器的 URL ; 步驟605,用戶提交他的授權(quán)的憑證(credential);
步驟606, UAAS代理服務(wù)器處理用戶公司的授權(quán); 步驟607,公司(即LDAP的域組件Domain Component, DC)傳回用戶的票據(jù)TGT ; LDAP是輕量級電話簿接入?yún)f(xié)議的縮寫。 步驟608, UAAS代理服務(wù)器將用戶ID和TGT傳到UAAS服務(wù)器以完成授權(quán); 步驟609, UAAS服務(wù)器傳回代理服務(wù)器的PGT ; 步驟610, UAAS代理服務(wù)器傳回用戶的TGT和PGT ; 步驟611,用戶提交PGT給電信服務(wù)器; 步驟612,電信服務(wù)器傳回虛機(jī)的RDP URL ; 步驟613,用戶提交TGT并且在虛機(jī)上登錄。 虛機(jī)管理和分派 圖7是虛機(jī)分派器的處理流程圖。虛機(jī)分派器141建立對話期(session),指派虛
機(jī)池管理器143取得最適合的虛機(jī),并分派虛機(jī)給用戶。流程如下 步驟701,連接代理121把已認(rèn)證授權(quán)了的用戶送到虛機(jī)分派器141 ; 步驟702,虛機(jī)分派器141為用戶建立一個(gè)對話期; 步驟703,判斷所請求的虛機(jī)是靜態(tài)或動態(tài)虛機(jī)。若是靜態(tài)虛機(jī),轉(zhuǎn)入步驟704,否 則轉(zhuǎn)入步驟705 ;步驟704,取得已指定給用戶的靜態(tài)虛機(jī)信息;
步驟705,從虛機(jī)池取到最合適的虛機(jī),細(xì)節(jié)見圖8 ; 步驟706,分派虛機(jī)給用戶(虛機(jī)啟動后, 一個(gè)應(yīng)用代理(如圖1A)會在這個(gè)虛機(jī) 上自動激活)。 圖8給出虛機(jī)池管理器的處理流程圖。由圖可見,流程分為兩部分其一是不斷循 環(huán)的背景工作(background Worker),檢查控制池的大小是否合乎政策管理器的要求。另一 則是提供各種服務(wù)(Services)給虛機(jī)分派器取得虛機(jī)、返回虛機(jī)、檢查虛機(jī)狀態(tài)、檢查池 的大小。能這樣做是因?yàn)槭謾C(jī)虛機(jī)可以迅速從硬盤啟動,所以在背景工作的循環(huán)里不會有 長時(shí)間的等待。不像在VDI里的PC虛機(jī),由于尺寸過大,其啟動常需管理員手動處理。具
斷虛機(jī)池管理器是否處于初始化時(shí)間。若是,轉(zhuǎn)入步驟802,否則轉(zhuǎn)入
體流程如下步驟801
步驟806 ;步驟802步驟803步驟804步驟805步驟806
入步驟817 ;步驟807步驟808步驟809:步驟810步驟811:步驟812:步驟813
812 ;步驟814步驟815步驟816步驟817
入步驟819 ;步驟818步驟819
則轉(zhuǎn)入步驟821 ;
步驟820步驟821
轉(zhuǎn)入步驟823步驟822步驟823
-個(gè)背景工作線程不斷檢查控制池的大小; ,從政策管理器取到負(fù)荷平衡或節(jié)能的政策,細(xì)節(jié)見圖9 ; ,判斷虛機(jī)池是否符合政策。若是,轉(zhuǎn)入步驟805,否則回到步驟804 ; ,新建、啟動、停止或刪除虛機(jī)(細(xì)節(jié)見圖10)以符合政策; ,判斷虛機(jī)池管理器的服務(wù)是否為取得虛機(jī)。若是,轉(zhuǎn)入步驟807,否則轉(zhuǎn)
,主機(jī)起始計(jì)數(shù)為0; ,模板起始計(jì)數(shù)為0;
,判斷下個(gè)主機(jī)是否已超過范圍。若是,轉(zhuǎn)入步驟816,否則轉(zhuǎn)入步驟810 ;
,虛機(jī)起始計(jì)數(shù)為0;
,判斷下個(gè)模板是否已超過范圍. 判斷下個(gè)虛機(jī)是否已超過范圍。
若是,轉(zhuǎn)入步驟808,否則轉(zhuǎn)入步驟812 ;
n, ,, ,,AHUKU^w口。若是,轉(zhuǎn)入步驟810,否則轉(zhuǎn)入步驟813;
,判斷所予虛機(jī)特性是否符合所需。若是,轉(zhuǎn)入步驟814,否則轉(zhuǎn)入步驟
,已找到虛機(jī)、模板和主機(jī),把該模板里的虛機(jī)減少一個(gè); ,叫虛機(jī)管理服務(wù)器更新虛機(jī)狀態(tài); ,記錄并報(bào)錯"目前沒有適當(dāng)虛機(jī)";
,判斷虛機(jī)池管理器的服務(wù)是否為返回虛機(jī)。若是,轉(zhuǎn)入步驟818,否則轉(zhuǎn) ,把所予主機(jī)的模板增加一個(gè)虛機(jī),并更新狀態(tài);
,判斷虛機(jī)池管理器的服務(wù)是否為檢查虛機(jī)狀態(tài)。若是,轉(zhuǎn)入步驟820,否 ,虛機(jī)池檢查員回報(bào)某個(gè)虛機(jī)狀態(tài);
,判斷虛機(jī)池管理器的服務(wù)是否為檢查虛機(jī)池。若是,轉(zhuǎn)入步驟822,否則
12
圖9給出政策管理器(規(guī)則引擎)的處理流程圖。虛機(jī)池政策就是由規(guī)則引擎來 產(chǎn)生,而規(guī)則是程序員、客服人員或網(wǎng)管人員用高等語言(如Groovy)編寫而成。 步驟901,進(jìn)入規(guī)則引擎; 步驟902,判斷操作是否為創(chuàng)建規(guī)則。若是,轉(zhuǎn)入步驟903,否則轉(zhuǎn)入步驟905 ; 步驟903 ,展示編輯屏幕; 步驟904,保存規(guī)則; 步驟905,判斷操作是否為導(dǎo)入(load)規(guī)則。若是,轉(zhuǎn)入步驟906,否則轉(zhuǎn)入步驟 908 ; 步驟906,展示規(guī)則列表; 步驟907,導(dǎo)入(load)規(guī)則至編輯屏幕; 步驟908,判斷操作是否為修改規(guī)則。若是,轉(zhuǎn)入步驟909,否則轉(zhuǎn)入步驟913 ; 步驟909,展示規(guī)則列表; 步驟910,導(dǎo)入(load)規(guī)則至編輯屏幕; 步驟911,修改規(guī)則; 步驟912,保存規(guī)則; 步驟913,判斷操作是否為刪除規(guī)則。若是,轉(zhuǎn)入步驟914,否則轉(zhuǎn)入步驟917 ; 步驟914,展示規(guī)則列表; 步驟915,當(dāng)用戶選取某個(gè)規(guī)則,則高亮(Highlight)顯示該規(guī)則; 步驟916,刪除規(guī)則; 步驟917,非法操作,報(bào)錯。 圖10給出虛機(jī)服務(wù)器管理器的處理流程圖。雖然QVisor平臺會有多個(gè)主機(jī)同時(shí) 運(yùn)行,但管理這些主機(jī)的任務(wù)卻屬于虛機(jī)服務(wù)器管理器145。因此虛機(jī)服務(wù)器管理器145維 護(hù)主機(jī)的數(shù)據(jù)庫表,以及每個(gè)QVisor主機(jī)151所管轄的虛機(jī),和這些虛機(jī)的狀態(tài)。虛機(jī)服 務(wù)器管理器提供許多虛機(jī)的操作,如下所述 步驟1001,進(jìn)入虛機(jī)的操作; 步驟1002,判斷操作是否為克隆虛機(jī)。若是,轉(zhuǎn)入步驟1003,否則轉(zhuǎn)入步驟1006 ; 步驟1003,從數(shù)據(jù)庫以虛機(jī)ID查找主機(jī); 步驟1004,通過QVisor應(yīng)用接口 146來克隆虛機(jī),細(xì)節(jié)見圖12 ; 步驟1005,進(jìn)行克隆好的虛機(jī)對用戶的綁定; 步驟1006,判斷操作是否為啟動虛機(jī)。若是,轉(zhuǎn)入步驟1007,否則轉(zhuǎn)入步驟1011 ; 步驟1007,從數(shù)據(jù)庫以虛機(jī)ID查找主機(jī); 步驟1008,從數(shù)據(jù)庫以用戶名查找虛機(jī); 步驟1009,通過QVisor應(yīng)用接口 146來啟動虛機(jī),細(xì)節(jié)見圖13 ; 步驟1010,生成MTP傳輸?shù)刂罚?步驟1011,判斷操作是否為停止虛機(jī)。若是,轉(zhuǎn)入步驟1012,否則轉(zhuǎn)入步驟1015 ; 步驟1012,從數(shù)據(jù)庫以虛機(jī)ID查找主機(jī); 步驟1013,從數(shù)據(jù)庫以用戶名查找虛機(jī); 步驟1014,通過QVisor應(yīng)用接口 146來停止虛機(jī),細(xì)節(jié)見圖14 ; 步驟1015,判斷操作是否為銷毀虛機(jī)。若是,轉(zhuǎn)入步驟1016,否則轉(zhuǎn)入步驟1020 ;
步驟1016,從數(shù)據(jù)庫以虛機(jī)ID查找主機(jī);
步驟1017,從數(shù)據(jù)庫以用戶名查找虛機(jī);
步驟1018,刪除虛機(jī)對用戶的綁定; 步驟1019,通過QVisor應(yīng)用接口 146來刪除虛機(jī),細(xì)節(jié)見圖15 ; 步驟1020,判斷操作是否為創(chuàng)建虛機(jī)。若是,轉(zhuǎn)入步驟1021,否則轉(zhuǎn)入步驟1024; 步驟1021,從數(shù)據(jù)庫選取可用的主機(jī); 步驟1022,通過QVisor應(yīng)用接口 146來創(chuàng)建虛機(jī),細(xì)節(jié)見圖11 ; 步驟1023,進(jìn)行創(chuàng)建好的虛機(jī)對用戶的綁定; 步驟1024,進(jìn)行其它虛機(jī)狀態(tài),虛機(jī)列表,虛機(jī)性能值的操作。 圖11-21詳述QVisor的應(yīng)用接口。大部分的接口是數(shù)據(jù)庫與數(shù)據(jù)結(jié)構(gòu)操作,但啟
動虛機(jī)則是操作系統(tǒng)(如Li皿x或MS Windows)的指令去運(yùn)行QEMU與客戶操作系統(tǒng);停止
虛機(jī)則是殺掉該進(jìn)程。 圖11給出創(chuàng)建虛機(jī)的處理流程圖。 步驟1101,取得鏡像路徑與虛機(jī)的平臺名; 步驟1102,從數(shù)據(jù)庫查找平臺記錄以取得內(nèi)核、內(nèi)存、機(jī)器和執(zhí)行文件信息;
步驟1103,查找最大t即Number(虛擬網(wǎng)卡的序列號); 步驟1104,生成皿id和MAC號碼;UUID (Universal Unique Identifier)是指在一 臺機(jī)器上生成的數(shù)字,它保證對在同一時(shí)空中的所有機(jī)器都是唯一的。MAC(Media Access Control,介質(zhì)訪問控制)地址是燒錄在Network InterfaceCard(網(wǎng)卡,NIC)里的,也叫硬 件地址。 步驟1105,以下列參數(shù)皿id、 macft、平臺名、鏡像路徑、t即N咖ber、和虛機(jī)狀態(tài)二
POWERED-OFF (停止),把虛機(jī)加入數(shù)據(jù)庫QVisor表中; 步驟1106,返回生成虛機(jī)。 圖12給出克隆虛機(jī)的處理流程圖。 步驟1201,如果要克隆的虛機(jī)沒有uuid則報(bào)錯; 步驟1202,如果要克隆的虛機(jī)狀態(tài)為運(yùn)行(ru皿ing)則報(bào)錯; 步驟1203,用鏡像路徑與虛機(jī)的平臺名創(chuàng)建虛機(jī); 步驟1204,如果虛機(jī)不能被創(chuàng)建則報(bào)錯; 步驟1205,把創(chuàng)建好的虛機(jī)加入虛機(jī)列表; 步驟1206,返回。 圖13給出啟動虛機(jī)的處理流程圖。 步驟1301,如果找不到虛機(jī)的皿id則報(bào)錯; 步驟1302,如果虛機(jī)狀態(tài)為運(yùn)行(running)則報(bào)錯; 步驟1303,取得執(zhí)行指令名、機(jī)器名、內(nèi)存大小、內(nèi)核路徑、鏡像名、鍵盤鼠標(biāo)驅(qū) 動; 步驟1304 ,取得MAC地址、tap 、國家、QEMU路徑和MTP端口 ; 步驟1305,激活進(jìn)程用上述參數(shù)執(zhí)行QEMU和其客戶操作系統(tǒng)(guestOS);執(zhí)行 時(shí)使用Linux指令fork或Windows的createProcess ()。這些指令為QEMU建立了一以個(gè) 子進(jìn)程,該子進(jìn)程又以參數(shù)方式將客戶操作系統(tǒng)運(yùn)行起來。
步驟1306,把建好的虛機(jī)加入虛機(jī)列表; 步驟1307,返回。 圖14給出停止虛機(jī)的處理流程圖。 步驟1401,如果找不到虛機(jī)的uuid則報(bào)錯; 步驟1402,如果虛機(jī)狀態(tài)為停止(POWERED-OFF)則報(bào)錯; 步驟1403,取得虛機(jī)的進(jìn)程ID (PID); 步驟1404,殺掉PID的進(jìn)程;執(zhí)行時(shí)使用Linux指令kill。 Kill會將QEMU連帶 客戶操作系統(tǒng)一起殺死。對Windows操作系統(tǒng)則用指令TerminateProcess ()。 步驟1405,等待到進(jìn)程完全被殺死; 步驟1406,把虛機(jī)狀態(tài)設(shè)為停止(POWERED-OFF);把MTP端口設(shè)為nil ; 步驟1407,返回。 圖15給出刪除虛機(jī)的處理流程圖。 步驟1501,如果虛機(jī)狀態(tài)為運(yùn)行(running)則報(bào)錯; 步驟1502,如果找不到虛機(jī)的皿id則報(bào)錯; 步驟1503,把所予uuid的虛機(jī)刪除; 步驟1504,清理虛機(jī)內(nèi)存空間; 步驟1505,從數(shù)據(jù)庫QVisor表刪除虛機(jī)紀(jì)錄; 步驟1506,從虛機(jī)列表刪除虛機(jī); 步驟1507,返回。 圖16給出取得虛機(jī)狀態(tài)的處理流程圖。 步驟1601,判斷虛機(jī)是否在列表中。若是,轉(zhuǎn)入步驟1603,否則轉(zhuǎn)入步驟1602 ; 步驟1602,返回狀態(tài)=N/A ; 步驟1603,換到(switch to)找得虛機(jī)的狀態(tài)。若狀態(tài)是運(yùn)行(RUNNING),轉(zhuǎn)入步
驟1604,若狀態(tài)是停止(POWERED-OFF),轉(zhuǎn)入步驟1605,若狀態(tài)是N/A,轉(zhuǎn)入步驟1606 ; 步驟1604,把虛機(jī)狀態(tài)設(shè)為運(yùn)行(RUNNING); 步驟1605,把虛機(jī)狀態(tài)設(shè)為停止(POWERED-OFF); 步驟1606,把虛機(jī)狀態(tài)設(shè)為N/A ; 步驟1607,返回。 圖17給出取得虛機(jī)的處理流程圖。 步驟1701,用所予uuid把虛機(jī)從虛機(jī)列表中找到; 步驟1702,判斷是否在列表中找到了。若是,轉(zhuǎn)入步驟1703,否則轉(zhuǎn)入步驟1704 ; 步驟1703,把找到的虛機(jī)改為適當(dāng)Web service格式并返回; 步驟1704,返回空值。 圖18給出取得虛機(jī)列表的處理流程圖。 步驟1801,把當(dāng)前指針設(shè)為內(nèi)部虛機(jī)列表的頭; 步驟1802,判斷當(dāng)前指針是否為空值。若是,轉(zhuǎn)入步驟1806,否則轉(zhuǎn)入步驟1803 ; 步驟1803,把當(dāng)前虛機(jī)改為適當(dāng)Web service格式; 步驟1804,把虛機(jī)加入連接列表; 步驟1805,把當(dāng)前指針設(shè)為內(nèi)部虛機(jī)列表的下一個(gè),然后轉(zhuǎn)入步驟1802 ;
步驟1806,返回連接列表。 圖19給出取得運(yùn)行虛機(jī)列表的處理流程圖。 步驟1901,把當(dāng)前指針設(shè)為內(nèi)部虛機(jī)列表的頭; 步驟1902,判斷當(dāng)前指針是否為空值。若是,轉(zhuǎn)入步驟1907,否則轉(zhuǎn)入步驟1903 ;
步驟1903,判斷當(dāng)前當(dāng)前虛機(jī)狀態(tài)是否為運(yùn)行。若是,轉(zhuǎn)入步驟1904,否則轉(zhuǎn)入步 驟1906 ; 步驟1904,把當(dāng)前虛機(jī)改為適當(dāng)Web service格式;
步驟1905,把虛機(jī)加入連接列表; 步驟1906,把當(dāng)前指針設(shè)為內(nèi)部虛機(jī)列表的下一個(gè),然后轉(zhuǎn)入步驟1902 ; 步驟1907,返回連接列表。 圖20給出取得停止虛機(jī)列表的處理流程圖。 步驟2001,把當(dāng)前指針設(shè)為內(nèi)部虛機(jī)列表的頭; 步驟2002,判斷當(dāng)前指針是否為空值。若是,轉(zhuǎn)入步驟2007,否則轉(zhuǎn)入步驟2003 ;
步驟2003,判斷當(dāng)前當(dāng)前虛機(jī)狀態(tài)是否為停止。若是,轉(zhuǎn)入步驟2004,否則轉(zhuǎn)入步 驟2006 ; 步驟2004,把當(dāng)前虛機(jī)改為適當(dāng)Web service格式;
步驟2005,把虛機(jī)加入連接列表; 步驟2006,把當(dāng)前指針設(shè)為內(nèi)部虛機(jī)列表的下一個(gè),然后轉(zhuǎn)入步驟2002 ; 步驟2007,返回連接列表。 圖21給出取得虛機(jī)性能的處理流程圖。 步驟2101,以請求的虛機(jī)或/和主機(jī)值進(jìn)入; 步驟2102,判斷虛機(jī)是否為運(yùn)行狀態(tài)。若是,轉(zhuǎn)入步驟2103,否則轉(zhuǎn)入步驟2106 ; 步驟2103,取得所予虛機(jī)的進(jìn)程ID (PID); 步驟2104,用pid調(diào)用性能代理,細(xì)節(jié)見圖22 ; 步驟2105,返回所予虛機(jī)或整體主機(jī)的CPU、內(nèi)存、和心跳信息; 步驟2106,報(bào)錯返回。 QVisor平臺 圖22-25是QVisor平臺的特性說明。由于本發(fā)明把手機(jī)操作系統(tǒng)運(yùn)行在QEMU的 模擬器上,所以優(yōu)化QEMU或子進(jìn)程來提高性能就非常重要。另一方面,本發(fā)明通過一些獨(dú) 特的調(diào)試工具組合,形成了手機(jī)操作系統(tǒng)虛擬化的預(yù)處理器(圖25),具體說明如下
圖22給出性能代理的處理流程圖。性能代理154運(yùn)行在QVisor主機(jī)151的Li皿x 操作系統(tǒng)平臺上。手機(jī)操作系統(tǒng)本身可能沒有相關(guān)CPU/內(nèi)存使用率的系統(tǒng)接口。即使有, 也只與模擬的CPU和內(nèi)存有關(guān),但不是物理的。因此在Li皿x上運(yùn)行性能代理154以監(jiān)測 各個(gè)手機(jī)操作系統(tǒng)的性能以及虛機(jī)的心跳。性能代理執(zhí)行Li皿x指令如"free", "top", "vmstat","ps aux"以取得CPU和內(nèi)存使用統(tǒng)計(jì)數(shù)字,還有進(jìn)程狀態(tài)。如果有進(jìn)程沒有回 應(yīng),性能代理有能力將之殺死。流程如下
步驟2201,以pid或主機(jī)值進(jìn)入; 步驟2202,判斷進(jìn)程是否還在運(yùn)行。若是,轉(zhuǎn)入步驟2203,否則轉(zhuǎn)入步驟2205 ;
步驟2203,執(zhí)行Linux指令行ps,top,或vmstat ;ps是Linux的指令,用來顯示進(jìn)程狀態(tài),類似于Windows的任務(wù)管理器。如果再附加參數(shù)ux可以得知運(yùn)行進(jìn)程的CPU與內(nèi) 存使用率。Top是Li皿x的另一指令,有類似顯示進(jìn)程狀態(tài)的功能,可以互動方式動態(tài)顯示。 vmstat則能顯示更多的內(nèi)核線程、IO、虛擬內(nèi)存、CPU Trap的統(tǒng)計(jì)信息;相對于Windows XP 與Vista,進(jìn)程狀態(tài)則可用Windows Management Instrumentation (麗I)里的函數(shù)Col lectingHighCPUUtilizationEvents()來取得。 步驟2204,返回所予進(jìn)程或整體主機(jī)的CPU、內(nèi)存、和心跳信息;
步驟2205,報(bào)錯返回。 圖23給出共享QEMU和內(nèi)核的處理流程圖。由于每個(gè)客戶操作系統(tǒng)(guest0S)原 本都有自身內(nèi)核的內(nèi)存及QEMU重復(fù)所占的內(nèi)存,這些浪費(fèi)的內(nèi)存如能共享,則能將節(jié)省的 內(nèi)存用來給更多的客戶操作系統(tǒng)。再加上手機(jī)操作系統(tǒng)不大,又可與系統(tǒng)數(shù)據(jù)完全分離,一 個(gè)只能運(yùn)行2-4個(gè)PC虛機(jī)的雙核4G內(nèi)存的X86主機(jī),大約能運(yùn)行60或更多個(gè)(由于共 享)手機(jī)虛機(jī)。具體流程如下
步驟2301 ,賦予QEMU和內(nèi)核的物理內(nèi)存; 步驟2302,判斷能否打開內(nèi)核和QEMU文件。若能,轉(zhuǎn)入步驟2304,否則轉(zhuǎn)入步驟 2303 ; 步驟2303,文件打不開,報(bào)錯; 步驟2304,利用lseek()找到兩個(gè)文件的尺寸(size);并利用ftok()計(jì)算共享 內(nèi)存的鍵值(key) ;lseek()是C程序語言庫的函數(shù),可利用文件的位移量找出文件長度; ftok ()函數(shù)則為Li皿x的系統(tǒng)函數(shù),用以獲取key的值來創(chuàng)建或者打開信號量,共享內(nèi)存和 消息隊(duì)列; 步驟2305,判斷Key的值是否為-1。若是,轉(zhuǎn)入步驟2306,否則轉(zhuǎn)入步驟2307 ;
步驟2306,報(bào)ftok錯; 步驟2307,計(jì)算Shmat()所要的參數(shù)Loading address = ram base+((physical— page_descriptor+start_loading_address) & target—page—mask)+kernel_QEMU_load_ address ;意即客戶操作系統(tǒng)的絕對內(nèi)存地址是下列三個(gè)量的總和(l)ram的基礎(chǔ)地址, (2)物理內(nèi)存頁的翻譯過后的絕對地址,和(3)內(nèi)核/QEMU的導(dǎo)入地址;
步驟2308, Shmget ()是Linux的系統(tǒng)函數(shù),用以獲得或創(chuàng)建一個(gè)IPC共享內(nèi)存區(qū) 域,并返回相應(yīng)的標(biāo)識符。這里判斷Shmget (key, size, IPC_Creat)的返回值是否EEXIST。 若是,轉(zhuǎn)入步驟2309,否則轉(zhuǎn)入步驟2311 ; 步驟2309,共享內(nèi)存已存在(主叫的子進(jìn)程并非該主機(jī)上的第一個(gè)進(jìn)程);
步驟2310,Shmat()是Linux的系統(tǒng)函數(shù),為子進(jìn)程附上(Attach)它的共享內(nèi)存, 這樣主叫的子進(jìn)程就可以利用Shmat(shm_id, loading_address)與第一個(gè)進(jìn)程共享內(nèi)存;
步驟2311,主叫的子進(jìn)程是該主機(jī)上的第一個(gè)進(jìn)程,返回。 步驟2301-2311給出的是Linux的內(nèi)核共享解決方法。但如果主機(jī)是Windows XP 或Vista,則要用到Win32開發(fā)環(huán)境里有關(guān)內(nèi)存管理的系統(tǒng)服務(wù),將客戶操作系統(tǒng)及QEMU兩 個(gè)執(zhí)行文件當(dāng)成同一個(gè)子進(jìn)程,利用CreateFileM即ping()的函數(shù)取得文件的handle。此 后,其它的子進(jìn)程則以O(shè)penFileM即ping()的函數(shù)及第一次取得的handle來共享第一個(gè)子 進(jìn)程的內(nèi)存。 圖24給出改進(jìn)QEMU Soft匪U的處理流程圖。在QVisor的設(shè)置下,內(nèi)存管理通常是用QEMU的軟件內(nèi)存管理單元(Memory Management Unit,匪U)。軟件匪U模擬了匪U的 功能,例如用軟件來實(shí)施地址翻譯和內(nèi)存保護(hù)。當(dāng)客戶應(yīng)用通過匪U翻譯而使用到一個(gè)內(nèi) 存位置時(shí),QEMU會替一個(gè)操作系統(tǒng)區(qū)域,按位運(yùn)算(mask)列表檢索的結(jié)果,把所需虛擬地 址轉(zhuǎn)換成物理地址。這樣的改進(jìn)可以使內(nèi)存接入快十倍。具體流程如下
步驟2401 ,進(jìn)入QEMU Sof t匪U ; 步驟2402,判斷操作是否為創(chuàng)建虛機(jī)。若是,轉(zhuǎn)入步驟2403,否則轉(zhuǎn)入步驟2404 ;
步驟2403,賦予客戶操作系統(tǒng)(guest OS) —個(gè)內(nèi)存區(qū); 步驟2404,判斷操作是否為客戶操作系統(tǒng)地址翻譯。若是,轉(zhuǎn)入步驟2405,否則轉(zhuǎn) 入步驟2409 ; 步驟2405,頁表查找該客戶操作系統(tǒng)虛擬內(nèi)存區(qū)的開始; 步驟2406,判斷操作是否找到了虛擬內(nèi)存區(qū)的地址。若是,轉(zhuǎn)入步驟2408,否則轉(zhuǎn) 入步驟2407 ; 步驟2407,超出范圍,報(bào)錯; 步驟2408,把頁表中與虛擬地址對應(yīng)的物理地址設(shè)為Guest_OS_offset ; 步驟2409,判斷操作是否其它非區(qū)翻譯操作。若是,轉(zhuǎn)入步驟2411,否則轉(zhuǎn)入步驟
2410 ; 步驟2410,執(zhí)行其它操作(例如內(nèi)存保護(hù)); 步驟2411 ,把Guest_OS_of f set "按位運(yùn)算Mask"到匯編指令的目標(biāo)地址 (destination address)。 圖25給出I/O設(shè)備調(diào)試預(yù)處理器的流程圖。如果手機(jī)所支持的I/O device在 數(shù)據(jù)中心太慢,可用數(shù)據(jù)中心的合適設(shè)備取代,例如手機(jī)SD card卡改為可掛起的硬盤, 64M內(nèi)存改為129M。如果客戶操作系統(tǒng)的源碼完全開放且以高等語言如C或java(像谷歌 gPhone的Android)方式提供,則可以將之重新編譯,調(diào)試1/0,使其直接運(yùn)行在X86主機(jī)上 而不經(jīng)過QEMU模擬器,這樣性能就可大幅提高。否則就需要安裝業(yè)界提供的手機(jī)開發(fā)板及 BSP (board supportpackage例如Samsung 2410)做板上調(diào)試。I/O驅(qū)動與QEMU模擬的一 般1/0硬件來調(diào)試的時(shí)候,通常是用WinCE或WinMobile Platform Builder,而對Android 則是基本的"make"工具。調(diào)試的時(shí)候,I/O驅(qū)動與QEMU的周邊設(shè)備模擬器都可能要修改。 如果這些開發(fā)工具都不具備,則需述諸逆向工程。由此可見,這里的預(yù)處理器能適應(yīng)不同開 放程度的手機(jī)操作系統(tǒng)。具體流程如下 步驟2501,判斷設(shè)備是否大小合適。若是,轉(zhuǎn)入步驟2503,否則轉(zhuǎn)入步驟2502 ;
步驟2502,改為數(shù)據(jù)中心的大型設(shè)備(例如SD卡改為硬盤,64M RAM改為128M 等),然后進(jìn)行步驟2503 ; 步驟2503,判斷是否手機(jī)操作系統(tǒng)源碼完全開放。若是,轉(zhuǎn)入步驟2504,否則轉(zhuǎn)入 步驟2505 ; 步驟2504,將源碼重新編輯,調(diào)試I/O設(shè)備,使該操作系統(tǒng)可直接運(yùn)行在X86主機(jī) 上; 步驟2505 ,安裝手機(jī)板上(on-board) BSP工具和客戶操作系統(tǒng)平臺構(gòu)建 (platform building)工具(若有); 步驟2506,判斷是否客戶操作系統(tǒng)有平臺構(gòu)建工具。若有,轉(zhuǎn)入步驟2507,否則轉(zhuǎn)
18入步驟2508 ; 步驟2507,啟動客戶操作系統(tǒng)平臺構(gòu)建工具; 步驟2508,以逆向工程取得客戶操作系統(tǒng)10 IRQ號碼以及中斷(interrupt)地 址; 步驟2509,完成板上周邊設(shè)備驅(qū)動調(diào)適過程;
步驟2510,調(diào)試QEMU所模擬的設(shè)備驅(qū)動; 步驟2511,判斷是否QEMU能運(yùn)行客戶操作系統(tǒng)。若是,轉(zhuǎn)入步驟2512,否則轉(zhuǎn)入 步驟2506 ; 步驟2512, QEMU調(diào)試完成。 圖26,27,28是有關(guān)移動終端協(xié)議(Mobile Terminal Protocol, MTP)的部分流 程圖。MTP是基于VDI的終端協(xié)議技術(shù)(例如開源的VNC,微軟的RDP,或思杰的ICA),并適 應(yīng)本發(fā)明的VMI的需求而改進(jìn)?;镜慕K端協(xié)議技術(shù)在此不贅,但手機(jī)的需求是屏幕適配 (圖26),智能傳屏(圖27),與音頻和GPS數(shù)據(jù)的傳輸(圖28) 。 MTP客戶端的實(shí)現(xiàn)較為繁 復(fù),例如WinMobile手機(jī)要用C++, J2ME手機(jī)要用java,而iPhone手機(jī)要用Safari腳本。
圖26給出適配手機(jī)屏幕MTP服務(wù)器的部分流程圖。鏡像操作在服務(wù)器端進(jìn)行,一 方面是利用服務(wù)器的強(qiáng)大功能,另一方面,壓縮必在傳屏之先進(jìn)行。 步驟2601,判斷是PC虛機(jī)還是手機(jī)虛機(jī)。若是PC虛機(jī),轉(zhuǎn)入步驟2602,若是手機(jī) 虛機(jī),轉(zhuǎn)入步驟2603 ; 步驟2602,屏幕可以是原始PC屏幕,或是申請人中國專利公開號CN101231731A所 揭示技術(shù)所適配的PC屏幕,轉(zhuǎn)入步驟2610 ;
步驟2603 ,取得手機(jī)請求http頭; 步驟2604,判斷是否數(shù)據(jù)庫包含該手機(jī)的信息。若是,轉(zhuǎn)入步驟2606,否則轉(zhuǎn)入步 驟2605 ; 步驟2605,報(bào)錯并在服務(wù)器日志中記錄,這樣未來可以更新手機(jī)信息的數(shù)據(jù)庫。目 前無法適配。轉(zhuǎn)入步驟2610 ; 步驟2606,在服務(wù)器的數(shù)據(jù)庫里找到該款手機(jī)的屏幕的高度與寬度。比較虛機(jī)的 高度與寬度; 步驟2607,判斷是否需要旋轉(zhuǎn)90度。若是,轉(zhuǎn)入步驟2608,否則轉(zhuǎn)入步驟2609 ;
步驟2608, changeDisplaySetting(高,寬)成為changeDisplaySetting(寬, 高); 步驟2609,按比例縮放屏幕鏡像; 步驟2610,將屏幕送給手機(jī)。 圖27給出智能傳屏的服務(wù)器端部分流程圖。 步驟2701,取得屏幕鏡像; 步驟2702,比較前一幀以識別鏡像改變; 步驟2703,識別文本文字; 步驟2704,經(jīng)由數(shù)據(jù)通道傳送文字; 步驟2705,經(jīng)由鏡像通道傳送其它方塊區(qū)的改變鏡像; 步驟2706,若是第一屏,則傳送整屏;
步驟2707,返回。 圖28給出音頻與衛(wèi)星定位(GPS)數(shù)據(jù)處理器的手機(jī)端部分流程圖。至于服務(wù)器 端的音頻邏輯與手機(jī)端類似,在此不贅。服務(wù)器端只接收GPS數(shù)據(jù)。 步驟2801,判斷是否衛(wèi)星定位或音頻數(shù)據(jù)。若是衛(wèi)星定位數(shù)據(jù),轉(zhuǎn)入步驟2802,若 是音頻數(shù)據(jù)轉(zhuǎn)入步驟2803 ; 步驟2802,經(jīng)由數(shù)據(jù)通道傳輸GPS衛(wèi)星定位經(jīng)諱度數(shù)據(jù),再轉(zhuǎn)入步驟2808 ;
步驟2803,與服務(wù)器談判(negotiate)音頻標(biāo)準(zhǔn)(按傳收雙方頻寬、手機(jī)配備而從 多種音頻加碼器談判取得最優(yōu)方法); 步驟2804,判斷是否談判成功。若是,用協(xié)議后的標(biāo)準(zhǔn),轉(zhuǎn)入步驟2805,否則用 G. 722標(biāo)準(zhǔn),再轉(zhuǎn)入步驟2805 ; 步驟2805,判斷是傳出或傳入。若是傳出,轉(zhuǎn)入步驟2806,若是傳入,轉(zhuǎn)入步驟 2809 ; 步驟2806,用談判后的標(biāo)準(zhǔn)來加碼;
步驟2807,從音頻通道傳出加碼后的音頻;
步驟2808,經(jīng)由多通道將數(shù)據(jù)傳到服務(wù)器端;
步驟2809 ,從音頻通道傳入數(shù)據(jù);
步驟2810,用談判后的標(biāo)準(zhǔn)來解碼;
步驟2811,消除回音。 圖29給出應(yīng)用代理的流程圖。應(yīng)用代理是一個(gè)運(yùn)行在客戶操作系統(tǒng)上的程序,掌 控應(yīng)用的啟動。與連接代理相似,應(yīng)用代理也有兩種,PC應(yīng)用代理131與移動應(yīng)用代理157。 流程圖在觀念上并無不同。但PC應(yīng)用代理由于要接通各種第三方VDI產(chǎn)品,所以可能有不 一樣的需求。例如PC應(yīng)用代理可以分別與思杰(Citrix)的XenA卯,微軟公司的App-V,申 請人的TranSOD產(chǎn)品協(xié)同作業(yè)。PC應(yīng)用代理是組成VDI套接器的一部分,可以通過申請人 申請公開號為CN101231731A的一種應(yīng)用虛擬化在公網(wǎng)上的通用商務(wù)方法把PC應(yīng)用虛擬化 后以手機(jī)來點(diǎn)播。 步驟2901,虛機(jī)啟動后,將自身初始化; 步驟2902,以已知虛機(jī)IP地址及用戶ID,向連接代理請求應(yīng)用的ID ;
步驟2903,從連接代理收到應(yīng)用的ID ; 步驟2904,判斷是否默認(rèn)的應(yīng)用。若是,轉(zhuǎn)入步驟2905,否則轉(zhuǎn)入步驟2906 ;
步驟2905,啟動默認(rèn)應(yīng)用,呈現(xiàn)歡迎屏幕; 步驟2906,應(yīng)用代理取得手機(jī)或PC應(yīng)用執(zhí)行文件路徑并將之啟動;
步驟2907,判斷是否應(yīng)用啟動成功。若是,轉(zhuǎn)入步驟2908,否則轉(zhuǎn)入步驟2909 ;
步驟2908,通知連接代理應(yīng)用已啟動,連接代理再告訴MTP客戶端lll準(zhǔn)備接收應(yīng) 用第一屏幕; 步驟2909,通知連接代理應(yīng)用啟動失敗,連接代理再告訴MTP客戶端111報(bào)錯。
圖30給出應(yīng)用啟動與關(guān)閉時(shí)序圖。圖30可用于解釋PC應(yīng)用和手機(jī)的應(yīng)用。例 如連接代理可看成是PC連接代理或手機(jī)連接代理;應(yīng)用代理可看成是PC應(yīng)用代理或手機(jī) 應(yīng)用代理,其余類推。如果從手機(jī)的角度來看,該時(shí)序圖解釋了MTP客戶端111,手機(jī)連接代 理1212,在QEMU里的MTP服務(wù)器153,手機(jī)虛機(jī)156,手機(jī)應(yīng)用代理157之間的時(shí)序關(guān)系應(yīng)用代理157啟動連接某虛機(jī)的主機(jī)后,處于等待中; MTP客戶端111發(fā)送用戶身份和應(yīng)用名給手機(jī)連接代理1212 ; 手機(jī)連接代理1212驗(yàn)證用戶身份后,取得該虛機(jī),并向其主機(jī)發(fā)送應(yīng)
虛機(jī)的主機(jī)發(fā)送應(yīng)用名給手機(jī)應(yīng)用代理157 ;
手機(jī)應(yīng)用代理157啟動應(yīng)用。若成功,轉(zhuǎn)入3006。否則,轉(zhuǎn)入3008 ; 應(yīng)用啟動成功,通知MTP服務(wù)器153傳送應(yīng)用界面; MTP服務(wù)器153連接MTP客戶端111成功,顯示虛機(jī)上的應(yīng)用界面; 應(yīng)用啟動失敗,通知手機(jī)連接代理1212 ; 手機(jī)連接代理1212通知MTP客戶端111應(yīng)用啟動失敗; 客戶端111斷開,通知手機(jī)連接代理1212 ;
手機(jī)連接代理1212通知虛機(jī)的主機(jī); 虛機(jī)的主機(jī)通知手機(jī)應(yīng)用代理157 ;
手機(jī)應(yīng)用代理157關(guān)閉應(yīng)用。
在實(shí)際的部署環(huán)境中,完全有可能將虛機(jī)交換機(jī)12與數(shù)據(jù)管理中心14全部署于 電信公司、或全部署于企業(yè)內(nèi)、或?qū)⑻摍C(jī)交換機(jī)12部署于電信,數(shù)據(jù)管理中心14部署于企 業(yè)。涉及本發(fā)明的1/0調(diào)試預(yù)處理器用于任何手機(jī)型號的操作系統(tǒng)虛擬化均可。
根據(jù)上述流程的描述可以得出,采用以上移動虛擬化的基礎(chǔ)設(shè)施,一方面為企業(yè) 和移動電信提供了一種在移動網(wǎng)上訂閱應(yīng)用軟件的方法,該方法是在手機(jī)操作系統(tǒng)虛擬化 的基礎(chǔ)上,創(chuàng)建了移動終端協(xié)議的客戶端,讓用戶可接入、取得虛機(jī)、運(yùn)行應(yīng)用、得到手機(jī)應(yīng) 用屏幕、因而可以運(yùn)行任何手機(jī)操作系統(tǒng)及手機(jī)應(yīng)用軟件。另一方面,由于套接第三方VDI 產(chǎn)品,也可在手機(jī)上運(yùn)行任何PC操作系統(tǒng)及PC應(yīng)用軟件。 綜上所述,本發(fā)明結(jié)合了手機(jī)板上調(diào)試及QEMU模擬技術(shù),操作系統(tǒng)虛擬化技術(shù)和 虛擬桌面的基礎(chǔ)設(shè)施技術(shù),為企業(yè)及電信運(yùn)營商提供了一種移動虛擬化的基礎(chǔ)設(shè)施。
前面提供了對較佳實(shí)施例的描述,以使本領(lǐng)域內(nèi)的任何技術(shù)人員可使用或利用本 發(fā)明。對這些實(shí)施例的各種修改對本領(lǐng)域內(nèi)的技術(shù)人員是顯而易見的,可把這里所述的總 的原理應(yīng)用到其他實(shí)施例而不使用創(chuàng)造性。因而,本發(fā)明將不限于這里所示的實(shí)施例,而應(yīng) 依據(jù)符合這里所揭示的原理和新特征的最寬范圍。步驟3001步驟3002步驟3003
用名;步驟3004步驟3005步驟3006步驟3007步驟3008步驟3009步驟3010步驟3011步驟3012步驟3013
2權(quán)利要求
一種移動虛擬化的基礎(chǔ)設(shè)施,其特征在于,包括基礎(chǔ)平臺,包括多個(gè)主機(jī),其中每一主機(jī)上使用運(yùn)行在主機(jī)操作系統(tǒng)上的QEMU進(jìn)程虛擬至少一個(gè)具有客戶操作系統(tǒng)及內(nèi)存的手機(jī)虛機(jī);數(shù)據(jù)管理中心,管理所述基礎(chǔ)平臺產(chǎn)生的手機(jī)虛機(jī)并向用戶分派所述手機(jī)虛機(jī);虛機(jī)交換機(jī),連接所述基礎(chǔ)平臺及所述數(shù)據(jù)管理中心,所述虛機(jī)交換機(jī)根據(jù)來自手機(jī)客戶端的用戶請求,讓用戶選取手機(jī)虛機(jī)及運(yùn)行在手機(jī)虛機(jī)上的手機(jī)應(yīng)用;手機(jī)客戶端,運(yùn)行于用戶的手機(jī)上,以發(fā)送手機(jī)虛機(jī)及手機(jī)應(yīng)用請求,以及基于移動終端協(xié)議的服務(wù)器,用于與手機(jī)客戶端交互。
2. 根據(jù)權(quán)利要求1所述的移動虛擬化的基礎(chǔ)設(shè)施,其特征在于,所述基礎(chǔ)平臺進(jìn)一步包括使客戶操作系統(tǒng)的QEMU進(jìn)程與內(nèi)核共享主機(jī)內(nèi)存的裝置。
3. 根據(jù)權(quán)利要求1所述的移動虛擬化的基礎(chǔ)設(shè)施,其特征在于,所述基礎(chǔ)平臺進(jìn)一步包括用以獲取子進(jìn)程和/或主機(jī)的性能狀態(tài)的性能代理器。
4. 根據(jù)權(quán)利要求1所述的移動虛擬化的基礎(chǔ)設(shè)施,其特征在于,還包括用以改善QEMU的軟件匪U的裝置,其中頁表查找到客戶操作系統(tǒng)內(nèi)存區(qū)虛擬地址所對應(yīng)的物理地址,再將該物理地址當(dāng)成偏移量來按位運(yùn)算匯編指令中的地址。
5. 根據(jù)權(quán)利要求1所述的移動虛擬化的基礎(chǔ)設(shè)施,其特征在于,所述基礎(chǔ)平臺進(jìn)一步包括以客戶操作系統(tǒng)源碼和平臺調(diào)試工具的開放程度來處理虛擬化的I/O設(shè)備調(diào)試預(yù)處理器,其中如果完全源碼開放就重新編譯使能直接運(yùn)行在x86平臺上,如果平臺調(diào)試工具開放則在QEMU上用工具進(jìn)行I/O驅(qū)動調(diào)試,否則用硬件開發(fā)板及BSP輔助逆向工程。
6. 根據(jù)權(quán)利要求1所述的移動虛擬化的基礎(chǔ)設(shè)施,其特征在于,所述基于移動終端協(xié)議的服務(wù)器運(yùn)行于所述基礎(chǔ)平臺的主機(jī)操作系統(tǒng)中。
7. 根據(jù)權(quán)利要求1所述的移動虛擬化的基礎(chǔ)設(shè)施,其特征在于,所述基于移動終端協(xié)議的服務(wù)器進(jìn)一步包括在屏幕傳送前將鏡像按比例縮放、旋轉(zhuǎn)、壓縮以進(jìn)行屏幕適配的裝置;在屏幕傳送前將之辨識鏡像改變、辨識文字,然后只傳文字及改變方塊區(qū)的裝置。
8. 根據(jù)權(quán)利要求1所述的移動虛擬化的基礎(chǔ)設(shè)施,其特征在于,所述手機(jī)客戶端包括將GPS經(jīng)緯度從數(shù)據(jù)通道傳給所述服務(wù)器,支持回音消除及按傳收雙方頻寬、手機(jī)配備而從多種音頻加碼器談判取得最優(yōu)方法的裝置。
9. 根據(jù)權(quán)利要求1所述的移動虛擬化的基礎(chǔ)設(shè)施,其特征在于,所述數(shù)據(jù)管理中心進(jìn)一步包括虛機(jī)分派器,建立對話期、從虛機(jī)池取到最合適的虛機(jī)、分派虛機(jī)給手機(jī)客戶端;虛機(jī)池管理器,以多種服務(wù)來選取虛機(jī)池中的合適虛機(jī)、返回虛機(jī)到虛機(jī)池里、檢查虛機(jī)狀態(tài),并以背景工作的不斷檢查虛機(jī)池狀態(tài)來符合一規(guī)則引擎的規(guī)則;虛機(jī)服務(wù)器管理器,管理多個(gè)主機(jī)并使用平臺應(yīng)用接口與所述基礎(chǔ)平臺交互;以及管理控制臺,用以統(tǒng)一以下資源的任意組合管理人員、組織、模板、虛機(jī)、應(yīng)用、套餐和服務(wù)器。
10. 根據(jù)權(quán)利要求9所述的移動虛擬化的基礎(chǔ)設(shè)施,其特征在于,所述規(guī)則引擎包含用來控制虛機(jī)的生成與銷毀,啟動與停止的規(guī)則,其中所述規(guī)則可由管理員以高等計(jì)算機(jī)語言創(chuàng)建、編輯、保存、刪除。
11. 根據(jù)權(quán)利要求1所述的移動虛擬化的基礎(chǔ)設(shè)施,其特征在于,所述虛機(jī)交換機(jī)包括連接代理,提供手機(jī)客戶端接入通道,并向手機(jī)客戶端傳輸桌面屏幕與應(yīng)用屏幕。
12. 根據(jù)權(quán)利要求1所述的移動虛擬化的基礎(chǔ)設(shè)施,其特征在于,所述連接代理的手機(jī)客戶端接入進(jìn)一步包括統(tǒng)一認(rèn)證與授權(quán)以完成kerberos安全協(xié)議與單點(diǎn)登錄。
13. 根據(jù)權(quán)利要求1所述的移動虛擬化的基礎(chǔ)設(shè)施,其特征在于,所述虛機(jī)交換機(jī)包括人員與團(tuán)體管理數(shù)據(jù)庫、應(yīng)用與套餐管理數(shù)據(jù)庫、以及虛機(jī)服務(wù)器與模板管理數(shù)據(jù)庫。
14. 根據(jù)權(quán)利要求1所述的移動虛擬化的基礎(chǔ)設(shè)施,其特征在于,還包括用以進(jìn)行模板管理的裝置,其使用模板綁定以下設(shè)置信息的一種或幾種虛機(jī)與內(nèi)存、CPU、應(yīng)用、主機(jī)、手機(jī)操作系統(tǒng)。
15. 根據(jù)權(quán)利要求1所述的移動虛擬化的基礎(chǔ)設(shè)施,其特征在于,還包括VDI套接器,其中所述虛機(jī)交換機(jī)經(jīng)由所述VDI套接器套接至外部VDI產(chǎn)品,以讓用戶選取運(yùn)行在外部VDI產(chǎn)品中的PC虛機(jī)及PC應(yīng)用。
16. 根據(jù)權(quán)利要求15所述的移動虛擬化的基礎(chǔ)設(shè)施,其特征在于,所述VDI套接器進(jìn)一步包括PC連接代理,告知外部VDI產(chǎn)品用戶登錄后所取得的虛機(jī)要運(yùn)行什么應(yīng)用,等待PC應(yīng)用代理激活了該應(yīng)用后,再通知手機(jī)客戶端準(zhǔn)備用移動終端協(xié)議接收應(yīng)用屏幕;PC應(yīng)用代理,預(yù)先安裝在外部VDI產(chǎn)品的虛機(jī)上,當(dāng)虛機(jī)被啟動,應(yīng)用代理自己被激活,再激活所指定的PC應(yīng)用,然后告訴PC連接代理應(yīng)用成功與否;若成功,則將應(yīng)用屏幕傳至手機(jī)客戶端;當(dāng)手機(jī)客戶端斷開,PC應(yīng)用代理就關(guān)閉應(yīng)用。
17. —種移動虛擬化的基礎(chǔ)平臺,包括多個(gè)主機(jī),其中每一主機(jī)包括運(yùn)行在主機(jī)操作系統(tǒng)上的至少一 QEMU模擬器,以虛擬至少一個(gè)具有客戶操作系統(tǒng)及內(nèi)存的手機(jī)虛機(jī);使客戶操作系統(tǒng)的QEMU進(jìn)程與內(nèi)核共享主機(jī)內(nèi)存的裝置;獲取子進(jìn)程和/或主機(jī)的性能狀態(tài)的性能代理器;基于移動終端協(xié)議的服務(wù)器,用于與手機(jī)客戶端交互。
18. 根據(jù)權(quán)利要求17所述的移動虛擬化的基礎(chǔ)平臺,其特征在于,還包括用以改善QEMU的軟件匪U的裝置,其中頁表查找到客戶操作系統(tǒng)內(nèi)存區(qū)虛擬地址所對應(yīng)的物理地址,再將該物理地址當(dāng)成偏移量來按位運(yùn)算匯編指令中的地址。
19. 根據(jù)權(quán)利要求17所述的移動虛擬化的基礎(chǔ)平臺,其特征在于,還包括以客戶操作系統(tǒng)源碼和平臺調(diào)試工具的開放程度來處理虛擬化的I/O設(shè)備調(diào)試預(yù)處理器,其中如果完全源碼開放就重新編譯使能直接運(yùn)行在x86平臺上,如果平臺調(diào)試工具開放則在QEMU上用工具進(jìn)行I/O驅(qū)動調(diào)試,否則用硬件開發(fā)板及BSP輔助逆向工程。
全文摘要
本發(fā)明公開了一種移動虛擬化的基礎(chǔ)設(shè)施及基礎(chǔ)平臺,在一基礎(chǔ)平臺上運(yùn)行主機(jī)操作系統(tǒng)并在其上利用QEMU進(jìn)程虛擬至少一個(gè)具有客戶操作系統(tǒng)及內(nèi)存的手機(jī)虛機(jī),數(shù)據(jù)管理中心管理基礎(chǔ)平臺產(chǎn)生的手機(jī)虛機(jī)并向用戶分派手機(jī)虛機(jī)。在手機(jī)客戶端與服務(wù)器之間基于諸如RDP的移動終端協(xié)議進(jìn)行通信。通過虛機(jī)交換機(jī)的特征,創(chuàng)建了一個(gè)機(jī)制可利用本發(fā)明的VMI移動虛擬化基礎(chǔ)設(shè)施獲取適配的手機(jī)屏幕以及廉價(jià)的虛機(jī)。在一個(gè)較佳實(shí)施例中,還可以套接第三方VDI開發(fā)商的產(chǎn)品(例如Citrix XenDesktop,LeoStream,etc.),從而獲取PC虛機(jī)的屏幕。并且由于采用虛機(jī)管理方法,企業(yè)或移動電信管理員可管理成千上萬虛機(jī)。
文檔編號H04W88/04GK101754466SQ20081020428
公開日2010年6月23日 申請日期2008年12月10日 優(yōu)先權(quán)日2008年12月10日
發(fā)明者湯傳斌 申請人:運(yùn)軟網(wǎng)絡(luò)科技(上海)有限公司;湯傳斌