高速缓存方法

文档序号:7740020阅读:335来源:国知局
专利名称:高速缓存方法
技术领域
本发明涉及高速缓存方法,并且特别涉及用于弱功能(thin)客户机服务器计算机系统的高速缓存方法。
背景技术
弱功能客户机服务器计算机系统是其中计算机应用程序安装在服务器设备上而不安装在客户设备上的计算机系统。允许客户设备利用弱功能客户机显示协议(也称为远程帧缓冲技术)远程运行这些应用程序。该弱功能客户机显示协议是计算机程序,包括装载在服务器设备上的一部分和装载在客户设备上的另一部分。客户程序是所谓的弱功能程序,因为它具有小的码尺寸并因而要求相对少的客户设备的资源(存储器和处理能力)。此系统允许相对简单的、便宜的客户设备接入非常强大的服务器服务。
一个这样的弱功能客户机显示协议是虚拟网络计算(VNC)并且包括彼此通信的弱功能服务器程序“VNC服务器”和弱功能客户程序“VNC浏览器(VNC viewer)”,因此客户设备传送命令给服务器设备,该服务器设备在所谓的更新区域中处理这些命令并且生成更新信息或帧缓冲数据。这是客户设备上屏幕更新所必需的基本单元,它可以采取视窗的形式。更新区域被从服务器设备传送到弱功能客户设备。有效地,该协议的显示侧命令客户设备将长方形的像素数据放在客户机屏幕上的给定x,y位置上。
弱功能客户机服务器的计算机系统具有的问题是具有在服务器和客户设备之间传送的相当大的数据量,并且这能够在系统中导致延迟,特别地在从该服务器设备检索数据的客户设备中导致延迟。
对于不同的数据码型,使用不同的编码算法并且也通过目标认知高速缓存方法(object aware cache method),已获得从弱功能服务器到弱功能客户机的更有效的帧缓冲数据的传输,诸如在1996年3月16日由Citrix Systems的“Independent Computing ArchitectureTechnical Paper”和Adaptive Internet Protocol(自适应网际协议)中所描述的。但是,这些方法是软件平台相关的,并因而取决于在计算机上运行的操作系统,如果不修改是无法普遍采用的。诸如VNC的非目标认知协议是优选的。
为了在因特网环境中在设备之间更有效的通信,已经提出了高速缓存方法,但是这些方法不能容易地应用到弱功能客户机服务器系统,因为因特网和弱功能客户机服务器计算机系统的特性是完全不同的。例如,代理服务器上的高速缓存减少了接入到环球信息网(WorldWide Web)的感觉到的响应时间。它们选择用于高速缓存的文件的子集,但是必须采取额外的步骤以保持高速缓存文件的一致性。

发明内容
本发明的一个目的是改进弱功能客户机服务器计算机系统的效率以及加速数据传送。本发明由独立权利要求来限定;从属权利要求定义有利的实施例。
最好,消息包括标题,所述标题包括含有相应于命令“高速缓存”、“未高速缓存”、“已高速缓存”(cached)之一的指示的高速缓存指示字段和包含高速缓存地址的序列识别字段,高速缓存地址诸如匹配键码(key)的地址或者合适的新地址。
键码包括压缩的编码的更新-显示数据的码字的组合长度。压缩编码最好利用离散余弦变换(DCT),特别是利用2D-DCT,将数据从空间域转移到频域。
一个实施例还包括例如通过JPEG编码和熵编码来量化该数据。
根据本发明的优选实施例,检查编码数据的尺寸,例如,该编码数据的高度和宽度的维数,如果该尺寸小于预定级别,则不进行高速缓存。尺寸还可以用作初步比较步骤。如果发现键码之间的对应关系,则由客户设备显示在本地已高速缓存的数据。如果发现一个以上的对应关系,则比较码字。如果已从客户设备中丢失数据,则可以发回一个重发消息给服务器设备。
利用在服务器中进行的比较以及用于每个更新区域以简化计算的帧内编码,本发明能够提供方便的、快速的和相对经济有效的方式来滤除非侯选区域。


