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

在虛擬應(yīng)用環(huán)境下改善用戶體驗(yàn)的方法及虛擬應(yīng)用系統(tǒng)的制作方法

文檔序號(hào):6442650閱讀:187來源:國(guó)知局
專利名稱:在虛擬應(yīng)用環(huán)境下改善用戶體驗(yàn)的方法及虛擬應(yīng)用系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及虛擬化技術(shù)領(lǐng)域,特別是涉及一種在虛擬應(yīng)用環(huán)境下改善用戶體驗(yàn)的方法及其虛擬應(yīng)用系統(tǒng)。
背景技術(shù)
近年來,虛擬化技術(shù)風(fēng)起云涌,出現(xiàn)了服務(wù)器虛擬化技術(shù)、桌面虛擬化技術(shù)、應(yīng)用虛擬化技術(shù)、存儲(chǔ)虛擬化技術(shù)以及網(wǎng)絡(luò)虛擬化技術(shù)等。當(dāng)前,虛擬化技術(shù)的優(yōu)勢(shì)已經(jīng)得到了業(yè)界的普遍認(rèn)可,虛擬化技術(shù)所具備的提高資源利用率和節(jié)能環(huán)保的特性也得到了越來越多高性能計(jì)算機(jī)用戶的青睞,虛擬化技術(shù)的普及和推廣成為信息化技術(shù)發(fā)展的必然趨勢(shì)。應(yīng)用虛擬化的基本概念可以追溯到主機(jī)和啞終端或瘦客戶端時(shí)代。被虛擬化的應(yīng)用利用一種非常小的瘦客戶端應(yīng)用來顯示它們的“邏輯視圖”(典型情況下就是應(yīng)用用戶界面),這一瘦客戶端應(yīng)用在很多種操作系統(tǒng)和硬件上運(yùn)行。該應(yīng)用的“物理端”應(yīng)用被托管在企業(yè)的數(shù)據(jù)中心。按照最簡(jiǎn)單的方式,通過網(wǎng)絡(luò)連接,在虛擬應(yīng)用系統(tǒng)的客戶端設(shè)備與服務(wù)器端之間所傳輸?shù)奈ㄒ粩?shù)據(jù)是客戶端的屏幕、鍵盤及鼠標(biāo)的移動(dòng)。應(yīng)用虛擬化是對(duì)終端用戶設(shè)備應(yīng)用的抽象化。也就是說,將應(yīng)用徹底從客戶端的用戶設(shè)備中移走,在服務(wù)器端運(yùn)行。簡(jiǎn)單的說,這意味著沒有應(yīng)用程序或數(shù)據(jù)需要加載或存放到PC、筆記本電腦、或移動(dòng)設(shè)備等,因?yàn)閼?yīng)用虛擬化使得這些應(yīng)用能夠透明地從一個(gè)集中的服務(wù)器上或集中的地點(diǎn)來運(yùn)行?;谔摂M應(yīng)用技術(shù)的原理,在通過虛擬應(yīng)用系統(tǒng)操作應(yīng)用程序時(shí)的基本流程如下步驟A :用戶在虛擬應(yīng)用系統(tǒng)的客戶端上輸入用戶名、密碼等信息并提交給虛擬應(yīng)用系統(tǒng)的服務(wù)器端;步驟B :虛擬應(yīng)用系統(tǒng)的服務(wù)器端將登錄請(qǐng)求轉(zhuǎn)發(fā)給用戶認(rèn)證系統(tǒng);步驟C :如果是合法用戶,虛擬應(yīng)用系統(tǒng)的服務(wù)器端為該用戶建立用戶會(huì)話,并將該用戶有權(quán)訪問的虛擬應(yīng)用信息返回給用戶;步驟D :用戶選擇要訪問的虛擬應(yīng)用程序,與虛擬應(yīng)用系統(tǒng)服務(wù)器端協(xié)商啟動(dòng)虛擬應(yīng)用時(shí)的選項(xiàng)及參數(shù),例如分辨率、顏色位深等;步驟E :虛擬應(yīng)用系統(tǒng)的服務(wù)器端在為該用戶開辟的隔離的會(huì)話空間中啟動(dòng)“物理”的虛擬應(yīng)用程序;S卩,用戶調(diào)用的虛擬應(yīng)用程序?qū)嶋H上運(yùn)行于服務(wù)器端,特別是運(yùn)行于為該用戶開辟的隔離的會(huì)話空間,也就是說服務(wù)器端運(yùn)行了被虛擬的應(yīng)用程序;步驟F :虛擬應(yīng)用程序啟動(dòng)后,將其用戶界面的圖像信息壓縮或者轉(zhuǎn)換成繪圖指令后發(fā)往虛擬應(yīng)用系統(tǒng)的客戶端;步驟G :虛擬應(yīng)用系統(tǒng)的客戶端將用戶界面信息用虛擬應(yīng)用系統(tǒng)的客戶端所使用的操作系統(tǒng)所能理解的繪圖指令在用戶終端上繪制出虛擬應(yīng)用的用戶界面;
步驟H :用戶通過鼠標(biāo)、鍵盤操作虛擬應(yīng)用程序;步驟I :虛擬應(yīng)用系統(tǒng)的客戶端實(shí)時(shí)將當(dāng)前發(fā)生的鼠標(biāo)事件及坐標(biāo)信息和鍵盤掃描碼發(fā)送給虛擬應(yīng)用系統(tǒng)的服務(wù)器端;步驟J :虛擬應(yīng)用系統(tǒng)的服務(wù)器端接收到虛擬應(yīng)用系統(tǒng)的客戶端發(fā)過來的鼠標(biāo)、鍵盤信息,并將該信息轉(zhuǎn)換為虛擬應(yīng)用系統(tǒng)的服務(wù)器端所在服務(wù)器操作系統(tǒng)能理解的信息;步驟K:虛擬應(yīng)用系統(tǒng)的服務(wù)器端將鼠標(biāo)、鍵盤事件及坐標(biāo)信息等發(fā)送到用戶隔離的會(huì)話空間中的“物理”的虛擬應(yīng)用程序;

步驟L 物理”的虛擬應(yīng)用程序處理發(fā)過來的鼠標(biāo)、鍵盤事件,做出相應(yīng)的反應(yīng),例如鼠標(biāo)點(diǎn)擊到按鈕上,按鈕產(chǎn)生下陷的動(dòng)畫效果等;S卩,用戶在客戶端發(fā)出的指令,控制的是服務(wù)器端的虛擬應(yīng)用程序的運(yùn)行;步驟M :虛擬應(yīng)用系統(tǒng)的服務(wù)器端檢測(cè)用戶界面的變化情況,將變化后的用戶界面或者只是將區(qū)域性的變化的部分用戶界面經(jīng)過步驟F所描述的處理方式處理后再發(fā)送到虛擬應(yīng)用系統(tǒng)的客戶端,并重復(fù)步驟F至步驟M的過程;步驟N:如果用戶關(guān)閉虛擬應(yīng)用程序,虛擬應(yīng)用系統(tǒng)的服務(wù)器端則關(guān)閉在隔離用戶環(huán)境中的“物理”的虛擬應(yīng)用程序,注銷該用戶的登錄,并通知虛擬應(yīng)用系統(tǒng)的客戶端關(guān)閉程序。虛擬應(yīng)用技術(shù)解決了應(yīng)用程序的輸入輸出邏輯(應(yīng)用程序界面)與計(jì)算邏輯指令隔離的問題,使得用戶只要具備網(wǎng)絡(luò)條件,就可以在不同的終端上獲得與被虛擬的應(yīng)用程序按其原本的方式實(shí)際運(yùn)行后一致的用戶界面和操作方式,但虛擬應(yīng)用技術(shù)的缺陷也是非常明顯的。虛擬應(yīng)用無時(shí)無刻都需要保持網(wǎng)絡(luò)連接,在虛擬應(yīng)用程序上的任何操作都需要先將操作的信息發(fā)送到虛擬應(yīng)用系統(tǒng)的服務(wù)器端,經(jīng)過虛擬應(yīng)用系統(tǒng)的服務(wù)器端處理后重新繪制出變化的用戶界面再返回給虛擬應(yīng)用系統(tǒng)的客戶端之后用戶才能獲得剛才操作的實(shí)際響應(yīng)。例如,當(dāng)用戶在用戶界面上的文本輸入框中鍵入某個(gè)字符時(shí),在虛擬應(yīng)用系統(tǒng)的客戶端上看到的虛擬應(yīng)用界面上不會(huì)立即出現(xiàn)用戶剛才鍵入的字符,要等到這個(gè)鍵盤事件發(fā)送到虛擬應(yīng)用系統(tǒng)的服務(wù)器端,完成虛擬應(yīng)用程序用戶界面重繪并返回給虛擬應(yīng)用系統(tǒng)客戶端之后才能看到用戶剛才鍵入的字符。一旦網(wǎng)絡(luò)質(zhì)量下降到不能正常地完成虛擬應(yīng)用系統(tǒng)服務(wù)器端和虛擬應(yīng)用系統(tǒng)客戶端之間的網(wǎng)絡(luò)通信,在虛擬應(yīng)用系統(tǒng)客戶端上看到的用戶界面將停頓在最后一幅畫面上,如果用戶正在錄入數(shù)據(jù),則用戶界面無法及時(shí)顯示用戶所輸入的數(shù)據(jù),則無法繼續(xù)操作。同時(shí),用戶每鍵入一個(gè)字符,客戶端都立即將該字符發(fā)送至服務(wù)器端,則當(dāng)用戶輸入較多字符時(shí),需要依次執(zhí)行多次網(wǎng)絡(luò)通信。即使網(wǎng)絡(luò)通信質(zhì)量良好,該多次網(wǎng)絡(luò)通信也將嚴(yán)重降低用戶界面顯示字符的速度。因此,通過應(yīng)用虛擬化技術(shù)用戶獲得了像本地應(yīng)用程序一樣的用戶界面,但是卻難以獲得與本地應(yīng)用程序一樣的操作體驗(yàn)。另外,虛擬化技術(shù)還存在如下問題在企業(yè)應(yīng)用場(chǎng)景中,應(yīng)用程序經(jīng)常需要支持不同的外設(shè),以銀行業(yè)務(wù)終端應(yīng)用為例,應(yīng)用程序需要連接指紋識(shí)別儀,配合用戶名/密碼信息來對(duì)業(yè)務(wù)系統(tǒng)操作人員進(jìn)行身份認(rèn)證;需要連接金融卡讀卡器以識(shí)別客戶的銀行卡并完成客戶所需的金融業(yè)務(wù);需要連接二代身份證讀卡器以識(shí)別客戶的身份;需要連接打印機(jī)以完成業(yè)務(wù)單據(jù)的打印等等。這些外設(shè)的支持在本地應(yīng)用程序中并沒有什么問題,只要有相應(yīng)的驅(qū)動(dòng)程序和開發(fā)接口,本地應(yīng)用程序總能通過針對(duì)開發(fā)接口編程來實(shí)現(xiàn)其業(yè)務(wù)功能,但將這些外設(shè)放到應(yīng)用虛擬化環(huán)境中來使用時(shí),問題就來了 被虛擬的應(yīng)用程序?qū)嶋H上是安裝、部署以及運(yùn)行在虛擬應(yīng)用系統(tǒng)的服務(wù)器端,而實(shí)際的外設(shè)卻是連接在遠(yuǎn)程的虛擬應(yīng)用系統(tǒng)的客戶端上,被虛擬的應(yīng)用程序從其所在的操作系統(tǒng)中根本無法枚舉這些外部設(shè)備,也就是說被虛擬的應(yīng)用程序根本意識(shí)不到這些外設(shè)的存在,因此也就無法正常地完成相應(yīng)的業(yè)務(wù)功能,使得用戶感到不便。除此之外,虛擬化技術(shù)還需要考慮對(duì)客戶端的本地資源的訪問。例如,企業(yè)應(yīng)用中有一項(xiàng)企業(yè)通訊錄業(yè)務(wù)功能,上面列出了員工的電話號(hào)碼,那么很自然的,企業(yè)客 戶會(huì)提出“點(diǎn)擊員工電話號(hào)碼后就能向該電話號(hào)碼撥號(hào)”的業(yè)務(wù)功能,同樣的,企業(yè)客戶會(huì)自然地想到使用移動(dòng)終端的固有特征來作為企業(yè)應(yīng)用系統(tǒng)使用者用戶身份認(rèn)證信息的補(bǔ)充和加強(qiáng),例如,每個(gè)生產(chǎn)出來的手機(jī)都有一個(gè)全球唯一移動(dòng)設(shè)備識(shí)別號(hào),即頂EI (InternationalMobile Equipment Identity)號(hào);每塊手機(jī)使用的 SIM (Subscriber Identity Module)卡都有唯一的客戶識(shí)別碼,即 IMSI (International Mobile Subscriber Identity)號(hào),如果是移動(dòng)終端的本地應(yīng)用程序,可以通過移動(dòng)終端提供的API實(shí)現(xiàn)該功能,而在應(yīng)用虛擬化環(huán)境中,實(shí)際運(yùn)行被虛擬的應(yīng)用程序的虛擬應(yīng)用系統(tǒng)服務(wù)器本地并沒有移動(dòng)終端上所具備的相應(yīng)API,具有相應(yīng)API的移動(dòng)終端上又沒有實(shí)際的應(yīng)用程序運(yùn)行,這樣又再次體現(xiàn)了虛擬應(yīng)用的操作不能獲得像本地應(yīng)用程序那樣的操作體驗(yàn)。

