用于提供多模式传输层压缩的系统和方法

文档序号:8322270阅读:271来源:国知局
用于提供多模式传输层压缩的系统和方法
【专利说明】
[0001] 本申请是申请号为200780036778. 6、申请日为2007年8月2日、发明名称为"用 于提供多模式传输层压缩的系统和方法"的申请的分案申请。
技术领域
[0002] 本发明主要涉及数据通信网络。具体地,本发明涉及用于通过相同传输层连接发 送压缩和未压缩内容到客户端的系统和方法。
【背景技术】
[0003] 在客户端和服务器之间网络通信期间,提供压缩数据给一些意识到压缩的浏览 器,例如压缩的超文本标记语言(HTML)数据。但是,一些浏览器存在处理压缩格式的一些 内容方面的问题。例如,MicrosoftInternetExplorer浏览器被设计成处理压缩的、多文 本格式内容或压缩的MicrosoftPowerPoint内容,而其它浏览器不是这样。在一个实例中, 具有MacromediaFlashPlayer插件的一些版本的浏览器不处理压缩的纯文本。在另一实 例中,一些版本的Netscape(网景)浏览器不处理压缩的java脚本。在另一示例中,一些 浏览器不处理压缩的KHTML,其是从开放源KHTML引擎所产生的HTML。在又一示例中,一些 浏览器不处理压缩的层叠样式表(CSS),例如Netscape版本4. 0。
[0004] 解决浏览器的压缩问题的一种方式是对于某类型的浏览器不进行内容压缩。但 是,这种方式的不利之处在于不能获得压缩益处,例如加速客户端和服务器之间的通信或 改善对用户的响应时间。放弃对发送到浏览器的内容进行压缩,将错失由压缩大量内容来 加速通信的机会。未压缩的大量内容可减慢网络通信或影响用户浏览该内容或与该内容进 行交互的感受。
[0005] 因此,期望提供用于将压缩和未压缩内容都发送到客户端的系统和方法。

【发明内容】