为了更好地理解本发明和表示如何可以实施本发明,现在将参考附图,其中
图1是应用于弱功能客户机服务器计算机系统的服务器和客户机的本发明方法的流程图;图2是说明为图1的方法生成区域键码的方法的流程图;图3是在图2的区域键码生成中数据块压缩的示意示例;图4表示与图1-3的方法一起使用的消息格式;图5说明对于第一种实例情况的本发明方法的一部分;图6说明对于第二种实例情况的本发明方法的一部分;图7说明对于第三种实例情况的本发明方法的一部分;图8说明本发明方法的一个示例;图9说明本发明方法的另一个示例。
具体实施例方式
在图1的流程图中,运行弱功能服务器程序。这是典型“VNC服务器”,但是其它类似的程序也是有效的。进行下列步骤在服务器SE中A.更新-显示数据或者更新区域具有高度H和宽度W并且表示为源数据1。
B.编码源数据1,以生成码字,如将结合图2和3所述的。
C.检查编码的源数据的宽度和高度。
D.如果宽度和高度小于阈值,则消息标题的高速缓存字段被设置为“未高速缓存”(如果更新非常小,从高速缓存中没有获得益处。)。
这个情形表示在图5中,如将在稍后描述的。
E.序列识别SID被设置为空(NULL)并且随后发送更新消息给客户机,参见在下面叙述的步骤P。
G.如果宽度和高度大于阈值,则消息标题的高速缓存字段被设置为“高速缓存”。
这个情形表示在下面描述的图6中。
H.区域键码RKEY代表通过组合码字的尺寸、使用下面相对于图2叙述的方法生成的数据/图像特征标记(signature)。
I.服务器随后检查以前是否已经高速缓存任何更新的区域以及高速缓存区域的宽度和高度是否匹配更新的区域。
J.如果在那之前未高速缓存更新的区域,则服务器将获得下一个可用的序列识别SBD,而且相应地通过在消息标题中设置SID字段和设置消息标题的高速缓存字段为“高速缓存”来格式化将发送给客户机的消息。
K.服务器保持消息(包括SID、RKEY和压缩数据的码字)的副本,并且传送该消息给客户机,参见下面的步骤P。
L.如果在那之前已高速缓存了更新的区域,则在服务器相对匹配高速缓存键码检查RKEY时将意识到此。
M.如果没有识别匹配区域键码RKEY,则重复步骤J,并且利用代表更新区域的压缩数据将新消息发送给客户机。
N.如果只发现一个匹配,则高速缓存字段被设置为“已高速缓存”并且相应的SID被发送给客户机,而不发送压缩数据的码字。
这表示在下面将描述的图7中。
O.如果发现一个以上的区域键码RKEY匹配,则将压缩数据的新码字与在本地高速缓存器中的码字进行比较,并且在识别匹配码字时,将高速缓存字段设置为“已高速缓存”,而且发送该相应的SID而不发送压缩数据的码字。
P.从服务器中发送该消息。
在客户机CL中Q.由客户机接收该消息。
R.客户机首先检查该消息的高速缓存字段,以确定是否高速缓存这个更新的区域。
S.如果高速缓存字段被设置为“高速缓存”,客户机保持更新区域的码字的副本并且解码码字,而且移到步骤V。
T.如果高速缓存字段被设置为“不高速缓存”,则客户机解码该消息中的码字,但是不保存它,并且移到步骤V。
U.如果高速缓存字段被设置为“已高速缓存”,则客户机从客户机高速缓存中检索高速缓存的码字并且解码这些码字,而且移到步骤V。
V.显示解码的更新区域。
在图2的上部使用编码表示从更新的区域源数据1中生成区域键码6,而图2的下面部分表示编码数据的后续解码。源数据1(即,代表更新区域特征标记的数据或者图像)通过正向离散余弦变换FDCT 2进行压缩并且在3进行量化。然后在4对它进行熵编码并且在5组合这些码字的尺寸以生成键码6。然后将此复制到服务器的高速缓冲存储器7,并将序列识别指示符8递增1。这表示在图1的顶部。
在9通过熵解码在适当时候解码该数据,在10去量化,并且在11解压缩,以形成解码数据12。每次递增序列生成器13,以指向高速缓存14的不同位置。
图3表示原始的源图像数据的编码,原始的源图像数据被分组为块31,包括在8×8格栅(grid)中的64个两位数的格栅。正向DCT处理过程用于将该块解压缩为64个正交信号(称为DCT系数(coefficient))。一个系数在两维中具有零频率,并且这被称为DC系数。其它的63个系数是AC系数。在丢弃视觉上无意义的信息和量化以及熵处理之后,结果是压缩的码字32,包括总数为35比特的一串二进制字。在对于源图像使用8比特压缩的这个例子中,压缩比率大约是15∶1。
图4代表从服务器传送到客户机的消息的格式。它具有由高速缓存字段21(“高速缓存”,“不高速缓存”或者“已高速缓存”)和序列识别字段SID 22形成的消息标题20。它还具有消息字段23,包括压缩消息的码字。
图5说明在服务器命令“不高速缓存”时的情况下图4的消息的组成。这个组成例如可能在更新区域的维数低于阈值时出现,以使得它不值得高速缓存。在标题中高速缓存字段21被设置为“不高速缓存”和SID字段22被设置为“空”,并且压缩码字附加在消息字段23中。
图6说明在服务器命令“高速缓存”时的情况下图4的消息组成。
这个组成在更新区域的维数高于该阈值时出现。在标题中高速缓存字段21被设置用于“高速缓存”和SID字段22被设置为“N”,并且压缩码字附在消息字段23中。
图7说明在服务器命令“已高速缓存”时的情况下图4的消息组成。
在这种情况下,消息标题20包括高速缓存字段21中的指示“已高速缓存”和SID字段22中的“M”,并且不附上压缩码字,因为在这个情形下它们可以在客户设备上从本地高速缓存中进行检索,因此节省服务器和客户机之间的传输频带宽度并且改进系统的速度和效率。
图8说明在时间线上系统如何对由图5至7表示的每一种情况作出反应。
在服务器设备中生成第一更新区域数据1a,和在①中维数低于阈值,并且服务器命令“不高速缓存”。生成图5中所示的消息并且通过计算机网络将此消息发送给客户设备,而且相应地在客户机显示器上显示更新区域。这个情况标记为实例I。
短时间之后生成第二更新区域数据1b。更新区域1b的维数高于阈值,并且区域键码RKEY被生成以及与服务器的高速缓存缓冲器的内容进行比较(参见图2中的7)。这个情况表示为②。在⑦,以前未高速缓存,并因此将消息“高速缓存”与该数据一起发送给客户机。这个情况标记为实例II。在④,在高速缓存7中找到相应健码。检索SID并且在带有适当SID但是没有该数据的消息中将消息“已高速缓存”发送给客户设备,以节省传输空间与时间。这个情况标记为实例III。
典型地SID号码从1至999循环,以节省存储器空间,同时保证存储最新的更新区域数据。
如果只有两个高速缓存缓冲器是可用的,则图9的情形适用并且保持循环表以高速缓存最近2个更新区域。例如,消息A是情况II消息“高速缓存”(因为没有以前的高速缓存)。因此高速缓存缓冲器14在第一高速缓存位置25中存储A。然后生成消息B,并且这是实例I消息“不高速缓存”,因此不存储B,而且第二高速缓存位置26是空的。消息C是另一个实例II消息“高速缓存”,并因此现在C存储在高速缓存位置26中。消息D也是实例II,并因此D代替位置25中的A。
随后又接收消息C,这是实例III消息“已高速缓存”,因为服务器检测到与已高速缓存的消息C相对应。因此,给客户设备的消息包括用于位置26的SID,以便从本地高速缓存14中检索相应的数据。同样地,在重发消息D时,找到对应关系并且实例III消息命令客户机从本地高速缓存缓冲器14中检索位置25中的数据。
应该注意,上述实施例说明而不是限定本发明,并且本领域的技术人员将能够设计许多替代实施例而不偏离所附权利要求书的范围。在权利要求书中,放置在括弧中的任何参考记号不应该解释为限制权利要求。单词“包括”不排除在权利要求中列出的单元或者步骤之外的单元或者步骤的存在。在单元前的单词“一个”不排除存在多个这样的单元。本发明能够利用包括几个不同的单元的硬件来实现,并且能够利用适当编程的计算机来实现。在列举几个装置的设备权利要求中,这些装置之中的几个装置能够利用同一个硬件产品来实现。唯一的事实是在互相不同的从属权利要求中叙述了某些措施手段,这并不表明这些措施手段的组合不能有利使用。
权利要求
1.一种从弱功能服务器设备向弱功能客户设备发送更新-显示数据的方法,所述方法包括以下步骤生成代表将要发送的新的更新-显示数据(1)的键码(6);比较新生成的键码与先前生成的一个键码或多个键码;和编辑将发送给客户设备的消息,其中根据比较步骤的结果来设置所述消息,以便向客户设备识别是否已高速缓存、将高速缓存或将不高速缓存所述更新-显示数据(1)。
2.根据权利要求1的方法,其中所述消息包括标题(20),所述标题(20)包括高速缓存指示字段(21)和序列识别字段(22)。
3.根据权利要求2的方法,其中所述高速缓存指示字段包含相应于以下多个命令之一的指示“高速缓存”;“不高速缓存”和“已高速缓存”,并且所述序列识别字段(22)包括高速缓存地址。
4.根据权利要求3的方法,其中当所述命令是“已高速缓存”时,所述高速缓存地址是匹配键码的地址。
5.根据权利要求3的方法,其中当所述命令是“高速缓存”时,所述高速缓存地址是新地址。
6.根据权利要求1的方法,其中通过变换编码所述更新-显示数据(1)来生成所述键码。
7.根据权利要求6的方法,其中所述键码包括编码的更新-显示数据(1)的所有码字的组合长度。
8.根据权利要求2的方法,还包括以下初始步骤检查所述更新-显示数据(1)的尺寸;和在所述更新-显示数据(1)的尺寸小于预定值时,将所述高速缓存指示字段设置为“不高速缓存”。
9.根据权利要求1的方法,其中所述比较步骤还包括首先比较新的更新-显示数据(1)的尺寸和已高速缓存的更新-显示数据的尺寸。
10.根据权利要求8的方法,其中所述更新-显示数据(1)的尺寸包括所述数据(1)的宽度和高度。
11.根据权利要求1的方法,还包括以下步骤如果在高速缓存数据中识别一个以上的匹配键码,比较新的更新-显示数据(1)与已高速缓存的更新-显示数据的码字。
12.根据权利要求2的方法,其中如果序列识别字段(22)标记从客户机存储器中丢失数据,所述客户设备发送传送码字消息给所述服务器。
13.一种弱功能客户机服务器计算机系统,适于执行权利要求1的方法。
14.一种计算机软件,用于允许处理器执行权利要求1的方法。
15.一种数据载体,包括根据权利要求14的计算机软件。
16.一种计算机系统,包括服务器设备,具有高速缓冲存储器;序列识别发生器,用于识别高速缓冲存储器地址;源数据编码器;键码发生器,用于生成代表编码的源数据的键码;比较器,用于比较生成的键码与一个或多个已高速缓存的键码;消息发生器,链接到所述比较器,用于根据所述比较器的输出来生成不同的消息;发射机,用于发送消息给客户设备;所述客户设备具有接收机,用于从服务器接收消息;高速缓冲存储器;消息阅读器;和显示器。
全文摘要
一种从弱功能服务器设备向弱功能客户设备发送更新-显示数据(1)的方法,该方法包括以下步骤生成代表将发送的新的更新-显示数据(1)的(短)键码;比较新生成的键码与先前生成的一个键码或者多个键码;编辑将发送给客户设备的消息;该消息包括标题和代表更新-显示数据的码字,其中该标题根据比较步骤的结果进行设置,以便向客户机识别是否已高速缓存、将高速缓存或将不高速缓存该更新-显示数据。最好使用DCT编码。使用这种方法的弱功能客户机服务器计算机系统更快并且更有效。
文档编号H04N7/24GK1547851SQ02816722
公开日2004年11月17日 申请日期2002年8月16日 优先权日2001年8月27日
发明者M·-C·陈, C·-F·霍, M -C 陈, せ 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1