用于本地生成的手勢和過渡圖形與終端控制服務的交互的方法和系統的制作方法
【專利摘要】用于實現本地生成的過渡圖形與虛擬化主機計算機服務的交互的方法和系統包括在客戶端裝置的顯示裝置處接收由用戶發布以控制當前在顯示裝置處呈現的屏幕數據的控制命令。將控制命令傳輸到主機計算機服務以用于處理。主機計算機服務處理控制命令并返回更新屏幕數據到客戶端裝置。響應于接收到更新屏幕數據,客戶端裝置識別與控制命令相關聯的期望屏幕效果。在客戶端裝置處將從主機計算機服務接收的更新屏幕數據同與期望屏幕效果相關聯的數據一起封裝,以在客戶端裝置處生成視覺響應。響應于控制命令,將封裝的屏幕效果返回到顯示裝置以用于呈現。
【專利說明】用于本地生成的手勢和過渡圖形與終端控制服務的交互的方法和系統
【技術領域】
[0001]本發明涉及實現客戶端裝置與遠程服務器裝置之間的內容通信,并且更具體地,使得能夠針對由遠程服務器裝置提供的內容在客戶端裝置處本地生成過渡圖形。
【背景技術】
[0002]隨著瘦客戶端和智能終端的出現和日益普及,各種技術已經演進為在這些裝置上提供服務。利用遠程控制服務的技術(例如終端服務,應用發布,終端仿真器等)被用于發送圖像數據到終端或瘦客戶端。圖像數據在瘦客戶端/終端上被本地呈現,以及來自終端/瘦客戶端的命令/反饋被發送回到下層的基于服務器的操作系統(OS)以用于解釋。結果,通過終端協議發送給瘦客戶端/終端的任何圖形交互僅在原始的OS上生成。盡管一些交互(例如本地鼠標呈現)被本地進行,但是這種交互在價值上是有限的。
[0003]隨著共享服務的普及度的上升,越來越多的應用被移入“云”中以用于共享。隨著更多的裝置(例如平板以及智能電話)被生成并且更多與終端服務相關的應用被移到云,在主要作為經典的基于桌面的系統的云OS與從邊緣平板/智能電話裝置期望的默認體驗之間形成了分歧。例如,智能電話和平板裝置包括諸如過渡、刷(swipe)手勢等的特征,而基于云的OS圖形主要是單頁面刷新、視頻、滾動頁面等。
[0004]一種解決該分歧的方式是嘗試這種過渡/手勢等并將這種過渡/手勢等嵌入到在云OS上執行的傳統桌面應用中。然而,從開發立場和網絡資源立場上已經證明這種努力是非常高成本的。例如,所有在云OS處針對終端服務生成的過渡必須通過網絡傳輸到平板/智能電話裝置,從而導致巨大的數據突發的傳輸,導致更高的帶寬使用率。這意味著:改變/移動的屏幕數據的每個單個像素必須從基于云的應用傳輸到邊緣設備(例如平板電腦,智能電話等)處的終端服務。
[0005]在允許在不對在服務器上執行的應用進行改變的情況下執行針對邊緣裝置而設計的特征時,最小化網絡資源使用率將是有利的。在保持并服務于來自中央位置的內容時,允許在邊緣裝置處本地發生過渡也將是有利的。將客戶端-服務器執行層與用戶交互層分離以提供具有對在云OS上執行的應用的部分的最小改變的更高成本效益的技術也將是有利的。
[0006]正是在該背景下,本發明的實施例出現。
【發明內容】
[0007]本發明的實施例提供了用于使本地生成的過渡圖形能夠與在云中執行的虛擬化主機計算機服務進行交互的方法和系統。為了提供用于提供本地生成的過渡圖形的高效技術,傳統地在云上執行的應用被分為兩個元件——客戶端側或邊緣裝置應用元件以及在云OS上執行的服務器側應用元件。客戶端側應用被配置為提供低價值數據、本地過渡以及高速緩存離線功能,而服務器側應用被配置為提供高價值事務、安全數據、高性能所需數據等。在客戶端側應用與服務器側應用元件之間建立通信接口。具體地,技術/應用(例如終端服務應用,虛擬桌面應用等)提供了用于處理從服務器側應用到客戶端側應用元件以及到本地客戶端裝置處的控制系統(例如手勢控制器)的通信的接口。
[0008]各種實施例考慮來自用戶或應用邏輯的改變在客戶端裝置的顯示裝置上呈現的屏幕的請求。在一個實施例中,應用邏輯請求是從在云中操作的服務器上執行的服務器側應用接收的。在另一個實施例中,通過顯示裝置處或客戶端裝置的顯示部分處的用戶交互來獲得屏幕調整請求。響應于該請求,向客戶端裝置實行指示客戶端側應用執行過渡效果的通信,該過渡效果嚴格按照在客戶端裝置的顯示裝置處更新和顯示變化的屏幕的相關部分的請求而編排。
[0009]若干不同實施例此處作為示例而提出。
[0010]在一個實施例中,公開了一種用于使本地生成的過渡圖形能夠與虛擬化主機計算機服務進行交互的處理器實現方法。該方法包括在客戶端裝置的顯示裝置處接收控制命令。該控制命令由用戶發布以控制當前在顯示裝置處呈現的屏幕數據。在客戶端裝置處識別與該控制命令相關聯的手勢的期望屏幕效果。以輸入命令的形式,將該控制命令傳輸到主機計算機服務以用于處理。在主機計算機服務處處理該控制命令,并且將針對當前在顯示裝置處呈現的屏幕數據的更新屏幕數據傳輸到客戶端裝置。在客戶端裝置處接收更新屏幕數據。將從主機計算機服務接收的更新屏幕數據同與在客戶端裝置處識別的期望手勢相關聯的數據(例如,提供期望屏幕效果的過渡圖形)一起封裝,以在客戶端裝置處生成視覺響應。響應于該控制命令,將封裝的屏幕效果返回給顯示裝置以進行呈現。封裝的屏幕效果包括在更新屏幕數據的呈現期間提供視覺響應的過渡圖形。
[0011]在另一個實施例中,公開了一種用于使本地生成的手勢和過渡圖形能夠與虛擬化主機計算機服務進行交互的處理器實現方法。該方法包括在客戶端裝置的顯示裝置處接收選擇命令。該選擇命令由用戶發布,請求對當前在顯示裝置處呈現的當前屏幕數據的更新。將該選擇命令傳輸到主機計算機服務以用于處理。主機計算機服務處理該選擇命令并將更新屏幕數據傳輸到客戶端裝置。除了更新屏幕數據,在服務器處還針對更新屏幕數據識別期望手勢,并將期望手勢與更新屏幕數據一起傳輸給客戶端。客戶端裝置接收更新屏幕數據以及期望手勢,其需要將與來自主機計算機服務的更新屏幕數據一起呈現的視覺響應。期望手勢支配要對當前在顯示裝置處呈現的屏幕數據進行的調整,以包括針對該手勢的期望屏幕效果。客戶端裝置識別期望屏幕效果,其能夠提供針對該手勢的視覺響應。在客戶端裝置處,將更新屏幕數據同與用于生成視覺響應的期望屏幕效果相關聯的數據一起封裝。響應于該選擇命令,將封裝的數據返回給顯示裝置以進行呈現。封裝的數據的呈現包括在更新屏幕數據的呈現期間與期望手勢相關的屏幕效果過渡的呈現。
[0012]在又一個實施例中,公開了一種用于實現本地生成的手勢和過渡圖形與虛擬化主機計算機服務的交互的系統。該系統包括虛擬化主機計算機服務的服務器以及具有用于呈現屏幕數據的顯示裝置的客戶端裝置。服務器執行服務器側應用,該服務器側應用被配置為從客戶端裝置的顯示裝置接收控制命令。該控制命令由用戶發布以控制當前在顯示裝置處呈現的屏幕數據。服務器側應用還被配置為處理該控制命令來識別更新屏幕數據,以返回到客戶端裝置來呈現。客戶端裝置執行客戶端側應用。客戶端側應用被配置為:(a)解釋從接收裝置獲得的控制命令以識別與該控制命令相關聯的期望手勢;(b)傳輸手勢命令給服務器側應用以用于處理;(C)解釋從服務器側應用傳輸到顯示裝置的更新屏幕數據;(d)獲取當前在顯示裝置處呈現的當前屏幕數據;(e)通過捆綁當前屏幕數據、更新屏幕數據以及提供期望屏幕效果的過渡圖形來生成封裝的屏幕數據,以生成針對期望手勢的視覺響應;以及(f)將封裝的屏幕數據返回給客戶端裝置的顯示裝置以進行呈現,其中封裝的屏幕數據包括提供從當前屏幕數據到更新屏幕數據的過渡的具有期望屏幕效果的過渡圖形。
[0013]通過結合附圖和權利要求作出的以下詳細描述,本發明將易于理解。
【專利附圖】
【附圖說明】
[0014]通過結合附圖的以下詳細描述,本發明將易于理解。
[0015]圖1圖示了本發明的一個實施例中的標識各個模塊以及系統內的各個模塊之間的交互的簡化框圖,該交互用于實現更新屏幕數據的通信以及提供本地生成的手勢和過渡圖形。
[0016]圖2a標識了本發明的一個實施例中的通過系統的各個模塊和組件的信息流程。
[0017]圖2b標識了本發明的可替換實施例中的通過系統的各個模塊和組件的信息流程。
[0018]圖3a圖示了本發明的一個實施例中的被遵循以在客戶端處更新屏幕數據的過程。
[0019]圖3b圖示了本發明的一個實施例中的在屏幕數據更新的傳輸期間隨時間的數據分布。
[0020]圖4圖示了本發明的一個實施例中的實現本地生成的手勢和過渡圖形與虛擬化主機計算機服務的交互所涉及的各個步驟的處理流程圖。
[0021]圖5圖示了本發明的可替換實施例中的實現本地生成的手勢和過渡圖形與虛擬化主機計算機服務的交互所涉及的各個步驟的處理流程圖。
【具體實施方式】
[0022]現在將描述用于在虛擬環境內實現本地生成的手勢和過渡圖形與虛擬化主機計算機服務的交互的若干示例性實施例。對于本領域技術人員來說將顯而易見的是,本發明可以在沒有此處闡明的某些或全部特定細節的情況下實踐。盡管參考虛擬環境全面地描述了實施例,但是本發明的教導可以擴展到常規的計算環境,例如客戶端-服務器環境。
[0023]本發明定義了實現在客戶端裝置處本地生成手勢和過渡圖形與云中的虛擬化主機計算機服務進行交互的方法和系統。圖1圖示了在實現本地生成的手勢和過渡圖形與主機計算機服務的交互時使用的系統的簡化示意。虛擬化主機計算機服務包括執行服務器側應用(1.3b)的服務器(1.6),該服務器側應用(1.3b)被配置為處理包括高性能需求的高價值事務并提供安全數據。在一個實施例中,服務器可以在執行云OS的虛擬機(例如服務器虛擬機)上執行。基于數據中心的應用的部分在服務器虛擬機上執行。在一個實施例中,基于數據中心的應用包括兩個組件。在服務器虛擬機上提供的第一組件被配置為執行客戶端-服務器處理,以及,第二組件在客戶端裝置上提供,并被配置為執行用戶交互處理。作為在服務器(1.6)上執行的服務器側應用(1.3b)的第一組件進行所有重載數據處理。在一個實施例中,服務器執行云操作系統(OS)。服務器側應用(1.3b)通過主機服務應用接口(1.5)與客戶端裝置(1.1)交互。服務器側應用(1.3b)還與服務器上的數據庫(1.7)交互,以獲得用于處理的數據。數據庫(1.7)也被客戶端裝置使用以存儲與手勢命令相關的信息。
[0024]客戶端裝置(1.1)使用有線或無線連接而被連接到因特網。客戶端裝置(1.1)可以采取任何數量的形式。客戶端裝置的示例包括計算機、膝上型電腦、個人計算機、平板計算裝置、移動計算裝置(例如平板計算裝置)、智能電話、個人數字助理等等。客戶端裝置(1.1)采取基于數據中心的應用的第二組件,該第二組件被表示為客戶端側應用元件(1.3a),以在客戶端裝置(1.1)處執行本地處理。第二組件被配置為處理低價值數據、高速緩存離線功能并生成本地過渡。
[0025]在一個實施例中,在客戶端裝置(1.1)中提供了終端服務類型的應用(1.4),用于客戶端和服務器裝置之間的通信。終端服務應用(1.4)提供客戶端裝置(1.1)和服務器
(1.6)之間的客戶端側接口。客戶端處的終端服務應用(1.4)通過主機服務應用接口(1.5)與服務器(1.6)通信。終端服務應用還與本地客戶端中的其他組件和客戶端側應用元件一起處理來自和去往客戶端裝置中的控制系統(例如手勢控制系統)的通信。結果是客戶端裝置和主機計算機服務之間的通信,其中客戶端裝置提供嚴格按照在客戶端裝置的顯示裝置處更新和顯示變化的屏幕的相關部分的請求而編排的過渡效果。在可替換實施例中,可以使用虛擬機接口來代替終端服務應用,以提供用于客戶端和服務器裝置之間的通信的客戶端側接口。
[0026]云OS主要是運行Windows?、linux?等OS的經典的基于桌面的服務。結果,由執行云OS的服務器提供的任何數據包括單頁面刷新、頁面滾動、視頻等,且不具有較新的邊緣裝置被配置以提供的與手勢相關聯的動畫特征,例如翻頁、手指刷等。此處描述的各個實施例提供了用于將在客戶端邊緣裝置(例如智能電話,平板等)中可用的較新的功能(例如手勢,圖形過渡)與從在主機計算機服務上執行的遠程應用接收的屏幕數據進行整合而不必修改遠程應用的方式。進一步地,在本地客戶端裝置處提供手勢和過渡圖形,導致網絡資源上的負載減少,這是因為網絡負載僅處理對屏幕數據的更新/改變,而不是過渡圖形。針對期望手勢的過渡圖形標識了在更新屏幕數據的呈現期間在顯示裝置處提供視覺響應的期望屏幕效果。這導致網絡資源的最優使用。
[0027]本發明的其他方面將從結合通過示例的方式圖示本發明原理的附圖作出的以下詳細描述中變得顯而易見。
[0028]圖2a圖示了用于更新需要過渡事件的屏幕的數據流程序列。在一個實施例中,在顯示裝置處接收的用戶交互觸發更新在客戶端裝置的顯示裝置處呈現的屏幕的請求。在一個實施例中,用戶交互具有控制命令(2a.1)的形式,例如頁面向下、頁面向上、向左刷、向右刷等,其由用戶發布以用于控制當前在顯示裝置處呈現的屏幕數據。控制命令通過參考在客戶端裝置處保持的映射表來識別由用戶指定的期望手勢。映射表將各種控制命令映射到由鍵盤和鼠標命令定義的不同手勢。將參考圖3a來描述關于識別期望手勢的更多細節。然后,期望手勢命令由本地終端通過反向信道服務作為輸入命令(即鍵盤/鼠標命令)傳輸到主機服務以用于處理。
[0029]與本地終端服務應用對接的主機服務應用從客戶端裝置(2a.2)接收具有輸入命令形式的手勢命令,并發送輸入命令給服務器側應用。服務器側應用處理輸入命令以識別適當的應用工作負荷作為屏幕更新數據。在一個實施例中,服務器側應用可以查詢對服務器(即主機應用服務)來說可用的服務器數據庫,以獲得與屏幕更新相關的工作負荷。
[0030]對屏幕更新工作負荷(即數據)進行封裝并將其返回到客戶端裝置的顯示裝置以用于本地呈現。封裝的屏幕更新被配置為在工作負荷中繪制屏幕更新作為單個更新。此外,封裝的屏幕更新包括對客戶端裝置上的本地應用(即客戶端側應用)基于控制命令生成用于在呈現更新屏幕數據時執行過渡的過渡數據的請求。過渡數據標識了期望屏幕效果,其在客戶端裝置的顯示裝置處生成視覺響應。
[0031]客戶端側應用攔截封裝的屏幕更新并編排針對屏幕更新的過渡。客戶端側應用識別用于實現期望手勢的一個或多個過渡圖形(即屏幕效果)。應該注意的是,過渡圖形能夠根據在實現手勢時使用的技術以及根據客戶端裝置而不同。不管所使用的技術或客戶端裝置如何,客戶端側應用都將識別在封裝的屏幕更新中接收的更新屏幕數據,并將過渡圖形與更新屏幕數據進行整合。
[0032]在一個實施例中,客戶端側應用在客戶端裝置中的第一本地緩存中存儲當前在客戶端裝置的顯示裝置上呈現的屏幕數據。客戶端側應用還接收封裝的屏幕數據到客戶端裝置內的第二本地緩存中以用于進一步處理。在一個實施例中,在接收到封裝的屏幕數據時,客戶端側應用從第一本地緩存中獲取當前屏幕數據以及從第二本地緩存中獲取封裝的屏幕數據,并在客戶端裝置處本地生成需要的過渡圖形。在一個實施例中,客戶端側應用識別當前和更新屏幕數據的不同幀,并在客戶端裝置處,在當前屏幕數據的最后一幀和更新屏幕數據的第一幀之間整合過渡圖形。過渡圖形提供期望屏幕效果,其在提供動畫過渡時的呈現期間將舊的和新的幀混合在一起。被整合的過渡圖形的一些示例包括交叉疊化、雜志翻頁動畫、簡單替換等。
[0033]上述在舊的和新的屏幕數據之間整合過渡圖形的技術不僅適用于整個頁面刷新,還適用于刷新小門戶窗口,其中可以使用相同或類似的技術來部署更適于小區域的過渡效
果O
[0034]在圖2b中圖示的另一個實施例中,外部業務邏輯(2b.2b)可以觸發在整個屏幕或部分屏幕刷新期間提供過渡圖形的請求。這個實施例與圖2a中圖示的實施例的區別在于接收過渡請求的方式。在圖2a中,針對屏幕刷新請求的請求是通過用戶交互作為控制命令而提供的,而在圖2b中的實施例中,屏幕刷新請求由被嵌入到外部應用中的外部業務邏輯提供。在一個實施例中,外部應用在執行云OS的云中的服務器上執行。將由外部應用觸發的屏幕刷新請求轉發到服務器上的主機服務以用于處理。在主機服務中執行的服務器側應用識別該請求并與服務器側數據庫交互,以獲得針對該請求的更新屏幕數據(2b.3)。在該實施例中,服務器側應用還識別手勢(2b.4)命令,該應用期望該手勢(2b.4)命令與更新屏幕數據整合,以便當在客戶端裝置的顯示裝置處呈現時生成視覺響應。在該實施例中,映射表被保持在服務器上,將控制映射到手勢。服務器側應用查閱映射表以識別期望手勢。服務器側應用封裝更新屏幕數據以及期望手勢以生成封裝的屏幕數據,并傳輸封裝的屏幕數據到客戶端裝置以用于呈現。如參考圖2a所提及的,客戶端裝置攔截封裝的屏幕數據,識別用于提供針對與封裝的屏幕數據一起接收的所識別的手勢的期望屏幕效果的過渡圖形,并在合適的位置處合并過渡圖形,以在更新屏幕數據被呈現在客戶端裝置處時生成視覺響應。在一個實施例中,期望的動畫通過在當前呈現的屏幕數據和更新屏幕數據的幀之間整合過渡圖形將當前呈現的屏幕數據與更新屏幕數據進行混合。在另一個實施例中,在更新屏幕數據的呈現之前、期間或之后呈送期望的動畫。
[0035]傳統的應用可以被視為客戶端系統與應用執行系統之間的交互。在傳統的系統中,在客戶端裝置處捕獲控制命令,并解釋該控制命令以識別輸入命令,例如鍵盤/鼠標命令。將輸入命令傳輸到在云中的服務器上執行的基于數據中心的應用。基于數據中心的應用主要是不具備任何動畫的經典的基于桌面的應用。服務器處理請求,識別更新屏幕數據,并直接將更新屏幕數據轉發到顯示裝置以用于呈現。根據當前在顯示裝置上呈現的數據的類型,將更新屏幕數據呈現在顯示裝置上作為單頁面刷新或滾動或視頻。另一方面,本發明的各個實施例提供了用于攔截直接向著顯示裝置的更新屏幕數據以及在客戶端裝置處修改更新屏幕數據以包括期望過渡圖形并將修改后的屏幕數據返回到顯示裝置的方式。修改后的屏幕數據包括屏幕效果特征,其通常可能對服務器裝置中的應用來說不可用,但是可以在客戶端裝置處可用。
[0036]圖3a圖示了本發明的一個實施例中的在提供過渡圖形與終端控制服務的交互時使用的過程。使用客戶端裝置的顯示裝置來呈現當前屏幕數據。由客戶端側應用捕獲顯示裝置處的用戶交互。作為控制當前在顯示裝置上呈現的屏幕數據的控制命令來接收用戶交互。在一個實施例中,由客戶端側應用使用被保持在客戶端裝置處的映射表來解釋控制命令。映射表將控制命令映射到期望手勢。例如,“向左刷”命令可以被映射到“頁面向下”手勢,“向右刷”命令可以被映射到“頁面向上”手勢,“向上刷”可以被映射到“鼠標輪向上”手勢,“向下刷”命令可以被映射到“鼠標輪向下”手勢等等。圖3a中的映射表圖示了被映射到一些手勢的控制命令的采樣。
[0037]對控制命令進行解釋以便以輸入命令形式識別期望手勢命令,且通過客戶端和服務器裝置中的相應接口將輸入命令(鍵盤/鼠標命令)傳輸到服務器側應用。服務器側應用識別與手勢命令相關聯的更新屏幕數據,并將更新屏幕數據作為要在顯示裝置處呈現的新的瞬時屏幕數據進行傳輸。在一個實施例中,更新屏幕數據被識別并作為幀緩沖數據而提供。對于關于獲得幀緩沖數據以在客戶端裝置的顯示裝置上刷新屏幕數據的更多信息,可以參考共同擁有的2010年5月20日提交的名稱為“Methods for Interfacing witha Virtualized Computing Service over a Network using a Lightweight Client,,的美國專利申請號N0.12/784, 454以及于2010年5月20日提交的名稱為“Systems andAlgorithm for Interfacing with a Virtualized Computing Service over a Networkusing a Lightweight Client”的美國專利申請N0.12/784,468,這些美國專利申請以其整體通過引用合并在此。
[0038]更新屏幕數據從服務器到客戶端裝置的傳輸由短時間段上的帶寬數據中的尖峰識別,如圖3b中所示。客戶端裝置的操作系統(OS)檢測在網絡上到來的傳輸數據中的突發,并拖延在客戶端裝置的顯示裝置處呈現更新屏幕數據。取而代之,客戶端裝置OS攔截直接去往顯示裝置的新的更新瞬時屏幕數據,并將其轉發到客戶端側應用以用于處理。在一個實施例中,客戶端裝置OS在攔截時將更新屏幕數據存儲在本地緩存中。在這個實施例中,然后,客戶端裝置OS發送信號給客戶端側應用以指示可用于處理的新數據。在另一個實施例中,客戶端裝置OS直接轉發更新屏幕數據到客戶端側應用,以用于在不存儲在本地緩存中的情況下進行處理。客戶端裝置OS知道等待客戶端側應用在顯示裝置處呈現之前處理更新屏幕數據。用于等待的時間段可以等效于更新屏幕數據的傳輸所耗費的時間。在一個實施例中,客戶端裝置OS在與更新屏幕數據從服務器裝置的傳輸所耗費的時間等效的時間段內發布等待命令。
[0039]在一個實施例中,在接收到由客戶端裝置OS轉發的更新屏幕數據時,客戶端側應用查詢并從本地緩存中獲取當前在顯示裝置處呈現的當前屏幕數據,在該本地緩存處,在顯示裝置處呈現期間存儲該當前屏幕數據。在一個實施例中,用于存儲當前屏幕數據的本地緩存與存儲更新屏幕數據的本地緩存不同。在另一個實施例中,當前屏幕數據和更新屏幕數據可以不同地存儲在公共本地緩存中。
[0040]客戶端側應用還識別需要被包括以在呈現更新屏幕數據時提供針對期望手勢的屏幕過渡效果的過渡圖形。這個操作由圖3a中的箭頭‘A’指示。基于在用戶交互中提供的手勢命令來識別過渡圖形。客戶端側應用將所獲取的當前屏幕數據與更新屏幕數據以及用于提供屏幕效果的過渡圖形進行捆綁,并將捆綁的屏幕數據轉發到客戶端裝置OS。在一個實施例中,客戶端裝置OS通過允許過渡圖形嵌入到當前屏幕數據的最后一幀和更新屏幕數據的第一幀之間,將簡單控制命令(例如“頁面向下”)轉換為書,以在當前呈現的屏幕數據和新請求的更新屏幕數據之間提供生成視覺響應的期望過渡效果。這與傳統方法不同,在傳統方法中,服務器的桌面OS會將頁面向上命令解釋為意指先前的頁面,并且更新屏幕數據將包括被直接返回給顯示裝置以在沒有任何動畫圖形的情況下進行呈現的先前頁面數據。過渡圖形的攔截、解釋以及整合都在客戶端裝置處本地完成。使用上面提及的方法,客戶端側應用可以提供下述能力:隨著較新的特征在客戶端裝置處發展/可用以及當較新的特征在客戶端裝置處發展/可用時,合并較新的特征,以實現合并在服務器應用中通常不可用的這些特征的數據的呈現。不需要修改服務器上的應用以提供這些新特征。相反,在一個實施例中,如果需要的話,可以通過更新被保持在客戶端裝置以及客戶端側應用處的映射表來在客戶端裝置處提供所有的過渡動畫。
[0041]在一個實施例中,可以生成新的服務器側應用以處理客戶端裝置上的顯示裝置處的用戶交互。服務器側應用將識別需要與被傳輸給客戶端裝置的更新屏幕數據一起包括的必要手勢命令。手勢命令由客戶端側應用解釋,以使用被保持在客戶端裝置處的映射表來定義期望過渡。手勢命令由客戶端側OS處理,以提供需要的過渡圖形,由此在顯示裝置處屏幕更新的呈現期間提供屏幕過渡效果。屏幕過渡效果生成當在客戶端裝置處呈現時適于從控制命令識別的期望手勢的視覺響應。應該注意的是,在上面提及的實施例中,手勢命令的解釋和適當過渡圖形的呈現基本上實時完成。
[0042]因此,當前實施例定義了下述方法:該方法允許將數據和分析應用服務從用戶交互式和沉浸式技術分割,從而允許類似本機的客戶端裝置接口分層放置在傳統的基于云的應用的頂部上,由此使得能夠將在客戶端裝置處可用的新特征與在客戶端裝置的顯示裝置處呈現的屏幕數據進行合并。換句話說,服務器側應用被允許操縱客戶端-服務器處理,并且客戶端側應用被設計為操縱用戶接口處理,其包括在顯示裝置處提供屏幕過渡效果的本地過渡。
[0043]圖4圖示了一個實施例中的用于使本地生成的過渡圖形與虛擬化主機計算機服務進行交互的方法的處理流程。該方法在操作410處開始,其中在客戶端裝置的顯示裝置或顯示部分處接收控制命令。控制命令可以通過顯示裝置處的用戶交互而提供,其中,用戶交互被設計為控制在其上呈現的屏幕數據。例如,用戶交互可以包括在顯示裝置上呈現當前屏幕數據時在顯示裝置上手指向左、向右、向上或向下刷、手指觸摸/輕叩等。通過客戶端側應用來捕獲和解釋用戶交互,以識別手勢命令。將具有輸入命令形式的手勢命令(例如鍵盤/鼠標命令)傳輸到主機計算機服務以用于處理,如在操作420中所示。在主機計算機服務內的服務器側應用處處理手勢命令,以及識別適當的更新屏幕數據,如在操作430中所示。服務器側應用可以訪問服務器側數據庫以基于從客戶端裝置接收的手勢命令來識別和獲取要傳輸到客戶端裝置的適當屏幕數據作為更新。響應于手勢命令,將被識別的屏幕數據返回到客戶端裝置。
[0044]客戶端裝置的操作系統接收并攔截直接去往顯示裝置的更新屏幕數據,并將更新屏幕數據移交給客戶端側應用以用于進一步處理,如在操作440中所示。在一個實施例中,客戶端裝置OS在本地緩存(即第二本地緩存)中存儲更新屏幕數據,并發送信號給客戶端側應用。響應于接收到的信號,客戶端側應用獲取當前在顯示裝置處呈現的且存儲在第一本地緩存中的當前屏幕數據以及來自第二本地緩存的更新屏幕數據,并將這兩種屏幕數據與期望過渡圖形一起捆綁,并轉發捆綁的屏幕數據到客戶端裝置OS。如之前提及的,存儲當前屏幕數據的本地緩存可以與用于存儲更新屏幕數據的本地緩存不同。在另一個實施例中,單個本地緩存用于存儲當前屏幕數據和更新屏幕數據兩者。在這個實施例中,這兩種屏幕數據不同地存儲在公共本地緩存內。
[0045]客戶端裝置OS接收與過渡圖形一起捆綁的屏幕數據,該過渡圖形提供舊屏幕數據(即當前屏幕數據)和新屏幕數據(即更新屏幕數據)之間的期望手勢所需的屏幕過渡效果,以在呈現屏幕數據時在顯示裝置處生成視覺響應。為了實行當前和更新屏幕數據之間的期望動畫,客戶端裝置OS識別當前屏幕數據的最后一幀和更新屏幕數據的第一幀。然后,客戶端裝置OS在當前屏幕數據的最后一幀和更新屏幕數據的第一幀之間合并過渡圖形,并生成包含當前屏幕數據、更新屏幕數據以及在兩者之間合并的過渡圖形的封裝的屏幕數據,如在操作450中所示。將帶有期望屏幕效果的封裝的屏幕數據返回給顯示裝置以用于呈現,如在操作460中所示。所呈現的過渡圖形生成將舊應用功能與在邊緣裝置(例如,邊緣平板,智能電話等)處可用的新功能進行混合的視覺響應,而不必修改在服務器上執行的舊應用。
[0046]圖5圖示了本發明的另一個實施例中的用于實現本地生成的過渡圖形與虛擬化主機計算機服務的交互的可替換方法。該方法在操作510處開始,其中,在客戶端裝置和顯示裝置處接收選擇命令。選擇命令是在顯示裝置處從用戶接收的,其中用戶在顯示裝置處呈現的屏幕上選擇可用選項。將選擇命令傳輸到主機計算機服務以用于處理,如在操作520中所示。選擇命令由服務器側應用處理以識別滿足選擇命令的屏幕數據。此外,服務器側應用識別期望手勢以用于與所識別的屏幕數據一起呈現。服務器側應用返回更新屏幕數據,如在操作530中所示,以及,服務器側應用將期望手勢返回給客戶端裝置,以用于在客戶端裝置的顯示裝置上呈現,如在操作540中所示。可以使用在服務器裝置處保持的映射表來識別期望手勢。在更新屏幕數據的呈現期間,期望手勢支配要在顯示裝置處進行的調整。
[0047]客戶端裝置OS攔截更新屏幕數據以及期望手勢,并將數據和期望手勢交給客戶端側應用以用于處理,該更新屏幕數據以及期望手勢識別要在由服務器返回的更新屏幕數據的呈現期間包括的期望屏幕效果。客戶端側應用響應于從客戶端裝置OS接收到數據,識別與適合于更新屏幕數據的期望手勢相對應的過渡圖形(即期望屏幕效果),并將過渡圖形信息與更新屏幕數據合并,并生成封裝的屏幕數據,其包括針對期望手勢的過渡圖形,如在操作550中所示。
[0048]客戶端裝置OS接收帶有過渡圖形的封裝的更新屏幕數據,并返回封裝的屏幕數據以用于在顯示裝置處呈現,如在操作560中所示。封裝的屏幕數據的呈現包括帶有期望過渡圖形的更新屏幕數據。過渡圖形在更新屏幕數據的呈現期間生成視覺響應,從而豐富了用戶在顯示裝置處的交互體驗。
[0049]此處描述的各個實施例教導了允許在客戶端裝置處本地生成過渡、同時使用于呈現的內容能夠被集中地服務的技術。實施例描述了為了實時處理過渡而在客戶端裝置和顯示裝置(即終端)之間的編排。過渡編排在客戶端處利用從服務器側接收的更新屏幕數據完成。這種形式的本地編排減少了網絡資源上的壓力,同時提供了利用在較新邊緣裝置內可用的較新用戶接口設計特征的能力。
[0050]此處描述的各個實施例的屏幕數據可以具有使用幀緩沖處理技術的幀緩沖數據的形式,其優化了由遠程主機計算機服務處理或預處理的數據的呈送。在一個實施例中,遠程計算機裝置可以是虛擬機,其處理數據或應用,并生成用于在呈現裝置(例如客戶端裝置的顯示裝置)上顯示的屏幕數據。此處描述的各個實施例中使用的客戶端裝置中的一些包括臺式計算機、膝上型計算機、平板、智能電話、瘦或胖終端裝置或者其他計算裝置。對于描述幀緩沖數據的處理的更多信息,可以參考于2010年5月20日提交的名稱為“Methodsfor Interfacing with a Virtualized Computing Service over a Network using aLigh tweight Client”的中請N0.12/784,454以及于2010年5月20日提交的名稱為“Systems and Algorithm for Interfacing with a Virtualized Computing Serviceover a Network using a Lightweight Client” 的申請 N0.12/784,468,這些申請以其整體通過引用合并在此。
[0051]考慮到上述實施例,應當理解的是,本發明可以采用涉及在計算機系統中存儲的數據的各種計算機實現操作。這些操作是需要物理量的物理操縱的那些操作。通常,但不必須,這些量采取能夠被存儲、傳輸、組合、比較以及以其他方式操縱的電或磁信號的形式。進一步地,所執行的操縱通常被稱為諸如產生、識別、確定或比較之類的術語。
[0052]此處描述的形成本發明的一部分的任何操作都是有用的機器操作。本發明還涉及用于執行這些操作的裝置或設備。該設備可以是為了需要的目的而特別構造的,或者其可以是由存儲在計算機中的計算機程序選擇性激活或配置的通用計算機。特別地,各種通用機器可以與根據此處的教導而編寫的計算機程序一起使用,或者,構造更專門的設備以執行所需的操作可以是更方便的。
[0053]本發明還可以被體現為計算機可讀介質上的計算機可讀代碼。計算機可讀介質是能夠存儲數據的任何數據存儲裝置,該數據隨后可以被計算機系統讀取。計算機可讀介質的示例包括硬盤驅動器、網絡附著存儲器(NAS)、只讀存儲器、隨機存取存儲器、CD-ROM、CD-R、CD-RW、磁帶以及其他光學和非光學數據存儲裝置。計算機可讀介質還可以分布在網絡耦合計算機系統上,使得計算機可讀代碼以分布式的方式被存儲和執行。
[0054]然而,對于本領域技術人員來說將顯而易見的是,可以在沒有這些特定細節中的一些或全部的情況下實踐本發明。在其他的實例中,沒有詳細地描述公知的處理操作,以免不必要地混淆本發明。
[0055]盡管為了理解清楚的目的已經相當詳細地描述了前述發明,但是將顯而易見的是,可以在本發明的范圍內實踐特定的改變和修改。相應地,目前的實施例應被認為是說明性的而不是限制性的,且本發明不限于此處給出的細節,但是可以在本發明的范圍內加以修改。
【權利要求】
1.一種用于實現本地生成的過渡圖形與虛擬化主機計算機服務的交互的處理器實現方法,包括: 在客戶端裝置的顯示裝置處接收控制命令,該控制命令由用戶發布以控制當前在顯示裝置處呈現的屏幕數據; 在客戶端裝置處識別與該控制命令相關聯的期望手勢; 將與該控制命令相關聯的期望手勢傳輸到主機計算機服務以用于處理; 在客戶端裝置處接收針對在顯示裝置處呈現的屏幕數據的更新屏幕數據,該更新屏幕數據是作為處理該控制命令的結果而從主機計算機服務傳輸的; 在客戶端裝置處將從主機計算機服務接收的更新屏幕數據同與在客戶端裝置處識別的期望手勢相關聯的數據一起封裝,以在客戶端裝置處生成封裝的屏幕數據;以及響應于該控制命令,將封裝的屏幕數據返回給顯示裝置以進行呈現。
2.如權利要求1的方法,其中該控制命令是通過輸入裝置接收的輸入命令。
3.如權利要求2的方法,其中該輸入裝置是由鍵盤、鼠標和音頻構成的組中的任一個。
4.如權利要求1的方法,其中該更新屏幕數據是作為幀緩沖數據從虛擬化主機計算機服務接收的。
5.如權利要求1的方法,其中識別期望手勢進一步包括: 使用在客戶端裝置的顯示裝置處接收的控制命令,在客戶端裝置處查詢映射表;以及從映射表中選擇被映射到該控制命令的期望手勢,該期望手勢識別與要在屏幕更新的呈現期間包括的過渡圖形相關的數據。
6.如權利要求1的方法,其中識別期望手勢進一步包括: 使用在客戶端裝置的顯示裝置處接收的控制命令,在主機計算機服務處查詢映射表;以及 從映射表中選擇被映射到該控制命令的期望手勢,該期望手勢識別與要在屏幕更新的呈現期間包括的過渡圖形相關的數據。
7.如權利要求1的方法,其中封裝更新屏幕數據進一步包括: 從客戶端處的本地緩存中獲取與當前在客戶端裝置處呈現的屏幕相關聯的當前屏幕數據; 由客戶端裝置攔截由主機計算機服務傳輸到顯示裝置的更新屏幕數據; 在客戶端裝置處獲取與針對期望手勢的過渡圖形相關的數據;以及將更新屏幕數據與與期望手勢相關的過渡圖形數據以及當前屏幕數據一起封裝,以生成封裝的屏幕數據,該封裝的屏幕數據被返回到顯示裝置以用于呈現,其中,當在顯示裝置處呈現時,過渡圖形數據提供從當前屏幕數據到更新屏幕數據的過渡。
8.一種用于使本地生成的手勢和過渡圖形能夠與虛擬化主機計算機服務進行交互的處理器實現方法,包括: 在客戶端裝置的顯示裝置處接收選擇命令,該選擇命令由用戶發布,請求對當前在顯示裝置處呈現的當前屏幕數據的更新; 傳輸該選擇命令到主機計算機服務以用于處理; 在客戶端裝置處接收針對在顯示裝置處呈現的屏幕數據的更新屏幕數據,該更新屏幕數據是作為處理該選擇命令的結果從主機計算機服務傳輸的;接收要與來自主機計算機服務的更新屏幕數據一起呈現的期望手勢,其中與由主機計算機服務裝置傳輸的更新屏幕數據相對應的期望手勢支配要在更新屏幕數據的呈現期間在顯示裝置處進行的調整; 在客戶端裝置處將接收自主機計算機服務的更新屏幕數據同與接收自主機計算機服務的期望手勢相關聯的數據一起封裝,以生成封裝的屏幕數據;以及 響應于該選擇命令,返回封裝的屏幕數據給顯示裝置以用于呈現,該封裝的屏幕數據在更新屏幕數據的呈現期間呈現期望手勢相關數據作為過渡。
9.如權利要求8的方法,其中該更新屏幕數據是作為幀緩沖數據而接收的。
10.如權利要求8的方法,其中識別期望手勢進一步包括: 使用接收自客戶端裝置的選擇命令,查詢對主機計算機服務來說可用的映射表;以及從映射表中選擇被映射到選擇命令的期望手勢,該期望手勢識別與要在屏幕更新的呈現期間包括的過渡圖形相關的數據。
11.如權利要求8的方法,其中封裝更新屏幕數據進一步包括: 由客戶端裝置攔截由主機計算機服務傳輸到顯示裝置的更新屏幕數據; 在客戶端裝置處獲取與針對期望手勢的過渡圖形相關的數據;以及 將當前屏幕數據同與期望手勢相關的過渡圖形數據一起封裝,以生成封裝的屏幕數據,其中,該過渡圖形數據提供在客戶端裝置處更新屏幕數據的呈現期間的過渡。
12.如權利要求11的方法,進一步包括: 從客戶端處的本地緩存中獲取與當前在客戶端裝置處呈現的屏幕相關的當詢屏幕數據; 將當前屏幕數據與封裝的更新屏幕數據整合,該整合提供在顯示裝置處更新屏幕數據的呈現期間的期望過渡。
13.一種用于使本地生成的手勢和過渡圖形能夠與虛擬化主機計算機服務進行交互的系統,包括: 執行服務器側應用的虛擬化主機計算機服務的服務器,該服務器側應用被配置為:從客戶端裝置的顯示裝置接收控制命令,該控制命令由用戶發布以控制當前在顯示裝置處呈現的屏幕數據; 處理該控制命令以識別更新屏幕數據,以用于返回給客戶端裝置來呈現; 具有用于呈現屏幕數據的顯示裝置的客戶端裝置,該客戶端裝置執行客戶端側應用,該客戶端側應用被配置為: 攔截從接收裝置獲得的控制命令以識別與該控制命令相關聯的期望手勢; 傳輸與該控制命令相關聯的期望手勢給服務器側應用以用于處理; 攔截從服務器側應用傳輸到顯示裝置的更新屏幕數據; 獲取當前在顯示裝置處呈現的當前屏幕數據; 通過捆綁當前屏幕數據、更新屏幕數據以及與期望手勢相關的過渡圖形來生成封裝的屏幕數據;以及 返回封裝的屏幕數據給客戶端裝置的顯示裝置以用于呈現,其中該封裝的屏幕數據包括提供從當前屏幕數據到更新屏幕數據的過渡的過渡圖形。
14.如權利要求13的系統,其中服務器側應用進一步被配置為通過將該控制命令轉換為一個或多個輸入裝置命令來處理該控制命令,該輸入裝置命令是在主機計算機服務處識別更新屏幕數據時使用的。
15.如權利要求13的系統,進一步包括:客戶端裝置處的第一本地緩存,用于存儲當前在顯示裝置處呈現的當前屏幕數據;以及第二本地緩存,用于存儲接收自服務器側應用的更新屏幕數據。
16.如權利要求13的系統,進一步包括:客戶端裝置處的映射表,用于存儲不同控制命令到不同手勢的映射。
17.如權利要求13的系統,進一步包括:服務器處的映射表,用于存儲不同控制命令到不同手勢的映射,該映射表對虛擬化主機計算機服務來說可用。
【文檔編號】H04M1/00GK103842982SQ201280034077
【公開日】2014年6月4日 申請日期:2012年6月8日 優先權日:2011年6月8日
【發明者】S·D·維爾克, P·欣克斯 申請人:茨特里克斯系統公司