[0006] 本发明提供一种用于以不依赖于设备的压缩能力的方式来发送压缩和未压缩内 容到应用的解决方案。此处描述的该设备提供为在客户端和服务器之间的同一传输层连接 上传输压缩和未压缩的内容。该设备发送压缩的内容到客户端代理,客户端代理解压缩该 内容并提供未压缩内容给客户端上的应用。该设备能够以不依赖于客户端上的应用和/或 服务器上的应用的压缩能力或压缩意识(awareness)的方式加速或提高客户端和服务器 之间的内容传送或网络通信传输的速度。另外,该设备能够基于压缩策略和/或诸如IP层 信息、协议、或通信的对象的内容或类型的与通信相关的信息来应用多个压缩技术之一到 网络通信。
[0007] -方面,本发明涉及一种用于在由设备在客户端和服务器之间建立的传输层连接 上对压缩和未压缩内容进行通信的方法。该方法包括在客户端和服务器之间由设备建立传 输层连接。该设备接收来自该服务器的、对第一客户端请求的第一响应,和接收来自该服务 器的对第二客户端请求的第二响应。该第一响应和该第二响应包括未压缩数据。该设备发 送该第一响应到该客户端。该方法包括由该设备从多个压缩类型中识别第一压缩类型,用 于压缩对该客户端的该第二响应。基于所识别的压缩类型,压缩该第二响应,并发送所压缩 的第二响应到该客户端。
[0008] 在一个实施例中,该方法包括由该设备确定包括在该第一响应或该第二响应之一 中的对象的类型。在另一个实施例中,该方法包括由该设备基于该对象的类型来识别该压 缩类型用于压缩该第二响应。在一些实施例中,该方法包括通过该设备配置识别与该对象 的类型相关的压缩类型的规则。在其它实施例中,该设备基于该第二响应的协议来识别该 压缩类型用于压缩该第二响应。在另一个实施例中,该设备基于压缩策略识别该压缩类型 用于压缩该第二响应。在一些实施例中,该压缩类型包括下述之一:gzip压缩、deflate压 缩和delta压缩。
[0009] 在其它实施例中,该方法包括对于对该客户端的第三响应、由设备从该多个压缩 类型中识别第二压缩类型,基于该第二压缩类型来压缩该第三响应,并将所压缩的第三响 应发送到该客户端。在另一个实施例中,该方法包括对于对第二客户端的第三响应、由设备 从该多个压缩类型中识别第二压缩类型,基于该第二压缩类型压缩该第三响应,并将所压 缩的第三响应发送到该第二客户端。
[0010] 在一个实施例中,该方法由该设备经由在该客户端和该服务器之间的该传输层连 接建立加密套接字协议层(SSL)会话。在另一个实施例中,该方法包括由该设备使用下述 技术中的一个或多个来加速该第一响应或该压缩的第二响应之一的传输:传输控制协议 (TCP)连接池、TCP连接多路复用、TCP缓冲和高速缓存。
[0011] 本发明的各种实施例的细节在附图和下列描述中阐述。
【附图说明】
[0012] 通过参见结合附图的以下描述,本发明的前述和其它目的、方面和优点将会更加 明显并更易理解,其中:
[0013] 图1A是客户端经由设备访问服务器的网络环境的实施例的框图;
[0014] 图1B是用于经由设备从服务器到客户端传送计算环境的环境的实施例的框图;
[0015] 图1C和1D是计算装置的实施例的框图;
[0016] 图2A是用于处理客户端和服务器之间的通信的设备的实施例的框图;
[0017] 图2B是用于优化、加速、负载平衡和路由客户端和服务器之间的通信的设备的另 一实施例的框图;
[0018] 图3是用于经由设备与服务器通信的客户端的实施例的框图;
[0019] 图4是用于提供如此处所述的多模式压缩的设备的实施例的框图;和
[0020] 图5是描述用于实现多模式压缩的方法的实施例的步骤的流程图。
[0021] 从如下面阐述的结合附图的详细描述中,本发明的特征和优点将变得更加明显, 其中相同的参考标记在全文中表示相应的元件。在附图中,相同的附图标记一般表示同一、 功能类似、和/或结构类似的元件。
【具体实施方式】
[0022] A.网络和计筧环培
[0023] 在讨论设备和/或客户端的系统和方法的实施例的细节之前,讨论此实施例所布 署的网络和计算环境是有帮助的。现在参考图1A,描述网络环境的实施例。概括来讲,网络 环境包括经由一个或多个网络104,104'(一般指网络104)与一个或多个服务器106a- 106n(同样一般指服务器106,或远程机器106)通信的一个或多个客户端102a- 102n(同 样一般指本地机器102,或客户端102)。在一些实施例中,客户端102经由设备200与服务 器106通信。
[0024] 虽然图1A示出了客户端102和服务器106之间的网络104和网络104',客户端 102和服务器106可以位于相同的网络104上。网络104和104'可以是相同类型的网络或 不同类型的网络。网络104和/或网络104'可以是诸如企业内部网的局域网(LAN),城域 网(MAN)或诸如因特网或万维网的广域网(WAN)。在一个实施例中,网络104'可以是专用 网络且网络104可以是公用网络。在一些实施例中,网络104可以是专用网络且网络104' 是公用网络。在另外的实施例中,网络104和104'可以都是专用网络。在一些实施例中, 客户端102可以位于公司企业的分支机构,经由网络104上的WAN连接与位于公司数据中 心的服务器106通信。
[0025] 网络104和/或104'是任意类型和/或形式的网络,且可包括任意下述网络:点 对点网络、广播网络、广域网、局域网、电信网络、数据通信网络、计算机网络、ATM(异步传输 模式)网络、SONET(同步光纤网络)网络、SDH(同步数字体系)网络、无线网络和有线网 络。在一些实施例中,网络104可包括无线链路,诸如红外信道或卫星频带。网络104和/ 或104'的拓扑可以是总线型、星型或环型网络拓扑。网络104和/或104'以及网络拓扑 可以是本领域普通技术人员公知的、能够支持此处所述的操作的任意这样的网络或网络拓 扑。
[0026] 如图1A所示,设备200示出在网络104和104'之间,设备200也可被称为接口单 元200或网关200。在一些实施例中,设备200可位于网络104上。例如,公司分支机构可 布署设备200于该分支机构处。在其它的实施例中,设备200可位于网络104'上。例如, 设备200可以位于公司的数据中心。在又另外一些实施例中,多个设备200可布署在网络 104上。在一些实施例中,多个设备200可布署在网络104'上。在一个实施例中,第一设备 200与第二设备200'通信。在其它实施例中,设备200作为客户端102可以是位于同一或 不同网络104、104'的任一客户端102或服务器106的一部分。一个或多个设备200可以 位于客户端102和服务器106之间的网络或网络通信路径中的任一点。
[0027] 在一个实施例中,系统可包括多个逻辑分组的服务器106。在这些实施例中,服务 器的逻辑分组可被称为服务器群组38。在其中一些实施例中,服务器106可以是地理分散 的。在一些情况中,群组38可以作为单个实体被管理。在其它实施例中,服务器群组38包 括多个服务器群组38。在一个实施例中,服务器群组执行代表一个或多个客户端102的一 个或多个应用。
[0028] 每个群组38中的服务器106可以是不同种类的。一个或多个服务器106可根据一 种类型的操作系统平台(例如,由Washington,Redmond的Microsoft公司制造的WINDOWS NT)操作,而一个或多个其它服务器106可根据另一类型的操作系统平台(例如,Unix或 Linux)操作。每个群组38的服务器106不需要与相同群组38中的另一服务器106物理 上接近。这样,逻辑分组作为群组38的服务器106的组可以使用广域网(WAN)连接或中等 区域网络(MAN)连接来互相连接。例如,群组38可包括物理地位于不同大陆或大陆、国家、 州、城市、校园或房间的不同区域的服务器106。如果服务器106使用局域网(LAN)连接或 一些形式的直接连接进行连接,群组38中的服务器106间的数据发送速度可增加。
[0029] 服务器106可指文件服务器、应用服务器、web服务器、代理服务器或网关服务 器。在一些实施例中,服务器106可以有作为应用服务器或者作为主应用服务器工作的能 力。在一个实施例中,服务器106可包括活动目录。客户端102也可被称为客户端节点或 端点。在一些实施例中,客户端102有能力作为在服务器上搜索对应用的访问的客户端节 点工作,也有能力作为提供对用于其它客户端102a- 102n所寄载的应用的访问的应用服 务器工作。
[0030] 在一些实施例中,客户端102与服务器106通信。在一个实施例中,客户端102直 接与群组38中的服务器106之一直接通信。在另一个实施例中,客户端102执行程序邻近 应用以与群组38内的服务器106通信。在又另一个实施例中,服务器106提供主节点的功 能。在一些实施例中,客户端102通过网络104与群组38中的服务器106通信。通过网络 104,客户端102例如可以请求执行寄载在群组38中的服务器106a- 106n中的各种应用, 并接收应用执行结果的输出用于显示。在一些实施例中,只有主节点提供要求识别和提供 地址信息的功能,其中的地址信息与寄载所请求的应用的服务器106'相关。
[0031] 在一个实施例中,服务器106提供网络(Web)服务器的功能。在另一个实施例中, 服务器106a接收来自客户端102的请求,将该请求转发到第二服务器106b并以来自服务 器106b对该请求的响应通过客户端102响应该请求。在又另一个实施例中,服务器106获 得客户端102可用的应用的列举以及地址信息,该地址信息与服务器106相关,该服务器 106寄载由该应用的列举识别的应用。在又一个实施例中,服务器106使用网络接口呈现对 客户端102的请求的响应。在一个实施例中,客户端102直接与服务器106通信以访问所 识别的应用。在另一个实施例中,客户端102接收应用输出数据,例如显示数据,该应用输 出数据通过对在服务器106上所识别的应用的执行而产生。
[0032] 现在看图1B,示出了在客户端102上用于传送和/或操作计算环境的网络环境。 在一些实施例中,服务器106包括用于向一个或多个客户端102传送计算环境或应用和/ 或数据文件的应用传送系统190。概括来讲,客户端10通过网络104、104'和设备200与服 务器106通信。例如,客户端102可驻留于公司的远程办公室,诸如分支机构,且服务器106 可驻留于集团数据中心。客户端102包括客户端代理120、和计算环境15。计算环境15可 执行或操作访问、处理或使用数据文件的应用。计算环境15、应用和/或数据文件可经由设 备200和/或服务器106被传送。
[0033] 在一些实施例中,设备200加速计算环境15或其任意部分到客户端102的传送。 在一个实施例中,设备200通过应用传送系统190加速计算环境15的传送。例如,此处描 述的实施例可被用于加速可由从中心的集团数据中心到诸如公司的分支机构的远程用户 位置的应用处理的流应用和数据文件的传送。在另外的实施例中,设备200加速客户端102 和服务器106之间的传输层通信量。设备200可提供加速技术用于加速从服务器106到客 户端102的任一传输层有效载荷,例如:1)传输层连接池,2)传输层连接多路复用,3)传输 控制协议缓冲,4)压缩,以及5)高速缓存。在一些实施例中,设备200响应来自客户端102 的请求提供服务器106的负载平衡。在其它实施例中,设备200充当代理服务器或者访问服 务器来提供对一个或者多个服务器106的访问。在另一个实施例中,设备200提供从客户 端102的第一网络104到服务器106的第二网络104'的安全虚拟专用网络连接,诸如SSL VPN连接。在又一些实施例中,设备200提供客户端102和服务器106之间的连接和通信的 应用防火墙安全、控制和管理。
[0034] 在一些实施例中,基于多个执行方法并且基于通过策略引擎195所应用的任一验 证和授权策略,应用传送管理系统190提供应用传送技术来传送计算环境到用户的桌面 (远程的或者其它的)。使用这些技术,远程用户可以从任意网络连接装置100获取计算环 境并且访问服务器所存储的应用和数据文件。在一个实施例中,应用传送系统190可驻留 在服务器106上或在其上执行。在另一个实施例中,应用传送系统190可驻留在多个服务 器106a-106n上或在其上执行。在一些实施例中,应用传送系统190可在服务器群组38内 执行。在一个实施例中,执行应用传送系统190的服务器106也可存储或提供应用和数据 文件。在另一个实施例中,一个或多个服务器106的第一组可执行应用传送系统190,并且 不同的服务器l〇6n可存储或提供应用和数据文件。在一些实施例中,应用传送系统190、 应用和数据文件的每个可驻留或位于不同的服务器上。在又一个实施例中,应用传送系统 190的任何部分可驻留、执行、或被存储于或分发到设备200或多个设备。
[0035] 客户端102可以包括计算环境15,用于执行使用或者处理数据文件的应用。客户 端102通过网络104、104'和设备200可以请求来自服务器106的应用和数据文件。在一 个实施例中,设备200可以转发来自客户端102的请求到服务器106。例如,客户端102可 以不具有本地存储或者本地可访问的应用和数据文件。响应请求,应用传送系统190和/ 或服务器106可以传送应用和数据文件到客户端102。例如,在一个实施例中,服务器106 可以按照应用流来发送应用以在客户端102上的计算环境15中操作。
[0036] 在一些实施例中,应用传送系统190包括CitrixSystems,Inc?的CitrixAccess Suite?的任何部分,诸如MetaFrame或者CitrixPresentationServer?和/或Microsoft 公司制造的任一的Microsoft?WindowsTerminalServices。在一个实施例中,应用传送 系统190可以通过远程显示协议或者通过基于远程或者基于服务器计算的其它方式来传 送一个或者多个应用到客户端102或者用户。在另一个实施例中,应用传送系统190可以 通过应用流来传送一个或者多个应用到客户端或者用户。
[0037] 在一个实施例中,应用传送系统190包括策略引擎195,用于控制和管理对应用执 行方法和应用的传送的访问、选择。在一些实施例中,策略引擎195确定用户或者客户端 102可以访问的一个或者多个应用。在另一个实施例中,策略引擎195确定应用应该如何被 传送到用户或者客户端102,例如执行方法。在一些实施例中,应用传送系统190提供多个 传送技术,从中来选择应用执行的方法,诸如基于服务器的计算、流式传输或者本地传送应 用到客户端120用于
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1