CN101681339A - 基于位图的显示遥控 - Google Patents

基于位图的显示遥控 Download PDF

Info

Publication number
CN101681339A
CN101681339A CN200880018320A CN200880018320A CN101681339A CN 101681339 A CN101681339 A CN 101681339A CN 200880018320 A CN200880018320 A CN 200880018320A CN 200880018320 A CN200880018320 A CN 200880018320A CN 101681339 A CN101681339 A CN 101681339A
Authority
CN
China
Prior art keywords
bitmap
server
client computer
screen
display surface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN200880018320A
Other languages
English (en)
Other versions
CN101681339B (zh
Inventor
N·阿布多
W·R·舒米德尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101681339A publication Critical patent/CN101681339A/zh
Application granted granted Critical
Publication of CN101681339B publication Critical patent/CN101681339B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/08Protocols specially adapted for terminal emulation, e.g. Telnet

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Digital Computer Display Output (AREA)

Abstract

描述了耦合到客户机的服务器所进行的基于位图传送的显示遥控。具体地,在服务器上执行的应用程序实现呈现图形用户界面(GUI)的一部分的操作。服务器将对应的基于呈现的命令分解成简单的位图光栅操作命令。服务器向客户机发送基于位图的命令。响应于接收到这些命令,客户机相应地按服务器的指示将位图从屏幕外显示表面存储并绘制到屏幕上显示表面以向用户呈现GUI部分。客户机处存储并呈现GUI部分的逻辑与任何客户机实现的显示遥控高速缓存管理逻辑无关。客户机操作还与位图语义之外的图形对象语义的判定和处理无关。此类管理以及语义判定和处理分别在服务器处且由服务器来实现并维护。

Description

基于位图的显示遥控
背景
远程桌面协议(RDP)通过到基于终端服务器(TS)的应用程序的网络连接来提供远程显示和输入能力。例如,RDP在服务器上使用其自己的视频驱动程序以通过将呈现信息构造到用于通过网络传送给客户机的网络分组中来向客户机设备呈现应用程序的显示输出。响应于接收到此类网络分组,客户机将呈现信息解码并解释为对应的图形设备接口(GDI)应用程序编程接口(API)调用。(GDI通常与操作系统的相应部分相关联。)此类解码和解释通常要求客户机不仅被配置成解码作为丰富接口的RDP,而且还被配置成将所接收到的呈现信息映射到对应的GDI调用。此类操作通常要求客户机创建并维持多个不同的数据上下文相关高速缓存以在基于GDI的呈现操作中使用诸如字体、刷子、字形、片段等图形对象。由于这些任务的复杂性,创建基于RDP的客户机可能是非常耗时且费力的。此外,基于RDP的客户机通常必须具有很强的处理能力来实现此类操作,此类处理资源一般无法在小形状因子设备上找到。结果,小形状因子设备通常不被用于实现基于RDP的客户机。
概述
提供本概述是为了用简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
鉴于前一段,描述了耦合到客户机计算设备(“客户机”)的服务器计算设备(“服务器”)所进行的基于位图传送的显示遥控。在一方面,在服务器上执行的应用程序实现呈现GUI的一部分的操作。服务器将对应的基于呈现的命令(例如,GDI命令等)转换为简单位图传送命令。服务器向客户机发送该位图传送命令。例如,在一个实现中,服务器将GDI命令转换为一个或多个位图操纵操作命令(光栅操作)。在一个实现中,服务器根据GDI命令来实现呈现操作以获得操作结果。
服务器将操作结果作为位图传送命令中的位图发送到客户机。响应于接收到来自服务器的位图传送命令,客户机相应地按服务器的指示将位图从屏幕外显示表面存储并绘制到屏幕上显示表面以向用户呈现该GUI部分。以这种方式,服务器仅使用位图传送命令,而不使用或依赖于任何常规RDP客户机侧遥控逻辑(例如,高速缓存管理、位图语义之外的图形对象语义的判定和处理等),来指示并使得客户机遥控应用程序的GUI。此类管理以及语义判定和处理分别在服务器处且由服务器来实现并维护。
附图简述
在附图和相关联的描述中,组件参考标号最左边的数字标识了该组件首次出现的特定附图。
图1示出根据一个实施例的用于基于位图传送的显示遥控的示例性系统。
图2示出根据一个实施例的在远程客户机处的、用于基于位图传送的显示遥控的示例性服务器创建和要求的屏幕外显示表面。
图3示出根据一个实施例的基于位图传送的显示遥控的示例性过程。
图4示出根据一个实施例的基于位图传送的显示遥控的示例性过程。
图5示出根据一个实施例的基于位图传送的显示遥控的另一示例性过程。
图6示出根据一个实施例的图5的基于位图传送的显示遥控的示例性过程的其它方面。
图7示出根据一个实施例的图5和6的基于位图传送的显示遥控的示例性过程的其它方面。
详细描述
概览
描述了用于基于位图传送的显示遥控的系统和方法。这些系统和方法使用基于简单位图传送的远程协议(SBTDRP)来解决常规RDP的限制。SBTDRP允许主存应用程序的服务器指示并控制客户机处的任意位图存储和已存储位图显示呈现在服务器上执行的应用程序的GUI。经由此指示和控制,服务器将客户机处否则将是复杂的呈现和高速缓存操作抽象为客户机处的两个或更多表面之间的三向或四向光栅操作(ROPS)。COPY ROP是此类操作的一个示例。然而,常规RDP将多个不同图形对象的客户机侧高速缓存与呈现逻辑紧密地耦合在一起,在此实现中,仅服务器实现高速缓存管理逻辑(例如,将服务器存储资源位之处映射到客户机)。用于SBTDRP的系统和方法的这些和其它方面现将更详细地讨论。
示例性系统
图1示出根据一个实施例的用于基于位图传送的显示遥控的示例性系统100。在此实现中,图1包括例如跨网络104耦合到一个或多个客户机计算设备106(“客户机106”)的服务器计算设备102(“服务器102”)。在此实现中,服务器102表示诸如服务器、个人计算机(PC)、膝上型计算机等通用计算设备中的任何一个或多个。客户机设备106表示诸如PC、膝上型计算机、移动计算设备、或与通用或服务器计算设备相比具有有限处理和数据存储能力的任何小形状因子设备(例如,个人数字助理(PDA)、移动设备、电话等)等通用计算设备中的任何一个或多个。网络104表示局域网(LAN)和通用广域网(WAN)通信环境的任何组合,如那些常见于办公室、企业范围计算机网络、内联网和因特网等的网络。
每一计算设备102和106分别包括耦合到包括在其上编码的计算机程序模块的系统存储器的一个或多个处理器。计算机程序模块包括可由相应处理器来执行的指令。这一系统存储器还包括由计算机程序中的相应指令在程序模块执行期间生成和/或使用的程序数据。例如,服务器102包括耦合到表示易失性随机存取存储器(RAM)和非易失性只读存储器(ROM)的系统存储器110的一个或多个处理器108。系统存储器110包括程序模块112,该程序模块112包括可由处理器108执行的计算机程序指令。系统存储器112还包括由程序模块112中的相应模块在程序模块执行期间生成和/或使用的程序数据114。
在此实现中,例如,程序模块114包括用于基于终端服务的访问的一个或多个任意应用程序116(例如,文字处理程序、电子邮件程序、电子表格应用程序等等),服务器侧终端服务118,以及诸如提供运行时环境的操作系统、设备驱动程序、网络通信逻辑等其它程序模块120。在此实现中,例如,客户机106处的计算机程序逻辑包括例如基于客户机的终端服务122和诸如操作系统、驱动程序、网络通信逻辑等其它程序模块124。服务器和客户机终端服务118和122允许客户机106的用户通过网络104来建立终端服务会话以在服务器102上运行一个或多个任意应用程序116来访问文件、数据库、网络资源等的任何组合。尽管执行应用程序116完全在服务器102上运行,但是系统100实现基于简单位图传送的显示遥控协议(SBTDRP)以经由显示设备130向最终用户呈现执行应用程序116的GUI的元素。
基于简单位图传送的显示遥控协议(SBTDRP)
在此实现中,例如,SBTDRP由作为服务器侧终端服务118的一部分的基于位图传送的显示遥控模块(或逻辑)126,以及作为客户机侧终端服务122的一部分的客户机侧位图存储和显示逻辑128来实现。SBTDRP允许服务器102的基于位图传送的显示遥控逻辑126(“遥控逻辑126”)指示并控制客户机106处的任意位存储和已存储位显示向用户呈现服务器主存的执行应用程序116中的一个或多个的GUI。SBTDRP消除了要求客户机实现复杂的高速缓存和呈现逻辑以实现丰富RDP的传统的基于RDP的显示遥控操作。为此,SBTDRP将常规的复杂显示遥控协议抽象为来自/对客户机106处的服务器要求的屏幕外显示表面的简单服务器控制位图传送(光栅)操作。
在此实现中,例如,SBTDRP包括以下示例性命令132(接口或调用):创建表面(CreateSurface)、设置表面位(SetSurfaceBits)、传送表面位(TransferSurfaceBits)和销毁表面(DestroySurface)。取决于系统100的具体实现,该组命令132的数量可以更多或更少。此外,为这些示例性命令132提供的具体名称是说明性的,这些名称被设计来传达与每一命令的相应实现相关联的操作的相应描述。因此,将在以下详细描述的这些接口及其相关联的操作可用命名不同的接口来表示。
创建表面(...)
创建表面命令132由服务器侧遥控逻辑126发出以指示客户机侧逻辑128在客户机106处分配特定大小的屏幕外显示表面136以供服务器要求的位图存储。在此实现中,例如,创建表面的参数包括供客户机侧逻辑128映射到新创建的屏幕外显示表面136的服务器提供的唯一标识符(ID)、以及表面大小。在此实现中,表面大小被表示为位图宽度、高度和色深度(例如,每像素8、16、24、32位)。字节的数量由客户机106和服务器102两者从这些维度中确定(即,字节的数量是宽度*高度*每像素字节数中色深度)。可能的色深度可在初始协议能力交换中协商。响应于接收到创建表面命令132,客户机侧逻辑128分配所请求的表面136并将服务器提供的唯一表面ID映射到新分配的表面136。如下所述,遥控逻辑126使用此ID在后续命令132中表示此特定的所分配的表面。
在一个实现中,例如,遥控逻辑126使用常规消息收发技术来确定客户机可用于高速缓存任意的服务器要求的位的最大数量存储器。基于此判定,遥控逻辑126指示客户机106分配最大数量存储器的的至少一个子集作为屏幕外显示表面136。在此场景中,遥控逻辑126使得客户机106分配屏幕外显示表面136,而不依赖于检测和/或映射来自在服务器102上执行的应用程序116的呈现命令/调用,这与常规的基于RDP的实现形成对比。
设置表面位(...)
服务器侧遥控逻辑126通过网络104向客户机106传送设置表面位命令132以指示客户机侧逻辑128将位集合存储在所标识的客户机侧屏幕外显示表面136上的指定目的地位置处。在此实现中,例如,设置表面位的参数包括标识屏幕外显示表面136的唯一ID、位集合、以及这些位的目的地位置。在一个实现中,例如,目的地位置标识以左、上、右、和下坐标表示的矩形的坐标。或者,使用X、Y、宽度和高度来标识存储矩形。在另一实现中,目的地位置标识非矩形的几何对象(例如,正方形、圆、任意形状等)的坐标。
响应于接收到设置表面位命令132,客户机侧逻辑128将指定位存储到指定屏幕外显示表面136上的所指示的目的地位置。如以下在段落[0056]到[0058]中所描述的(也参见图6),由遥控逻辑126所存储的位集合对应与描述可随后被呈现逻辑126用来呈现在服务器102上执行的应用程序116的GUI的一个或多个方面的图形对象的位。然而,从客户机106的角度来说,且不依赖于作为位图位,这些被存储的位的意义和语义无关紧要;位图具有任意意义且仅由客户机侧逻辑128按服务器102所指示的存储到屏幕外显示表面136上。
传送表面位(...)
遥控逻辑126使用传送表面位命令132来指示客户机侧逻辑128将高速缓存在特定客户机侧屏幕外显示表面136中的指定位传送到不同的表面(例如,屏幕上呈现表面138、另一屏幕外表面等)以供客户机106经由显示设备130来呈现。在此实现中,例如,传送表面位的参数包括以下各项中的一个或多个:
标识特定屏幕外显示表面136的唯一源表面ID。
标识目标位图的目的地表面(例如,屏幕上显示表面)的目的地表面ID。
标识表示要传送到所标识的目的地表面的目标位图的位集合的源矩形(或其它任意形状)。
在接收所传送的位图的目的地表面中的目的地矩形(或诸如裁剪区域等其它任意形状)。在一个实现中,传送表面位命令132包括用于更新的“裁剪区域”(在目的地中定义不规则区域的矩形集合)。
屏蔽位图(或表面)。例如,屏蔽位图(MaskBlt)是用于基于屏蔽中的对应像素的值来选择性地将像素从源表面传送到目的地的位图传送操作。例如,仅当在屏蔽位图中的坐标100,100处的像素被设置为0(黑)时,在坐标100,100处的像素才从源被传送到目的地。
针对客户机逻辑128的、实现从源表面到目的地表面的位图传送的光栅操作(即复制、异或等)的指示。在一个实现中,例如,传送表面位命令132指示客户机逻辑128实现屏蔽表面操作。
在一个实现中,客户机侧逻辑128传送位图的失败使得客户机逻辑128向遥控逻辑126传送通用“脏”表面通知134,并从而向遥控逻辑126通知表面位无效。在一个实现中,响应于此类通知,服务器102为无效的表面位/区域向客户机逻辑128发送更新(该更新将使得区域有效)。
销毁表面(...)
遥控逻辑126发送毁灭表面命令132以指示客户机侧逻辑128销毁(解除分配)服务器102初始化并要求的屏幕外显示表面136。在此实现中,删除表面(DeleteSurface)的参数包括例如针对特定屏幕外显示表面136的唯一表面ID。
示例性的服务器要求的位图存储和传送
以下示例将使用常规RDP来在基于TS的客户机上显示在基于TS的服务器上执行的应用程序的GUI的元素与使用SBTDRP进行比较和对比。这些示例是说明性的且其它操作顺序、图形对象、表面等可在不偏离这些示例的情况下被取代。
使用常规的基于RDP的逻辑,通常需要以下操作来将刷子对象高速缓存到特定位置并使用该刷子对象来填充主要屏幕上显示表面中的矩形。出于示例性说明的目的,该刷子是16x16像素的刷子,且在屏幕上显示表面上的呈现位置是(0,0,64,16),表示封装多个此类刷子的表面区域。
服务器(“S”)与客户机(“C”)之间作为初始协议交换的一部分协商高速缓存类型(例如,刷子、字形、字体、片段、位图等)以及大小,该客户机从而可以设置将高速缓存管理操作与图形对象呈现操作紧密耦合的复杂高速缓存管理服务。在此示例中,高速缓存类型是刷子高速缓存。高速缓存大小包括例如具有100个条目的16(宽度)x16(高度)高速缓存、具有200个条目的42x32高速缓存等。
服务器取得位图位和刷子的来源,服务器将它们发送到客户机以供高速缓存在刷子高速缓存中的指定位置(例如,位置99)处。
服务器指示客户机使用刷子高速缓存位置99中的刷子来填充屏幕上显示表面上的(0,0,64,16)处的表面矩形。客户机通过将RDP命令转换为使用高速缓存的刷子的对应GDI调用来响应。客户机向客户机的操作系统提交该GDI调用以按指示绘制该刷子。给定刷子大小(16x16)中的表面矩形的大小,客户机处的GDI将迭代地执行多个刷子呈现命令以填充该表面矩形。
与以上示例形成对比,图1的系统100使用SBTDRP来将刷子的位图存储到客户机处的屏幕外显示表面上,并使用多个服务器发起的位图复制命令(串行地一次一个命令)来填充客户机106处的屏幕上显示表面上的矩形。因此,服务器将来自应用程序116的、较复杂的呈现命令(例如,GDI命令)分解或分拆为较简单的位图传送命令。在此上下文中高速缓存与存储之间的一个区别是为将对象高速缓存在使用RDP的客户机处,该基于RDP的客户机需要高速缓存管理逻辑来执行高速缓存操作并执行对象传送。相反,客户机102上的位图存储和位图传送完全不依赖于客户机102处的任何高速缓存管理。
出于示例性说明和比较的目的,刷子大小是16x16位,客户机106处的屏幕上显示表面(例如,“表面0”)上的表面矩形的坐标是(0,0,64,16)。如上一示例中的那样,要采取多个呈现操作来填充目标表面矩形。请注意,在之前的示例中,客户机使用GDI来将服务器命令转换为填充表面矩形的多个呈现操作。相反,服务器102迭代地向客户机102传送多个传送表面位命令以执行示例性呈现操作。
遥控逻辑126和客户机侧逻辑128协商并分配屏幕外显示表面136(例如,作为初始协议操作的一部分)。出于示例性说明的目的,此类屏幕外显示表面在图2中示出。
遥控逻辑126指示客户机106创建映射到服务器提供(并维护)的唯一标识符(例如,ID 88)的屏幕外表面136。在一个实现中,屏幕外表面至少是16x 16的。
遥控逻辑126指示客户机106将表面ID 88中的(0,0,16,16)位置处的位图位设置(经由设置表面位命令132)为表示刷子对象的特定位图位。
遥控逻辑126指示客户机106将位从表面ID 88的位置(0,0,16,16)处传送(经由传送表面位命令132)到表面0的位置(0,0,16,16)处。
遥控逻辑126指示客户机106将位从屏幕外显示表面ID 88的位置(0,0,16,16)处传送到表面0的(16,0,42,16)处。
遥控逻辑126指示客户机106将位从屏幕外显示表面ID 88的位置(0,0,16,16)处传送到表面0的(32,0,58,16)处。
遥控逻辑126指示客户机106将位从表面88(0,0,16,16)传送到表面0的(48,0,64,16)处。
参考使用SBTDRP的上一示例,请注意,遥控逻辑126迭代地实现传送表面位命令132(在此示例中,四次)以使用指定的刷子位图来填充指定的目的地矩形。与常规系统相反,由系统100所实现的简化协议使用简单的SBTDRP命令来进行位图和刷子处理(以及所有其它用于将来自在服务器102处执行的应用程序116的GUI显示到耦合到远程客户机106的显示设备132上的操作)。结果,客户机106被配置成实现简单位图/表面读和写操纵以呈现与执行服务器102的应用程序116相关联的GUI的相应部分。即,服务器102将复杂的图形呈现命令(例如,像填充矩形(FillRect)GDI命令等)分解为单独的对应位图光栅操作命令。这与常规RDP系统形成对比,其中客户机被配置成维护多个不同的图形对象专用高速缓存、理解各种图形对象(例如,字形、刷子、位图等)之间的语义区别、以及经常将RDP呈现命令转换为对应的GDI命令(例如,使用来自刷子高速缓存的刷子来填充矩形)。
示例性过程
图3示出根据一个实施例的基于位图传送的显示遥控的示例性过程300。出于示例性说明和描述的目的,参考图1的各方面和各组件来描述过程300的各操作。在该描述中,组件附图标记最左边的数字指示其中首次引入组件的特定附图。参考图3,框302的操作由服务器遥控模块126(图1)确定在服务器102上执行的应用程序116参与了呈现该应用程序的GUI的一部分的操作。此类操作包括例如创建诸如刷子、字形、字体、片段等图形对象以便随后用于呈现GUI。在另一示例中,此类操作包括诸如刷子填充命令等实际呈现命令。框304的操作将与这些操作相关联的命令分解或分拆(例如,请看框302)为对应的位图光栅操作命令。
例如,如上所述,如果应用程序116生成创建刷子图形对象的GDI命令,则服务器遥控逻辑126将位图写入到客户机106处的特定屏幕外显示表面136。在另一示例中,如果应用程序116使用刷子图形对象来填充GUI的一部分,则服务器遥控逻辑126指示客户机106(一次或多次)将对应于该刷子的位图传送到屏幕上显示表面138的特定部分以向用户呈现该GUI部分。此类传送操作包括位图读和写操作。
框306的操作向客户机106发送位图光栅操作命令(请看框304的操作)。框308的操作由客户机106解码所接收到的位图光栅操作命令以相应地将对应的位图存储和/或绘制到屏幕上显示表面138以向用户呈现GUI部分。在一个实现中,这些命令可以指示客户机106在将位图传送到屏幕上表面之前将位图从一屏幕外表面传送到另一屏幕外表面。客户机106处存储并绘制位图以呈现GUI部分的逻辑完全不依赖于客户机实现的高速缓存管理逻辑。此外,客户机逻辑完全不依赖于位图语义之外的图形对象语义的任何判定和处理。这与常规RDP操作形成对比。
图4示出根据一个实施例的基于位图传送的显示遥控的示例性过程400。出于示例性说明和描述的目的,参考图1的各方面和各组件来描述过程400的各操作。在该描述中,组件附图标记最左边的数字指示其中首次引入组件的特定附图。参考图4,框402的操作由服务器指示客户机为服务器指示和要求的数据存储分配屏幕外显示表面。在一个实现中,服务器102处的遥控逻辑126使用创建表面命令132来指示客户机106的客户机侧逻辑128为此类服务器指示和要求的数据存储分配屏幕外显示表面136。此服务器指示和要求的数据存储是向客户机106的用户呈现在服务器102处执行的应用程序115的GUI(例如,经由显示设备130)。
框404的操作由服务器请求客户机将位图存储到屏幕外显示表面上的特定位置。在一个实现中,例如,使得此操作响应于应用程序请求GDI或其它图形接口来创建或修改图形对象(例如,刷子、字形、位图、字体等)以在服务器上呈现GUI。在一个实现中,呈现逻辑126截取来自应用程序116的对GDI的调用。在另一实现中,例如,此操作的执行不依赖于对GDI的请求。例如,操作可响应于客户机被请求显示除GDI输出之外的某些输出(例如,黑色矩形等)等来执行。在此类调用与创建或修改用于呈现GUI的图形对象相关联时,呈现逻辑126请求客户机侧逻辑将表示该图形对象的任意位图存储到所分配的屏幕外显示表面136上的特定位置。此类请求例如通过呈现逻辑126向客户机侧逻辑128传送设置表面位命令132来做出。
框406的操作响应于服务器截取来自应用程序的呈现命令,其中该呈现命令与之前创建的图形对象(例如,刷子、字形等)相关联。(诸如镜像驱动程序等截取来自特定应用程序的呈现命令的技术是已知的)。具体地,框406的操作使得服务器向客户机传送命令以指示客户机将对应于先前创建的图形对象的位图从屏幕外显示表面传送到客户机侧显示表面上的至少一个位置。这些操作导致呈现GUI的一部分以供向客户机的用户呈现。在一个实现中,例如,框406的操作通过呈现逻辑126向客户机侧逻辑128传送传送表面位命令132来实现。此命令被客户机侧逻辑128接收使得客户机侧逻辑128将服务器指定的位图传送到不同显示表面(例如,屏幕上呈现的表面138)上的目的地位置。客户机侧逻辑128的这些任意位图传送操作导致在服务器102上执行的应用程序116的GUI的一部分被呈现给客户机106的用户。基于位图传送的显示遥控的示例性过程的这些和其它细节现在参考图4到7更详细地描述。
图5示出根据一个实施例的为基于位图传送的显示遥控而在远程客户机设备处创建屏幕外显示表面的另一示例性过程500。出于示例性说明和描述的目的,参考图1的各方面和各组件来描述过程500的各操作。在该描述中,组件附图标记最左边的数字指示其中首次引入组件的特定附图。
参考图5,框502的操作由服务器指示客户机为服务器指示并要求的位图存储操作分配特定大小的屏幕外显示表面。此指示不包括任何向客户机102指示所请求的表面将用于位图或任何其它数据存储的信息。在一个实现中,例如,服务器102的遥控逻辑126请求客户机侧逻辑128指示客户机106可以为屏幕外显示表面136分配的大小(例如,最大值、默认值、或其它)。响应于确定该大小,遥控逻辑126向客户机106发送创建表面命令132。创建表面命令132指示客户机侧逻辑128分配所指示大小的屏幕外显示表面136。此传送还包括服务器提供的唯一ID以供客户机侧逻辑128将其与新分配的屏幕外显示表面136进行关联。如下所述,遥控逻辑126将在指示客户机侧逻辑128执行与此特定屏幕外显示表面136相关联的、基于位图的操作时使用此唯一ID。在一个实现中,框502的操作由遥控逻辑126和客户机侧逻辑128作为初始协议配置操作的一部分来实现。对框504的操作,响应于接收到(由客户机106)创建屏幕外显示表面136的命令132,客户机106分配具有特定的指定或默认大小的屏幕外显示表面136。
框506的操作截取呈现命令(例如,对GDI的调用)以呈现执行基于终端服务的应用程序的GUI。在一个实现中,例如,遥控逻辑126使用常规驱动程序来截取来自执行应用程序116的呈现调用(例如,对GDI逻辑等的调用)以呈现与执行应用程序116相关联的GUI。框508的操作确定所截取的呈现命令(或与呈现相关联的命令)是否是创建或修改(包括删除/销毁命令)图形对象(例如,刷子、字形、片段、位图、字体等),或所截取的呈现命令是否是使用特定图形对象来执行呈现操作的命令(例如,填充命令、绘制操作等)。在一个实现中,遥控逻辑128通过使用已知呈现命令解析技术(例如,GDI命令解析技术等)解析该命令来作出此判定。在框510,如果所截取的呈现命令/调用涉及创建或修改现有的图形对象,则过程500的操作如页面上的标号“A”所示地在图6的框602继续。否则,如果所截取的呈现调用涉及使用特定图形对象来实现呈现操作,则过程500的操作如页面上的标号“B”所示地在第7页的框702继续。在一个实现中,框510的操作由服务器102的遥控逻辑126来实现。
图6示出根据一个实施例的基于位图传送的显示遥控的示例性过程的其它方面。具体地,图6是图5的过程500的延续。参考图6,如页面上的标号“A”所示,操作在框602开始。框602的操作响应于之前的所截取的呈现命令是创建或修改现有图形对象(请参考图5,框510)的判定来实现。在框602,服务器将表示被创建或修改的图形对象的位传送到客户机以供高速缓存在特定屏幕外显示表面上的特定位置。在一个实现中,遥控逻辑126使用设置表面位命令132来将表示被创建或修改的图形对象的位传送到客户机侧逻辑128以便由客户机侧逻辑128高速缓存在服务器标识的屏幕外显示表面136上的服务器指定的位置。出于示例性说明的目的,此类位被示为图1的“其它程序数据”142的相应部分。
在一个实现中,例如,设置表面位命令132中的被创建或修改的图形对象位指示例如位图大小、颜色、压缩等。将这些位发送到客户机106的操作完全不依赖于向客户机106发送对应的位定义或位的上下文的任何指示。此外,在设置表面位命令132中指定的特定屏幕外显示表面136是遥控逻辑126使用唯一ID来标识的表面136。请回想,在此实现中,遥控逻辑126在表面136经由创建表面命令132被创建时向客户机侧逻辑128提供此唯一ID。
响应于接收到设置表面位命令,框604的操作将与设置表面位命令相关联的任意位(从客户机106和客户机逻辑128的角度来说是任意的)存储到指定的屏幕外显示表面。在一个实现中,例如,响应于接收到设置表面位命令132,客户机侧逻辑128将相关联的任意位在表面136上的服务器指定位置处存储到指定屏幕外显示表面136中。在此场景中,客户机106被配置成理解所传送的位表示位图,且设置表面位命令132请求对应的位图复制或传送操作。此外,客户机106的配置完全不依赖于为在设置表面位命令132中传送的位确定定义、上下文、语义等的任何需要。从客户机106的角度来说,所接收到的位仅表示被遥控逻辑126存储在客户机106处的、具有未知语义的任意位图。因此,客户机高速缓存所接收到的位而不依赖于确定任何基于图形对象的语义。基于图形对象的语义的示例性判定包括例如确定对诸如“所接收到的位是否表示某类型的图形对象?且“如果是,则表示何种类型的图形对象?”等问题的答案的逻辑。例如,位是否表示刷子、位图、字形、片段等。常规RDP客户机实现基于所确定的图形对象的类型来执行特殊处理。
图7示出根据一个实施例的基于位图传送的显示遥控的示例性过程500的其它方面。具体地,图7是图5和6的过程500的延续(请参考图5上的页面上的标号“B”)。参考图7,操作在框702响应于之前的所截取的调用不是创建或修改现有图形对象的呈现调用的判定来开始(请参考图5,框510)。因此,所截取的调用是删除现有图形对象、或呈现命令。
框702的操作确定所截取的调用是否是删除图形对象的调用。如果是,则操作在框704继续,在704确定服务器是否有在客户机侧屏幕显示表面中保留位的任何需要。此类判定是任意的且基于服务器侧遥控逻辑126的具体实现。例如,在一个实现中,服务器侧遥控逻辑评估本地高速缓存142来确定与在调用中标识的图形对象相关联的客户机侧屏幕外显示表面136是否仍然有用。这一判定可基于服务器侧遥控逻辑126的具体实现,基于许多不同的任意参数来作出。
例如,如果由调用调度来在服务器侧删除的图形对象是具有高速缓存在客户机侧屏幕上显示表面136中的对应位的唯一对象,则遥控逻辑126可决定使用任何之后高速缓存的位来盖写这些对应位,或可以请求客户机侧逻辑128删除表面136。在另一示例中,考虑遥控逻辑126使用一个或多个屏幕外表面136来高速缓存刷子。当刷子在服务器102处经由GDI被删除时,遥控逻辑126可决定重新要求由高速缓存在客户机106处的表面上的对应位图所占据的区域(即,表面位可用于其它事)。注意,如之前的示例所述,可将客户机侧上的刷子位区域作为每个刷子一个表面、或表示相同表面136上的刷子的多个位图来管理。因此,在一个实现中,遥控逻辑126可以不删除表面136,而仅仅重新要求相关联的表面位的至少一部分。
鉴于以上内容,如果指示了表面136的删除,则框704的操作使得呈现逻辑126传送指示客户机侧逻辑128删除特定屏幕外显示表面136的删除表面命令132。响应于接收到此命令132,客户机侧逻辑解除分配(销毁)所标识的屏幕外显示表面136。
如果框702的操作确定所截取的调用不是删除图形对象的调用,则该调用与使用特定图形对象来实现呈现操作相关联(例如,绘制命令、填充命令等)。因此,过程500的操作在框706继续。在框706,服务器向客户机发送一个或多个将位从特定屏幕外显示表面复制到画面显示缓冲区中的位置的传送表面位命令以提供所截取的GDI呈现命令在客户机处的有效结果。在一个实现中,例如,呈现逻辑126向客户机侧逻辑128发送一个或多个将位从特定表面136复制到画面显示缓冲区中的位置的传送表面位命令132以提供所截取的呈现命令在客户机106处的有效结果。被复制的特定位表示之前由呈现逻辑126高速缓存到特定屏幕外显示表面136中的位。在一个实现中,遥控逻辑126使用服务器侧高速缓存140将服务器102处的图形对象映射到特定客户机侧屏幕上显示表面136(经由唯一表面ID)、和表面136处的对应源位置。
结论
虽然以上各部分用专用于结构化特征和/或方法性操作或动作的语言描述了基于位图传送的显示遥控,但是在所附权利要求中定义的各实现不必限于所描述的具体特征或动作。例如,尽管过程500的操作(请参考图5-6)被示为具有特定流程和顺序次序,但这些操作是示例性的且仅旨在作为系统100的一个说明性和示例性实现的说明。例如,尽管参考过程500的框502来描述创建客户机侧屏幕外显示表面136的操作,但是遥控逻辑126可以根据其具体实现来创建许多此类屏幕外显示表面136。例如,在框506的操作之后,在截取与呈现相关联的调用之处,呈现逻辑126的另一实现可以创建另一此类屏幕外显示表面136(如参考框502和504所述)以高速缓存对应图形对象的位。因此,过程400和500是可由系统100的具体实现所采取的许多不同的任意操作流程的示例。因此,上述的具体特征和基于位图传送的显示遥控的操作是实现所要求保护的主题的示例性形式。

Claims (20)

1.一种在服务器计算设备102(“服务器”)与客户机计算设备106(“客户机”)之间通信的方法300,所述服务器通过网络104耦合到所述客户机,所述方法包括:
由所述服务器确定302在所述服务器上执行的应用程序116参与了呈现图形用户界面142(GUI)的一部分的操作;
响应于所述确定:
将与所述操作相关联的命令的至少一个子集转换304为对应的位图传送命令132;
仅向所述客户机传送306所述位图传送命令;以及
其中所述位图传送命令的接收使得所述客户机将对应位图存储并绘制308到屏幕上显示表面以向所述客户机的用户呈现所述部分,而不依赖于(a)客户机实现的高速缓存管理逻辑;以及(b)位图语义之外的图形对象语义的任何判定和处理。
2.如权利要求1所述的方法,其特征在于,所述服务器是RDP服务器。
3.如权利要求1所述的方法,其特征在于,特定位图传送命令集合的接收使得所述客户机呈现所述部分而不依赖于将来自所述服务器的任何命令转换为对应的基于图形设备接口(GDI)的命令。
4.如权利要求1所述的方法,其特征在于,所述位图传送命令是以基于简单位图传送的显示遥控协议(SBTDRP)为基础的,所述SBTDRP使用位图来表示多种不同类型的对象而不依赖于对象是否作为位图高速缓存在所述服务器处。
5.如权利要求1所述的方法,其特征在于,所述位图传送命令分别涉及对表示一个或多个刷子、字体、字形、以及片段图形对象的位图进行读和写中的一个或多个,且其中所述方法还包括:
由所述服务器管理至少一个高速缓存以将刷子、字体、字形、以及片段图形对象中的一个或多个映射到存储在客户机处的一个或多个屏幕外表面中的一个或多个相应位置处的一个或多个对应的位图。
6.如权利要求1所述的方法,其特征在于,所述对应位图的位图比所述部分小,且其中至少一个所述子集的命令被转换为多个基于简单位图的命令,且其中所述方法还包括:
由所述服务器将每一所述基于简单位图的命令传送给所述客户机以呈现所述部分,每一命令涉及呈现所述部分的不同部分。
7.如权利要求1所述的方法,其特征在于,所述方法还包括由所述服务器将表示多个不同类型的图形对象的位图写入/存储到所述客户机处的屏幕外显示表面上的相应位置。
8.如权利要求1所述的方法,其特征在于,所述方法还包括由所述服务器传送对所述客户机的、销毁与由所述客户机向用户呈现GUI相关联的屏幕外显示表面的请求。
9.如权利要求1所述的方法,其特征在于,所述方法还包括:
由所述服务器请求所述客户机分配屏幕外显示表面;
由所述服务器请求所述客户机将位图存储到所述屏幕外显示表面上的特定位置,所述位图表示图形对象;以及
由所述服务器指示所述客户机将所述位图一次或多次地写入所述屏幕上显示表面上的特定位置以向所述用户呈现所述部分。
10.如权利要求9所述的方法,其特征在于,由所述服务器请求所述客户机所述位图存储到所述特定位置盖写了所述服务器先前存储在所述屏幕外显示表面上的不同位图的至少一部分。
11.一种在包括通过网络104耦合到客户机计算设备106(“客户机”)的服务器计算设备102(“服务器”)的系统100中的方法,所述方法由所述服务器实现,所述方法包括:
截取来自在所述服务器上执行的应用程序116的、与呈现相关联的命令142;
解析所述命令中的每一命令;
如果所述命令是创建或修改与呈现操作相关联的图形对象,则:
(a)使得所述客户机106将表示所述图形对象的位图142写入所述客户机处的屏幕外显示表面136上的指定位置,而不依赖于任何客户机侧显示遥控高速缓存管理和处理;以及
(b)将所述图形对象与所述屏幕外显示表面和所述指定位置的指示一起高速缓存;
如果所述呈现命令指定使用所述图形对象以在所述服务器处呈现所述应用程序的图形用户界面(GUI)的一部分,则:
(c)串行地一次或多次指示所述客户机将所述位图142从所述指定位置传送到所述客户机处的屏幕上显示表面136上的一个或多个目的地位置以向用户呈现所述部分,而不依赖于客户机侧显示遥控高速缓存管理和处理。
12.如权利要求11所述的方法,其特征在于,所述服务器是RDP服务器且所述客户机是RDP客户机。
13.如权利要求11所述的方法,其特征在于,所述命令中的一命令是对图形设备接口的调用。
14.如权利要求11所述的方法,其特征在于,所述客户机是小形状因子设备。
15.如权利要求11所述的方法,其特征在于,所述位图比所述部分小,其中所述一个或多个目的地位置中的每一个表示用于所传送的位图位的不同位置,且其中传送所述位图还包括迭代地指示所述客户机将所述位图复制到所述部分的相应部分直到所述部分已经被完整地呈现。
16.如权利要求11所述的方法,其特征在于,所述方法还包括,如果所述命令是删除所述图形对象,则重新使用所述屏幕外显示表面上的特定位置来高速缓存与不同图形对象相关联的不同位图,所述不同图形对象与来自所述应用程序的呈现调用相关联。
17.如权利要求11所述的方法,其特征在于,所述方法还包括,如果所述命令是删除所述图形对象,则解除分配所述屏幕外显示表面。
18.如权利要求11所述的方法,其特征在于,所述方法还包括:
确定所述屏幕外显示表面的大小;以及
分配所述屏幕外显示表面。
19.如权利要求18所述的方法,其特征在于,分配所述屏幕外显示表面是所述SBTDRP的初始配置操作集合的一部分。
20.一种在分布式处理系统100中在服务器计算设备102(“服务器”)与客户机计算设备106(“客户机”)之间通信的方法,所述方法包括:
由所述服务器发出指示所述客户机分配屏幕外显示表面136的创建表面调用132,所述创建表面调用包括映射到所述屏幕外显示表面的表面大小参数和服务器提供的唯一表面ID;
响应于接收到所述创建表面调用,所述客户机根据所述表面大小来分配所述屏幕外显示表面,并将所述屏幕外显示表面映射到所述服务器提供的唯一表面ID 142,而不依赖于任何客户机侧高速缓存管理操作,所述屏幕外显示表面被所述服务器使用来:
(a)在服务器指定的位置处存储位图142,所述位图表示图形独享,而不依赖于所述图形对象是否由所述服务器在所述服务器处高速缓存为位图、刷子、字体、字形、以及片段中的一个或多个;以及
(b)请求所述客户机将所述位图中的一个或多个传送到所述客户机处的不同显示表面138上的相应目的地位置以向所述客户机的用户呈现在所述服务器上执行的应用程序116的图形用户界面(GUI),而不依赖于位图语义之外的语义的任何客户机侧判定和处理。
由所述服务器向所述客户机传送指示所述客户机将位图写入所述屏幕外显示表面上的特定位置的设置表面位调用132,所述位图表示在所述服务器和所述客户机处呈现所述GUI的图形对象,所述设置表面位调用包括所述特定位置和标识所述屏幕外显示表面的所述服务器提供的唯一表面ID,响应于接收到所述设置表面位调用,所述客户机将所述位图复制到所述屏幕外显示表面上的所述特定位置,所述位图的语义和意义对所述客户机是任意的;以及
由所述服务器向所述客户机发送指示所述客户机将位图从所述屏幕外显示表面传送到不同显示表面上的至少一个位置以呈现用于向所述用户呈现的所述GUI的至少一部分的传送表面位命令132,所述发送响应于所述应用程序发出在所述服务器呈现所述GUI的呈现命令,所述传送表面位命令的参数包括所述位图的源位置和所述不同显示表面上的目的地位置;以及
其中所述创建表面调用、所述设置表面位调用、所述传送表面位命令、以及对应的客户机操作实现基于简单位图传送的显示遥控协议的至少一部分。
CN2008800183202A 2007-05-31 2008-05-21 基于位图的显示遥控 Active CN101681339B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/756,284 US8140610B2 (en) 2007-05-31 2007-05-31 Bitmap-based display remoting
US11/756,284 2007-05-31
PCT/US2008/064400 WO2008150709A1 (en) 2007-05-31 2008-05-21 Bitmap-based display remoting

Publications (2)

Publication Number Publication Date
CN101681339A true CN101681339A (zh) 2010-03-24
CN101681339B CN101681339B (zh) 2012-07-04

Family

ID=40089684

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008800183202A Active CN101681339B (zh) 2007-05-31 2008-05-21 基于位图的显示遥控

Country Status (5)

Country Link
US (2) US8140610B2 (zh)
EP (1) EP2171606B1 (zh)
JP (1) JP5264895B2 (zh)
CN (1) CN101681339B (zh)
WO (1) WO2008150709A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8140610B2 (en) 2007-05-31 2012-03-20 Microsoft Corporation Bitmap-based display remoting
CN108958868A (zh) * 2018-06-30 2018-12-07 深圳市技达信息技术有限公司 显示界面的方法、装置及计算机可读存储介质

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2086236A1 (en) * 2008-01-31 2009-08-05 Hewlett-Packard Development Company, L.P. Method and system for accessing applications
US8281377B1 (en) 2008-04-15 2012-10-02 Desktone, Inc. Remote access manager for virtual computing services
CN102067085B (zh) * 2008-04-17 2014-08-13 微系统道格有限公司 用于向远程客户机虚拟传送软件应用程序的方法和系统
EP2216959B1 (en) * 2009-02-04 2019-04-03 Alcatel Lucent Virtual customer premises equipment
EP2399380B1 (en) * 2009-02-20 2017-05-10 Citrix Systems, Inc. Systems and methods for intermediaries to compress data communicated via a remote display protocol
US8307103B2 (en) * 2009-03-09 2012-11-06 Microsoft Corporation Tear-free remote desktop protocol (RDP) display
US20110055899A1 (en) * 2009-08-28 2011-03-03 Uplogix, Inc. Secure remote management of network devices with local processing and secure shell for remote distribution of information
US20110055367A1 (en) * 2009-08-28 2011-03-03 Dollar James E Serial port forwarding over secure shell for secure remote management of networked devices
US8761520B2 (en) 2009-12-11 2014-06-24 Microsoft Corporation Accelerating bitmap remoting by identifying and extracting 2D patterns from source bitmaps
US20110154214A1 (en) * 2009-12-18 2011-06-23 Microsoft Corporation Offloading Content Retrieval And Decoding In Pluggable Content-Handling Systems
US9137338B2 (en) 2010-01-22 2015-09-15 Microsoft Technology Licensing, Llc Multi-link remote protocol
US8463918B2 (en) 2010-01-22 2013-06-11 Microsoft Corporation Loss tolerant protocol for remoting desktop graphics
US9235452B2 (en) * 2010-02-05 2016-01-12 Microsoft Technology Licensing, Llc Graphics remoting using augmentation data
US20110225566A1 (en) * 2010-03-10 2011-09-15 Microsoft Corporation Testing user interfaces in multiple execution environments
US8768067B2 (en) 2010-04-15 2014-07-01 Microsoft Corporation Accelerating bitmap remoting by identifying and extracting patterns from source bitmaps through parallel processing techniques
US8438474B1 (en) 2011-04-27 2013-05-07 Google Inc. Speculative rendering during cache revalidation
US9600350B2 (en) * 2011-06-16 2017-03-21 Vmware, Inc. Delivery of a user interface using hypertext transfer protocol
US9514242B2 (en) 2011-08-29 2016-12-06 Vmware, Inc. Presenting dynamically changing images in a limited rendering environment
US9549045B2 (en) 2011-08-29 2017-01-17 Vmware, Inc. Sharing remote sessions of a user interface and/or graphics of a computer
US20130093776A1 (en) * 2011-10-14 2013-04-18 Microsoft Corporation Delivering a Single End User Experience to a Client from Multiple Servers
US9467305B2 (en) 2012-03-07 2016-10-11 Vmware, Inc. Multitenant access to multiple desktops on host machine partitions in a service provider network
US9043722B1 (en) 2012-06-19 2015-05-26 Surfwax, Inc. User interfaces for displaying relationships between cells in a grid
JP6221214B2 (ja) * 2012-09-26 2017-11-01 富士通株式会社 システム、端末装置および画像処理方法
US9253158B2 (en) 2013-08-23 2016-02-02 Vmware, Inc. Remote access manager for virtual computing services
TWI529413B (zh) 2014-10-27 2016-04-11 信泰光學(深圳)有限公司 成像鏡頭
CN104683449B (zh) * 2015-02-05 2017-12-12 深圳市云舒网络技术有限公司 一种基于窗口结构的远程桌面控制方法
US10382521B2 (en) * 2015-12-14 2019-08-13 Wyse Technology, L.L.C. Gateway that enables a browser-based application to communicate with a server-side application using a non-browser-compatible protocol
US10573057B1 (en) 2018-09-05 2020-02-25 Citrix Systems, Inc. Two-part context-based rendering solution for high-fidelity augmented reality in virtualized environment
US10558824B1 (en) 2019-02-04 2020-02-11 S2 Systems Corporation Application remoting using network vector rendering
US10552639B1 (en) 2019-02-04 2020-02-04 S2 Systems Corporation Local isolator application with cohesive application-isolation interface
US11880422B2 (en) 2019-02-04 2024-01-23 Cloudflare, Inc. Theft prevention for sensitive information
US10452868B1 (en) 2019-02-04 2019-10-22 S2 Systems Corporation Web browser remoting using network vector rendering
US11004256B2 (en) 2019-05-08 2021-05-11 Citrix Systems, Inc. Collaboration of augmented reality content in stereoscopic view in virtualized environment
CN112346677B (zh) * 2019-08-06 2022-08-02 杭州海康威视数字技术股份有限公司 用于拼接屏的发送卡以及辅助拼接屏配屏的方法
US20230097748A1 (en) * 2020-02-19 2023-03-30 Hewlett-Packard Development Company, L.P. Generating a graphical user interface in a pre-operating system boot environment
US11348199B2 (en) * 2020-07-06 2022-05-31 Roku, Inc. Modifying graphics rendering by transcoding a serialized command stream

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US504391A (en) 1893-09-05 Device for catching oil from crank-pin journals of connecting-rods
US581904A (en) 1897-05-04 Fastening device for shoes or other articles
US631711A (en) 1899-03-17 1899-08-22 Edgar Lee Garvey Motor.
US5043910A (en) * 1985-04-19 1991-08-27 Graphtec Kabushikikaisha Printed circuit board function testing system
US5043919A (en) * 1988-12-19 1991-08-27 International Business Machines Corporation Method of and system for updating a display unit
GB2270581A (en) 1992-09-15 1994-03-16 Ibm Computer workstation
US5381347A (en) * 1992-12-21 1995-01-10 Microsoft Corporation Method and system for displaying images on a display device using an offscreen video memory
US5581670A (en) * 1993-07-21 1996-12-03 Xerox Corporation User interface having movable sheet with click-through tools
US6317115B1 (en) * 1993-12-09 2001-11-13 Canon Kabushiki Kaisha System, apparatus and method in which a high resolution image editor is connected to a host computer for processing low resolution image data
US5481780A (en) * 1994-01-12 1996-01-09 Daneshvar; Yousef Clean air vacuum cleaners
US5734387A (en) * 1994-10-24 1998-03-31 Microsoft Corporation Method and apparatus for creating and performing graphics operations on device-independent bitmaps
US6173043B1 (en) * 1994-10-31 2001-01-09 Worldvoice Licensing, Inc. Telephonic voice message transmission control method
JP3720419B2 (ja) * 1995-06-09 2005-11-30 株式会社東芝 画像処理装置
US6016520A (en) * 1995-07-14 2000-01-18 Microsoft Corporation Method of viewing at a client viewing station a multiple media title stored at a server and containing a plurality of topics utilizing anticipatory caching
US5673401A (en) * 1995-07-31 1997-09-30 Microsoft Corporation Systems and methods for a customizable sprite-based graphical user interface
US6437803B1 (en) 1998-05-29 2002-08-20 Citrix Systems, Inc. System and method for combining local and remote windows into a single desktop environment
US5819042A (en) * 1996-02-20 1998-10-06 Compaq Computer Corporation Method and apparatus for guided configuration of unconfigured network and internetwork devices
US6084600A (en) * 1996-03-15 2000-07-04 Micron Technology, Inc. Method and apparatus for high-speed block transfer of compressed and word-aligned bitmaps
DE19918046B4 (de) * 1998-04-23 2007-02-15 Lg Electronics Inc. Speicherstruktur für Bild-in-Bild-Anzeige bei einer digitalen Videoanzeigeeinheit sowie Verfahren hierfür
EP0959452A3 (de) * 1998-05-23 1999-12-22 Mannesmann VDO Aktiengesellschaft Verfahren zur Darstellung veränderlicher Informationen
US6463459B1 (en) 1999-01-22 2002-10-08 Wall Data Incorporated System and method for executing commands associated with specific virtual desktop
US6697942B1 (en) * 1999-02-04 2004-02-24 Earthlink, Inc. Method for remotely managing a remote device using an electronic mail message
JP2001028763A (ja) 1999-04-29 2001-01-30 Mitsubishi Electric Inf Technol Center America Inc コントローラからビデオ表示ユニットに画像データを転送する方法、ビデオ表示ユニットアダプタ、ビデオ表示システム、並びにテレビ表示画面上への提示のために画像データをダブルバッファリングする方法
US7222150B1 (en) 2000-08-15 2007-05-22 Ikadega, Inc. Network server card and method for handling requests received via a network interface
US7171444B2 (en) * 2001-11-14 2007-01-30 Sharp Laboratories Of America, Inc. Remote desktop protocol compression system
US20030114942A1 (en) * 2001-12-17 2003-06-19 Varone John J. Remote display module
US7376695B2 (en) * 2002-03-14 2008-05-20 Citrix Systems, Inc. Method and system for generating a graphical display for a remote terminal session
US7447997B2 (en) * 2002-05-30 2008-11-04 Microsoft Corporation Reducing information transfer in screen capture series
DE10242919A1 (de) 2002-09-16 2004-03-25 Siemens Ag System zur virtuellen Prozessanbindung über Remote Desktop Protocol (RDP)
US8264489B2 (en) * 2003-07-11 2012-09-11 Intel Corporation Interface remoting
US7966424B2 (en) 2004-03-15 2011-06-21 Microsoft Corporation Data compression
US20050267972A1 (en) 2004-05-25 2005-12-01 Nokia Corporation Lightweight remote display protocol
KR100673599B1 (ko) * 2004-07-20 2007-01-24 에스케이커뮤니케이션즈 주식회사 이동통신 단말기를 통한 모블로그 기반의 지역 커뮤니티 시스템에서 모임 제안 방법
US7614075B2 (en) 2004-08-13 2009-11-03 Microsoft Corporation Dynamically generating video streams for user interfaces
US7590750B2 (en) 2004-09-10 2009-09-15 Microsoft Corporation Systems and methods for multimedia remoting over terminal server connections
US7852342B2 (en) 2004-10-14 2010-12-14 Microsoft Corporation Remote client graphics rendering
US8423673B2 (en) * 2005-03-14 2013-04-16 Citrix Systems, Inc. Method and apparatus for updating a graphical display in a distributed processing environment using compression
US7430681B1 (en) * 2005-03-30 2008-09-30 Teradici Corporation Methods and apparatus for interfacing a drawing memory with a remote display controller
US20060230105A1 (en) 2005-04-06 2006-10-12 Ericom Software B 2001 Ltd Method of providing a remote desktop session with the same look and feel as a local desktop
US20060282855A1 (en) 2005-05-05 2006-12-14 Digital Display Innovations, Llc Multiple remote display system
US7653749B2 (en) 2005-08-31 2010-01-26 Microsoft Corporation Remote protocol support for communication of large objects in arbitrary format
US7991916B2 (en) * 2005-09-01 2011-08-02 Microsoft Corporation Per-user application rendering in the presence of application sharing
US7765483B2 (en) * 2005-09-12 2010-07-27 Microsoft Corporation Filtering obscured data from a remote client display
JP2007241736A (ja) * 2006-03-09 2007-09-20 Victor Co Of Japan Ltd リモートデスクトップシステムのサーバ装置及びクライアント装置
US8159495B2 (en) * 2006-06-06 2012-04-17 Microsoft Corporation Remoting sub-pixel resolved characters
US8140610B2 (en) 2007-05-31 2012-03-20 Microsoft Corporation Bitmap-based display remoting
EP2399380B1 (en) 2009-02-20 2017-05-10 Citrix Systems, Inc. Systems and methods for intermediaries to compress data communicated via a remote display protocol

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8140610B2 (en) 2007-05-31 2012-03-20 Microsoft Corporation Bitmap-based display remoting
US8209372B2 (en) 2007-05-31 2012-06-26 Microsoft Corporation Bitmap transfer-based display remoting
CN108958868A (zh) * 2018-06-30 2018-12-07 深圳市技达信息技术有限公司 显示界面的方法、装置及计算机可读存储介质

Also Published As

Publication number Publication date
JP5264895B2 (ja) 2013-08-14
EP2171606A1 (en) 2010-04-07
US20080301566A1 (en) 2008-12-04
EP2171606A4 (en) 2011-01-19
US20110227935A1 (en) 2011-09-22
JP2010529537A (ja) 2010-08-26
WO2008150709A1 (en) 2008-12-11
US8209372B2 (en) 2012-06-26
EP2171606B1 (en) 2013-03-27
US8140610B2 (en) 2012-03-20
CN101681339B (zh) 2012-07-04

Similar Documents

Publication Publication Date Title
CN101681339B (zh) 基于位图的显示遥控
US20230334111A1 (en) Application remoting across a network using draw commands
US9654586B2 (en) Resource server providing a rapidly changing resource
US8677022B2 (en) Method and apparatus for updating a graphical display in a distributed processing environment using compression
US5608426A (en) Palette management for application sharing in collaborative systems
JP5080554B2 (ja) 代替的グラフィック・セットの効率的な符号化
RU2431185C2 (ru) Поток графики высокого уровня
JP2017168139A5 (ja) 遠隔プロセス実行のためのコンピュータで実現される方法および遠隔プロセス実行のためのシステム
US10558824B1 (en) Application remoting using network vector rendering
JP5236581B2 (ja) 送信装置、その制御方法、プログラム及び情報処理システム
JP2008135035A5 (zh)
CN111258565B (zh) 小程序的生成方法、系统、服务器及存储介质
CN103999052A (zh) 远程进程执行管理
US20020147713A1 (en) Method and system for accessing software-based systems
KR20110069443A (ko) 사용자 인터페이스 가상화에 의한 어플리케이션 서비스 시스템 및 방법
CN106557276A (zh) 存储接管、切换处理方法及装置
Zhou Eager Handlers-communication optimization in Java-based distributed applications with reconfigurable fine-grained code migration
Mauve Protocol Enhancement and Compression for X-Based Application Sharing
CN115904321A (zh) 一种对象创建方法及装置
CN118247401A (zh) 一种图像渲染方法、装置、电子设备及存储介质
CN112702415A (zh) 一种将Kafka长连接消费转换成服务的方法
KR20030016085A (ko) 데이터 서버 운영 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150508

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150508

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.