發(fā)明內(nèi)容
本發(fā)明解決的技術(shù)問題在于,提供一種在虛擬應(yīng)用環(huán)境下改善用戶體驗(yàn)的方法及其虛擬應(yīng)用系統(tǒng),用于降低虛擬應(yīng)用程序輸入文本后的回顯時(shí)延。進(jìn)一步的,實(shí)現(xiàn)虛擬應(yīng)用系統(tǒng)客戶端對(duì)本地資源的訪問。進(jìn)一步的,實(shí)現(xiàn)虛擬應(yīng)用系統(tǒng)客戶端上傳本地資源的速度。進(jìn)一步的,實(shí)現(xiàn)在應(yīng)用層實(shí)現(xiàn)虛擬應(yīng)用系統(tǒng)的客戶端支持其客戶端外設(shè)。進(jìn)一步的,實(shí)現(xiàn)在驅(qū)動(dòng)層實(shí)現(xiàn)虛擬應(yīng)用系統(tǒng)的客戶端支持其客戶端外設(shè)。本發(fā)明公開了一種在虛擬應(yīng)用環(huán)境下改善用戶體驗(yàn)的方法,用于降低虛擬應(yīng)用程序輸入文本后的回顯時(shí)延,應(yīng)用于包括客戶端與服務(wù)器端的虛擬應(yīng)用系統(tǒng),該方法包括如下步驟步驟1,用戶在該客戶端輸入字符,該客戶端攔截該字符;步驟2,該客戶端緩存該字符,并且,該客戶端的用戶顯示界面實(shí)時(shí)顯示該字符;步驟3,該客戶端將用戶此次輸入所緩存的所有字符通過客戶端與服務(wù)器端間的虛擬通道發(fā)送至該服務(wù)器端;步驟4,該服務(wù)器端根據(jù)接收到的字符產(chǎn)生用戶顯示界面的更新信息,該更新信息被發(fā)送至該客戶端;步驟5,該客戶端根據(jù)該更新信息更新用戶顯示界面。本發(fā)明還公開了一種虛擬應(yīng)用系統(tǒng),包括客戶端、服務(wù)器端以及連接客戶端與服務(wù)器端的虛擬通道,用于降低虛擬應(yīng)用程序輸入文本后的回顯時(shí)延,該客戶端進(jìn)一步包括攔截模塊,用于攔截用戶在該客戶端輸入的字符;緩存模塊,用于緩存該攔截模塊所攔截的字符;顯示模塊,用于對(duì)該攔截模塊所攔截的字符進(jìn)行實(shí)時(shí)顯示;該虛擬通道用于傳送用戶此次輸入所緩存的所有字符至該服務(wù)器端,以及,傳送該服務(wù)器端產(chǎn)生的一更新信息至該客戶端;該服務(wù)器端根據(jù)接收到的字符產(chǎn)生該更新信息,該更新信息是該客戶端更新該顯示模塊的用戶顯示界面的依據(jù)。本發(fā)明還公開了一種在虛擬應(yīng)用環(huán)境下改善用戶體驗(yàn)的方法,用于實(shí)現(xiàn)虛擬應(yīng)用系統(tǒng)客戶端對(duì)本地資源的訪問,該方法應(yīng)用于包括客戶端與服務(wù)器端的虛擬應(yīng)用系統(tǒng),該方法包括如下步驟步驟1,客戶端將調(diào)用客戶端的本地資源所產(chǎn)生的操作指令通過客戶端與服務(wù)器端間的虛擬通道發(fā)送至該服務(wù)器端;步驟2,該服務(wù)器端的被虛擬的應(yīng)用程序根據(jù)該操作指令調(diào)用該服務(wù)器端的虛擬資源控制管理器;步驟3,該虛擬資源控制管理器將該操作指令轉(zhuǎn)換為客戶端本地資源請(qǐng)求指令,并將其通過該虛擬通道發(fā)送至該客戶端;步驟4,該客戶端的本地資源控制管理器根據(jù)該客戶端本地資源請(qǐng)求指令調(diào)用本地資源, 并將調(diào)用結(jié)果返回該服務(wù)器端。本發(fā)明還公開了一種虛擬應(yīng)用系統(tǒng),包括客戶端、服務(wù)器端以及連接客戶端與服務(wù)器端的虛擬通道,用于實(shí)現(xiàn)虛擬應(yīng)用系統(tǒng)客戶端對(duì)本地資源的訪問,該服務(wù)器端加載有被虛擬的應(yīng)用程序,并且設(shè)置有虛擬資源控制管理器;該被虛擬的應(yīng)用程序在收到通過該虛擬通道傳送來的調(diào)用客戶端本地資源所產(chǎn)生的操作指令時(shí),調(diào)用該虛擬資源控制管理器,該虛擬資源控制管理器將該操作指令轉(zhuǎn)換為客戶端本地資源請(qǐng)求指令,并將其通過該虛擬通道發(fā)送至該客戶端;該客戶端具有本地資源控制管理器,用于根據(jù)該客戶端本地資源請(qǐng)求指令調(diào)用客戶端的本地資源,并將調(diào)用結(jié)果返回該服務(wù)器端。本發(fā)明還公開了一種在虛擬應(yīng)用環(huán)境下改善用戶體驗(yàn)的方法,用于在驅(qū)動(dòng)層實(shí)現(xiàn)虛擬應(yīng)用系統(tǒng)的客戶端支持其客戶端外設(shè),該方法應(yīng)用于包括客戶端與服務(wù)器端的虛擬應(yīng)用系統(tǒng),包括步驟1,該客戶端將其所連接的所有外設(shè)的外設(shè)信息發(fā)送至該服務(wù)器端;步驟2,該客戶端將用戶操作客戶端的一外設(shè)所產(chǎn)生的操作指令通過客戶端與服務(wù)器端間的虛擬通道發(fā)送至該服務(wù)器端;步驟3,該服務(wù)器端根據(jù)該操作指令產(chǎn)生調(diào)用該外設(shè)的I/O請(qǐng)求數(shù)據(jù)包;步驟4,該服務(wù)器端根據(jù)該外設(shè)信息判斷該I/O請(qǐng)求數(shù)據(jù)包是否用于調(diào)用該客戶端的外設(shè),對(duì)調(diào)用該客戶端的外設(shè)的I/O請(qǐng)求數(shù)據(jù)包進(jìn)行攔截,通過該虛擬通道將其轉(zhuǎn)發(fā)至該客戶端;步驟5,該客戶端依據(jù)該I/O請(qǐng)求數(shù)據(jù)包,驅(qū)動(dòng)該外設(shè)。本發(fā)明還公開了一種虛擬應(yīng)用系統(tǒng),包括客戶端、服務(wù)器端以及連接客戶端與服務(wù)器端的虛擬通道,用于在驅(qū)動(dòng)層實(shí)現(xiàn)虛擬應(yīng)用系統(tǒng)的客戶端支持其客戶端外設(shè),該客戶端包括設(shè)備控制管理器,該設(shè)備控制管理器將該客戶端所連接的所有外設(shè)的外設(shè)信息發(fā)送至該服務(wù)器端;該服務(wù)器端包括虛擬設(shè)備控制管理器以及虛擬設(shè)備總線驅(qū)動(dòng),該虛擬設(shè)備控制管理器接收該外設(shè)信息,該虛擬設(shè)備總線驅(qū)動(dòng)用于根據(jù)該外設(shè)信息攔截與該外設(shè)有關(guān)的指令;該服務(wù)器端的操作系統(tǒng)根據(jù)傳送到該服務(wù)器端的用戶操作該客戶端的一外設(shè)所產(chǎn)生的操作指令,產(chǎn)生調(diào)用該外設(shè)的I/o請(qǐng)求數(shù)據(jù)包;其中,該虛擬設(shè)備總線驅(qū)動(dòng)根據(jù)該外設(shè)信息判斷該I/o請(qǐng)求數(shù)據(jù)包是否用于調(diào)用該客戶端的外設(shè),對(duì)調(diào)用該客戶端的外設(shè)的I/O請(qǐng)求數(shù)據(jù)包進(jìn)行攔截,通過該虛擬通道將該I/o請(qǐng)求數(shù)據(jù)包轉(zhuǎn)發(fā)至該客戶端,供該客戶端依據(jù)該I/o請(qǐng)求數(shù)據(jù)包,驅(qū)動(dòng)該外設(shè)。通過上述技術(shù)方案可以有效改善用戶體驗(yàn),豐富虛擬化環(huán)境下的功能應(yīng)用,降低虛擬應(yīng)用程序輸入文本后的回顯時(shí)延,實(shí)現(xiàn)虛擬應(yīng)用系統(tǒng)客戶端對(duì)本地資源的訪問,加快了客戶端上傳本地資源的速度。實(shí)現(xiàn)在應(yīng)用層實(shí)現(xiàn)虛擬應(yīng)用系統(tǒng)的客戶端支持其客戶端外設(shè),實(shí)現(xiàn)在驅(qū)動(dòng)層實(shí)現(xiàn)虛擬應(yīng)用系統(tǒng)的客戶端支持其客戶端外設(shè),在虛擬化環(huán)境下為用戶的應(yīng)用帶來便利,以實(shí)現(xiàn)在虛擬應(yīng)用環(huán)境下獲得接近于本地應(yīng)用程序的操作體驗(yàn)。


