一种远程桌面系统中的窗口缓存方法

文档序号:7695638阅读:241来源:国知局
专利名称:一种远程桌面系统中的窗口缓存方法
技术领域
本发明涉及到远程桌面系统,特别涉及到远程桌面系统中的窗口高速 緩存方法。
背景技术
以Microsoft RDP 、 Citrix ICA和VNC为代表的远程桌面系统,目前 已经得到了广泛的应用。这一类系统的主要工作方式是将远端服务器的 桌面或者是某个应用界面,通过远程桌面协议,映射到本地客户端来显示, 用户借助计算能力较弱的客户端就可以控制服务器上强大的计算资源。
在远程控制的过程中,考虑到本地客户端与远端服务器之间的网络通 信能力会受到外部条件的限制,且网络通信能力常常会成为制约系统性能 的关键因素,因此在现有的远程桌面系统中,都会用高速緩存来提高系统 的性能。例如,在Microsoft RDP中就使用了两大类高速緩存技术位图 高速緩存(Bitmap Cache )、阴影屏幕高速緩存(Shadow Screen Cache )。
位图高速緩存主要用于对远程桌面中的图像的存储。在位图高速緩存 技术中,每个终端服务器端都保留了 1.5MB的RAM专供位图高速缓存使 用,在终端客户端,位图高速緩存被分为3个较小的单元高速緩存
Cache 0: 16像素x 16像素高速緩存,它用于緩存小型的位图,如工 具栏按钮和小图标。在緩存前,相应的条目被分配成256字节的大小。
Cache 1: 32像素x 32像素高速緩存,它用于緩存中型的位图,如桌 面图标。在緩存前,每个条目被分配成512字节到1024字节的大小。
Cache 2:最大的高速緩存,它包含64像素x 64像素的位图。这是通 用的高速緩存,可以包含被分为较小位图的任何大位图,所分配的位图最 大为4096字节。
每个客户端的上述位图高速緩存都由终端^^务器上的RDP显示驱动程序 (RDPDD)组件来控制,并且在RDP会话初始化期间进行协商。当位图被绘制 在客户屏幕上时,RDPDD将压缩的位图传送到客户,并且告诉客户在哪一个 高速緩存单元中存储该位图。每当该位图需要重新显示时,RDPDD就将通过制定高速緩存编号和客户高速緩存内的单元来引用该位图。客户高速緩存使 用"最近使用"替换算法,因此, 一旦达到了最大的高速緩存大小,将删除 以前未被使用的位图。
RDP中的阴影屏幕高速緩存则主要应用于另一场景大部分用户的 Windows会话都会涉及到单击菜单项目和隐藏部分屏幕图像的向下拉动显 示。每当菜单或者下拉项目被选择以后,阴影屏幕高速緩存可以保留屏幕 堆栈使得终端服务器不必在菜单消失后重新传送被覆盖的背景。例如,当 用户单击Windows Start按钮之后,默认的Start菜单将会一皮显示,并隐 藏它所覆盖的任何桌面元素。当Start菜单撤销时,以前被隐藏部分的桌 面内容需要被更新,这时,阴影位图高速緩存将发挥作用,隐藏在Start 菜单后面的整个屏幕图像都被高速緩存,并且在需要重新显示的时候从 RAM中刷新。
以上是对Microsoft RDP中所采用的緩存技术的说明,在Citrix ICA 中,除了具有位图高速緩存外,还有帮助用户在高延迟的网络环境中得到 更为迅捷流畅的文字llr入和鼠标响应的Speed Screen Latency Reduce (SLR)技术。
从上面的说明可以看出,高速緩存在远程桌面系统中已经有了实际应 用,但这些应用一4殳都只针对某一个特殊场景。比如Microsoft RDP中的 位图緩存只处理远程桌面中的一些图标和静止图片,阴影屏幕緩存只在菜 单或者下拉项目被选择时起作用,SLR则是专门为用户在高延迟网络环境 下的文字输入、鼠标操作而设计。但在远程桌面系统中,还存在这样一个 常见的应用场景窗口之间的互相切换。当用户在几个窗口之间频繁切换 时,由于窗口之间的覆盖关系不断地变化,远程桌面显示系统将会反复传 输这几个窗口的图像界面数据,用户也将不得不忍受由此带来的明显延 迟。现有的技术没有考虑到这种场景,不能在这种场景中优化窗口切换, 提高系统性能。

