專利名稱:基于位圖的顯示遙控的制作方法
基于位圖的顯示遙控
背景
遠(yuǎn)程桌面協(xié)議(RDP)通過到基于終端服務(wù)器(TS)的應(yīng)用程序的網(wǎng)絡(luò)連 接來提供遠(yuǎn)程顯示和輸入能力。例如,RDP在服務(wù)器上使用其自己的視頻驅(qū)動 程序以通過將呈現(xiàn)信息構(gòu)造到用于通過網(wǎng)絡(luò)傳送給客戶機(jī)的網(wǎng)絡(luò)分組中來向 客戶機(jī)設(shè)備呈現(xiàn)應(yīng)用程序的顯示輸出。響應(yīng)于接收到此類網(wǎng)絡(luò)分組,客戶機(jī)將 呈現(xiàn)信息解碼并解釋為對應(yīng)的圖形設(shè)備接口 (GDI)應(yīng)用程序編程接口 (API) 調(diào)用。(GDI通常與操作系統(tǒng)的相應(yīng)部分相關(guān)聯(lián)。)此類解碼和解釋通常要求 客戶機(jī)不僅被配置成解碼作為豐富接口的RDP,而且還被配置成將所接收到的 呈現(xiàn)信息映射到對應(yīng)的GDI調(diào)用。此類操作通常要求客戶機(jī)創(chuàng)建并維持多個不 同的數(shù)據(jù)上下文相關(guān)高速緩存以在基于GDI的呈現(xiàn)操作中使用諸如字體、刷 子、字形、片段等圖形對象。由于這些任務(wù)的復(fù)雜性,創(chuàng)建基于RDP的客戶 機(jī)可能是非常耗時且費力的。此外,基于RDP的客戶機(jī)通常必須具有很強(qiáng)的 處理能力來實現(xiàn)此類操作,此類處理資源一般無法在小形狀因子設(shè)備上找到。 結(jié)果,小形狀因子設(shè)備通常不被用于實現(xiàn)基于RDP的客戶機(jī)。
概述
提供本概述是為了用簡化的形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的 一些概念。本概述不旨在標(biāo)識所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不 旨在用于幫助確定所要求保護(hù)的主題的范圍。
鑒于前一段,描述了耦合到客戶機(jī)計算設(shè)備("客戶機(jī)")的服務(wù)器計算 設(shè)備("服務(wù)器")所進(jìn)行的基于位圖傳送的顯示遙控。在一方面,在服務(wù)器 上執(zhí)行的應(yīng)用程序?qū)崿F(xiàn)呈現(xiàn)GUI的一部分的操作。服務(wù)器將對應(yīng)的基于呈現(xiàn)的 命令(例如,GDI命令等)轉(zhuǎn)換為簡單位圖傳送命令。服務(wù)器向客戶機(jī)發(fā)送該 位圖傳送命令。例如,在一個實現(xiàn)中,服務(wù)器將GDI命令轉(zhuǎn)換為一個或多個位 圖操縱操作命令(光柵操作)。在一個實現(xiàn)中,服務(wù)器根據(jù)GDI命令來實現(xiàn)呈現(xiàn)操作以獲得操作結(jié)果。
服務(wù)器將操作結(jié)果作為位圖傳送命令中的位圖發(fā)送到客戶機(jī)。響應(yīng)于接收 到來自服務(wù)器的位圖傳送命令,客戶機(jī)相應(yīng)地按服務(wù)器的指示將位圖從屏幕外 顯示表面存儲并繪制到屏幕上顯示表面以向用戶呈現(xiàn)該GUI部分。以這種方
式,服務(wù)器僅使用位圖傳送命令,而不使用或依賴于任何常規(guī)RDP客戶機(jī)側(cè)
遙控邏輯(例如,高速緩存管理、位圖語義之外的圖形對象語義的判定和處理
等),來指示并使得客戶機(jī)遙控應(yīng)用程序的GUI。此類管理以及語義判定和處 理分別在服務(wù)器處且由服務(wù)器來實現(xiàn)并維護(hù)。 附圖簡述
在附圖和相關(guān)聯(lián)的描述中,組件參考標(biāo)號最左邊的數(shù)字標(biāo)識了該組件首次 出現(xiàn)的特定附圖。
圖1示出根據(jù)一個實施例的用于基于位圖傳送的顯示遙控的示例性系統(tǒng)。
圖2示出根據(jù)一個實施例的在遠(yuǎn)程客戶機(jī)處的、用于基于位圖傳送的顯示
遙控的示例性服務(wù)器創(chuàng)建和要求的屏幕外顯示表面。
圖3示出根據(jù)一個實施例的基于位圖傳送的顯示遙控的示例性過程。
圖4示出根據(jù)一個實施例的基于位圖傳送的顯示遙控的示例性過程。
圖5示出根據(jù)一個實施例的基于位圖傳送的顯示遙控的另一示例性過程。
圖6示出根據(jù)一個實施例的圖5的基于位圖傳送的顯示遙控的示例性過程
的其它方面。
圖7示出根據(jù)一個實施例的圖5和6的基于位圖傳送的顯示遙控的示例性 過程的其它方面。
詳細(xì)描述
概覽
描述了用于基于位圖傳送的顯示遙控的系統(tǒng)和方法。這些系統(tǒng)和方法使用 基于簡單位圖傳送的遠(yuǎn)程協(xié)議(SBTDRP)來解決常規(guī)RDP的限制。SBTDRP 允許主存應(yīng)用程序的服務(wù)器指示并控制客戶機(jī)處的任意位圖存儲和已存儲位 圖顯示呈現(xiàn)在服務(wù)器上執(zhí)行的應(yīng)用程序的GUI。經(jīng)由此指示和控制,服務(wù)器將 客戶機(jī)處否則將是復(fù)雜的呈現(xiàn)和高速緩存操作抽象為客戶機(jī)處的兩個或更多表面之間的三向或四向光柵操作(ROPS) 。 COPY ROP是此類操作的一個示 例。然而,常規(guī)RDP將多個不同圖形對象的客戶機(jī)側(cè)高速緩存與呈現(xiàn)邏輯緊 密地耦合在一起,在此實現(xiàn)中,僅服務(wù)器實現(xiàn)高速緩存管理邏輯(例如,將服 務(wù)器存儲資源位之處映射到客戶機(jī))。用于SBTDRP的系統(tǒng)和方法的這些和其 它方面現(xiàn)將更詳細(xì)地討論。
示例性系統(tǒng)
圖1示出根據(jù)一個實施例的用于基于位圖傳送的顯示遙控的示例性系統(tǒng) 100。在此實現(xiàn)中,圖1包括例如跨網(wǎng)絡(luò)104耦合到一個或多個客戶機(jī)計算設(shè)
備106 ("客戶機(jī)106")的服務(wù)器計算設(shè)備102 ("服務(wù)器102")。在此實 現(xiàn)中,服務(wù)器102表示諸如服務(wù)器、個人計算機(jī)(PC)、膝上型計算機(jī)等通用 計算設(shè)備中的任何一個或多個??蛻魴C(jī)設(shè)備106表示諸如PC、膝上型計算機(jī)、 移動計算設(shè)備、或與通用或服務(wù)器計算設(shè)備相比具有有限處理和數(shù)據(jù)存儲能力 的任何小形狀因子設(shè)備(例如,個人數(shù)字助理(PDA)、移動設(shè)備、電話等) 等通用計算設(shè)備中的任何一個或多個。網(wǎng)絡(luò)104表示局域網(wǎng)(LAN)和通用廣 域網(wǎng)(WAN)通信環(huán)境的任何組合,如那些常見于辦公室、企業(yè)范圍計算機(jī) 網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)等的網(wǎng)絡(luò)。
每一計算設(shè)備102和106分別包括耦合到包括在其上編碼的計算機(jī)程序模 塊的系統(tǒng)存儲器的一個或多個處理器。計算機(jī)程序模塊包括可由相應(yīng)處理器來 執(zhí)行的指令。這一系統(tǒng)存儲器還包括由計算機(jī)程序中的相應(yīng)指令在程序模塊執(zhí) 行期間生成和/或使用的程序數(shù)據(jù)。例如,服務(wù)器102包括耦合到表示易失性隨 機(jī)存取存儲器(RAM)和非易失性只讀存儲器(ROM)的系統(tǒng)存儲器110的 一個或多個處理器108。系統(tǒng)存儲器110包括程序模塊112,該程序模塊112 包括可由處理器108執(zhí)行的計算機(jī)程序指令。系統(tǒng)存儲器112還包括由程序模 塊112中的相應(yīng)模塊在程序模塊執(zhí)行期間生成和/或使用的程序數(shù)據(jù)114。
在此實現(xiàn)中,例如,程序模塊114包括用于基于終端服務(wù)的訪問的一個或 多個任意應(yīng)用程序116 (例如,文字處理程序、電子郵件程序、電子表格應(yīng)用 程序等等),服務(wù)器側(cè)終端服務(wù)118,以及諸如提供運(yùn)行時環(huán)境的操作系統(tǒng)、 設(shè)備驅(qū)動程序、網(wǎng)絡(luò)通信邏輯等其它程序模塊120。在此實現(xiàn)中,例如,客戶機(jī)106處的計算機(jī)程序邏輯包括例如基于客戶機(jī)的終端服務(wù)122和諸如操作系 統(tǒng)、驅(qū)動程序、網(wǎng)絡(luò)通信邏輯等其它程序模塊124。服務(wù)器和客戶機(jī)終端服務(wù) 118和122允許客戶機(jī)106的用戶通過網(wǎng)絡(luò)104來建立終端服務(wù)會話以在服務(wù) 器102上運(yùn)行一個或多個任意應(yīng)用程序116來訪問文件、數(shù)據(jù)庫、網(wǎng)絡(luò)資源等 的任何組合。盡管執(zhí)行應(yīng)用程序116完全在服務(wù)器102上運(yùn)行,但是系統(tǒng)100 實現(xiàn)基于簡單位圖傳送的顯示遙控協(xié)議(SBTDRP)以經(jīng)由顯示設(shè)備130向最 終用戶呈現(xiàn)執(zhí)行應(yīng)用程序116的GUI的元素。
基于簡單位圖傳送的顯示遙控協(xié)議(SBTDRP)
在此實現(xiàn)中,例如,SBTDRP由作為服務(wù)器側(cè)終端服務(wù)118的一部分的基 于位圖傳送的顯示遙控模塊(或邏輯)126,以及作為客戶機(jī)側(cè)終端服務(wù)122 的一部分的客戶機(jī)側(cè)位圖存儲和顯示邏輯128來實現(xiàn)。SBTDRP允許服務(wù)器102 的基于位圖傳送的顯示遙控邏輯126 ("遙控邏輯126")指示并控制客戶機(jī) 106處的任意位存儲和已存儲位顯示向用戶呈現(xiàn)服務(wù)器主存的執(zhí)行應(yīng)用程序 116中的一個或多個的GUI。 SBTDRP消除了要求客戶機(jī)實現(xiàn)復(fù)雜的高速緩存 和呈現(xiàn)邏輯以實現(xiàn)豐富RDP的傳統(tǒng)的基于RDP的顯示遙控操作。為此, SBTDRP將常規(guī)的復(fù)雜顯示遙控協(xié)議抽象為來自/對客戶機(jī)106處的服務(wù)器要 求的屏幕外顯示表面的簡單服務(wù)器控制位圖傳送(光柵)操作。
在此實現(xiàn)中,例如,SBTDRP包括以下示例性命令132 (接口或調(diào)用) 創(chuàng)建表面(CreateSurface)、設(shè)置表面位(SetSurfaceBits)、傳送表面位 (TransferSurfaceBits)和銷毀表面(DestroySurface)。取決于系統(tǒng)100的具體 實現(xiàn),該組命令132的數(shù)量可以更多或更少。此外,為這些示例性命令132提 供的具體名稱是說明性的,這些名稱被設(shè)計來傳達(dá)與每一命令的相應(yīng)實現(xiàn)相關(guān) 聯(lián)的操作的相應(yīng)描述。因此,將在以下詳細(xì)描述的這些接口及其相關(guān)聯(lián)的操作 可用命名不同的接口來表示。
創(chuàng)建表面(...)
創(chuàng)建表面命令132由服務(wù)器側(cè)遙控邏輯126發(fā)出以指示客戶機(jī)側(cè)邏輯128 在客戶機(jī)106處分配特定大小的屏幕外顯示表面136以供服務(wù)器要求的位圖存 儲。在此實現(xiàn)中,例如,創(chuàng)建表面的參數(shù)包括供客戶機(jī)側(cè)邏輯128映射到新創(chuàng)建的屏幕外顯示表面136的服務(wù)器提供的唯一標(biāo)識符(ID)、以及表面大小。 在此實現(xiàn)中,表面大小被表示為位圖寬度、高度和色深度(例如,每像素8、 16、 24、 32位)。字節(jié)的數(shù)量由客戶機(jī)106和服務(wù)器102兩者從這些維度中確 定(即,字節(jié)的數(shù)量是寬度*高度*每像素字節(jié)數(shù)中色深度)。可能的色深度可 在初始協(xié)議能力交換中協(xié)商。響應(yīng)于接收到創(chuàng)建表面命令132,客戶機(jī)側(cè)邏輯 128分配所請求的表面136并將服務(wù)器提供的唯一表面ID映射到新分配的表 面136。如下所述,遙控邏輯126使用此ID在后續(xù)命令132中表示此特定的 所分配的表面。
在一個實現(xiàn)中,例如,遙控邏輯126使用常規(guī)消息收發(fā)技術(shù)來確定客戶機(jī) 可用于高速緩存任意的服務(wù)器要求的位的最大數(shù)量存儲器?;诖伺卸?,遙控 邏輯126指示客戶機(jī)106分配最大數(shù)量存儲器的的至少一個子集作為屏幕外顯 示表面136。在此場景中,遙控邏輯126使得客戶機(jī)106分配屏幕外顯示表面 136,而不依賴于檢測和/或映射來自在服務(wù)器102上執(zhí)行的應(yīng)用程序116的呈 現(xiàn)命令/調(diào)用,這與常規(guī)的基于RDP的實現(xiàn)形成對比。
設(shè)置表面位(...)
服務(wù)器側(cè)遙控邏輯126通過網(wǎng)絡(luò)104向客戶機(jī)106傳送設(shè)置表面位命令 132以指示客戶機(jī)側(cè)邏輯128將位集合存儲在所標(biāo)識的客戶機(jī)側(cè)屏幕外顯示表 面136上的指定目的地位置處。在此實現(xiàn)中,例如,設(shè)置表面位的參數(shù)包括標(biāo) 識屏幕外顯示表面136的唯一ID、位集合、以及這些位的目的地位置。在一 個實現(xiàn)中,例如,目的地位置標(biāo)識以左、上、右、和下坐標(biāo)表示的矩形的坐標(biāo)。 或者,使用X、 Y、寬度和高度來標(biāo)識存儲矩形。在另一實現(xiàn)中,目的地位置 標(biāo)識非矩形的幾何對象(例如,正方形、圓、任意形狀等)的坐標(biāo)。
響應(yīng)于接收到設(shè)置表面位命令132,客戶機(jī)側(cè)邏輯128將指定位存儲到指 定屏幕外顯示表面136上的所指示的目的地位置。如以下在段落
到
中所描述的(也參見圖6),由遙控邏輯126所存儲的位集合對應(yīng)與描述可隨 后被呈現(xiàn)邏輯126用來呈現(xiàn)在服務(wù)器102上執(zhí)行的應(yīng)用程序116的GUI的一個 或多個方面的圖形對象的位。然而,從客戶機(jī)106的角度來說,且不依賴于作 為位圖位,這些被存儲的位的意義和語義無關(guān)緊要;位圖具有任意意義且僅由客戶機(jī)側(cè)邏輯128按服務(wù)器102所指示的存儲到屏幕外顯示表面136上。 傳送表面位(...)
遙控邏輯126使用傳送表面位命令132來指示客戶機(jī)側(cè)邏輯128將高速緩 存在特定客戶機(jī)側(cè)屏幕外顯示表面136中的指定位傳送到不同的表面(例如, 屏幕上呈現(xiàn)表面138、另一屏幕外表面等)以供客戶機(jī)106經(jīng)由顯示設(shè)備130 來呈現(xiàn)。在此實現(xiàn)中,例如,傳送表面位的參數(shù)包括以下各項中的一個或多個:
標(biāo)識特定屏幕外顯示表面136的唯一源表面ID。
標(biāo)識目標(biāo)位圖的目的地表面(例如,屏幕上顯示表面)的目的地表面ID。 標(biāo)識表示要傳送到所標(biāo)識的目的地表面的目標(biāo)位圖的位集合的源矩形(或 其它任意形狀)。
在接收所傳送的位圖的目的地表面中的目的地矩形(或諸如裁剪區(qū)域等其 它任意形狀)。在一個實現(xiàn)中,傳送表面位命令132包括用于更新的"裁剪區(qū) 域"(在目的地中定義不規(guī)則區(qū)域的矩形集合)。
屏蔽位圖(或表面)。例如,屏蔽位圖(MaskBlt)是用于基于屏蔽中的 對應(yīng)像素的值來選擇性地將像素從源表面?zhèn)魉偷侥康牡氐奈粓D傳送操作。例 如,僅當(dāng)在屏蔽位圖中的坐標(biāo)100, 100處的像素被設(shè)置為0 (黑)時,在坐標(biāo) 100, 100處的像素才從源被傳送到目的地。
針對客戶機(jī)邏輯128的、實現(xiàn)從源表面到目的地表面的位圖傳送的光柵操 作(即復(fù)制、異或等)的指示。在一個實現(xiàn)中,例如,傳送表面位命令132指 示客戶機(jī)邏輯128實現(xiàn)屏蔽表面操作。
在一個實現(xiàn)中,客戶機(jī)側(cè)邏輯128傳送位圖的失敗使得客戶機(jī)邏輯128 向遙控邏輯126傳送通用"臟"表面通知134,并從而向遙控邏輯126通知表 面位無效。在一個實現(xiàn)中,響應(yīng)于此類通知,服務(wù)器102為無效的表面位/區(qū)域 向客戶機(jī)邏輯128發(fā)送更新(該更新將使得區(qū)域有效)。
銷毀表面(...)
遙控邏輯126發(fā)送毀滅表面命令132以指示客戶機(jī)側(cè)邏輯128銷毀(解除 分配)服務(wù)器102初始化并要求的屏幕外顯示表面136。在此實現(xiàn)中,刪除表面(DeleteSurface)的參數(shù)包括例如針對特定屏幕外顯示表面136的唯一表面ID。
示例性的服務(wù)器要求的位圖存儲和傳送
以下示例將使用常規(guī)RDP來在基于TS的客戶機(jī)上顯示在基于TS的服務(wù)器上執(zhí)行的應(yīng)用程序的GUI的元素與使用SBTDRP進(jìn)行比較和對比。這些示例是說明性的且其它操作順序、圖形對象、表面等可在不偏離這些示例的情況下被取代。
使用常規(guī)的基于RDP的邏輯,通常需要以下操作來將刷子對象高速緩存到特定位置并使用該刷子對象來填充主要屏幕上顯示表面中的矩形。出于示例性說明的目的,該刷子是16x 16像素的刷子,且在屏幕上顯示表面上的呈現(xiàn)位置是(0, 0, 64, 16),表示封裝多個此類刷子的表面區(qū)域。
服務(wù)器("S")與客戶機(jī)("C")之間作為初始協(xié)議交換的一部分協(xié)商高速緩存類型(例如,刷子、字形、字體、片段、位圖等)以及大小,該客戶機(jī)從而可以設(shè)置將高速緩存管理操作與圖形對象呈現(xiàn)操作緊密耦合的復(fù)雜高速緩存管理服務(wù)。在此示例中,高速緩存類型是刷子高速緩存。高速緩存大小包括例如具有100個條目的16 (寬度)x16 (高度)高速緩存、具有200個條目的42x32高速緩存等。
服務(wù)器取得位圖位和刷子的來源,服務(wù)器將它們發(fā)送到客戶機(jī)以供高速緩存在刷子高速緩存中的指定位置(例如,位置99)處。
服務(wù)器指示客戶機(jī)使用刷子高速緩存位置99中的刷子來填充屏幕上顯示表面上的(O, 0, 64, 16)處的表面矩形??蛻魴C(jī)通過將RDP命令轉(zhuǎn)換為使用高速緩存的刷子的對應(yīng)GDI調(diào)用來響應(yīng)??蛻魴C(jī)向客戶機(jī)的操作系統(tǒng)提交該GDI調(diào)用以按指示繪制該刷子。給定刷子大小(16xl6)中的表面矩形的大小,客戶機(jī)處的GDI將迭代地執(zhí)行多個刷子呈現(xiàn)命令以填充該表面矩形。
與以上示例形成對比,圖1的系統(tǒng)100使用SBTDRP來將刷子的位圖存儲到客戶機(jī)處的屏幕外顯示表面上,并使用多個服務(wù)器發(fā)起的位圖復(fù)制命令(串行地一次一個命令)來填充客戶機(jī)106處的屏幕上顯示表面上的矩形。因此,服務(wù)器將來自應(yīng)用程序116的、較復(fù)雜的呈現(xiàn)命令(例如,GDI命令)分解或分拆為較簡單的位圖傳送命令。在此上下文中高速緩存與存儲之間的一個區(qū)別是為將對象髙速緩存在使用RDP的客戶機(jī)處,該基于RDP的客戶機(jī)需要高速緩存管理邏輯來執(zhí)行高速緩存操作并執(zhí)行對象傳送。相反,客戶機(jī)102上的位圖存儲和位圖傳送完全不依賴于客戶機(jī)102處的任何高速緩存管理。
出于示例性說明和比較的目的,刷子大小是16xl6位,客戶機(jī)106處的屏幕上顯示表面(例如,"表面0")上的表面矩形的坐標(biāo)是(O, 0, 64, 16)。如上一示例中的那樣,要采取多個呈現(xiàn)操作來填充目標(biāo)表面矩形。請注意,在之前的示例中,客戶機(jī)使用GDI來將服務(wù)器命令轉(zhuǎn)換為填充表面矩形的多個呈現(xiàn)操作。相反,服務(wù)器102迭代地向客戶機(jī)102傳送多個傳送表面位命令以執(zhí)行示例性呈現(xiàn)操作。
遙控邏輯126和客戶機(jī)側(cè)邏輯128協(xié)商并分配屏幕外顯示表面136(例如,作為初始協(xié)議操作的一部分)。出于示例性說明的目的,此類屏幕外顯示表面在圖2中示出。
遙控邏輯126指示客戶機(jī)106創(chuàng)建映射到服務(wù)器提供(并維護(hù))的唯一標(biāo)識符(例如,ID 88)的屏幕外表面136。在一個實現(xiàn)中,屏幕外表面至少是16x 16的。
遙控邏輯126指示客戶機(jī)106將表面ID 88中的(O, 0, 16, 16)位置處的位圖位設(shè)置(經(jīng)由設(shè)置表面位命令132)為表示刷子對象的特定位圖位。
遙控邏輯126指示客戶機(jī)106將位從表面ID 88的位置(O, 0, 16, 16)處傳送(經(jīng)由傳送表面位命令132)到表面O的位置(O, 0, 16, 16)處。
遙控邏輯126指示客戶機(jī)106將位從屏幕外顯示表面ID 88的位置(O, 0,16, 16)處傳送到表面0的(16, 0, 42, 16)處。
遙控邏輯126指示客戶機(jī)106將位從屏幕外顯示表面ID 88的位置(O, 0,16, 16)處傳送到表面0的(32, 0, 58, 16)處。
遙控邏輯126指示客戶機(jī)106將位從表面88(0, 0, 16, 16)傳送到表面0的(48, 0, 64, 16)處。
參考使用SBTDRP的上一示例,請注意,遙控邏輯126迭代地實現(xiàn)傳送表面位命令132 (在此示例中,四次)以使用指定的刷子位圖來填充指定的目的地矩形。與常規(guī)系統(tǒng)相反,由系統(tǒng)100所實現(xiàn)的簡化協(xié)議使用簡單的SBTDRP命令來進(jìn)行位圖和刷子處理(以及所有其它用于將來自在服務(wù)器102處執(zhí)行的應(yīng)用程序116的GUI顯示到耦合到遠(yuǎn)程客戶機(jī)106的顯示設(shè)備132上的操作)。結(jié)果,客戶機(jī)106被配置成實現(xiàn)簡單位圖/表面讀和寫操縱以呈現(xiàn)與執(zhí)行服務(wù)器102的應(yīng)用程序116相關(guān)聯(lián)的GUI的相應(yīng)部分。g卩,服務(wù)器102將復(fù)雜的圖形呈現(xiàn)命令(例如,像填充矩形(FillRect) GDI命令等)分解為單獨的對應(yīng)位圖光柵操作命令。這與常規(guī)RDP系統(tǒng)形成對比,其中客戶機(jī)被配置成維護(hù)多個不同的圖形對象專用高速緩存、理解各種圖形對象(例如,字形、刷子、位圖等)之間的語義區(qū)別、以及經(jīng)常將RDP呈現(xiàn)命令轉(zhuǎn)換為對應(yīng)的GDI命令(例如,使用來自刷子高速緩存的刷子來填充矩形)。
示例性過程
圖3示出根據(jù)一個實施例的基于位圖傳送的顯示遙控的示例性過程300。出于示例性說明和描述的目的,參考圖1的各方面和各組件來描述過程300的各操作。在該描述中,組件附圖標(biāo)記最左邊的數(shù)字指示其中首次引入組件的特定附圖。參考圖3,框302的操作由服務(wù)器遙控模塊126 (圖1)確定在服務(wù)器102上執(zhí)行的應(yīng)用程序116參與了呈現(xiàn)該應(yīng)用程序的GUI的一部分的操作。此類操作包括例如創(chuàng)建諸如刷子、字形、字體、片段等圖形對象以便隨后用于呈現(xiàn)GUI。在另一示例中,此類操作包括諸如刷子填充命令等實際呈現(xiàn)命令???04的操作將與這些操作相關(guān)聯(lián)的命令分解或分拆(例如,請看框302)為對應(yīng)的位圖光柵操作命令。
例如,如上所述,如果應(yīng)用程序116生成創(chuàng)建刷子圖形對象的GDI命令,則服務(wù)器遙控邏輯126將位圖寫入到客戶機(jī)106處的特定屏幕外顯示表面136。在另一示例中,如果應(yīng)用程序116使用刷子圖形對象來填充GUI的一部分,則服務(wù)器遙控邏輯126指示客戶機(jī)106 (—次或多次)將對應(yīng)于該刷子的位圖傳送到屏幕上顯示表面138的特定部分以向用戶呈現(xiàn)該GUI部分。此類傳送操作包括位圖讀和寫操作。
框306的操作向客戶機(jī)106發(fā)送位圖光柵操作命令(請看框304的操作)???08的操作由客戶機(jī)106解碼所接收到的位圖光柵操作命令以相應(yīng)地將對應(yīng)的位圖存儲和/或繪制到屏幕上顯示表面138以向用戶呈現(xiàn)GUI部分。在一個實現(xiàn)中,這些命令可以指示客戶機(jī)106在將位圖傳送到屏幕上表面之前將位圖從一屏幕外表面?zhèn)魉偷搅硪黄聊煌獗砻???蛻魴C(jī)106處存儲并繪制位圖以呈現(xiàn)
GUI部分的邏輯完全不依賴于客戶機(jī)實現(xiàn)的高速緩存管理邏輯。此外,客戶機(jī)
邏輯完全不依賴于位圖語義之外的圖形對象語義的任何判定和處理。這與常規(guī)
RDP操作形成對比。
圖4示出根據(jù)一個實施例的基于位圖傳送的顯示遙控的示例性過程400。
出于示例性說明和描述的目的,參考圖1的各方面和各組件來描述過程400的各操作。在該描述中,組件附圖標(biāo)記最左邊的數(shù)字指示其中首次引入組件的特定附圖。參考圖4,框402的操作由服務(wù)器指示客戶機(jī)為服務(wù)器指示和要求的數(shù)據(jù)存儲分配屏幕外顯示表面。在一個實現(xiàn)中,服務(wù)器102處的遙控邏輯126使用創(chuàng)建表面命令132來指示客戶機(jī)106的客戶機(jī)側(cè)邏輯128為此類服務(wù)器指示和要求的數(shù)據(jù)存儲分配屏幕外顯示表面136。此服務(wù)器指示和要求的數(shù)據(jù)存儲是向客戶機(jī)106的用戶呈現(xiàn)在服務(wù)器102處執(zhí)行的應(yīng)用程序115的GUI (例如,經(jīng)由顯示設(shè)備130)。
框404的操作由服務(wù)器請求客戶機(jī)將位圖存儲到屏幕外顯示表面上的特定位置。在一個實現(xiàn)中,例如,使得此操作響應(yīng)于應(yīng)用程序請求GDI或其它圖形接口來創(chuàng)建或修改圖形對象(例如,刷子、字形、位圖、字體等)以在服務(wù)器上呈現(xiàn)GUI。在一個實現(xiàn)中,呈現(xiàn)邏輯126截取來自應(yīng)用程序116的對GDI的調(diào)用。在另一實現(xiàn)中,例如,此操作的執(zhí)行不依賴于對GDI的請求。例如,操作可響應(yīng)于客戶機(jī)被請求顯示除GDI輸出之外的某些輸出(例如,黑色矩形等)等來執(zhí)行。在此類調(diào)用與創(chuàng)建或修改用于呈現(xiàn)GUI的圖形對象相關(guān)聯(lián)時,呈現(xiàn)邏輯126請求客戶機(jī)側(cè)邏輯將表示該圖形對象的任意位圖存儲到所分配的屏幕外顯示表面136上的特定位置。此類請求例如通過呈現(xiàn)邏輯126向客戶機(jī)側(cè)邏輯128傳送設(shè)置表面位命令132來做出。
框406的操作響應(yīng)于服務(wù)器截取來自應(yīng)用程序的呈現(xiàn)命令,其中該呈現(xiàn)命令與之前創(chuàng)建的圖形對象(例如,刷子、字形等)相關(guān)聯(lián)。(諸如鏡像驅(qū)動程序等截取來自特定應(yīng)用程序的呈現(xiàn)命令的技術(shù)是已知的)。具體地,框406的操作使得服務(wù)器向客戶機(jī)傳送命令以指示客戶機(jī)將對應(yīng)于先前創(chuàng)建的圖形對象的位圖從屏幕外顯示表面?zhèn)魉偷娇蛻魴C(jī)側(cè)顯示表面上的至少一個位置。這些操作導(dǎo)致呈現(xiàn)GUI的一部分以供向客戶機(jī)的用戶呈現(xiàn)。在一個實現(xiàn)中,例如,框406的操作通過呈現(xiàn)邏輯126向客戶機(jī)側(cè)邏輯128傳送傳送表面位命令132來實現(xiàn)。此命令被客戶機(jī)側(cè)邏輯128接收使得客戶機(jī)側(cè)邏輯128將服務(wù)器指定的位圖傳送到不同顯示表面(例如,屏幕上呈現(xiàn)的表面138)上的目的地位置。客戶機(jī)側(cè)邏輯128的這些任意位圖傳送操作導(dǎo)致在服務(wù)器102上執(zhí)行的應(yīng)用程序116的GUI的一部分被呈現(xiàn)給客戶機(jī)106的用戶?;谖粓D傳送的顯示遙控的示例性過程的這些和其它細(xì)節(jié)現(xiàn)在參考圖4到7更詳細(xì)地描述。
圖5示出根據(jù)一個實施例的為基于位圖傳送的顯示遙控而在遠(yuǎn)程客戶機(jī)設(shè)備處創(chuàng)建屏幕外顯示表面的另一示例性過程500。出于示例性說明和描述的目的,參考圖1的各方面和各組件來描述過程500的各操作。在該描述中,組件附圖標(biāo)記最左邊的數(shù)字指示其中首次引入組件的特定附圖。
參考圖5,框502的操作由服務(wù)器指示客戶機(jī)為服務(wù)器指示并要求的位圖存儲操作分配特定大小的屏幕外顯示表面。此指示不包括任何向客戶機(jī)102指示所請求的表面將用于位圖或任何其它數(shù)據(jù)存儲的信息。在一個實現(xiàn)中,例如,服務(wù)器102的遙控邏輯126請求客戶機(jī)側(cè)邏輯128指示客戶機(jī)106可以為屏幕外顯示表面136分配的大小(例如,最大值、默認(rèn)值、或其它)。響應(yīng)于確定該大小,遙控邏輯126向客戶機(jī)106發(fā)送創(chuàng)建表面命令132。創(chuàng)建表面命令132指示客戶機(jī)側(cè)邏輯128分配所指示大小的屏幕外顯示表面136。此傳送還包括服務(wù)器提供的唯一 ID以供客戶機(jī)側(cè)邏輯128將其與新分配的屏幕外顯示表面136進(jìn)行關(guān)聯(lián)。如下所述,遙控邏輯126將在指示客戶機(jī)側(cè)邏輯128執(zhí)行與此特定屏幕外顯示表面136相關(guān)聯(lián)的、基于位圖的操作時使用此唯一 ID。在一個實現(xiàn)中,框502的操作由遙控邏輯126和客戶機(jī)側(cè)邏輯128作為初始協(xié)議配置操作的一部分來實現(xiàn)。對框504的操作,響應(yīng)于接收到(由客戶機(jī)106)創(chuàng)建屏幕外顯示表面136的命令132,客戶機(jī)106分配具有特定的指定或默認(rèn)大小的屏幕外顯示表面136。
框506的操作截取呈現(xiàn)命令(例如,對GDI的調(diào)用)以呈現(xiàn)執(zhí)行基于終端服務(wù)的應(yīng)用程序的GUI。在一個實現(xiàn)中,例如,遙控邏輯126使用常規(guī)驅(qū)動程序來截取來自執(zhí)行應(yīng)用程序116的呈現(xiàn)調(diào)用(例如,對GDI邏輯等的調(diào)用)以呈現(xiàn)與執(zhí)行應(yīng)用程序116相關(guān)聯(lián)的GUI???08的操作確定所截取的呈現(xiàn)命令(或與呈現(xiàn)相關(guān)聯(lián)的命令)是否是創(chuàng)建或修改(包括刪除/銷毀命令)圖形對象(例如,刷子、字形、片段、位圖、字體等),或所截取的呈現(xiàn)命令是否是 使用特定圖形對象來執(zhí)行呈現(xiàn)操作的命令(例如,填充命令、繪制操作等)。
在一個實現(xiàn)中,遙控邏輯128通過使用已知呈現(xiàn)命令解析技術(shù)(例如,GDI命 令解析技術(shù)等)解析該命令來作出此判定。在框510,如果所截取的呈現(xiàn)命令/ 調(diào)用涉及創(chuàng)建或修改現(xiàn)有的圖形對象,則過程500的操作如頁面上的標(biāo)號"A" 所示地在圖6的框602繼續(xù)。否則,如果所截取的呈現(xiàn)調(diào)用涉及使用特定圖形 對象來實現(xiàn)呈現(xiàn)操作,則過程500的操作如頁面上的標(biāo)號"B"所示地在第7 頁的框702繼續(xù)。在一個實現(xiàn)中,框510的操作由服務(wù)器102的遙控邏輯126 來實現(xiàn)。
圖6示出根據(jù)一個實施例的基于位圖傳送的顯示遙控的示例性過程的其 它方面。具體地,圖6是圖5的過程500的延續(xù)。參考圖6,如頁面上的標(biāo) 號"A"所示,操作在框602開始???02的操作響應(yīng)于之前的所截取的呈現(xiàn) 命令是創(chuàng)建或修改現(xiàn)有圖形對象(請參考圖5,框510)的判定來實現(xiàn)。在框 602,服務(wù)器將表示被創(chuàng)建或修改的圖形對象的位傳送到客戶機(jī)以供高速緩存 在特定屏幕外顯示表面上的特定位置。在一個實現(xiàn)中,遙控邏輯126使用設(shè)置 表面位命令132來將表示被創(chuàng)建或修改的圖形對象的位傳送到客戶機(jī)側(cè)邏輯 128以便由客戶機(jī)側(cè)邏輯128高速緩存在服務(wù)器標(biāo)識的屏幕外顯示表面136上 的服務(wù)器指定的位置。出于示例性說明的目的,此類位被示為圖1的"其它程 序數(shù)據(jù)"142的相應(yīng)部分。
在一個實現(xiàn)中,例如,設(shè)置表面位命令132中的被創(chuàng)建或修改的圖形對象 位指示例如位圖大小、顏色、壓縮等。將這些位發(fā)送到客戶機(jī)106的操作完全 不依賴于向客戶機(jī)106發(fā)送對應(yīng)的位定義或位的上下文的任何指示。此外,在 設(shè)置表面位命令132中指定的特定屏幕外顯示表面136是遙控邏輯126使用唯 一 ID來標(biāo)識的表面136。請回想,在此實現(xiàn)中,遙控邏輯126在表面136經(jīng) 由創(chuàng)建表面命令132被創(chuàng)建時向客戶機(jī)側(cè)邏輯128提供此唯一 ID。
響應(yīng)于接收到設(shè)置表面位命令,框604的操作將與設(shè)置表面位命令相關(guān)聯(lián) 的任意位(從客戶機(jī)106和客戶機(jī)邏輯128的角度來說是任意的)存儲到指定 的屏幕外顯示表面。在一個實現(xiàn)中,例如,響應(yīng)于接收到設(shè)置表面位命令132, 客戶機(jī)側(cè)邏輯128將相關(guān)聯(lián)的任意位在表面136上的服務(wù)器指定位置處存儲到指定屏幕外顯示表面136中。在此場景中,客戶機(jī)106被配置成理解所傳送的 位表示位圖,且設(shè)置表面位命令132請求對應(yīng)的位圖復(fù)制或傳送操作。此外, 客戶機(jī)106的配置完全不依賴于為在設(shè)置表面位命令132中傳送的位確定定 義、上下文、語義等的任何需要。從客戶機(jī)106的角度來說,所接收到的位僅 表示被遙控邏輯126存儲在客戶機(jī)106處的、具有未知語義的任意位圖。因此, 客戶機(jī)高速緩存所接收到的位而不依賴于確定任何基于圖形對象的語義。基于 圖形對象的語義的示例性判定包括例如確定對諸如"所接收到的位是否表示某 類型的圖形對象?且"如果是,則表示何種類型的圖形對象?"等問題的答案 的邏輯。例如,位是否表示刷子、位圖、字形、片段等。常規(guī)RDP客戶機(jī)實 現(xiàn)基于所確定的圖形對象的類型來執(zhí)行特殊處理。
圖7示出根據(jù)一個實施例的基于位圖傳送的顯示遙控的示例性過程500 的其它方面。具體地,圖7是圖5和6的過程500的延續(xù)(請參考圖5上的頁 面上的標(biāo)號"B")。參考圖7,操作在框702響應(yīng)于之前的所截取的調(diào)用不 是創(chuàng)建或修改現(xiàn)有圖形對象的呈現(xiàn)調(diào)用的判定來開始(請參考圖5,框510)。 因此,所截取的調(diào)用是刪除現(xiàn)有圖形對象、或呈現(xiàn)命令。
框702的操作確定所截取的調(diào)用是否是刪除圖形對象的調(diào)用。如果是,則 操作在框704繼續(xù),在704確定服務(wù)器是否有在客戶機(jī)側(cè)屏幕顯示表面中保留 位的任何需要。此類判定是任意的且基于服務(wù)器側(cè)遙控邏輯126的具體實現(xiàn)。 例如,在一個實現(xiàn)中,服務(wù)器側(cè)遙控邏輯評估本地高速緩存142來確定與在調(diào) 用中標(biāo)識的圖形對象相關(guān)聯(lián)的客戶機(jī)側(cè)屏幕外顯示表面136是否仍然有用。這 一判定可基于服務(wù)器側(cè)遙控邏輯126的具體實現(xiàn),基于許多不同的任意參數(shù)來 作出。
例如,如果由調(diào)用調(diào)度來在服務(wù)器側(cè)刪除的圖形對象是具有高速緩存在客 戶機(jī)側(cè)屏幕上顯示表面136中的對應(yīng)位的唯一對象,則遙控邏輯126可決定使 用任何之后高速緩存的位來蓋寫這些對應(yīng)位,或可以請求客戶機(jī)側(cè)邏輯128刪 除表面136。在另一示例中,考慮遙控邏輯126使用一個或多個屏幕外表面136 來高速緩存刷子。當(dāng)刷子在服務(wù)器102處經(jīng)由GDI被刪除時,遙控邏輯126 可決定重新要求由高速緩存在客戶機(jī)106處的表面上的對應(yīng)位圖所占據(jù)的區(qū)域 (即,表面位可用于其它事)。注意,如之前的示例所述,可將客戶機(jī)側(cè)上的刷子位區(qū)域作為每個刷子一個表面、或表示相同表面136上的刷子的多個位圖 來管理。因此,在一個實現(xiàn)中,遙控邏輯126可以不刪除表面136,而僅僅重 新要求相關(guān)聯(lián)的表面位的至少一部分。
鑒于以上內(nèi)容,如果指示了表面136的刪除,則框704的操作使得呈現(xiàn)邏 輯126傳送指示客戶機(jī)側(cè)邏輯128刪除特定屏幕外顯示表面136的刪除表面命 令132。響應(yīng)于接收到此命令132,客戶機(jī)側(cè)邏輯解除分配(銷毀)所標(biāo)識的 屏幕外顯示表面136。
如果框702的操作確定所截取的調(diào)用不是刪除圖形對象的調(diào)用,則該調(diào)用 與使用特定圖形對象來實現(xiàn)呈現(xiàn)操作相關(guān)聯(lián)(例如,繪制命令、填充命令等)。 因此,過程500的操作在框706繼續(xù)。在框706,服務(wù)器向客戶機(jī)發(fā)送一個或 多個將位從特定屏幕外顯示表面復(fù)制到畫面顯示緩沖區(qū)中的位置的傳送表面 位命令以提供所截取的GDI呈現(xiàn)命令在客戶機(jī)處的有效結(jié)果。在一個實現(xiàn)中, 例如,呈現(xiàn)邏輯126向客戶機(jī)側(cè)邏輯128發(fā)送一個或多個將位從特定表面136 復(fù)制到畫面顯示緩沖區(qū)中的位置的傳送表面位命令132以提供所截取的呈現(xiàn)命 令在客戶機(jī)106處的有效結(jié)果。被復(fù)制的特定位表示之前由呈現(xiàn)邏輯126高速 緩存到特定屏幕外顯示表面136中的位。在一個實現(xiàn)中,遙控邏輯126使用服 務(wù)器側(cè)高速緩存140將服務(wù)器102處的圖形對象映射到特定客戶機(jī)側(cè)屏幕上顯 示表面136 (經(jīng)由唯一表面ID)、和表面136處的對應(yīng)源位置。
結(jié)論
雖然以上各部分用專用于結(jié)構(gòu)化特征和/或方法性操作或動作的語言描述 了基于位圖傳送的顯示遙控,但是在所附權(quán)利要求中定義的各實現(xiàn)不必限于所 描述的具體特征或動作。例如,盡管過程500的操作(請參考圖5—6)被示為 具有特定流程和順序次序,但這些操作是示例性的且僅旨在作為系統(tǒng)100的一 個說明性和示例性實現(xiàn)的說明。例如,盡管參考過程500的框502來描述創(chuàng)建 客戶機(jī)側(cè)屏幕外顯示表面136的操作,但是遙控邏輯126可以根據(jù)其具體實現(xiàn) 來創(chuàng)建許多此類屏幕外顯示表面136。例如,在框506的操作之后,在截取與 呈現(xiàn)相關(guān)聯(lián)的調(diào)用之處,呈現(xiàn)邏輯126的另一實現(xiàn)可以創(chuàng)建另一此類屏幕外顯 示表面136 (如參考框502和504所述)以高速緩存對應(yīng)圖形對象的位。因此,過程400和500是可由系統(tǒng)100的具體實現(xiàn)所采取的許多不同的任意操作流程
的示例。因此,上述的具體特征和基于位圖傳送的顯示遙控的操作是實現(xiàn)所要 求保護(hù)的主題的示例性形式。
權(quán)利要求
1.一種在服務(wù)器計算設(shè)備102(“服務(wù)器”)與客戶機(jī)計算設(shè)備106(“客戶機(jī)”)之間通信的方法300,所述服務(wù)器通過網(wǎng)絡(luò)104耦合到所述客戶機(jī),所述方法包括由所述服務(wù)器確定302在所述服務(wù)器上執(zhí)行的應(yīng)用程序116參與了呈現(xiàn)圖形用戶界面142(GUI)的一部分的操作;響應(yīng)于所述確定將與所述操作相關(guān)聯(lián)的命令的至少一個子集轉(zhuǎn)換304為對應(yīng)的位圖傳送命令132;僅向所述客戶機(jī)傳送306所述位圖傳送命令;以及其中所述位圖傳送命令的接收使得所述客戶機(jī)將對應(yīng)位圖存儲并繪制308到屏幕上顯示表面以向所述客戶機(jī)的用戶呈現(xiàn)所述部分,而不依賴于(a)客戶機(jī)實現(xiàn)的高速緩存管理邏輯;以及(b)位圖語義之外的圖形對象語義的任何判定和處理。
2. 如權(quán)利要求1所述的方法,其特征在于,所述服務(wù)器是RDP服務(wù)器。
3. 如權(quán)利要求1所述的方法,其特征在于,特定位圖傳送命令集合的接收 使得所述客戶機(jī)呈現(xiàn)所述部分而不依賴于將來自所述服務(wù)器的任何命令轉(zhuǎn)換 為對應(yīng)的基于圖形設(shè)備接口 (GDI)的命令。
4. 如權(quán)利要求1所述的方法,其特征在于,所述位圖傳送命令是以基于簡 單位圖傳送的顯示遙控協(xié)議(SBTDRP)為基礎(chǔ)的,所述SBTDRP使用位圖來 表示多種不同類型的對象而不依賴于對象是否作為位圖高速緩存在所述服務(wù) 器處。
5. 如權(quán)利要求1所述的方法,其特征在于,所述位圖傳送命令分別涉及對 表示一個或多個刷子、字體、字形、以及片段圖形對象的位圖進(jìn)行讀和寫中的一個或多個,且其中所述方法還包括由所述服務(wù)器管理至少一個高速緩存以將刷子、字體、字形、以及片段圖 形對象中的一個或多個映射到存儲在客戶機(jī)處的一個或多個屏幕外表面中的 一個或多個相應(yīng)位置處的一個或多個對應(yīng)的位圖。
6. 如權(quán)利要求1所述的方法,其特征在于,所述對應(yīng)位圖的位圖比所述部分小,且其中至少一個所述子集的命令被轉(zhuǎn)換為多個基于簡單位圖的命令,且 其中所述方法還包括由所述服務(wù)器將每一所述基于簡單位圖的命令傳送給所述客戶機(jī)以呈現(xiàn) 所述部分,每一命令涉及呈現(xiàn)所述部分的不同部分。
7. 如權(quán)利要求1所述的方法,其特征在于,所述方法還包括由所述服務(wù)器 將表示多個不同類型的圖形對象的位圖寫入/存儲到所述客戶機(jī)處的屏幕外顯 示表面上的相應(yīng)位置。
8. 如權(quán)利要求1所述的方法,其特征在于,所述方法還包括由所述服務(wù)器 傳送對所述客戶機(jī)的、銷毀與由所述客戶機(jī)向用戶呈現(xiàn)GUI相關(guān)聯(lián)的屏幕外顯 示表面的請求。
9. 如權(quán)利要求1所述的方法,其特征在于,所述方法還包括 由所述服務(wù)器請求所述客戶機(jī)分配屏幕外顯示表面;由所述服務(wù)器請求所述客戶機(jī)將位圖存儲到所述屏幕外顯示表面上的特定位置,所述位圖表示圖形對象;以及由所述服務(wù)器指示所述客戶機(jī)將所述位圖一次或多次地寫入所述屏幕上 顯示表面上的特定位置以向所述用戶呈現(xiàn)所述部分。
10. 如權(quán)利要求9所述的方法,其特征在于,由所述服務(wù)器請求所述客 戶機(jī)所述位圖存儲到所述特定位置蓋寫了所述服務(wù)器先前存儲在所述屏幕外 顯示表面上的不同位圖的至少一部分。
11. 一種在包括通過網(wǎng)絡(luò)104耦合到客戶機(jī)計算設(shè)備106 ("客戶機(jī)") 的服務(wù)器計算設(shè)備102 ("服務(wù)器")的系統(tǒng)100中的方法,所述方法由所述 服務(wù)器實現(xiàn),所述方法包括截取來自在所述服務(wù)器上執(zhí)行的應(yīng)用程序116的、與呈現(xiàn)相關(guān)聯(lián)的命令142;解析所述命令中的每一命令;如果所述命令是創(chuàng)建或修改與呈現(xiàn)操作相關(guān)聯(lián)的圖形對象,貝U:(a)使得所述客戶機(jī)106將表示所述圖形對象的位圖142寫入所述客 戶機(jī)處的屏幕外顯示表面136上的指定位置,而不依賴于任何客戶機(jī)側(cè)顯 示遙控高速緩存管理和處理;以及(b) 將所述圖形對象與所述屏幕外顯示表面和所述指定位置的指示一 起高速緩存;如果所述呈現(xiàn)命令指定使用所述圖形對象以在所述服務(wù)器處呈現(xiàn)所述應(yīng) 用程序的圖形用戶界面(GUI)的一部分,貝lj:(c) 串行地一次或多次指示所述客戶機(jī)將所述位圖142從所述指定位 置傳送到所述客戶機(jī)處的屏幕上顯示表面136上的一個或多個目的地位 置以向用戶呈現(xiàn)所述部分,而不依賴于客戶機(jī)側(cè)顯示遙控高速緩存管理和 處理。
12. 如權(quán)利要求ll所述的方法,其特征在于,所述服務(wù)器是RDP服務(wù) 器且所述客戶機(jī)是RDP客戶機(jī)。
13. 如權(quán)利要求11所述的方法,其特征在于,所述命令中的一命令是 對圖形設(shè)備接口的調(diào)用。
14. 如權(quán)利要求11所述的方法,其特征在于,所述客戶機(jī)是小形狀因 子設(shè)備。
15. 如權(quán)利要求ll所述的方法,其特征在于,所述位圖比所述部分小, 其中所述一個或多個目的地位置中的每一個表示用于所傳送的位圖位的不同 位置,且其中傳送所述位圖還包括迭代地指示所述客戶機(jī)將所述位圖復(fù)制到所 述部分的相應(yīng)部分直到所述部分已經(jīng)被完整地呈現(xiàn)。
16. 如權(quán)利要求11所述的方法,其特征在于,所述方法還包括,如果 所述命令是刪除所述圖形對象,則重新使用所述屏幕外顯示表面上的特定位置 來高速緩存與不同圖形對象相關(guān)聯(lián)的不同位圖,所述不同圖形對象與來自所述 應(yīng)用程序的呈現(xiàn)調(diào)用相關(guān)聯(lián)。
17. 如權(quán)利要求11所述的方法,其特征在于,所述方法還包括,如果 所述命令是刪除所述圖形對象,則解除分配所述屏幕外顯示表面。
18. 如權(quán)利要求11所述的方法,其特征在于,所述方法還包括 確定所述屏幕外顯示表面的大?。灰约?分配所述屏幕外顯示表面。
19. 如權(quán)利要求18所述的方法,其特征在于,分配所述屏幕外顯示表 面是所述SBTDRP的初始配置操作集合的一部分。
20. —種在分布式處理系統(tǒng)100中在服務(wù)器計算設(shè)備102 ("服務(wù)器") 與客戶機(jī)計算設(shè)備106 ("客戶機(jī)")之間通信的方法,所述方法包括由所述服務(wù)器發(fā)出指示所述客戶機(jī)分配屏幕外顯示表面136的創(chuàng)建表面 調(diào)用132,所述創(chuàng)建表面調(diào)用包括映射到所述屏幕外顯示表面的表面大小參數(shù) 和服務(wù)器提供的唯一表面ID;響應(yīng)于接收到所述創(chuàng)建表面調(diào)用,所述客戶機(jī)根據(jù)所述表面大小來分配所 述屏幕外顯示表面,并將所述屏幕外顯示表面映射到所述服務(wù)器提供的唯一表 面ID 142,而不依賴于任何客戶機(jī)側(cè)高速緩存管理操作,所述屏幕外顯示表面 被所述服務(wù)器使用來(a) 在服務(wù)器指定的位置處存儲位圖142,所述位圖表示圖形獨享,而 不依賴于所述圖形對象是否由所述服務(wù)器在所述服務(wù)器處高速緩存為位 圖、刷子、字體、字形、以及片段中的一個或多個;以及(b) 請求所述客戶機(jī)將所述位圖中的一個或多個傳送到所述客戶機(jī)處 的不同顯示表面138上的相應(yīng)目的地位置以向所述客戶機(jī)的用戶呈現(xiàn)在 所述服務(wù)器上執(zhí)行的應(yīng)用程序116的圖形用戶界面(GUI),而不依賴于 位圖語義之外的語義的任何客戶機(jī)側(cè)判定和處理。由所述服務(wù)器向所述客戶機(jī)傳送指示所述客戶機(jī)將位圖寫入所述屏幕外 顯示表面上的特定位置的設(shè)置表面位調(diào)用132,所述位圖表示在所述服務(wù)器和 所述客戶機(jī)處呈現(xiàn)所述GUI的圖形對象,所述設(shè)置表面位調(diào)用包括所述特定位 置和標(biāo)識所述屏幕外顯示表面的所述服務(wù)器提供的唯一表面ID,響應(yīng)于接收 到所述設(shè)置表面位調(diào)用,所述客戶機(jī)將所述位圖復(fù)制到所述屏幕外顯示表面上 的所述特定位置,所述位圖的語義和意義對所述客戶機(jī)是任意的;以及由所述服務(wù)器向所述客戶機(jī)發(fā)送指示所述客戶機(jī)將位圖從所述屏幕外顯 示表面?zhèn)魉偷讲煌@示表面上的至少一個位置以呈現(xiàn)用于向所述用戶呈現(xiàn)的 所述GUI的至少一部分的傳送表面位命令132,所述發(fā)送響應(yīng)于所述應(yīng)用程序 發(fā)出在所述服務(wù)器呈現(xiàn)所述GUI的呈現(xiàn)命令,所述傳送表面位命令的參數(shù)包括 所述位圖的源位置和所述不同顯示表面上的目的地位置;以及其中所述創(chuàng)建表面調(diào)用、所述設(shè)置表面位調(diào)用、所述傳送表面位命令、以 及對應(yīng)的客戶機(jī)操作實現(xiàn)基于簡單位圖傳送的顯示遙控協(xié)議的至少一部分。
全文摘要
描述了耦合到客戶機(jī)的服務(wù)器所進(jìn)行的基于位圖傳送的顯示遙控。具體地,在服務(wù)器上執(zhí)行的應(yīng)用程序?qū)崿F(xiàn)呈現(xiàn)圖形用戶界面(GUI)的一部分的操作。服務(wù)器將對應(yīng)的基于呈現(xiàn)的命令分解成簡單的位圖光柵操作命令。服務(wù)器向客戶機(jī)發(fā)送基于位圖的命令。響應(yīng)于接收到這些命令,客戶機(jī)相應(yīng)地按服務(wù)器的指示將位圖從屏幕外顯示表面存儲并繪制到屏幕上顯示表面以向用戶呈現(xiàn)GUI部分??蛻魴C(jī)處存儲并呈現(xiàn)GUI部分的邏輯與任何客戶機(jī)實現(xiàn)的顯示遙控高速緩存管理邏輯無關(guān)??蛻魴C(jī)操作還與位圖語義之外的圖形對象語義的判定和處理無關(guān)。此類管理以及語義判定和處理分別在服務(wù)器處且由服務(wù)器來實現(xiàn)并維護(hù)。
文檔編號G06F15/16GK101681339SQ200880018320
公開日2010年3月24日 申請日期2008年5月21日 優(yōu)先權(quán)日2007年5月31日
發(fā)明者N·阿布多, W·R·舒米德爾 申請人:微軟公司