圖IA所示為本發(fā)明的在虛擬應(yīng)用環(huán)境下改善用戶體驗(yàn)的方法的流程圖;圖IB所示為本發(fā)明的虛擬應(yīng)用系統(tǒng)的結(jié)構(gòu)示意圖;圖2A所示為一種在虛擬應(yīng)用環(huán)境下改善用戶體驗(yàn)的方法的流 程圖;圖2B所示為本發(fā)明的虛擬應(yīng)用系統(tǒng)的結(jié)構(gòu)示意圖;圖2C所示為一種在虛擬應(yīng)用環(huán)境下提高數(shù)據(jù)傳輸速度的流程圖;圖3A所示為一種在虛擬應(yīng)用環(huán)境下改善用戶體驗(yàn)的方法的流程圖;圖3B所示為本發(fā)明的虛擬應(yīng)用系統(tǒng)的結(jié)構(gòu)示意圖;圖4A所示為一種在虛擬應(yīng)用環(huán)境下改善用戶體驗(yàn)的方法的流程圖;圖4B所示為本發(fā)明的虛擬應(yīng)用系統(tǒng)的結(jié)構(gòu)示意圖;圖5所示為客戶端連入網(wǎng)絡(luò)的示意圖;圖6所示為本發(fā)明的虛擬應(yīng)用系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施例方式本發(fā)明用于在虛擬應(yīng)用環(huán)境下提供更多的應(yīng)用,提高運(yùn)行效率,進(jìn)一步改善用戶體驗(yàn)。該虛擬應(yīng)用環(huán)境可包括=Citrix和微軟的應(yīng)用虛擬化環(huán)境。本發(fā)明公開了一種在虛擬應(yīng)用環(huán)境下改善用戶體驗(yàn)的方法,具體涉及的是一種降低虛擬應(yīng)用程序輸入文本后顯示時(shí)延的方法,用于解決現(xiàn)有技術(shù)中,由于在客戶端的用戶界面每輸入一個(gè)字符都需要先連接服務(wù)器端而帶來的客戶端的顯示滯后,降低用戶體驗(yàn)滿意度的問題。請(qǐng)參閱圖IA所示為一種在虛擬應(yīng)用環(huán)境下改善用戶體驗(yàn)的方法的流程圖。步驟101,當(dāng)用戶在該客戶端輸入字符,該客戶端攔截該字符;步驟102,該客戶端緩存該字符,并且,該客戶端的用戶顯示界面實(shí)時(shí)顯示該字符;步驟103,該客戶端將用戶此次輸入所緩存的所有字符通過客戶端與服務(wù)器端間的虛擬通道發(fā)送至該服務(wù)器端;步驟104,該服務(wù)器端根據(jù)接收到的字符產(chǎn)生用戶顯示界面的更新信息,該更新信息被發(fā)送至該客戶端;步驟105,該客戶端根據(jù)該更新信息更新用戶顯示界面。請(qǐng)參閱圖IB所示為本發(fā)明的虛擬應(yīng)用系統(tǒng)的結(jié)構(gòu)示意圖,特別是字符輸入操作體驗(yàn)本地化子系統(tǒng)的結(jié)構(gòu)示意圖,用于執(zhí)行上述方法。虛擬應(yīng)用系統(tǒng)10具有客戶端I以及服務(wù)器端2??蛻舳薎的應(yīng)用層加載有虛擬應(yīng)用程序11、攔截模塊12、緩存模塊13以及本地化交互通道管理器14??蛻舳薎的驅(qū)動(dòng)層中設(shè)置有鍵盤驅(qū)動(dòng)15。服務(wù)器端2可設(shè)置在一應(yīng)用服務(wù)器中。服務(wù)器端2的應(yīng)用層中設(shè)置有本地化交互通道服務(wù)模塊21,被虛擬的應(yīng)用程序22以及服務(wù)器端處理單元23。本地化交互通道管理器14與本地化交互通道服務(wù)模塊21配合使用,以實(shí)現(xiàn)客戶端I以及服務(wù)器端2間的虛擬通道。服務(wù)器端2加載有該被虛擬的應(yīng)用程序22,根據(jù)現(xiàn)有技術(shù)可知,被虛擬的應(yīng)用程序22的用戶界面發(fā)送到客戶端I的虛擬應(yīng)用程序11,由虛擬應(yīng)用程序11繪制并展現(xiàn)出被虛擬的應(yīng)用程序22的用戶界面。用戶可在該用戶界面進(jìn)行操作,輸入字符。以下結(jié)合圖IB具體介紹上述方法的實(shí)現(xiàn)過程。服務(wù)器端2加載被虛擬的應(yīng)用程序22,將被虛擬的應(yīng)用程序22的用戶界面發(fā)送到客戶端的虛擬應(yīng)用程序11,由虛擬應(yīng)用程序11繪制并在顯示模塊中展現(xiàn)出被虛擬的應(yīng)用程序22的用戶界面,該用戶界面中包括一文本輸入框。步驟101具體包括用戶在客戶端I的文本輸入框中輸入字符,該字符的輸入可 以通過敲擊客戶端的鍵盤或虛擬軟鍵盤的方式實(shí)現(xiàn)。鍵盤被敲擊后產(chǎn)生硬件中斷,鍵盤驅(qū)動(dòng)15獲得對(duì)應(yīng)所輸入字符的鍵盤掃描碼。該客戶端在收到用戶的輸入動(dòng)作所對(duì)應(yīng)的鍵盤掃描碼后,調(diào)用攔截模塊12,該攔截模塊12攔截該鍵盤掃描碼,避免依照現(xiàn)有技術(shù)的方式而將其直接發(fā)送到該服務(wù)器端。即,避免每輸入一字都與服務(wù)器端進(jìn)行一次網(wǎng)絡(luò)通信,從而降低網(wǎng)絡(luò)通信的次數(shù),進(jìn)而降低時(shí)延帶來的等待。該攔截模塊12可通過多種形式實(shí)現(xiàn),即,可以在應(yīng)用層或鍵盤驅(qū)動(dòng)層或通過硬件中斷的方式實(shí)現(xiàn)。例如該攔截模塊12為一鍵盤Η00Κ,在鍵盤驅(qū)動(dòng)15獲得鍵盤掃描碼后,調(diào)用鍵盤HOOK攔截該鍵盤掃描碼。步驟102具體包括該攔截模塊12將攔截到的字符(也就是鍵盤掃描碼)放入緩存模塊13,同時(shí)利用本地化交互通道管理器14將攔截到的字符發(fā)送至虛擬應(yīng)用程序11,該虛擬應(yīng)用程序11利用其本地界面程序?qū)⒃撟址麑?shí)時(shí)顯示在客戶端的顯示模塊(圖中未示)上。循環(huán)執(zhí)行步驟101、102,直到用戶輸入完成并發(fā)出提交命令時(shí),執(zhí)行步驟103。客戶端將此次輸入所緩存的所有字符從緩存模塊13中取出,通過虛擬通道一并發(fā)送到該服務(wù)器端。步驟104具體包括該服務(wù)器端2的被虛擬的應(yīng)用程序22在其用戶顯示界面中填入所收到的所有字符,該服務(wù)器端監(jiān)測(cè)該被虛擬的應(yīng)用程序的用戶顯示界面發(fā)生的變化,計(jì)算界面變化數(shù)據(jù)從而得到用戶顯示界面的更新信息。S卩,服務(wù)器端2接收到鍵盤掃描碼后將其換算成字符串,并構(gòu)造鍵盤消息,發(fā)送到被虛擬的應(yīng)用程序22。被虛擬的應(yīng)用程序22收到鍵盤消息并進(jìn)行程序運(yùn)行,從而在相應(yīng)的文本輸入框中一次性填入所收到的字符串,并通過用戶界面顯示出字符串。服務(wù)器端處理單元23監(jiān)測(cè)到被虛擬的應(yīng)用程序22的用戶界面發(fā)生變化,計(jì)算界面變化差量,生成用戶界面更新信息發(fā)往客戶端I。同時(shí),被虛擬的應(yīng)用程序22在運(yùn)行時(shí)可將該字符串以特定字符顯示格式進(jìn)行顯示,這樣服務(wù)器端處理單元23將監(jiān)測(cè)到該字符的顯示格式變化,從而在更新信息中增加字符顯示格式信息。該字符顯示格式可以包括字體、字號(hào)、字形、顏色、間距、是否下劃線、字符特效等。步驟105具體包括客戶端I的虛擬應(yīng)用程序11收到用戶界面更新信息,更新信息中指定的用戶界面區(qū)域,顯示出已輸入的所有字符串。該客戶端可為移動(dòng)或非移動(dòng)的終端,包括PC機(jī)、智能手機(jī)、個(gè)人數(shù)字助理、平板電腦、具有無線通信模塊的計(jì)算機(jī)、車載移動(dòng)通信設(shè)備。對(duì)于移動(dòng)終端的連接網(wǎng)絡(luò)方式,可以通過運(yùn)營(yíng)商的SM卡上網(wǎng)實(shí)現(xiàn)和互聯(lián)網(wǎng)的連接,也可能是通過WIFI連接入互聯(lián)網(wǎng),或其他方式接入互聯(lián)網(wǎng)和服務(wù)器連接。對(duì)于平板電腦,其采用虛擬鍵盤來實(shí)現(xiàn)字符輸入,在HOOK方式上使用軟鍵盤鉤子方式進(jìn)行字符輸入的截獲操作。本發(fā)明還公開了一種在虛擬應(yīng)用環(huán)境下改善用戶體驗(yàn)的方法,具體涉及的是一種用于實(shí)現(xiàn)虛擬應(yīng)用系統(tǒng)客戶端對(duì)本地資源的訪問的方法。用于解決在現(xiàn)有技術(shù)中,虛擬應(yīng)用系統(tǒng)中的客戶端無法訪問本地資源,用戶體驗(yàn)滿意度低的問題。如圖2A所示為一種在虛擬應(yīng)用環(huán)境下改善用戶體驗(yàn)的方法的流程圖。步驟201,客戶端將調(diào)用客戶端的本地資源所產(chǎn)生的操作指令通過客戶端與服 務(wù)器端間的虛擬通道發(fā)送至該服務(wù)器端;步驟202,該服務(wù)器端的被虛擬的應(yīng)用程序根據(jù)該操作指令調(diào)用該服務(wù)器端的虛擬資源控制管理器;步驟203,該虛擬資源控制管理器將該操作指令轉(zhuǎn)換為客戶端本地資源請(qǐng)求指令,并將其通過該虛擬通道發(fā)送至該客戶端;步驟204,該客戶端的本地資源控制管理器根據(jù)該客戶端本地資源請(qǐng)求指令調(diào)用本地資源,并將調(diào)用結(jié)果返回該服務(wù)器端。請(qǐng)參閱圖2B所示為本發(fā)明的虛擬應(yīng)用系統(tǒng)的結(jié)構(gòu)示意圖,特別是本地系統(tǒng)資源訪問支持子系統(tǒng)的結(jié)構(gòu)示意圖,用于執(zhí)行上述方法。虛擬應(yīng)用系統(tǒng)10具有客戶端I以及服務(wù)器端2??蛻舳薎的應(yīng)用層加載有虛擬應(yīng)用程序11、本地化交互通道管理器14以及本地資源控制管理器16,本地資源控制管理器16用于執(zhí)行對(duì)本地資源的訪問。服務(wù)器端2可設(shè)置在一應(yīng)用服務(wù)器中。服務(wù)器端2具有本地化交互通道服務(wù)模塊21、被虛擬的應(yīng)用程序22以及虛擬資源控制管理器24。虛擬資源控制管理器24用于在服務(wù)器端虛擬出與客戶端本地資源響應(yīng)特征相同的虛擬資源,提供在虛擬應(yīng)用系統(tǒng)下的客戶端本地資源的調(diào)用接口。本地化交互通道管理器14與本地化交互通道服務(wù)模塊21配合使用,以實(shí)現(xiàn)客戶端I以及服務(wù)器端2間的虛擬通道。以下結(jié)合圖2B具體介紹上述方法的實(shí)現(xiàn)過程。服務(wù)器端2加載被虛擬的應(yīng)用程序22,將被虛擬的應(yīng)用程序22的用戶界面發(fā)送到客戶端的虛擬應(yīng)用程序11,由虛擬應(yīng)用程序11繪制并在客戶端的顯示模塊中展現(xiàn)出被虛擬的應(yīng)用程序22的用戶界面。步驟201具體包括用戶在虛擬應(yīng)用程序11的用戶界面上操作使用客戶端的本地資源的業(yè)務(wù)功能,該本地資源包括獲取電話號(hào)碼本、查看照片、撥打電話、發(fā)送短信等。在收到用戶操作本地資源的輸入信號(hào)(例如打開電話號(hào)碼本)后,客戶端對(duì)應(yīng)產(chǎn)生一操作該本地資源的操作指令??蛻舳送ㄟ^該虛擬通道將該操作指令發(fā)送到該服務(wù)器端。步驟202具體包括服務(wù)器端2的本地化交互通道服務(wù)模塊21將該操作指令發(fā)送至該被虛擬的應(yīng)用程序22,被虛擬的應(yīng)用程序22根據(jù)該操作指令而運(yùn)行,調(diào)用虛擬資源控制管理器24。步驟203具體包括當(dāng)該虛擬資源控制管理器24判斷該操作指令不是針對(duì)服務(wù)器端的本地資源而是針對(duì)客戶端的本地資源的操作指令時(shí),將操作指令轉(zhuǎn)換成客戶端的本地資源請(qǐng)求指令,并將該本地資源請(qǐng)求指令通過本地化交互通道服務(wù)21、本地化交互通道管理器14轉(zhuǎn)發(fā)到客戶端上的本地資源控制管理器16。S卩,當(dāng)該虛擬資源控制管理器24判斷該操作指令不是針對(duì)服務(wù)器端的本地資源而是針對(duì)客戶端的本地資源的操作指令時(shí),該虛擬資源控制管理器24依據(jù)該操作指令發(fā)出一可以被客戶端上的本地資源控制管理器16所直接執(zhí)行的本地資源請(qǐng)求指令,以實(shí)現(xiàn)對(duì)客戶端本地資源的調(diào)用。步驟204具體包括本地資源控制管理器16根據(jù)客戶端的本地資源請(qǐng)求指令調(diào)用實(shí)際的客戶端本地資源(打開電話號(hào)碼本,顯示電話號(hào)碼列表)。本地資源控制管理器16通過本地化交互通道服務(wù)21、本地化交互通道管理器14以及虛擬資源控制管理器24將客 戶端的本地資源調(diào)用結(jié)果返回給被虛擬的應(yīng)用程序22。該將調(diào)用結(jié)果返回該服務(wù)器端的步驟可通過調(diào)用返回、進(jìn)程通信、事件通知的方式實(shí)現(xiàn)。被虛擬的應(yīng)用程序22將訪問到的客戶端的本地資源(例如電話號(hào)碼列表)顯示在用戶界面上,并將其通過虛擬通道發(fā)送至客戶端進(jìn)行顯示。在訪問本地資源時(shí)可循環(huán)執(zhí)行上述步驟,例如,打開電話號(hào)碼本后,還可進(jìn)一步查看一條電話號(hào)碼的詳細(xì)記錄內(nèi)容,編輯電話號(hào)碼的內(nèi)容等。在輸入電話號(hào)碼的內(nèi)容時(shí),可采用圖IA所述方法,降低顯示時(shí)延。另外,還可將客戶端的圖片上傳至服務(wù)器端。另外,由于客戶端本地的數(shù)據(jù)資源可傳送到服務(wù)器端,故而在服務(wù)器端也可使用該本地的數(shù)據(jù)資源。該客戶端可為移動(dòng)或非移動(dòng)的終端,包括PC機(jī)、智能手機(jī)、個(gè)人數(shù)字助理、平板電腦、具有無線通信模塊的計(jì)算機(jī)、車載移動(dòng)通信設(shè)備。對(duì)于移動(dòng)終端的連接網(wǎng)絡(luò)方式,可以通過運(yùn)營(yíng)商的SM卡上網(wǎng)實(shí)現(xiàn)和互聯(lián)網(wǎng)的連接,也可能是通過WIFI連接入互聯(lián)網(wǎng),或其他方式接入互聯(lián)網(wǎng)和服務(wù)器連接。更進(jìn)一步的,在虛擬應(yīng)用操作過程中,通常情況下所需要傳輸?shù)臄?shù)據(jù)僅為虛擬應(yīng)用系統(tǒng)的服務(wù)器的界面信息和虛擬應(yīng)用系統(tǒng)的客戶端的鼠標(biāo)和鍵盤事件和坐標(biāo)信息。在這種情況下,虛擬應(yīng)用系統(tǒng)的服務(wù)器與虛擬應(yīng)用系統(tǒng)的客戶端的數(shù)據(jù)傳輸量很少,也就是說虛擬應(yīng)用所需的帶寬很小??墒?,一旦虛擬應(yīng)用系統(tǒng)的客戶端依照?qǐng)D2A、2B方式進(jìn)行本地資源的上傳,例如對(duì)虛擬應(yīng)用系統(tǒng)的服務(wù)器進(jìn)行大量圖片或者大型文件傳輸,所產(chǎn)生的數(shù)據(jù)包量將會(huì)增加數(shù)百倍,此時(shí)虛擬應(yīng)用的交互式響應(yīng)弊端就會(huì)非常明顯,即交互式傳輸導(dǎo)致數(shù)據(jù)包數(shù)量倍增,原有帶寬不足;并且由于下行優(yōu)先原則,當(dāng)數(shù)據(jù)包碰撞,上行數(shù)據(jù)包將會(huì)被下行數(shù)據(jù)包所抵消。發(fā)送順序容易發(fā)生混亂。虛擬應(yīng)用所支持的標(biāo)準(zhǔn)的網(wǎng)絡(luò)協(xié)議包括TCP/IP、SPX、IPX、NETBEUI、NWLINK,經(jīng)測(cè)試,在實(shí)際的數(shù)據(jù)傳輸普遍使用TCP/IP。在虛擬化環(huán)境下數(shù)據(jù)傳輸速度僅為10-100k/s。該速度對(duì)需傳輸大量圖片和文件的用戶來講無法接受。故而本發(fā)明提出一種在虛擬應(yīng)用環(huán)境下提高數(shù)據(jù)上傳速度的方法。本發(fā)明通過對(duì)數(shù)據(jù)包進(jìn)行校驗(yàn)的方式保證數(shù)據(jù)傳輸?shù)恼_性。另外,在保證正確性的前提下可通過提高數(shù)據(jù)發(fā)送頻率提高數(shù)據(jù)傳輸速度。該步驟203進(jìn)一步包括,該客戶端本地資源請(qǐng)求指令被服務(wù)器端分裝為N個(gè)指令數(shù)據(jù)包Servern, η = 1,2,……N,該服務(wù)器端依照一頻率向該客戶端依次發(fā)送該指令數(shù)據(jù)包 Servern;即,每個(gè)指令數(shù)據(jù)包Servern對(duì)應(yīng)請(qǐng)求目標(biāo)客戶端本地資源中的一部分,所有指令數(shù)據(jù)包Servern所請(qǐng)求的部分共同組成一完整的目標(biāo)客戶端本地資源。且每個(gè)指令數(shù)據(jù)包Servern中均包括標(biāo)明所請(qǐng)求的本地資源的順序的id信息。各個(gè)數(shù)據(jù)包的大小遵循虛擬應(yīng)用系統(tǒng)的限制,例如5k。該頻率可設(shè)置得較高,以提高傳輸速度,例如在通常的IOm/s的網(wǎng)絡(luò)速度的環(huán)境下,可不設(shè)任何延遲的依次發(fā)送該指令數(shù)據(jù)包,如果每個(gè)包5k,則該頻率為(10m/s)/5k。該步驟204進(jìn)一步包括該客戶端依次針對(duì)接收到的每個(gè)該指令數(shù)據(jù)包Servern,分別依據(jù)每個(gè)該客戶端本地資源請(qǐng)求指令提取相應(yīng)的客戶端本地資源,并分別將
該客戶端本地資源封裝成對(duì)應(yīng)該指令數(shù)據(jù)包Servern的響應(yīng)數(shù)據(jù)包Clientn ,η = 1,2,......
N,發(fā)送給該服務(wù)器端;S卩,客戶端根據(jù)指令數(shù)據(jù)包Server1請(qǐng)求的內(nèi)容,提取對(duì)應(yīng)的本地資源,封裝為Client1,以此類推??蛻舳耸盏皆撝噶顢?shù)據(jù)包Servern的順序可能與其原始發(fā)送的順序不同??蛻舳烁鶕?jù)收到該指令數(shù)據(jù)包Servern的順序再依次發(fā)出該響應(yīng)數(shù)據(jù)包Clientn??蛻舳丝扇砸勒赵擃l率發(fā)出該響應(yīng)數(shù)據(jù)包CI i e n t n。步驟204之后進(jìn)一步包括步驟205,該服務(wù)器端對(duì)接收到的該響應(yīng)數(shù)據(jù)包Clientn進(jìn)行校驗(yàn),將校驗(yàn)錯(cuò)誤的響應(yīng)數(shù)據(jù)包ClientN丟棄;該服務(wù)器端可依據(jù)接收到的該響應(yīng)數(shù)據(jù)包的順序,依次進(jìn)行校驗(yàn)。該服務(wù)器端可利用多線程在已經(jīng)收到響應(yīng)數(shù)據(jù)包且指令數(shù)據(jù)包未完全發(fā)送完畢的情況下,同時(shí)繼續(xù)指令數(shù)據(jù)包的發(fā)送以及對(duì)響應(yīng)數(shù)據(jù)包開始校驗(yàn),從而節(jié)約了數(shù)據(jù)傳輸?shù)恼w時(shí)間。步驟206,該服務(wù)器端重新發(fā)送與該丟棄的響應(yīng)數(shù)據(jù)包ClientN對(duì)應(yīng)的指令數(shù)據(jù)包Server,至該客戶端,跳轉(zhuǎn)執(zhí)行步驟204,直到所有響應(yīng)數(shù)據(jù)包Clientn都校驗(yàn)正確;步驟207,該服務(wù)器端將接收到的所有響應(yīng)數(shù)據(jù)包中的數(shù)據(jù)進(jìn)行提取,排序后整合
在一起。由于每個(gè)響應(yīng)數(shù)據(jù)包與每個(gè)指令數(shù)據(jù)包對(duì)應(yīng),故而每個(gè)響應(yīng)數(shù)據(jù)包中也能體現(xiàn)出該id信息。該服務(wù)器端根據(jù)該id信息對(duì)從各個(gè)響應(yīng)數(shù)據(jù)包中提取的數(shù)據(jù)進(jìn)行排序,從而復(fù)原該本地資源的原始順序,進(jìn)而將其整合在一起,使得所請(qǐng)求的本地資源實(shí)現(xiàn)了從客戶端至服務(wù)器端的傳送。在上述過程中,由于服務(wù)器端可對(duì)接收到的本地資源進(jìn)行重新排序,故而降低了對(duì)上傳過程中的數(shù)據(jù)包的順序要求,即使順序被完全打亂,也可恢復(fù)原貌。另外,由于本發(fā)明的服務(wù)器端以較高頻率傳送指令數(shù)據(jù)包,并可同時(shí)對(duì)所收到的響應(yīng)數(shù)據(jù)包進(jìn)行處理提高數(shù)據(jù)處理速度,且對(duì)錯(cuò)誤包可進(jìn)行重新發(fā)送,以提高數(shù)據(jù)傳輸?shù)恼_性。使得在保證正確性的前提下,數(shù)據(jù)傳輸?shù)乃俣鹊玫搅颂岣?。通過本申請(qǐng)的方法提高傳輸速度后,在10m/s的環(huán)境中,在普通低配的服務(wù)器和同樣配置的客戶端上,數(shù)據(jù)上傳實(shí)際速度可達(dá)到7. 7m/s。為提高上傳速度,本發(fā)明還公開另一實(shí)施例。步驟203進(jìn)一步包括該服務(wù)器端向該客戶端發(fā)送一總指令數(shù)據(jù)包,其中包括有該客戶端本地資源請(qǐng)求指令的所有信息;
S卩,此次并非由多個(gè)指令數(shù)據(jù)包分別傳送該客戶端本地資源請(qǐng)求指令,而是由一個(gè)總指令數(shù)據(jù)包整體傳送,以盡量避免由多個(gè)下行數(shù)據(jù)包帶來的與上行數(shù)據(jù)的更高碰撞幾率。提高整體數(shù)據(jù)上傳速度。步驟204進(jìn)一步包括步驟401,該客戶端根據(jù)該客戶端本地資源請(qǐng)求指令對(duì)應(yīng)提取相應(yīng)的客戶端本地資源;步驟402,該客戶端將該本地資源封裝為至少一個(gè)響應(yīng)數(shù) 據(jù)包Clientn, η = 1,2,……N,依次發(fā)送至該服務(wù)器端;其中,每個(gè)響應(yīng)數(shù)據(jù)包中均包括標(biāo)明所攜帶的本地資源的順序的id信息。步驟204之后進(jìn)一步包括步驟205,該服務(wù)器端對(duì)接收到的所有的該響應(yīng)數(shù)據(jù)包Clientn進(jìn)行校驗(yàn),將校驗(yàn)錯(cuò)誤的響應(yīng)數(shù)據(jù)包ClientN丟棄;該服務(wù)器端可依據(jù)接收到的該響應(yīng)數(shù)據(jù)包的順序,依次進(jìn)行校驗(yàn)。步驟206,該服務(wù)器端重新發(fā)送與該丟棄的響應(yīng)數(shù)據(jù)包ClientN對(duì)應(yīng)的指令數(shù)據(jù)包Server,至該客戶端,跳轉(zhuǎn)執(zhí)行步驟204,直到所有響應(yīng)數(shù)據(jù)包Clientn都校驗(yàn)正確;更為具體的,該服務(wù)器端根據(jù)丟棄的響應(yīng)數(shù)據(jù)包中的id信息確定所需提取的本地資源信息,生成一客戶端本地資源請(qǐng)求指令,從而重新生成該對(duì)應(yīng)的指令數(shù)據(jù)包Server^該步驟206具體執(zhí)行的是,該服務(wù)器重新發(fā)送與該校驗(yàn)錯(cuò)誤的響應(yīng)數(shù)據(jù)包ClientN對(duì)應(yīng)的指令數(shù)據(jù)包Server,至客戶端,該客戶端根據(jù)該指令數(shù)據(jù)包提取響應(yīng)的本地資源,再次封裝成一個(gè)響應(yīng)數(shù)據(jù)包Client,,發(fā)送至該服務(wù)器端進(jìn)行重新校驗(yàn),如依然校驗(yàn)錯(cuò)誤,循環(huán)該步驟,如果最終校驗(yàn)正確,執(zhí)行后續(xù)步驟。步驟207,該服務(wù)器端將接收到的所有響應(yīng)數(shù)據(jù)包中的數(shù)據(jù)進(jìn)行提取,排序后整合
在一起。由于該服務(wù)器端向該客戶端發(fā)送一總指令數(shù)據(jù)包,從而盡可能的避免了下行數(shù)據(jù)包與上行數(shù)據(jù)包的沖突,提高了速度。另外,由于本發(fā)明的服務(wù)器端以較高頻率傳送指令數(shù)據(jù)包,并可同時(shí)對(duì)所收到的響應(yīng)數(shù)據(jù)包進(jìn)行處理提高數(shù)據(jù)處理速度,且對(duì)錯(cuò)誤包可進(jìn)行重新發(fā)送,數(shù)據(jù)傳輸?shù)恼w速率得以提高并保證了正確性。為提高上傳速度,本發(fā)明還公開另一實(shí)施例。請(qǐng)參閱圖2C所示。步驟203進(jìn)一步包括該服務(wù)器端向該客戶端發(fā)送一總指令數(shù)據(jù)包Server,其中包括有該客戶端本地資源請(qǐng)求指令的所有信息;S卩,此次并非由多個(gè)指令數(shù)據(jù)包分別傳送該客戶端本地資源請(qǐng)求指令,而是由一個(gè)總指令數(shù)據(jù)包整體傳送,以盡量避免由多個(gè)下行數(shù)據(jù)包帶來的與上行數(shù)據(jù)的更高碰撞幾率。步驟204進(jìn)一步包括步驟401’,該客戶端根據(jù)該總指令數(shù)據(jù)包中的該客戶端本地資源請(qǐng)求指令對(duì)應(yīng)提取相應(yīng)的客戶端本地資源;步驟402’,該客戶端將部分的該客戶端本地資源封裝為響應(yīng)數(shù)據(jù)包,發(fā)送至該服務(wù)器端;由于在虛擬應(yīng)用系統(tǒng)下每個(gè)數(shù)據(jù)包的大小有限制,故而一般不可能將所有本地資源放在一個(gè)響應(yīng)數(shù)據(jù)包中。該客戶端從提取出的客戶端本地資源中選取第一部分封裝為響應(yīng)數(shù)據(jù)包,并在其中加入標(biāo)明該響應(yīng)數(shù)據(jù)包中的本地資源在所有本地資源中的順序的id信息。步驟403’,該客戶端本地觸發(fā)一指令數(shù)據(jù)包Servern, η = 2, ......N,并根據(jù)該指
令數(shù)據(jù)包Servern封裝另一部分的該本地資源為響應(yīng)數(shù)據(jù)包Clientn,發(fā)送至該服務(wù)器端,η加1,重復(fù)執(zhí)行步驟403’,直至所有的該本地資源均發(fā) 送至該服務(wù)器端;由于本地資源的第一部分已經(jīng)被封裝并發(fā)送,則當(dāng)前需要觸發(fā)針對(duì)后續(xù)部分的本地資源的指令數(shù)據(jù)包。故而,此時(shí)從Server2開始,每觸發(fā)對(duì)應(yīng)一部分本地資源的一個(gè)指令數(shù)據(jù)包,對(duì)應(yīng)封裝并發(fā)送該部分本地資源該步驟403’為在發(fā)送第一個(gè)響應(yīng)數(shù)據(jù)包Client1后,客戶端為繼續(xù)發(fā)送后續(xù)的本地資源,故而,此時(shí),在本地自主觸發(fā)后續(xù)的發(fā)送動(dòng)作從Server2開始,依次將各個(gè)部分的本地資源主動(dòng)發(fā)送,即,每觸發(fā)一個(gè)ServerN,對(duì)應(yīng)發(fā)送一個(gè)ClientN,在發(fā)送一 (3116]11^后,觸發(fā)下一個(gè)ServerN,直到全部本地資源本發(fā)送。步驟204之后進(jìn)一步包括步驟205,該服務(wù)器端對(duì)接收到的該響應(yīng)數(shù)據(jù)包Clientn進(jìn)行校驗(yàn),將校驗(yàn)錯(cuò)誤的響應(yīng)數(shù)據(jù)包ClientN丟棄;該服務(wù)器端依據(jù)接收到的該響應(yīng)數(shù)據(jù)包的順序,依次進(jìn)行校驗(yàn)。步驟206,該服務(wù)器端將對(duì)應(yīng)該校驗(yàn)錯(cuò)誤的響應(yīng)數(shù)據(jù)包ClientN所攜帶的數(shù)據(jù)的客戶端本地資源請(qǐng)求指令,封裝為指令數(shù)據(jù)包ServerN,發(fā)送至該客戶端,客戶端提取對(duì)應(yīng)的本地資源重新封裝為ClientN,跳轉(zhuǎn)執(zhí)行步驟205,直到所有響應(yīng)數(shù)據(jù)包Clientn都校驗(yàn)正確;步驟207,該服務(wù)器端將接收到的所有響應(yīng)數(shù)據(jù)包中的數(shù)據(jù)進(jìn)行提取,排序后整合
在一起。通過該自主觸發(fā)的方式實(shí)現(xiàn)的效果在于由于該服務(wù)器端向該客戶端發(fā)送一總指令數(shù)據(jù)包,從而盡可能的避免了下行數(shù)據(jù)包與上行數(shù)據(jù)包的沖突。提高了速度。本發(fā)明還公開了一種在虛擬應(yīng)用環(huán)境下改善用戶體驗(yàn)的方法,可以實(shí)現(xiàn)虛擬應(yīng)用系統(tǒng)的客戶端支持其客戶端外設(shè)。用于解決在現(xiàn)有技術(shù)中,虛擬應(yīng)用系統(tǒng)中的客戶端無法訪問其連接的外設(shè),用戶體驗(yàn)滿意度低的問題。支持方式包括兩種一種是在應(yīng)用層支持,一種是在驅(qū)動(dòng)層支持。在應(yīng)用層中實(shí)現(xiàn)對(duì)客戶端外設(shè)的支持,可以大大減少信息交互次數(shù),改善訪問外設(shè)的性能,但是需要根據(jù)具體的被虛擬的應(yīng)用程序進(jìn)行定制。驅(qū)動(dòng)層支持雖然不能減少信息交互次數(shù),但是具有交互的通用性,一次定制可以支持一類外設(shè)。以下詳細(xì)說明一種在應(yīng)用層實(shí)現(xiàn)虛擬應(yīng)用系統(tǒng)的客戶端支持其客戶端外設(shè)的方法。如圖3A所示為一種在虛擬應(yīng)用環(huán)境下改善用戶體驗(yàn)的方法的流程圖。步驟301,客戶端將訪問客戶端的外設(shè)所產(chǎn)生的操作指令通過客戶端與服務(wù)器端間的虛擬通道發(fā)送至該服務(wù)器端;步驟302,該服務(wù)器端的被虛擬的應(yīng)用程序根據(jù)該操作指令調(diào)用訪問該外設(shè)的API調(diào)用指令;步驟303,該服務(wù)器端攔截該API調(diào)用指令并將其通過客戶端與服務(wù)器端間的虛擬通道發(fā)送至該客戶端;步驟304,該客戶端解析該API調(diào)用指令,封裝成該客戶端的操作系統(tǒng)所能識(shí)別的API調(diào)用指令;步驟305,該客戶端根據(jù)該操作系統(tǒng)所能識(shí)別的API調(diào)用指令在應(yīng)用層訪問相應(yīng)的外設(shè)。請(qǐng)參閱圖3B所示為本發(fā)明的虛擬應(yīng)用系統(tǒng)的結(jié)構(gòu)示意 圖,特別是外設(shè)支持本地化子系統(tǒng)的結(jié)構(gòu)示意圖,用于執(zhí)行上述方法。虛擬應(yīng)用系統(tǒng)10具有客戶端I以及服務(wù)器端2。客戶端I的應(yīng)用層加載有虛擬應(yīng)用程序11、設(shè)備控制管理器17、設(shè)備驅(qū)動(dòng)18、設(shè)備總線驅(qū)動(dòng)19、設(shè)備控制器110以及本地化交互通道管理器14。服務(wù)器端2可設(shè)置在一應(yīng)用服務(wù)器中。服務(wù)器端2的應(yīng)用層中設(shè)置有本地化交互通道服務(wù)模塊21,被虛擬的應(yīng)用程序22以及攔截模塊25。本地化交互通道管理器14與本地化交互通道服務(wù)模塊21配合使用,以實(shí)現(xiàn)客戶端I以及服務(wù)器端2間的虛擬通道。以下結(jié)合圖3B具體介紹上述方法的實(shí)現(xiàn)過程。該外設(shè)例如為藍(lán)牙打印機(jī)。服務(wù)器端2加載該被虛擬的應(yīng)用程序22,被虛擬的應(yīng)用程序22的用戶界面發(fā)送到客戶端I的虛擬應(yīng)用程序11,由虛擬應(yīng)用程序11繪制并展現(xiàn)出被虛擬的應(yīng)用程序22的用戶界面。步驟301具體包括用戶在虛擬應(yīng)用程序11的用戶界面上操作使用外設(shè)的業(yè)務(wù)功能,該客戶端在接到用戶的輸入信號(hào)后產(chǎn)生一對(duì)應(yīng)的操作指令,該操作指令經(jīng)過虛擬應(yīng)用系統(tǒng)的虛擬通道發(fā)送到服務(wù)器端2。步驟302具體包括服務(wù)器端2的本地化交互通道服務(wù)模塊21將該操作指令發(fā)送至該被虛擬的應(yīng)用程序22,被虛擬的應(yīng)用程序22根據(jù)該操作指令而運(yùn)行,調(diào)用訪問該外設(shè)的API調(diào)用指令。該API調(diào)用指令包括訪問外設(shè)所用的API名稱及調(diào)用參數(shù)。S卩,步驟302的調(diào)用API調(diào)用指令的步驟,可視為應(yīng)用層在調(diào)用外設(shè)接口。API調(diào)用指令可視為外設(shè)接口。由于用戶在客戶端使用的應(yīng)用程序?qū)嶋H上在服務(wù)器端運(yùn)行,也就是服務(wù)器端運(yùn)行該被虛擬的應(yīng)用程序。因而,當(dāng)用戶訪問客戶端的外設(shè)時(shí),實(shí)際上需由該被虛擬的應(yīng)用程序訪問客戶端連接的外設(shè),即,將客戶端的外設(shè)重定向到服務(wù)器端。因此,月艮務(wù)器端預(yù)先設(shè)置有該外設(shè)的驅(qū)動(dòng)程序(例如一虛擬打印機(jī)驅(qū)動(dòng))和相關(guān)的應(yīng)用程序,以配合該API調(diào)用指令實(shí)現(xiàn)對(duì)外設(shè)的訪問。被虛擬的應(yīng)用程序22根據(jù)該操作指令所調(diào)用的具體的API調(diào)用指令等同于現(xiàn)有技術(shù)中非虛擬化環(huán)境下客戶端的應(yīng)用程序?qū)蛻舳送庠O(shè)的API調(diào)用指令。步驟303具體包括該API調(diào)用指令被調(diào)用時(shí)觸發(fā)攔截模塊25,該攔截模塊25攔截該API調(diào)用指令,不發(fā)送至該服務(wù)器端的設(shè)備驅(qū)動(dòng)。在一實(shí)施例中,該攔截模塊25例如為應(yīng)用Η00Κ,其預(yù)先被定制為與被虛擬的應(yīng)用程序22相關(guān)聯(lián)。S卩,該API調(diào)用指令被調(diào)用時(shí)觸發(fā)應(yīng)用HOOK的鉤子函數(shù),API調(diào)用指令被攔截下來,不發(fā)送到服務(wù)器端的設(shè)備驅(qū)動(dòng)。在一實(shí)施例中,該服務(wù)器端在應(yīng)用層內(nèi)部攔截訪問外設(shè)的API調(diào)用指令,或者,在應(yīng)用層外部攔截訪問外設(shè)的API調(diào)用指令。即,在應(yīng)用層內(nèi)部或外部攔截調(diào)用外設(shè)接口。在本發(fā)明中,攔截模塊25攔截應(yīng)用層調(diào)用外設(shè)接口包括兩種方式,第一應(yīng)用層的攔截模塊25自己封裝調(diào)用外設(shè)的接口,可以稱為應(yīng)用層的內(nèi)部。即,服務(wù)器端為實(shí)現(xiàn)對(duì)外設(shè)設(shè)備的訪問預(yù)先設(shè)置有外設(shè)接口,該外設(shè)接口可以是安裝設(shè)備驅(qū)動(dòng)過程中一并安裝的或者依據(jù)操作系統(tǒng)通用的標(biāo)準(zhǔn)設(shè)置。服務(wù)器端應(yīng)用層替換該服務(wù)器端原始提供的外設(shè)接口,將其封裝成可直接通過虛擬通道訪問客戶端的外設(shè)接口。第二 應(yīng)用層的攔截模塊25調(diào)用服務(wù)器端操作系統(tǒng)API鉤子函數(shù)的方式封裝外設(shè)提供的外設(shè)接口,即應(yīng)用層不替換服務(wù)器端提供的外設(shè)接口,只是使用API鉤子函數(shù)的方式,HOOK該外設(shè)接口提供的接口,替換為預(yù)先設(shè)置的執(zhí)行指令,以將該外設(shè)接口封裝成可直接通過虛擬通道訪問客戶端的外設(shè)接口,這種情況可以表述為應(yīng)用層的外部。對(duì)于第一種情況,這些外設(shè)接口可能都會(huì)被該調(diào)用該外設(shè)的應(yīng)用所使用,因此攔截模塊需要攔截所有的AP I調(diào)用指令,對(duì)于第二種情況,攔截模塊將只攔截外設(shè)接口中被該操作指令調(diào)用部分的API調(diào)用指令。此外,攔截模塊25按虛擬通道協(xié)議封裝被調(diào)用的該API調(diào)用指令,并將其通過本地化交互通道服務(wù)21發(fā)送到本地化交互通道管理器14。所述封裝的方式包括按照所調(diào)用API函數(shù)聲明原樣封裝或者按照本領(lǐng)域技術(shù)人員可以想見的便于客戶端遠(yuǎn)程調(diào)用的其他格式轉(zhuǎn)換后封裝。步驟304具體包括本地化交互通道管理器14將封裝的API調(diào)用指令拆封,并按照客戶端的操作系統(tǒng)能識(shí)別的格式將拆封的API調(diào)用指令重新封裝成適用于客戶端的操作系統(tǒng)訪問外設(shè)的API調(diào)用指令,然后轉(zhuǎn)發(fā)到設(shè)備控制管理器17。該重新封裝就是將數(shù)據(jù)還原成客戶端操作系統(tǒng)下等價(jià)的API及參數(shù)。步驟305具體包括該操作系統(tǒng)所能識(shí)別的API調(diào)用指令被發(fā)送往客戶端的操作系統(tǒng),產(chǎn)生I/o請(qǐng)求,該I/O請(qǐng)求被發(fā)送往與該外設(shè)對(duì)應(yīng)的設(shè)備驅(qū)動(dòng),該設(shè)備驅(qū)動(dòng)調(diào)用設(shè)備總線驅(qū)動(dòng),產(chǎn)生外設(shè)控制指令并發(fā)送到設(shè)備控制器,該設(shè)備控制器根據(jù)該外設(shè)控制指令完成對(duì)該外設(shè)的調(diào)用。該步驟305的詳細(xì)實(shí)現(xiàn)方式如下由于是應(yīng)用層支持,設(shè)備控制管理器17將API調(diào)用指令發(fā)往客戶端的操作系統(tǒng)。根據(jù)現(xiàn)有技術(shù)可知,客戶端根據(jù)該API調(diào)用指令產(chǎn)生I/O請(qǐng)求,通過外設(shè)與驅(qū)動(dòng)的映射關(guān)系,I/O請(qǐng)求被發(fā)送到外設(shè)對(duì)應(yīng)的設(shè)備驅(qū)動(dòng)18,調(diào)用客戶端所安裝的實(shí)際的外設(shè)驅(qū)動(dòng)程序。設(shè)備驅(qū)動(dòng)18隨之調(diào)用設(shè)備總線驅(qū)動(dòng)19,產(chǎn)生外設(shè)控制指令,然后發(fā)送到設(shè)備控制器110。設(shè)備控制器110與外設(shè)通信,操作外設(shè),完成業(yè)務(wù)功能,例如打印等。通過該應(yīng)用層支持的方式可以實(shí)現(xiàn)客戶端對(duì)外設(shè)的訪問,同時(shí),信息交互次數(shù)較少,訪問外設(shè)的性能較高。以下詳細(xì)說明一種在驅(qū)動(dòng)層實(shí)現(xiàn)虛擬應(yīng)用系統(tǒng)的客戶端支持其客戶端外設(shè)的方法。通過在服務(wù)器端直接產(chǎn)生調(diào)用外設(shè)的I/o請(qǐng)求數(shù)據(jù)并發(fā)送至客戶端的方式,實(shí)現(xiàn)驅(qū)動(dòng)層的外設(shè)支持。參閱圖4A所示為一種在虛擬應(yīng)用環(huán)境下改善用戶體驗(yàn)的方法的流程圖。步驟401,該客戶端將其所連接的所有外設(shè)的外設(shè)信息發(fā)送至該服務(wù)器端;步驟402,該客戶端將用戶操作客戶端的一外設(shè)所產(chǎn)生的操作指令通過客戶端與服務(wù)器端間的虛擬通道發(fā)送至該服務(wù)器端;步驟403,該服務(wù)器端根據(jù)該操作指令產(chǎn)生調(diào)用該外設(shè)的I/O請(qǐng)求數(shù)據(jù)包;步驟404,該服務(wù)器端根據(jù)該外設(shè)信息判斷該I/O請(qǐng)求數(shù)據(jù)包是否用于調(diào)用該客戶端的外設(shè),對(duì)調(diào)用該客戶端的外設(shè)的I/O請(qǐng)求數(shù)據(jù)包進(jìn)行攔截,通過該虛擬通道將其轉(zhuǎn)發(fā)至該客戶端;步驟405,該客戶端依據(jù)該I/O請(qǐng)求數(shù)據(jù)包,驅(qū)動(dòng)該外設(shè)。請(qǐng)參閱圖4B所示為本發(fā)明的虛擬應(yīng)用系統(tǒng)的結(jié)構(gòu)示意圖,特別是又一種的外設(shè)支持本地化子系統(tǒng)的結(jié)構(gòu)示意圖,用于執(zhí)行上述方法。虛擬應(yīng)用系統(tǒng)10具有客戶端I以及服務(wù)器端2??蛻舳薎的應(yīng)用層加載有虛擬應(yīng)用程序11、設(shè)備控制管理器17、虛擬設(shè)備驅(qū)動(dòng)111、設(shè)備驅(qū)動(dòng)18、設(shè)備總線驅(qū)動(dòng)19、設(shè)備控制器110以及本地化交互通道管理器14。服務(wù)器端2可設(shè)置在一應(yīng)用服務(wù) 器中。服務(wù)器端2的應(yīng)用層中設(shè)置有本地化交互通道服務(wù)模塊21,被虛擬的應(yīng)用程序22,虛擬設(shè)備控制管理器26以及虛擬設(shè)備總線驅(qū)動(dòng)27。虛擬設(shè)備控制管理器26用于管理被虛擬的應(yīng)用程序22對(duì)外設(shè)的訪問,記錄并轉(zhuǎn)發(fā)設(shè)備控制指令和通信數(shù)據(jù)。虛擬設(shè)備總線驅(qū)動(dòng)27用于攔截被虛擬應(yīng)用程序訪問外設(shè)時(shí)發(fā)出的I/O請(qǐng)求。服務(wù)器端還安裝了該外設(shè)的驅(qū)動(dòng)程序和使用該外設(shè)的應(yīng)用程序。虛擬設(shè)備總線驅(qū)動(dòng)27用于加載外設(shè)的驅(qū)動(dòng)程序、卸載外設(shè)的驅(qū)動(dòng)程序、虛擬出與實(shí)際外設(shè)響應(yīng)特征相同的虛擬設(shè)備和/或枚舉虛擬設(shè)備。該虛擬設(shè)備為將客戶端的外設(shè)重定向到服務(wù)器端時(shí),該服務(wù)器端創(chuàng)建的和客戶端的該外設(shè)相同的虛擬設(shè)備,其連接在虛擬總線上,被虛擬的應(yīng)用程序?qū)μ摂M設(shè)備的訪問都會(huì)通過虛擬通道發(fā)送到客戶端進(jìn)行實(shí)際設(shè)備的訪問。用戶關(guān)閉應(yīng)用或取消重定向時(shí),該虛擬設(shè)備被取消。本地化交互通道管理器14與本地化交互通道服務(wù)模塊21配合使用,以實(shí)現(xiàn)客戶端I以及服務(wù)器端2間的虛擬通道。以下結(jié)合圖4B具體介紹上述方法的實(shí)現(xiàn)過程。步驟401具體包括步驟4011,該客戶端的設(shè)備控制管理器加載用戶選擇連接的所有外設(shè)的虛擬設(shè)備驅(qū)動(dòng);步驟4012,該客戶端的設(shè)備控制管理器將用戶選擇的所有外設(shè)的該外設(shè)信息發(fā)送至該服務(wù)器端的虛擬設(shè)備控制管理器,該虛擬設(shè)備控制管理器通知該服務(wù)器端的虛擬設(shè)備總線驅(qū)動(dòng)攔截與該外設(shè)有關(guān)的指令。更詳而言之,步驟401通過如下方式實(shí)現(xiàn),在客戶端啟動(dòng)后,該客戶端的設(shè)備控制管理器17枚舉出終端的外設(shè)。用戶選擇要支持的外設(shè)。根據(jù)用戶的選擇,設(shè)備控制管理器17加載相應(yīng)的外設(shè)的虛擬設(shè)備驅(qū)動(dòng)111。設(shè)備控制管理器17通過本地化交互通道管理器14、本地化交互通道服務(wù)21通知虛擬設(shè)備控制管理器26具體要支持的外設(shè)是什么。虛擬設(shè)備控制管理器26通知虛擬設(shè)備總線驅(qū)動(dòng)27準(zhǔn)備攔截與該外設(shè)相關(guān)的所有通信。服務(wù)器端2加載該被虛擬的應(yīng)用程序22,在客戶端2與服務(wù)器端建立連接后,被虛擬的應(yīng)用程序22的用戶界面發(fā)送到客戶端I的虛擬應(yīng)用程序11,由虛擬應(yīng)用程序11繪制并展現(xiàn)出被虛擬的應(yīng)用程序22的用戶界面。步驟402通過如下方式實(shí)現(xiàn),用戶在虛擬應(yīng)用程序11的用戶界面上操作使用外設(shè)的業(yè)務(wù)功能,從而產(chǎn)生一操作指令,該操作指令經(jīng)過虛擬應(yīng)用系統(tǒng)的虛擬通道發(fā)送到虛擬應(yīng)用系統(tǒng)服務(wù)器端2。該被虛擬的應(yīng)用程序22根據(jù)該操作指令運(yùn)行。步驟403通過如下方式實(shí)現(xiàn),被虛擬的應(yīng)用程序22調(diào)用訪問外設(shè)的API調(diào)用指令。在驅(qū)動(dòng)層外設(shè)支持的模式下,不會(huì)觸發(fā)攔截模塊25的鉤子函數(shù),不用對(duì)被虛擬的應(yīng)用程序的任何API調(diào)用指令進(jìn)行攔截。API調(diào)用指令被服務(wù)器端的操作系統(tǒng)轉(zhuǎn)換成對(duì)應(yīng)的I/O請(qǐng)求數(shù)據(jù)包,被直接發(fā)送到設(shè)備驅(qū)動(dòng)上。設(shè)備驅(qū)動(dòng)調(diào)用虛擬設(shè)備總線驅(qū)動(dòng)27。在一優(yōu)化實(shí)施方式中,該I/O請(qǐng)求數(shù)據(jù)包可以包括I/O請(qǐng)求的底層的通信數(shù)據(jù),如USB設(shè)備的URB數(shù)據(jù)包等。另外,由于本發(fā)明可將API調(diào)用指令直接轉(zhuǎn)換成I/O請(qǐng)求數(shù)據(jù)包,故而,預(yù)先一次性定制一種API調(diào)用指令所對(duì)應(yīng)的I/O請(qǐng)求數(shù)據(jù)包,則可以支持一類外設(shè),無需依具體的被虛擬的應(yīng)用程序的變化而變化,從而具有較好的通用性。步驟404通過如下方式實(shí)現(xiàn),虛擬設(shè)備總線驅(qū)動(dòng)27根據(jù)該外設(shè)信息檢測(cè)到當(dāng)前I/o請(qǐng)求數(shù)據(jù)包針對(duì)的是要訪問用戶選定的外設(shè)(虛擬設(shè)備),于是攔截這些I/O請(qǐng)求數(shù)據(jù)包,不發(fā)送到服務(wù)器端本地的設(shè)備控制器,而是通過虛擬設(shè)備控制管理器26、本地化 交互通道服務(wù)21、本地化交互通道管理器14轉(zhuǎn)發(fā)到客戶端上的設(shè)備控制管理器17。設(shè)備控制管理器17用于管理客戶端上實(shí)際的對(duì)外設(shè)的訪問操作。該虛擬設(shè)備總線驅(qū)動(dòng)27通過在虛擬設(shè)備總線上攔截或者以過濾驅(qū)動(dòng)的方式進(jìn)行攔截。過濾驅(qū)動(dòng)的方式是公知技術(shù)。對(duì)于虛擬設(shè)備總線攔截,由于總線驅(qū)動(dòng)是處于設(shè)備驅(qū)動(dòng)的下層,所有針對(duì)設(shè)備驅(qū)動(dòng)的訪問,都會(huì)通過總線,之后才到達(dá)設(shè)備,因而在總線上也能夠?qū)崿F(xiàn)攔截。最后,步驟405通過如下方式實(shí)現(xiàn),設(shè)備控制管理器17調(diào)用相應(yīng)的虛擬設(shè)備驅(qū)動(dòng)111。虛擬設(shè)備驅(qū)動(dòng)111將I/o請(qǐng)求數(shù)據(jù)包發(fā)送到實(shí)際的設(shè)備總線驅(qū)動(dòng)19。設(shè)備總線驅(qū)動(dòng)19產(chǎn)生外設(shè)控制指令,然后發(fā)送到設(shè)備控制器110。設(shè)備控制器110與外設(shè)通信,操作外設(shè),完成業(yè)務(wù)功能。S卩,虛擬設(shè)備驅(qū)動(dòng)111根據(jù)該I/O請(qǐng)求數(shù)據(jù)包,依照現(xiàn)有的外設(shè)的設(shè)備驅(qū)動(dòng)的步驟執(zhí)行對(duì)設(shè)備的驅(qū)動(dòng)。當(dāng)將服務(wù)器端的被虛擬的應(yīng)用程序的用戶界面重定向到客戶端后,在客戶端不使用客戶端原有的設(shè)備驅(qū)動(dòng),本發(fā)明在客戶端設(shè)置了虛擬設(shè)備驅(qū)動(dòng)111。虛擬設(shè)備驅(qū)動(dòng)111用于虛擬出與外設(shè)原有驅(qū)動(dòng)程序相同的操作行為,由于服務(wù)器端已經(jīng)產(chǎn)生了用于調(diào)用外設(shè)的I/o請(qǐng)求數(shù)據(jù)包,因此,該虛擬設(shè)備驅(qū)動(dòng)111只負(fù)責(zé)將要實(shí)際調(diào)用設(shè)備的I/O請(qǐng)求數(shù)據(jù)包下發(fā)到設(shè)備,并把設(shè)備返回的信息通過網(wǎng)絡(luò)傳回服務(wù)器端,不負(fù)責(zé)具體產(chǎn)生驅(qū)動(dòng)數(shù)據(jù)??梢?,客戶端可以不設(shè)置實(shí)體設(shè)備驅(qū)動(dòng)。該步驟405之后還包括該客戶端將該外設(shè)的運(yùn)行處理結(jié)果通過該虛擬通道傳回該服務(wù)器端的虛擬設(shè)備總線驅(qū)動(dòng),該虛擬設(shè)備總線驅(qū)動(dòng)將該運(yùn)行處理結(jié)果反饋給服務(wù)器端的被虛擬的應(yīng)用程序22。被虛擬的應(yīng)用程序22根據(jù)該運(yùn)行處理結(jié)果依據(jù)上述步驟對(duì)虛擬設(shè)備進(jìn)行訪問,訪問結(jié)果再次通過虛擬通道發(fā)送到客戶端進(jìn)行實(shí)際設(shè)備的訪問,直到用戶結(jié)束訪問。以上各個(gè)技術(shù)方案中所述的該客戶端可為移動(dòng)或非移動(dòng)的終端,包括PC機(jī)、智能手機(jī)、個(gè)人數(shù)字助理、平板電腦、具有無線通信模塊的計(jì)算機(jī)、車載移動(dòng)通信設(shè)備等。請(qǐng)參閱圖5所示為客戶端連入網(wǎng)絡(luò)的示意圖??蛻舳丝赏ㄟ^其網(wǎng)絡(luò)裝置連接入互聯(lián)網(wǎng),進(jìn)而通過web服務(wù)器,連接至設(shè)置有虛擬應(yīng)用系統(tǒng)服務(wù)器端的應(yīng)用服務(wù)器。對(duì)于移動(dòng)終端的連接網(wǎng)絡(luò)方式,可以通過運(yùn)營(yíng)商的SM卡上網(wǎng)實(shí)現(xiàn)和互聯(lián)網(wǎng)的連接,也可能是通過WIFI連接入互聯(lián)網(wǎng),或其他方式接入互聯(lián)網(wǎng)和服務(wù)器連接。以實(shí)現(xiàn)客戶端與虛擬應(yīng)用系統(tǒng)服務(wù)器端的初始連接。如圖6所示為本發(fā)明的虛擬應(yīng)用系統(tǒng)的結(jié)構(gòu)示意圖。其可以同時(shí)包括字符輸入操作體驗(yàn)本地化子系統(tǒng)、本地系統(tǒng)資源訪問支持子系統(tǒng)以及兩種外設(shè)支持本地化子系統(tǒng)。即,本發(fā)明的虛擬應(yīng)用系統(tǒng)可以一并解決上述三種子系統(tǒng)分別解決的問題?;趫D6所示,本地化交互通道管理器14用于解析并處理服務(wù)器端轉(zhuǎn)發(fā)的被虛擬的應(yīng)用程序22與本地資源控制管理器16之間、被虛擬的應(yīng)用程序22與攔截模塊12之間或者被虛擬的應(yīng)用程序22與設(shè)備控制管理器17之間的通信數(shù)據(jù)。