发明内容
本发明的目的是克服现有的远程桌面系统在窗口互换时无法进行优 化,增加了网络的通信负担这一缺陷,从而提供一种能够在窗口切换时降 低网络通信负担的窗口緩存方法。
为了实现上述目的,本发明提供了一种远程桌面系统中的窗口緩存方法,包括
步骤l)、用户发出窗口切换命令;
步骤2 )、在客户端与服务器端占据焦点的第一窗口的内容被分别存储 到客户端和服务器端的緩存;
步骤3)、位于服务器端后台,且所述窗口切换命令所要切换的第二窗 口占据焦点,然后计算所述第二窗口在服务器端后台的变化量,在所述客 户端将所述第二窗口的变化量与在所述客户端緩存中的第二窗口相结合, 所得到的结果占据所述客户端的屏幕焦点。
上述技术方案中,在所述的步骤3)中,所述第二窗口的变化量由所 述服务器端后台的第二窗口的当前内容与存储在所述服务器端缓存中的 第二窗口内容之间进行差异计算得到。
上述技术方案中,在所述的步骤3)中,将所述第二窗口的变化量与 在所述客户端緩存中的第二窗口相结合包括用所述的变化量替换所述客 户端緩存中的第二窗口的相应内容。
上述技术方案中,在所述的步骤2)中,所述服务器端首先在緩存中 存储所述第一窗口的内容,然后向客户端发出指令,由所述客户端在其緩 存中存储所述第一窗口的内容。
本发明的优点在于本发明利用在服务器后台的窗口发生变化的可能 性较小这一规律,在客户端和服务器的緩存中分别存储窗口内容,当窗口 被重新切换到屏幕时,服务器端只传输窗口的变化量,从而提高了窗口切 换的响应速度,减少了数据传输量。