本地化交互通道服務(wù)模塊21用于轉(zhuǎn)發(fā)虛擬應(yīng)用系統(tǒng)服務(wù)器端、虛擬資源控制管理器24、虛擬設(shè)備控制管理器26、攔截模塊25與客戶端各模塊的通信數(shù)據(jù)通過上述技術(shù)方案可以有效改善用戶體驗(yàn),豐富虛擬化環(huán)境下的功能應(yīng)用,降低虛擬應(yīng)用程序輸入文本后的回顯時(shí)延,實(shí)現(xiàn)虛擬應(yīng)用系統(tǒng)客戶端對(duì)本地資源的訪問。實(shí)現(xiàn)在應(yīng)用層實(shí)現(xiàn)虛擬應(yīng)用系統(tǒng)的客戶端支持其客戶端外設(shè),實(shí)現(xiàn)在驅(qū)動(dòng)層實(shí)現(xiàn)虛擬應(yīng)用系統(tǒng)的客戶端支持其客戶端外設(shè),在虛擬化環(huán)境下為用戶的應(yīng)用帶來便利,以實(shí)現(xiàn)在虛擬應(yīng)用環(huán)境下獲得接近于本地應(yīng)用程序的操作體驗(yàn)。
權(quán)利要求
1.一種在虛擬應(yīng)用環(huán)境下改善用戶體驗(yàn)的方法,用于降低虛擬應(yīng)用程序輸入文本后的回顯時(shí)延,其特征在干,應(yīng)用于包括客戶端與服務(wù)器端的虛擬應(yīng)用系統(tǒng),該方法包括如下步驟 步驟1,用戶在該客戶端輸入字符,該客戶端攔截該字符; 步驟2,該客戶端緩存該字符,并且,該客戶端的用戶顯示界面實(shí)時(shí)顯示該字符; 步驟3,該客戶端將用戶此次輸入所緩存的所有字符通過客戶端與服務(wù)器端間的虛擬通道發(fā)送至該服務(wù)器端; 步驟4,該服務(wù)器端根據(jù)接收到的字符產(chǎn)生用戶顯示界面的更新信息,該更新信息被發(fā)送至該客戶端; 步驟5,該客戶端根據(jù)該更新信息更新用戶顯示界面。
2.如權(quán)利要求I所述的方法,其特征在干,該客戶端攔截該字符的步驟進(jìn)一歩包括在應(yīng)用層或鍵盤驅(qū)動(dòng)層或通過硬件中斷方式攔截該字符。
3.如權(quán)利要求I所述的方法,其特征在干,該客戶端攔截該字符的步驟進(jìn)一歩包括該客戶端在收到用戶的輸入動(dòng)作所對(duì)應(yīng)的鍵盤掃描碼后,調(diào)用鍵盤HOOK,該鍵盤HOOK攔截該鍵盤掃描碼,避免將其直接發(fā)送到該服務(wù)器端。
4.如權(quán)利要求I所述的方法,其特征在干,當(dāng)用戶持續(xù)輸入字符時(shí),循環(huán)執(zhí)行步驟1、2,當(dāng)該客戶端收到用戶發(fā)出的提交命令時(shí),執(zhí)行步驟3。
5.如權(quán)利要求1、2、3或4所述的方法,其特征在于,步驟4進(jìn)ー步包括 該服務(wù)器端的被虛擬的應(yīng)用程序在其用戶顯示界面中填入所收到的所有字符,該服務(wù)器端監(jiān)測(cè)該被虛擬的應(yīng)用程序的用戶顯示界面發(fā)生的變化,計(jì)算界面變化數(shù)據(jù)從而得到用戶顯示界面的更新信息。
6.如權(quán)利要求1、2、3或4所述的方法,其特征在干,該客戶端包括移動(dòng)終端,該移動(dòng)終端包括智能手機(jī)、個(gè)人數(shù)字助理、平板電腦、具有無線通信模塊的計(jì)算機(jī)、車載移動(dòng)通信設(shè)備。
7.如權(quán)利要求5所述的方法,其特征在于,步驟5進(jìn)ー步包括該更新信息中包括字符顯示格式信息,該客戶端根據(jù)該字符顯示格式信息顯示字符。
8.—種虛擬應(yīng)用系統(tǒng),包括客戶端、服務(wù)器端以及連接客戶端與服務(wù)器端的虛擬通道,用于降低虛擬應(yīng)用程序輸入文本后的回顯時(shí)延,其特征在干, 該客戶端進(jìn)ー步包括 攔截模塊,用于攔截用戶在該客戶端輸入的字符; 緩存模塊,用于緩存該攔截模塊所攔截的字符; 顯示模塊,用于對(duì)該攔截模塊所攔截的字符進(jìn)行實(shí)時(shí)顯示; 該虛擬通道用于傳送用戶此次輸入所緩存的所有字符至該服務(wù)器端,以及,傳送該服務(wù)器端產(chǎn)生的一更新信息至該客戶端; 該服務(wù)器端根據(jù)接收到的字符產(chǎn)生該更新信息,該更新信息是該客戶端更新該顯示模塊的用戶顯示界面的依據(jù)。
9.如權(quán)利要求8所述的系統(tǒng),其特征在于,該攔截模塊為鍵盤Η00Κ,該鍵盤HOOK攔截該客戶端收到的該字符所對(duì)應(yīng)的鍵盤掃描碼,避免將其直接發(fā)送到該服務(wù)器端。
10.如權(quán)利要求8所述的系統(tǒng),其特征在干,該客戶端包括移動(dòng)終端,該移動(dòng)終端包括智能手機(jī)、個(gè)人數(shù)字助理、平板電腦、具有無線通信模塊的計(jì)算機(jī)、車載移動(dòng)通信設(shè)備。
11.如權(quán)利要求8所述的系統(tǒng),其特征在干,該更新信息中包括字符顯示格式信息,該客戶端根據(jù)該字符顯示格式信息顯示字符。
12.一種在虛擬應(yīng)用環(huán)境下改善用戶體驗(yàn)的方法,用于實(shí)現(xiàn)虛擬應(yīng)用系統(tǒng)客戶端對(duì)本地資源的訪問,其特征在于,該方法應(yīng)用于包括客戶端與服務(wù)器端的虛擬應(yīng)用系統(tǒng),該方法包括如下步驟 步驟1,客戶端將調(diào)用客戶端的本地資源所產(chǎn)生的操作指令通過客戶端與服務(wù)器端間的虛擬通道發(fā)送至該服務(wù)器端; 步驟2,該服務(wù)器端的被虛擬的應(yīng)用程序根據(jù)該操作指令調(diào)用該服務(wù)器端的虛擬資源控制管理器; 步驟3,該虛擬資源控制管理器將該操作指令轉(zhuǎn)換為客戶端本地資源請(qǐng)求指令,并將其通過該虛擬通道發(fā)送至該客戶端; 步驟4,該客戶端的本地資源控制管理器根據(jù)該客戶端本地資源請(qǐng)求指令調(diào)用本地資源,并將調(diào)用結(jié)果返回該服務(wù)器端。
13.如權(quán)利要求12所述的方法,其特征在干,該將調(diào)用結(jié)果返回該服務(wù)器端的步驟可通過調(diào)用返回、進(jìn)程通信、事件通知的方式實(shí)現(xiàn)。
14.如權(quán)利要求12或13所述的方法,其特征在干,該客戶端包括移動(dòng)終端,該移動(dòng)終端包括智能手機(jī)、個(gè)人數(shù)字助理、平板電腦、具有無線通信模塊的計(jì)算機(jī)、車載移動(dòng)通信設(shè)備。
15.如權(quán)利要求12所述的方法,其特征在于,步驟3進(jìn)ー步包括 該服務(wù)器端依照一頻率向該客戶端依次發(fā)送指令數(shù)據(jù)包Servern, η = 1,2, ......N,該指令數(shù)據(jù)包Servern攜帶有該客戶端本地資源請(qǐng)求指令; 步驟4進(jìn)ー步包括該客戶端依次針對(duì)接收到的姆個(gè)該指令數(shù)據(jù)包Servern,分別依據(jù)每個(gè)該客戶端本地資源請(qǐng)求指令提取相應(yīng)的客戶端本地資源,并分別將該客戶端本地資源封裝成對(duì)應(yīng)該指令數(shù)據(jù)包Servern的響應(yīng)數(shù)據(jù)包Clientn, η = 1,2, ......N,發(fā)送給該服務(wù)器端; 步驟4之后還包括 步驟5,該服務(wù)器端對(duì)接收到的該響應(yīng)數(shù)據(jù)包Clientn-行校驗(yàn),將校驗(yàn)錯(cuò)誤的響應(yīng)數(shù)據(jù)包ClientN丟棄; 步驟6,該服務(wù)器端重新發(fā)送與該丟棄的響應(yīng)數(shù)據(jù)包Client,對(duì)應(yīng)的指令數(shù)據(jù)包ServerN至該客戶端,跳轉(zhuǎn)執(zhí)行步驟4,直到所有響應(yīng)數(shù)據(jù)包Clientn都校驗(yàn)正確; 步驟7,該服務(wù)器端將接收到的所有響應(yīng)數(shù)據(jù)包中的數(shù)據(jù)進(jìn)行提取,排序后整合在一起。
16.如權(quán)利要求12所述的方法,其特征在于,步驟3進(jìn)ー步包括該服務(wù)器端向該客戶端發(fā)送ー總指令數(shù)據(jù)包,其中包括有該客戶端本地資源請(qǐng)求指令的所有信息; 步驟4進(jìn)ー步包括 步驟401,該客戶端根據(jù)該客戶端本地資源請(qǐng)求指令對(duì)應(yīng)提取相應(yīng)的客戶端本地資源; 步驟402,該客戶端將該本地資源封裝為至少一個(gè)響應(yīng)數(shù)據(jù)包Clientn, η = 1,2,……N,依次發(fā)送至該服務(wù)器端;步驟4之后進(jìn)ー步包括 步驟51,該服務(wù)器端對(duì)接收到的該響應(yīng)數(shù)據(jù)包Clientn-行校驗(yàn),將校驗(yàn)錯(cuò)誤的響應(yīng)數(shù)據(jù)包ClientN丟棄; 步驟61,該服務(wù)器端將對(duì)應(yīng)該校驗(yàn)錯(cuò)誤的響應(yīng)數(shù)據(jù)包Client,所攜帯的數(shù)據(jù)的客戶端本地資源請(qǐng)求指令,封裝為指令數(shù)據(jù)包Server,發(fā)送至該客戶端,跳轉(zhuǎn)執(zhí)行步驟401,直到所有響應(yīng)數(shù)據(jù)包Clientn都校驗(yàn)正確; 步驟71,該服務(wù)器端將接收到的所有響應(yīng)數(shù)據(jù)包中的數(shù)據(jù)進(jìn)行提取,排序后整合在一起。
17.如權(quán)利要求12所述的方法,其特征在于,步驟3進(jìn)ー步包括該服務(wù)器端向該客戶端發(fā)送ー總指令數(shù)據(jù)包Server,其中包括有該客戶端本地資源請(qǐng)求指令的所有信息; 步驟4進(jìn)ー步包括 步驟401’,該客戶端根據(jù)該客戶端本地資源請(qǐng)求指令對(duì)應(yīng)提取相應(yīng)的客戶端本地資源; 步驟402’,該客戶端將該客戶端本地資源的一部分封裝為響應(yīng)數(shù)據(jù)包,發(fā)送至該服務(wù)器端;例如把本地資源的第一部分封裝起來并發(fā)送。
步驟403’,該客戶端本地觸發(fā)一指令數(shù)據(jù)包Servern, η = 2,......N,并根據(jù)該指令數(shù)據(jù)包封裝另一部分的該本地資源為響應(yīng)數(shù)據(jù)包Clientn,發(fā)送至該服務(wù)器端,η加1,重復(fù)執(zhí)行步驟403’,直至所有的該本地資源均發(fā)送至該服務(wù)器端; 步驟4之后進(jìn)ー步包括 步驟51,該服務(wù)器端對(duì)接收到的該響應(yīng)數(shù)據(jù)包Clientn-行校驗(yàn),將校驗(yàn)錯(cuò)誤的響應(yīng)數(shù)據(jù)包ClientN丟棄; 步驟61,該服務(wù)器端將對(duì)應(yīng)該校驗(yàn)錯(cuò)誤的響應(yīng)數(shù)據(jù)包Client,所攜帯的數(shù)據(jù)的客戶端本地資源請(qǐng)求指令,封裝為指令數(shù)據(jù)包Server,,發(fā)送至該客戶端,客戶端提取對(duì)應(yīng)的本地資源重新封裝為Client,,發(fā)送至服務(wù)器端,跳轉(zhuǎn)執(zhí)行步驟51,直到所有響應(yīng)數(shù)據(jù)包Clientn都校驗(yàn)正確; 步驟71,該服務(wù)器端將接收到的所有響應(yīng)數(shù)據(jù)包中的數(shù)據(jù)進(jìn)行提取,排序后整合在一起。
18.如權(quán)利要求15、16或17所述的方法,其特征在干,該步驟5或51中,該服務(wù)器端依據(jù)接收到的該響應(yīng)數(shù)據(jù)包的順序,依次進(jìn)行校驗(yàn)。
19.如權(quán)利要求15所述的方法,其特征在干,如果該服務(wù)器端在該步驟3未完全執(zhí)行完畢時(shí)收到了該響應(yīng)數(shù)據(jù)包,則同時(shí)執(zhí)行步驟5和步驟3。
20.如權(quán)利要求15所述的方法,其特征在干,該步驟4中,該客戶端依照該頻率發(fā)送該響應(yīng)數(shù)據(jù)包至該服務(wù)器端。
21.ー種虛擬應(yīng)用系統(tǒng),包括客戶端、服務(wù)器端以及連接客戶端與服務(wù)器端的虛擬通道,用于實(shí)現(xiàn)虛擬應(yīng)用系統(tǒng)客戶端對(duì)本地資源的訪問,其特征在干, 該服務(wù)器端加載有被虛擬的應(yīng)用程序,并且設(shè)置有虛擬資源控制管理器; 該被虛擬的應(yīng)用程序在收到通過該虛擬通道傳送來的調(diào)用客戶端本地資源所產(chǎn)生的操作指令時(shí),調(diào)用該虛擬資源控制管理器,該虛擬資源控制管理器將該操作指令轉(zhuǎn)換為客戶端本地資源請(qǐng)求指令,并將其通過該虛擬通道發(fā)送至該客戶端;該客戶端具有本地資源控制管理器,用于根據(jù)該客戶端本地資源請(qǐng)求指令調(diào)用客戶端的本地資源,并將調(diào)用結(jié)果返回該服務(wù)器端。
22.如權(quán)利要求21所述的系統(tǒng),其特征在干,該客戶端通過調(diào)用返回、進(jìn)程通信、事件通知的方式將調(diào)用結(jié)果返回該服務(wù)器端。
23.如權(quán)利要求21或22所述的系統(tǒng),其特征在干,該客戶端包括移動(dòng)終端,該移動(dòng)終端包括智能手機(jī)、個(gè)人數(shù)字助理、平板電腦、具有無線通信模塊的計(jì)算機(jī)、車載移動(dòng)通信設(shè)備。
24.一種在虛擬應(yīng)用環(huán)境下改善用戶體驗(yàn)的方法,用于在應(yīng)用層實(shí)現(xiàn)虛擬應(yīng)用系統(tǒng)的客戶端支持其客戶端外設(shè),其特征在于,該方法應(yīng)用于包括客戶端與服務(wù)器端的虛擬應(yīng)用系統(tǒng),該方法包括如下步驟 步驟1,客戶端將訪問客戶端的外設(shè)所產(chǎn)生的操作指令通過客戶端與服務(wù)器端間的虛擬通道發(fā)送至該服務(wù)器端; 步驟2,該服務(wù)器端的被虛擬的應(yīng)用程序根據(jù)該操作指令調(diào)用訪問該外設(shè)的API調(diào)用指令; 步驟3,該服務(wù)器端攔截該API調(diào)用指令并將其通過客戶端與服務(wù)器端間的虛擬通道發(fā)送至該客戶端; 步驟4,該客戶端解析該API調(diào)用指令,封裝成該客戶端的操作系統(tǒng)所能識(shí)別的API調(diào)用指令; 步驟5,該客戶端根據(jù)該操作系統(tǒng)所能識(shí)別的API調(diào)用指令在應(yīng)用層訪問相應(yīng)的外設(shè)。
25.如權(quán)利要求24所述的方法,其特征在干,該步驟3進(jìn)ー步包括該API調(diào)用指令被調(diào)用時(shí)觸發(fā)該服務(wù)器端的應(yīng)用HOOK,該應(yīng)用HOOK攔截該API調(diào)用指令,不發(fā)送至該服務(wù)器端的設(shè)備驅(qū)動(dòng)。
26.如權(quán)利要求24所述的方法,其特征在干,該API調(diào)用指令包括訪問外設(shè)所用的API名稱及調(diào)用參數(shù)。
27.如權(quán)利要求24所述的方法,其特征在干,該步驟3進(jìn)ー步包括該服務(wù)器端在應(yīng)用層內(nèi)部或者外部攔截該API調(diào)用指令。
28.如權(quán)利要求24所述的方法,其特征在干,該步驟5進(jìn)ー步包括該操作系統(tǒng)所能識(shí)別的API調(diào)用指令被發(fā)送往客戶端的操作系統(tǒng),據(jù)以產(chǎn)生I/O請(qǐng)求,該I/O請(qǐng)求被發(fā)送往與該外設(shè)對(duì)應(yīng)的客戶端的設(shè)備驅(qū)動(dòng),該設(shè)備驅(qū)動(dòng)調(diào)用客戶端的設(shè)備總線驅(qū)動(dòng),以產(chǎn)生外設(shè)控制指令并發(fā)送到客戶端的設(shè)備控制器,該設(shè)備控制器根據(jù)該外設(shè)控制指令完成對(duì)該外設(shè)的調(diào)用。
29.ー種虛擬應(yīng)用系統(tǒng),包括客戶端、服務(wù)器端以及連接客戶端與服務(wù)器端的虛擬通道,用于在應(yīng)用層實(shí)現(xiàn)虛擬應(yīng)用系統(tǒng)的客戶端可支持其客戶端外設(shè),其特征在于,包括 該服務(wù)器端設(shè)置有被虛擬的應(yīng)用程序以及攔截模塊,該被虛擬的應(yīng)用程序根據(jù)該服務(wù)器端所接收到的訪問客戶端的外設(shè)所產(chǎn)生的操作指令調(diào)用訪問該外設(shè)的API調(diào)用指令,該攔截模塊攔截該API調(diào)用指令并將其通過客戶端與服務(wù)器端間的虛擬通道發(fā)送至該客戶端; 該客戶端設(shè)置有設(shè)備控制管理器,該設(shè)備控制管理器解析該API調(diào)用指令,封裝成該客戶端的操作系統(tǒng)所能識(shí)別的API調(diào)用指令,借以在應(yīng)用層訪問相應(yīng)的外設(shè)。
30.如權(quán)利要求29所述的系統(tǒng),其特征在干,該攔截模塊為應(yīng)用Η00Κ,該API調(diào)用指令被發(fā)出時(shí)觸發(fā)應(yīng)用HOOK,該應(yīng)用HOOK攔截該API調(diào)用指令,不發(fā)送至該服務(wù)器端的設(shè)備驅(qū)動(dòng)。
31.如權(quán)利要求29所述的系統(tǒng),其特征在干,該API調(diào)用指令包括訪問外設(shè)所用的API名稱及調(diào)用參數(shù)。
32.如權(quán)利要求29所述的系統(tǒng),其特征在于,該客戶端還包括設(shè)備驅(qū)動(dòng)、設(shè)備總線驅(qū)動(dòng)以及設(shè)備控制器,該操作系統(tǒng)所能識(shí)別的API調(diào)用指令被發(fā)送往客戶端的操作系統(tǒng),產(chǎn)生I/O請(qǐng)求,該I/O請(qǐng)求被發(fā)送往與該外設(shè)對(duì)應(yīng)的設(shè)備驅(qū)動(dòng),該設(shè)備驅(qū)動(dòng)調(diào)用設(shè)備總線驅(qū)動(dòng),產(chǎn)生外設(shè)控制指令并發(fā)送到設(shè)備控制器,該設(shè)備控制器根據(jù)該外設(shè)控制指令完成對(duì)該外設(shè)的調(diào)用。
33.如權(quán)利要求29所述的系統(tǒng),其特征在干,該服務(wù)器端安裝有該外設(shè)的驅(qū)動(dòng)程序和使用該外設(shè)的應(yīng)用程序。
34.一種在虛擬應(yīng)用環(huán)境下改善用戶體驗(yàn)的方法,用于在驅(qū)動(dòng)層實(shí)現(xiàn)虛擬應(yīng)用系統(tǒng)的客戶端支持其客戶端外設(shè),其特征在于,該方法應(yīng)用于包括客戶端與服務(wù)器端的虛擬應(yīng)用系統(tǒng),該方法包括如下步驟 步驟1,該客戶端將其所連接的所有外設(shè)的外設(shè)信息發(fā)送至該服務(wù)器端; 步驟2,該客戶端將用戶操作客戶端的一外設(shè)所產(chǎn)生的操作指令通過客戶端與服務(wù)器端間的虛擬通道發(fā)送至該服務(wù)器端; 步驟3,該服務(wù)器端根據(jù)該操作指令產(chǎn)生調(diào)用該外設(shè)的I/O請(qǐng)求數(shù)據(jù)包; 步驟4,該服務(wù)器端根據(jù)該外設(shè)信息判斷該I/O請(qǐng)求數(shù)據(jù)包是否用于調(diào)用該客戶端的外設(shè),對(duì)調(diào)用該客戶端的外設(shè)的I/O請(qǐng)求數(shù)據(jù)包進(jìn)行攔截,通過該虛擬通道將其轉(zhuǎn)發(fā)至該客戶端; 步驟5,該客戶端依據(jù)該I/O請(qǐng)求數(shù)據(jù)包,驅(qū)動(dòng)該外設(shè)。
35.如權(quán)利要求34所述的方法,其特征在干,該步驟I進(jìn)ー步包括步驟11,該客戶端的設(shè)備控制管理器加載用戶選擇的所有外設(shè)的虛擬設(shè)備驅(qū)動(dòng); 步驟12,該客戶端的設(shè)備控制管理器將用戶選擇的所有外設(shè)的該外設(shè)信息發(fā)送至該服務(wù)器端的虛擬設(shè)備控制管理器,該虛擬設(shè)備控制管理器通知該服務(wù)器端的虛擬設(shè)備總線驅(qū)動(dòng)攔截與該外設(shè)有關(guān)的指令。
36.如權(quán)利要求35所述的方法,其特征在于,該步驟3進(jìn)ー步包括 該服務(wù)器端根據(jù)該操作指令發(fā)出訪問外設(shè)的API調(diào)用指令,將該API調(diào)用指令轉(zhuǎn)換為I/O請(qǐng)求數(shù)據(jù)包,發(fā)送該I/O請(qǐng)求數(shù)據(jù)包至服務(wù)器端的設(shè)備驅(qū)動(dòng),該設(shè)備驅(qū)動(dòng)調(diào)用該虛擬設(shè)備總線驅(qū)動(dòng)。
37.如權(quán)利要求36所述的方法,其特征在于,該步驟5進(jìn)ー步包括 該客戶端的設(shè)備控制管理器接收該I/O請(qǐng)求數(shù)據(jù)包并調(diào)用該客戶端的虛擬設(shè)備驅(qū)動(dòng),該虛擬設(shè)備驅(qū)動(dòng)將該I/o請(qǐng)求數(shù)據(jù)包發(fā)送到該客戶端的設(shè)備總線驅(qū)動(dòng),該設(shè)備總線驅(qū)動(dòng)產(chǎn)生外設(shè)控制命令并發(fā)送到客戶端的設(shè)備控制器,該設(shè)備控制器根據(jù)該外設(shè)控制命令驅(qū)動(dòng)該外設(shè)。
38.如權(quán)利要求34所述的方法,其特征在干,該步驟4在的攔截步驟包括在虛擬設(shè)備總線上攔截或者以過濾驅(qū)動(dòng)的方式攔截。
39.如權(quán)利要求34所述的方法,其特征在干,該步驟5之后還包括該客戶端將該外設(shè)的運(yùn)行處理結(jié)果通過該虛擬通道傳回該服務(wù)器端的虛擬設(shè)備總線驅(qū)動(dòng),該虛擬設(shè)備總線驅(qū)動(dòng)將該運(yùn)行處理結(jié)果反饋給服務(wù)器端的被虛擬的應(yīng)用程序。
40.ー種虛擬應(yīng)用系統(tǒng),包括客戶端、服務(wù)器端以及連接客戶端與服務(wù)器端的虛擬通道,用于在驅(qū)動(dòng)層實(shí)現(xiàn)虛擬應(yīng)用系統(tǒng)的客戶端支持其客戶端外設(shè),其特征在干, 該客戶端包括設(shè)備控制管理器,該設(shè)備控制管理器將該客戶端所連接的所有外設(shè)的外設(shè)信息發(fā)送至該服務(wù)器端; 該服務(wù)器端包括虛擬設(shè)備控制管理器以及虛擬設(shè)備總線驅(qū)動(dòng),該虛擬設(shè)備控制管理器接收該外設(shè)信息,該虛擬設(shè)備總線驅(qū)動(dòng)用于根據(jù)該外設(shè)信息攔截與該外設(shè)有關(guān)的指令; 該服務(wù)器端的操作系統(tǒng)根據(jù)傳送到該服務(wù)器端的用戶操作該客戶端的一外設(shè)所產(chǎn)生的操作指令,產(chǎn)生調(diào)用該外設(shè)的I/o請(qǐng)求數(shù)據(jù)包; 其中,該虛擬設(shè)備總線驅(qū)動(dòng)根據(jù)該外設(shè)信息判斷該I/o請(qǐng)求數(shù)據(jù)包是否用于調(diào)用該客戶端的外設(shè),對(duì)調(diào)用該客戶端的外設(shè)的I/o請(qǐng)求數(shù)據(jù)包進(jìn)行攔截,通過該虛擬通道將該I/O請(qǐng)求數(shù)據(jù)包轉(zhuǎn)發(fā)至該客戶端,供該客戶端依據(jù)該I/o請(qǐng)求數(shù)據(jù)包,驅(qū)動(dòng)該外設(shè)。
41.如權(quán)利要求40所述的系統(tǒng),其特征在于,該客戶端還包括虛擬設(shè)備驅(qū)動(dòng)、設(shè)備總線驅(qū)動(dòng)、設(shè)備控制器,該客戶端的設(shè)備控制管理器接收該I/O請(qǐng)求數(shù)據(jù)包并調(diào)用該客戶端的虛擬設(shè)備驅(qū)動(dòng),該虛擬設(shè)備驅(qū)動(dòng)將該I/O請(qǐng)求數(shù)據(jù)包發(fā)送到該客戶端的設(shè)備總線驅(qū)動(dòng),該設(shè)備總線驅(qū)動(dòng)產(chǎn)生外設(shè)控制命令并發(fā)送到客戶端的設(shè)備控制器,該設(shè)備控制器根據(jù)該外設(shè)控制命令驅(qū)動(dòng)該外設(shè)。
42.如權(quán)利要求40所述的系統(tǒng),其特征在干,該虛擬設(shè)備總線驅(qū)動(dòng)通過在虛擬設(shè)備總線上攔截或者過濾驅(qū)動(dòng)的方式進(jìn)行攔截。
43.如權(quán)利要求40所述的系統(tǒng),其特征在干,該服務(wù)器端安裝有該外設(shè)的驅(qū)動(dòng)程序和使用該外設(shè)的應(yīng)用程序。
全文摘要
本發(fā)明公開了一種在虛擬應(yīng)用環(huán)境下改善用戶體驗(yàn)的方法及虛擬系統(tǒng),應(yīng)用于包括客戶端與服務(wù)器端的虛擬應(yīng)用系統(tǒng),該方法包括用戶在該客戶端輸入字符,該客戶端攔截該字符;該客戶端緩存該字符,該客戶端的用戶顯示界面實(shí)時(shí)顯示該字符;該客戶端將用戶此次輸入所緩存的所有字符通過客戶端與服務(wù)器端間的虛擬通道發(fā)送至該服務(wù)器端;該服務(wù)器端根據(jù)接收到的字符產(chǎn)生用戶顯示界面的更新信息,該更新信息被發(fā)送至該客戶端;該客戶端根據(jù)該更新信息更新用戶顯示界面。上述技術(shù)方案可降低虛擬應(yīng)用程序輸入文本后的回顯時(shí)延,在虛擬化環(huán)境下為用戶的應(yīng)用帶來便利,以實(shí)現(xiàn)在虛擬應(yīng)用環(huán)境下獲得接近于本地應(yīng)用程序的操作體驗(yàn)。
文檔編號(hào)G06F9/445GK102685196SQ20111043515
公開日2012年9月19日 申請(qǐng)日期2011年12月22日 優(yōu)先權(quán)日2010年12月22日
發(fā)明者孫瑋, 楊月威, 王楊帆, 黃榮 申請(qǐng)人:北京華夏未來信息技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
浦城县| 衡东县| 托里县| 嘉峪关市| 和田市| 安国市| 洛宁县| 连云港市| 安多县| 玉田县| 塔城市| 绿春县| 屯门区| 齐河县| 望都县| 上犹县| 开阳县| 辛集市| 翼城县| 广灵县| 道真| 武穴市| 巴东县| 松阳县| 九龙坡区| 旺苍县| 鄢陵县| 五原县| 金乡县| 荥阳市| 肃南| 景宁| 镶黄旗| 绥芬河市| 聂荣县| 枣阳市| 扎鲁特旗| 岑溪市| 大庆市| 北辰区| 古田县|