以下,结合附图来详细i兑明本发明的实施例,其中 图1为本发明的窗口緩存方法的原理示意图; 图2为本发明的窗口緩存方法的详细流程图。
具体实施例方式
下面结合附图和具体实施方式
,对本发明做进一步的说明。 在一个远程桌面系统中,存在一个客户端和一个服务器端,用户通过 客户端对服务器端的远程桌面进行控制。在客户端和服务器端存在各自的 緩存。假设用户打开了两个窗口,分别为窗口A和窗口B,用户在之后的操作中需要在A和B之间进行来回切换。在每一次切换中,都会有一个窗 口获取到桌面焦点,另一个窗口失去焦点且被遮盖。 假定给出以下操作序列
1、 远程桌面一开始时由窗口 A占据焦点,并且全屏显示;
2、 用户在客户端发出窗口切换命令,服务器端将窗口切换到B,然 后将B的全部界面数据传送到客户端,在客户端的屏幕上,窗口 B占据焦 点;
3、 用户再次在客户端发出窗口切换命令,使得服务器端的屏幕的焦 点由窗口 B切换到窗口 A,服务器将窗口 A的界面数据全部传送到客户端, 使得客户端的屏幕上窗口 A再次占据焦点。
利用现有技术实现上述操作序列的过程中,随着每一次窗口的切换, 服务器都必须完整地将新获取到焦点的窗口的界面数据传送到客户端,换 而言之,每一次窗口切换都会带来整个显示屏幕内全部图像的更新。远程 显示桌面系统现有的各种高速緩存技术均无法作出优化,使得每一次窗口 切换都会形成相当大的网络流量,由此带来明显的图像刷新延迟。
在本发明中,考虑到在窗口切换的过程中,位于后台的窗口不能接收 来自于用户的输入操作,发生变化的可能性较小。因此,可以将位于后台 的窗口在客户端存储为緩存,当下一次调用该窗口时,将从服务器端接收 该窗口的变化量,并将变化量与客户端所緩存的窗口相结合,从而得到最 新的窗口。由于后台窗口的变化量较小,所以采用本发明的远程显示系统 所传输的变化量也较小。最坏的情况,也就是重传整个窗口 A界面而已, 与不使用本发明的情况是一样的,不会对系统带来负面影响。在下文中, 将对相关操作的具体实现过程进行说明。
采用本发明的方法后,由于在客户端和服务器端都采用了相应的緩 存,参考图l,前述的操作序列转换为
1 、远程桌面一开始时由窗口 A占据焦点,并且全屏显示,緩存为空。
2、 用户在客户端发出窗口切换命令,服务器端接收到该命令后,将占 据服务器端的当前界面的窗口 A的内容保存在服务器端的緩存中,然后将服 务器端当前界面切换为窗口 B,由于在客户端緩存中关于B的内容为空,因 此服务器端需要将窗口 B的全部界面数据传送到客户端,窗口 B占据客户端 的当前界面。
3、 用户在客户端再次发出窗口切换命令,使得窗口 A再次被切换到屏
6幕的焦点。服务器端接到该命令后先将占据服务器端当前界面的窗口 B存储 到服务器端緩存,然后从后台调出窗口 A的内容,由于A在服务器的后台期 间,界面内容可能出现变化,所以将这时的窗口 A标记为A,,计算A,与保 存在服务器端緩存中的窗口 A之间的变化量,将该变化量传送给客户端;客 户端接收到窗口切换命令后,从客户端緩存中取出窗口 A的内容并显示到客 户端的当前界面上,客户端收到服务器端发出的变化量后,将变化量与窗口 A的内容相结合,最后在客户端的当前界面上显示。
在上述的窗口切换过程中,在客户端和服务器端的缓存中各自存储失 去焦点的窗口界面,当存储在緩存中的窗口再次被切换到焦点后,在服务 器端计算即将获取焦点的窗口界面与其对应緩存中所存储的窗口间的更
新数据,在网络传输过程中只需要传输这些更新数据,而不需要对整个窗 口界面进行传输。在远程显示系统中用这种方法,可以提高窗口切换时的 相应速度,并减少数据传输量。
在图2中对上述步骤的具体实现流程进行了说明。从图2中可以看出, 在各个时刻应当完成下列操作
a、 在t0时刻,服务器端的远程桌面由窗口 A占据焦点,并且全屏
显示;
b、 在tl时刻,由用户在客户端发起窗口切换命令,使得客户端和服 务器端桌面的窗口切换到B,在客户端的屏幕上,B占据焦点;
c、 在t4时刻用户再次在客户端发出窗口切换命令,使得客户端和服 务器端桌面的窗口切换到A, A占据焦点。
在上述操作过程中,客户端緩存、服务器端緩存、客户端桌面、服务 器端桌面等都会有相应的变化,为了方便理解,在图中列出了7个对象的 变化情况客户端緩存、服务器端緩存、客户端桌面、服务器端桌面、客 户端动作、服务器端动作和数据传输。其中,采用了如A(t0)的形式来表 达緩存或者桌面在t0时刻的当前状态。
在上述对象中,客户端緩存和服务器端緩存是窗口高速緩存的关键组 成部分。每一个窗口都有自己单独的窗口緩存,均存放在客户端/服务器端 磁盘上。在用户进行窗口切换之时,窗口高速緩存机制暂停窗口切换动作, 完成对旧窗口界面的存储,然后才继续窗口切换。在图l中分别记录了随 着时间推进,客户端緩存和服务器端緩存的当前状态。
客户端/服务器端桌面,分别代表着客户端/服务器端的桌面界面状态。数据传输,代表着某一时刻会有哪些数据通过网络在服务器端和客户 端之间传输。所传输的数据主要有三类,即鼠标/键盘动作、图像传输和緩 存存储指令传输。客户端/服务器端动作,使用"动作+数字"的方式来表示在某个时刻窗口高速缓存系统所做的操作。下面将按照顺序——说明[动作l]在tl时刻,用户使用鼠标/键盘(键盘或鼠标)来发起一次窗 口切换动作。这个鼠标/键盘动作被远程显示系统的客户端所得知,并传送 给服务器端。[动作2]服务器端在接收到鼠标/键盘动作以后,判断出这个动作会引 起窗口切换。这时暂停窗口切换,进入动作3。[动作3]服务器端存储窗口 A的当前状态A(t2)到服务器端緩存,并 向客户端发送一个緩存存储指令,要求客户端存储窗口 A的当前状态到客 户端緩存。[动作4]客户端接收到了緩存存储指令,在本地存储窗口 A的当前状 态A(t2)。[动作5]服务器端继续窗口切换动作,这时焦点切换到窗口 B,由于 B目前没有緩存,所以将B(t3)全部发送给客户端。[动作6]客户端接收到B(t3)数据,更新界面,使得客户端的桌面变为 B(t3)。[动作7]在t4时刻,用户使用鼠标/键盘来发起一次窗口切换动作。这 个鼠标/键盘动作被远程显示系统客户端所得知,并传送给服务器端。[动作8]服务器端在接收到鼠标/键盘动作以后,判断出这个动作会引 起窗口切换。这时暂停窗口切换,进入动作9。[动作9]服务器端存储窗口 B的当前状态B(t5)到服务器端緩存,并向 客户端发送一个緩存存储指令,要求客户端存储窗口 B的当前状态到緩 存。[动作IO]客户端接收到了緩存存储指令,在本地存储窗口 B的当前状 态B(t5)。[动作ll]由于客户端緩存中已经有属于窗口 A的A(t2)存在,所以客 户端预读A(t2),并且显示到屏幕上。[动作12]服务器端继续窗口切换动作,这时焦点切换到窗口A,由于 A目前有缓存A(t2),所以服务器将进行计算,将A(t7)-A(t2)发送给客户端,即当前窗口 A界面与緩存中A界面的变化量。[动作13]客户端接收到A(t7)-A(t2),将这部分变化量显示到屏幕已有 的A(t2)上,即可得到A(t7)的界面,和服务器端保持了一致。在本步骤的 显示过程中,主要是将变化量A(t7)-A(t2)的内容替换A(t2)中的相应内容。 最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。 尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理 解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案 的精神和范围,其均应涵盖在本发明的权利要求范围当中。
权利要求
1、一种远程桌面系统中的窗口缓存方法,包括步骤1)、接收用户发出的窗口切换命令;步骤2)、在客户端与服务器端占据焦点的第一窗口的内容被分别存储到客户端和服务器端的缓存;步骤3)、位于服务器端后台,且所述窗口切换命令所要切换的第二窗口占据焦点,然后计算所述第二窗口在服务器端后台的变化量,在所述客户端将所述第二窗口的变化量与在所述客户端缓存中的第二窗口相结合,所得到的结果占据所述客户端的屏幕焦点。
2、 根据权利要求1所述的远程桌面系统中的窗口緩存方法,其特征 在于,在所述的步骤3)中,所述第二窗口的变化量由所述服务器端后台 的第二窗口的当前内容与存储在所述服务器端緩存中的第二窗口内容之间进行差异计算得到。
3、 根据权利要求1所述的远程桌面系统中的窗口緩存方法,其特征 在于,在所述的步骤3)中,将所述第二窗口的变化量与在所述客户端緩 存中的第二窗口相结合包括用所述的变化量替换所述客户端緩存中的第二窗口的相应内容。
4、 根据权利要求1所述的远程桌面系统中的窗口緩存方法,其特征 在于,在所述的步骤2)中,所述服务器端首先在緩存中存储所述第一窗 口的内容,然后向客户端发出指令,由所述客户端在其緩存中存储所述第 一窗口的内容。
全文摘要
本发明提供一种远程桌面系统中的窗口缓存方法,包括用户发出窗口切换命令;在客户端与服务器端占据焦点的第一窗口的内容被分别存储到客户端和服务器端的缓存;位于服务器端后台,且所述窗口切换命令所要切换的第二窗口占据焦点,然后计算所述第二窗口在服务器端后台的变化量,在所述客户端将所述第二窗口的变化量与在所述客户端缓存中的第二窗口相结合,所得到的结果占据所述客户端的屏幕焦点。本发明提高了窗口切换的响应速度,减少了窗口切换时的数据传输量。
文档编号H04L29/06GK101308449SQ20081011632
公开日2008年11月19日 申请日期2008年7月8日 优先权日2008年7月8日
发明者孙毓忠, 忠 李 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1