首页> 中国专利> 使用连接端点代理基于用户亲合性的内容递送

使用连接端点代理基于用户亲合性的内容递送

摘要

在支持客户机和服务器之间通过具有要克服的工作特性的网络路径进行的事务的网络中,以使用用户亲和性和动态用户位置信息来选择性地预载数据、或是数据的表示、签名、片段等来克服这一个或多个工作特性的方式来传输数据,从而克服这些工作特性。要克服的工作特性的例子包括带宽限制、出错和等待时间。动态位置信息可以被存储在可由数据服务器的代理机构访问的数据结构中,并且这些数据结构是基于关于与用户位置相关联的代理的用户活动来填充的,或者动态位置信息可以在客户机终止连接之后代理维持连接并且使用那些维持的连接来为与那些客户机相关联的用户预加载数据时被隐式地获得。被预加载的数据可以是协议专用数据或独立于协议的数据。

著录项

  • 公开/公告号CN101189605A

    专利类型发明专利

  • 公开/公告日2008-05-28

    原文格式PDF

  • 申请/专利权人 河床技术股份有限公司;

    申请/专利号CN200580049873.0

  • 发明设计人 D·T·-S·吴;S·麦克卡尼;

    申请日2005-04-19

  • 分类号G06F17/30;

  • 代理机构上海专利商标事务所有限公司;

  • 代理人陈炜

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-17 20:11:07

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-06-09

    未缴年费专利权终止 IPC(主分类):G06F17/30 授权公告日:20130417 终止日期:20160419 申请日:20050419

    专利权的终止

  • 2013-04-17

    授权

    授权

  • 2012-12-12

    著录事项变更 IPC(主分类):G06F17/30 变更前: 变更后: 申请日:20050419

    著录事项变更

  • 2008-07-23

    实质审查的生效

    实质审查的生效

  • 2008-05-28

    公开

    公开

说明书

相关申请的交叉引用

本公开涉及以下一起转让的共同待审查美国专利申请:

于2002年10月30日提交的题为“Transaction Accelerator for Client Server Communication Systems(用于客户机服务器通信系统的事务加速器)”(下文 称为“McCanne I”)的第10/285,315号美国专利申请被援引包含于此用于各 种目的。

于2002年10月30日提交的题为“Content based Segmentation Scheme for Data Compression in Storage and Transmission Including Hierarchical Segment Representation(包括分层式分段表示的用于存储和传输中的数据压缩的基于内 容的分段方案)”(下文称为“McCanne II”)的第10/285,330号美国专利申 请被援引包含于此用于各种目的。

于2003年8月12日提交的题为“Transparent Client-Server Transaction Accelerator(透明客户机-服务器事务加速器)”(下文称为“McCanne III”) 的第10/640,405号美国专利申请被援引包含于此用于各种目的。

于2003年8月12日提交的题为“Cooperative Proxy Auto Discovery and Connection Interception(协作代理自动发现和连接截取)”(下文称为“McCanne IV”)的第10/640,562号美国专利申请被援引包含于此用于各种目的。

发明的领域

本发明一般涉及在网络上的数据传输,尤其涉及对在客户机与服务器之间 的传输和应用层处的数据传输的改进。

发明的背景

局域网(LAN)通信的特征在于带宽大、等待时间短和对网络有相当大的企 业控制。相反,广域网(WAN)与LAN相比通常带宽较低并且等待时间较长, 并且常常具有在使用WAN的企业外部的网络控制的手段。在大型分布式企业 中,特别是当分布的办公室中的用户试图访问从集中数据中心运行的数据或应 用程序时,WAN由此造成了性能瓶颈的问题。例如,在WAN上从集中数据 中心中的邮件服务器检索电子邮件(“e-mail”)将会涉及能影响终端用户生 产力的冗长的数据传送。相反,跨越LAN从本地邮件服务器检索电子邮件向 终端用户提供实际上即时的性能。类似地,跨越WAN从Web服务器取回Web 页面或从文件服务器取回文件与跨越LAN从本地服务器取回这类数据相比就 性能而言较为困难。

总而言之,用户将经常需要运行被设计成对于特定网络配置具有可接受的 性能的应用程序,但不得不在性能低得多的网络配置上运行那些应用程序。常 见的例子是必须适应WAN的基于LAN的应用程序,该例子在本文的几处用 到。

对于为较高性能网络设计的应用程序处理数据的较低性能网络,已有数种 克服网络性能的方法。然而,大多数解决方案都存在着这样或那样的不尽人意 的地方。

一种方法是复制服务器并部署自动将数据从数据中心中的起点服务器镜 像或复制到各分布式位置上的复制的服务器,以实际上将数据的拷贝移得离客 户机更近。复制的服务器随后将具有来自起点服务器的数据的拷贝(镜像), 但复制的服务器将比起点服务器更靠近其所服务的客户机。客户机将自它们的 本地复制服务器访问数据以实现更好的性能,因为这些数据在网络意义上将 “更近”。此方法的缺点在于部署复制服务器以及管理从起点服务器至复制服 务器的数据流动和同步的复杂性和开销。用此方法,难以预测何时何地需要什 么数据,因此该实现常常仅仅是在每一位置复制所有可用数据。

另一种已被用于Web内容和流媒体的方法是在各分布式位置处部署代理 (proxy)高速缓存设备以增强对在给定位置被不止一次检索的数据的访问性 能。在LAN/WAN的这一配置中,高速缓存代理位于客户机附近的LAN上。 高速缓存代理将起到其跨越WAN被访问的客户机和服务器集合之间的中介的 作用。高速缓存存储先前传送过的数据期望被高速缓存的数据将来某时将被请 求。当客户机向Web服务器请求数据时,例如,该客户机的Web连接被代理 高速缓存截取。如果代理高速缓存具有所请求的数据,则它简单地跨越LAN 本地地供应该数据。如果它不具有所请求的数据,则它跨越WAN从服务器检 索所请求的数据,将该数据传送至请求的客户机,并将检索到的数据由其统一 资源定位符(URL)索引地存储在其高速缓存中,以期望它将被再次用于随后 的请求。

以此方式,被访问了多次的数据只在第一次客户机请求时遭遇WAN的性 能瓶颈,而对所有后续访问将受益于LAN的性能益处。然而,对于只被访问 一次的数据,就不存在性能益处。其它技术被用于改善对数据(后来再次被请 求或只被请求一次)的第一次客户机请求的性能。例如,网络高速缓存系统已 被增加了内容递送能力,籍此操作员能将合需的内容在其被请求之前移到代理 高速缓存中。在此模型中,内容发布系统通常与内容递送系统接口以允许操作 员向代理高速缓存服务器集合发布内容。因此,假定某个数据已按此方式被预 加载到代理高速缓存中,对该数据的第一次客户机请求将体验到高性能。然而, 这些系统通常创建和管理起来很复杂,并且通常需要部署新的商务过程来支持 这一信息递送模式。同样,取决于用户配置来合适地放置内容通常开销昂贵、 不是最优化的并且易于出错。

解决WAN瓶颈的另一方法是分布服务器以使得用于企业的一部分的服 务器位于用于企业该部分的客户机附近。例如,具有数个分支办公室的企业可 在每一分支办公室中定位电子邮件服务器、文件服务器等,并将给定用户的数 据存储在该用户的分支办公室的服务器上。例如,当针对特定用户的电子邮件 消息到达企业的主邮件网关时,该邮件网关将标识该特定用户的分支办公室的 电子邮件服务器,并将该电子邮件消息路由至所标识出的服务器。当用户检索 他们的电子邮件时,它是从本地办公室的电子邮件服务器被取回的,并且性能 很高。类似地,位于特定办公室的用户将向/从该办公室的文件服务器存储和检 索文件,从而同样实现很高的性能。

然而,这一方法不总是可取的,因为在大企业中跨许多地点管理和分布服 务器的成本很高。每一这类设备必须被管理、备份、服务等。在集中数据中心 内管理尽可能多的服务器通常开销低廉且可取得多。然而,集中体系结构要求 通过WAN访问服务器,如上所述,这会引起困难的性能问题。

认证和安全机制可能使这些方法中的许多更加复杂。将内容例如从起点服 务器移至复制服务器的代理机构(agent)必须是完全可信的,因为这一代理机 构具有对所有数据的完全访问权限。向第三方设备或软件委托对企业中每一人 的数据的“超级用户”访问权在许多顾客环境中是一个部署障碍。

因此,需要改进的在网络上处理数据的技术。

发明概要

在支持客户机与服务器之间的事务的网络中——其中客户机是请求事务 的主机而服务器是发出响应于客户机请求的响应的主机,且客户机与服务器之 间的分组在包括一个或多个跳跃并具有一个或多个要克服的工作特性的网络 路径上行进——利用用户亲合性和动态用户位置信息来选择性地预加载数据、 或数据的表示、签名、片段等来传输数据,以克服该一个或多个工作特性。要 克服的工作特性的例子包括带宽限制、出错和等待时间。

在某些实施例中,动态位置信息被存储在可由数据服务器的代理机构访问 的数据结构中,且这些数据结构是基于关于与用户位置相关联的代理的用户活 动来填充的。在其它实施例中,动态位置信息在客户机终止连接之后代理维持 连接并且使用那些维持的连接来为与那些客户机相关联的用户预加载数据时 被隐式地获得。

考虑到以下的详细说明和优选实施例,本发明的其它特征和优点将是显而 易见的。

附图简要说明

图1是根据本发明的代理设备的一个实施例的框图,在此例子中代理设备 是电子邮件代理设备(EPD)。

图2是根据本发明的实现成双端口NIC设备的代理设备的框图。

图3是示出可用于在请求该数据之前将数据递送至靠近可能请求该数据 的用户的位置网络的内容递送代理机构(CDA)、用户位置数据库(ULDB) 的配置。

图4是示出使用诸如图3中所示的配置递送电子邮件的过程的游动(swim) 图。

图5是示出通过连接端点代理(CEP)代理的连接的图示。

图6示出内容递送系统的一个实施例,其中连接端点代理设备(CEPD) 与电子邮件代理高速缓存(EPC)集成。

图7是示出如何在正常的电子邮件消息接发协议之上执行内容递送功能 的一个例子的游动图。

图8是示出在分布式企业中连接端点代理(CEP)和电子邮件代理高速缓 存(EPC)的配置的图示。

图9示出包括双端口NIC设备的集成的EPC和CEP设备的一个实施例。

图10示出集成的CEPD和客户机方事务加速器(CTA)的一个实施例。

图11是用诸如CIFS等文件访问协议具有居间CEP的客户机-服务器交 互的游动图。

图12是包括协议专用和/或协议知悉的CEP的内容递送系统的各部分的图 解。

发明的详细说明

如在阅读本公开后将显而易见的,本发明具有许多应用。在说明根据本发 明的内容递送系统的一个实施例时,只说明了少数几个可能的变形。其它应用 和变形对于本领域的普通技术人员将是显而易见的,因此本发明不应被解释成 只限于这些例子,而应根据所附权利要求来理解。

本文所使用的术语“事务”是导致数据从一处移至另一处的步骤的逻辑组 合。在某些情形中,被移动的数据独立于事务地存在于其起点处,诸如其中文 件存在于服务器的盘上的文件读取事务就是如此。在其它情形中,诸如响应于 对计算、查找等的请求,在起点处为事务生成数据。通常,发起事务的计算机、 计算机设备等被称为“客户机”,而响应或预期响应的计算机、计算机设备等 被称为“服务器”。

数据能在任一方向上流动。例如,文件系统客户机可以通过请求从文件服 务器进行文件读取来发起事务。响应于该请求,相应数据将从服务器返回,因 此在该情形中,大批量数据从服务器流向客户机。然而,在客户机发起文件写 事务的情形中,大批量数据作为初始请求的一部分或作为后续消息从客户机流 向服务器。

事务可以分多个部分,但在一个简单的事务中,客户机向服务器发送一个 请求(显式地是请求或者指示或表示请求的数据、消息、信号等),而服务器 用一响应(显式地是响应或者指示或表示响应的数据、消息、信号等)向客户 机响应。例如,更复杂的事务可涉及例如服务器澄清请求,验证客户机接收对 请求的响应的权限,取得准备响应所需的附加信息等所需的某种来回。

这里,客户机与服务器之间的连接的典型的例子是分组网络,但也可以使 用诸如点对点有线或无线信道等其它连接手段。这些元素在本文中将被概括并 称为“节点”,其中假设在节点之间有用于通信的信道。

事务可始于一个节点处的客户机作出针对另一节点处的服务器的文件数 据请求,接着包含所请求的文件数据的响应被递送。其它事务可以是对文件的 特定部分、整个文件、另一数据构成的全部或某些的请求,或者事务可以涉及 从请求方流出的数据或涉及命令。事务的例子包括“读取块”、“读取文件”、 “读取流”、“用此数据写块”(从请求方流出数据的一个例子)、“打开文 件”、“对此数据执行计算”、“取得具有这些特征的电子邮件”、“发送电 子邮件”、“检查新电子邮件”、“列出目录内容”等。

某些事务可能涉及在一个方向或两个方向上流动的大量数据。某些事务甚 至可能涉及具有一个以上请求方和/或一个以上接收方的交互。为了说明的清楚 起见,这许多事务类型被按照其中一个客户机向一个服务器作出请求而该一个 服务器以客户机预期的方式响应该请求的典型的简单事务的形式来说明。然 而,在阅读此公开时,普通技术人员将能把这些概念应用于在客户机与服务器 之间或更一般化地在两个节点之间的一对多和多对多事务。在数据流被描述成 在一个方向上的情形中,应理解数据可以在另一方向上流动和/或信息可以仅在 一个方向上流动,但数据和/或信号在两个方向上流动以完成信息的移动。

如本文中使用中,“近”可以指物理上邻近,但也可以指网络邻近。网络 邻近涉及性能属性。例如,LAN的两个节点可以被认为比由慢网络信道分隔 的两个节点更近。物理上大的距离并不导致网络邻近是常有的情况,但也存在 两个物理上邻近的节点在网络意义上非常远以及两个物理上远离的节点在网 络意义上相对较近的例子。

本文所使用的术语“用户亲合性”是指在计算机系统或网络中与终端用户 的关联。因此,具有用户亲合性的数据与该用户,或在某些情形中固有地连系 于一个或多个用户。例如,定址到用户“某男”的电子邮件将具有关于该用户 的用户亲合性。类似地,文件服务器上为“某男”所拥有的文件将具有关于该 用户的用户亲合性。更一般化地,由分布式设置中的多个用户访问的文件将具 有关于每一此类用户的用户亲合性。

用户亲合性可以被有利地用于使数据递送最优化。在一个普通方法中,如 上所述,可以用分布式方式建立多个服务器以将诸如电子邮件、文件等用户数 据保持在该数据的用户附近。然而,其缺点在于服务器是分布式的且更难以维 护等。

这可以通过几种发明方法和装置克服。这里对两个例子及某些变形进行说 明。

使用动态位置信息存储来路由具有用户亲合性的数据

在一种方法中,存储在服务器上的数据被选择性地拷贝到离客户机更近的 高速缓存,其中该选择是基于被拷贝的数据的用户亲合性和从动态用户位置信 息确定的用户的可能位置。将说明的一个具体例子是电子邮件内容递送系统, 其中给定电子邮件消息的用户亲合性可基于电子邮件消息的预期收件人,而动 态用户位置信息可从正在使用与电子邮件内容递送系统耦合的客户机的用户 的先前交互来确定。

图1示出这类电子邮件内容递送系统的一个例子。如图所示,电子邮件代 理高速缓存(EPC)100位于靠近远处位置的用户的网络上。EPC 100使在WAN 上用户所使用的客户机与集中式电子邮件服务器之间的通信性能最优化。EPC 100通过一个或多个网络接口卡(NIC)附连到网络,并且包括用于终止和可 任选地截取客户机连接的机制、用于保持电子邮件的拷贝的消息存储、以及用 于终止和发起客户机与服务器之间的电子邮件传输连接的连接处理器。

所示的EPC 100包括:连接处理器(CH)105、消息存储(MS)110、客 户机120以及客户机120与连接处理器105之间的客户机连接140。在附图中 存在相似项目的多个实例的情形中,它们用共同的附图标记表示,并且不同的 实例用不同的附加说明来表示。因此,图1示出三个连接处理器105(1)、105(2)、 105(3)。应理解,虽然这些例子示出三个客户机和三个连接处理器,但也可以 存在更少或更多个客户机或更少或更多个连接处理器(且连接处理器的数目与 客户机的数目不一定相同)。

连接处理器105(以及EPC 100的诸部分)可以在通过连接至层2交换机 的NIC附连到网络的计算机系统上运行的软件进程。EPC 100分配一网络地址 (例如,网际协议或称IP地址)。每一连接处理器(CH)105代表相应的客户机 120终止客户机会话并发起一个或多个服务器连接。例如,客户机120(1)通过 连接140(1)与CH 105(1)通信。连接处理器105在消息存储110中存储和检索 电子邮件消息数据的拷贝。

当以此方式部署时,附连到LAN的客户机例如通过使用EPC的IP地址 而不是服务器的地址来与EPC 130通信而不是直接与起点服务器通信。这能提 供某些益处,但还可以进一步改进,因为图1中所示的方法在电子邮件协议和 客户机并不能现成地支持这类配置时经常难以实现。

图2中示出一个改进的实施例,其中EPC 200包括双端口NIC,并且能被 插入层2交换机与路由器之间的网络路径中,并且还包括连接处理器205(或 按需要包括实例化连接处理器205的机制)。此配置允许EPC诸如根据在 McCanneIV中所述的方法透明地截取和代理连接。在此实施例中,EPC 200对 于它不代理的所有话务起到层2中继或网桥的作用。对于它代理的连接,EPC 200在截取模块240中截取相应的话务,并将所截取的话务导向到EPC 200内 合适的连接处理器205。

在此实施例中,与电子邮件服务器的客户机连接由EPC 200终止,这很象 Web高速缓存终止连接。优选地,为每一客户机会话创建连接处理器,并与被 客户机作为目标的电子邮件服务器建立相应的连接。当电子邮件客户机从服务 器检索消息时,EPC 200检查其消息存储210来查看该消息是否已存在,并且 如果存在则返回该消息。否则,EPC 200从起点电子邮件服务器取回该消息, 将该消息存储在消息存储210中,并将该消息传送至电子邮件客户机。

以此方式复制电子邮件是简单直接的任务,因为电子邮件协议通常给每一 电子邮件分配一唯一性的标识符,并且消息是不可变更的。因此,不存在一致 性问题要解决,因为电子邮件消息的拷贝实际上与原始消息相同。换而言之, 如果EPC能使用消息的唯一性标识符在其消息存储中定位该消息,则它知道 消息的拷贝总是有效的。

图3示出一个还包括部署在服务器处或其附近的内容递送代理机构 (CDA)的内容递送系统。电子邮件服务器的内容递送代理机构用被确定为给 靠近电子邮件代理高速缓存(EPC)的用户的消息预加载该EPC。当新邮件消息 到达服务器时,该服务器的内容递送代理机构检查该消息以确定该消息的收件 人。内容递送代理机构随后确定哪个EPC最靠近这个(些)收件人。此用户 确定可以按如下所述的多种方式进行。一旦确定了合适的EPC,内容递送代理 机构向所选择的EPC转发该消息的拷贝以供存储在该EPC的消息存储中。当 用户随后取回该消息时,EPC从其消息存储供应该消息,并且结果所得的性能 很高。

用户位置确定的一种方法涉及咨询由系统操作员维护的数据库。替换地, 此确定可以通过咨询从用户在哪里读取他们的电子邮件的动态观察数据自动 建立的数据库来确定。

在一个特定的例子中,图3示出分别操作电子邮件服务器302(1)和302(2) 的两个数据中心300(1)和300(2)。如图所示,各数据中心300还包括CDA 304。 所示的数据中心300(1)还包括用户位置数据库(ULDB)305。应理解数据中心、 电子邮件服务器、内容递送代理机构、客户机和EPC的数目不需要与图3中 所示的相同。例如,可以使用单个电子邮件服务器或者可以使用两个以上的电 子邮件服务器。

客户机310、311、312、313和314通过WAN访问电子邮件。各客户机 通过由该客户机的本地EPC 330代理的连接与两个电子邮件服务器302中的一 个通信。与各电子邮件服务器相关联的是内容递送代理机构(CDA)304。CDA 可以是与电子邮件服务器在相同的计算机上运行并通过API与所述服务器接 口的软件,或者它可以是在附连到与电子邮件服务器一致的网络的计算机上运 行的并通过网络协议或在网络协议之上的API与该电子邮件服务器接口的设 备。

在位于各种位置的客户机通过它们附近的EPC检索消息时,各EPC记录 有用户正在从该位置检索电子邮件这一事实,并向ULDB 305传送指示该用户 与该位置(例如,该EPC的位置)之间的映射的消息。例如,EPC 330(1)通过 连接320(1)传送此信息。此消息可包含用户标识(即,登录名字、用户ID等) 以及位置标识符(例如,用户检索消息所通过的EPC的IP地址等)。传送至 ULDB的消息可以被成批组合在一起并在可配置的最大速率下被发送以允许 系统在不降低性能的情况下缩放。

使用此信息,ULDB随着时间推移得知各个用户的位置。结果,当有给一 特定用户的新消息到达时,接收服务器的CDA能将该消息预加载到由动态位 置信息确定的靠近该用户的EPC的消息存储中。例如,当给用户310的电子 邮件到达服务器302(1)处时,CDA 304(1)通过连接350(1)向EPC 330(1)递送该 消息的拷贝。如果ULDB指示用户从由不同EPC提供服务的不同位置访问电 子邮件,则CDA能向每一可能服务该用户的EPC发送一个拷贝。

图4示出为特定用户递送示例消息的游动图。在此例子中,消息410从因 特网到达邮件服务器400。邮件服务器向CDA 401发送一条指示给用户“乔” 的消息到达的“通知”消息411。CDA 401进而向ULDB 402发送一条针对用 户“乔”的查找消息412,ULDB 402用设备EPC 403的位置响应。CDA 401 向邮件服务器400发送一条“取回”消息413以从消息410检索消息数据(及 任何附件)。一旦接收到数据,CDA 401就将“预加载”消息414中的数据发 送至EPC 403。随后,当用户试图通过电子邮件客户机404读取该消息时,客 户机向服务器发送一条“取回”消息415以请求消息410的内容。接着,EPC 403截取消息415并将相应的数据从其本地消息存储供应给客户机,从而实现 高递送性能。

使用连接端点代理基于用户亲合性来递送数据

上述方法改进了现有解决方案,但需要部署和管理与各服务器相关联的内 容递送代理机构,这对于企业IT组织可能很困难并且昂贵。另外,此方法可 能涉及需要与多个不同的协议、应用程序编程接口(API)、互相通信的代理 机构等集成的几个独立的组件。

现在将说明一种替换方法,其中内容是使用连接端点代理基于用户亲合性 来递送的。作为本文所使用的术语,连接端点代理(CEP)是嵌入某设备或附连 于网络的代理机构,它在客户机已终止其服务器连接之后维持客户机-服务 器会话以使得该连接可用于代理发起的内容递送。

当客户机试图终止表示客户机-服务器会话的连接时,CEP截取该确定 并维持此会话,从而继承该客户机会话。因为CEP继承了客户机会话,所以 它还继承了该会话的所有安全性和访问能力。因此,CEP能将使得消息数据、 附件等被从服务器被检索到本地代理中的合成事务注入到该客户机-服务器 会话中。即使客户机终止其会话,CEP也能保留该客户机连接,继续监视客户 机的消息存储,并且在有给该用户消息和相应数据来自服务器时将它们检索到 CEP中。当客户机打开与所述服务器的新会话时,CEP拆卸先前维持的会话, 然后允许建立新的会话。在除了在客户机方代理处运行的CEP外还存在服务 器方代理的配置中,服务器方的代理机构能注意到何时第二用户会话被建立并 拆卸任何在客户机连接终止之后仍被维持的CEP连接。

CEP可以通过部署在网络代理设备内来被插入到客户机-服务器连接的 路径中。容纳一组CEP的代理设备——一个CEP用于一个被代理的连接—— 被在本文称为连接端点代理设备(CEPD)。

图5示出通过一个或多个网络接口附连到网络的CEPD。在此情形中,示 出了两个NIC的优选配置。多个客户机(510、511、512)具有分别通过CEP 503、502和501代理的与服务器520的连接。

图6示出内容递送系统的一个实施例,其中连接端点代理设备(CEPD)与 电子邮件代理高速缓存(EPC)集成。如图所示,客户机601发起一个或多个与 服务器604的传输连接,以对电子邮件消息或诸如日历数据、新闻组、共享文 件等其它类型的消息进行检索、处理、检查等。

在某些情形中,客户机601用于访问电子邮件服务器的协议可以是诸如 IMAP等标准化协议或诸如MAPI等专用协议。IMAP在1996年12月的 M.Crispin的Request-for-Comments(RFC)2060“Internet Message Access Protocol-Version 4revl(因特网消息访问协议V4.1)”中说明。MAPI是在微 软的远程进程调用(RPC)之上协议的微软专用协议消息接发API(MAPI)。在 这一实施例中,客户机的IMAP或MAPI连接将由CEPD 602透明地截取,这 使得CEP 605处的IMAP/MAPI连接终止,并发起了与起点电子邮件服务器604 的相应传输连接(或一组连接)。电子邮件代理603进而截取从CPED 602发 起的连接,并接着发起与起点电子邮件服务器604的相应传输连接(或一组连 接)。

一旦此传输连接管线被建立,来自客户机的消息就在包括到服务器的管线 在内的各种连接上被中继,同时来自服务器的响应被中继回客户机。在连接的 开始处,可以通过来回交换消息的各种机制来认证客户机。一旦客户机已被认 证,则CEP 605就能自由地通过将合成消息注入客户机-服务器会话中来执 行内容递送。例如,电子邮件客户机通常取回所有标题以向用户显示。然后, 只有在用户试图显示和读消息之后,客户机才取回该消息。另外,电子邮件常 常包含类似地只有在用户试图打开或下载附件时才被取回的大附件。为了改善 用户体验,CEP能前摄地扫描用户邮箱的内容,并在它们被用户请求之前取回 消息和附件数据。或者,CEP能在标题被检索时进行监视,并注入合成消息以 请求相应的消息文本和附件数据。

图7是示出如何可以在正常的电子邮件消息接发协议之上执行内容递送 功能的一个例子的游动图。在此例子中,假定采用IMAP协议。

在所示的例子中,客户机首先用在登录消息中包括合适的认证信息的“登 录”请求701来建立其与电子邮件服务器的会话。一旦客户机已认证了它自己, 它随后就发出“选择”请求702以指定要对特定邮箱——例如用户的“收件箱” 执行的后续操作。接着,客户机发出“统计”请求703以学习包括是否存在新 消息在内的各种信息。客户机随后发出用于响应于用户读取来检索消息数据并 显示消息的后续的“取回”命令(704和705)。随后,在此例中,用户转为 空闲而不读任何后续消息,即便它们存在于邮箱中。此时,CEP检测到会话空 闲,并传送一个对于在用户的收件箱中但尚未被检索的其它消息的合成“取回” 请求706。这使得电子邮件代理高速缓存将这些消息存储在其邮件存储中。随 后,当用户通过发送“取回”请求来读取这些消息时,这些消息被高性能地跨 越LAN从电子邮件代理高速缓存发送到客户机。

随后,用户退出电子邮件客户机,这使得客户机连接终止。然而,不是拆 卸通过电子邮件代理高速缓存到服务器的连接,CEP代之以维持该连接并继续 监视电子邮件服务器内该用户的数据源。例如,当有给该用户的新的电子邮件 消息到达时,服务器向客户机发送一个“通知”消息709,该消息被CEP截取 并消费。作为响应,CEP通过发送“取回”请求710来检索对应于新到达的电 子邮件的消息正文以及附件的数据。因此,电子邮件代理高速缓存被连续地填 充以表示用户的会话的电子邮件内容的数据而无需显式地构建将用户映射至 位置的数据库。

现在假设用户重新启动电子邮件客户机,打开与电子邮件服务器的连接并 传送一个新“登录”请求711以建立会话。此时,CEP注意到用户正在建立新 会话,因此它通过在老连接上向服务器发送一个“注销”请求712来拆卸老连 接,关闭该连接,随后允许客户机的“登录”请求在新连接上继续发往服务器。 随后,客户机尝试通过“取回”请求713将先前已由CEP检索到的消息检索 到电于邮件代理高速缓存中。这样,它们就像其是跨越LAN从电子邮件代理 高速缓存供应那样被高性能地递送。

图8示出如何跨具有多个地点的分布的企业推广和部署上述教导中的一 些。在所示的例子中,在两个数据中心中存在两个服务器:服务器801和服务 器802。在一个办公室,有三个客户机813、813、814、用于每一客户机(811, 812,813)的CEP和EPC 810。类似地,在其它办公室存在其它客户机、CEP 和EPC。每一客户机从这两个服务器中的一个中检索其消息。当客户机来来往 往时,CEP仍旧表示用户的电子邮件客户机。因此,当新消息到达时,CEP继 续沿与相应电子邮件服务器的持久化连接将它们拷贝到本地站点。例如,因为 客户机814从服务器802检索其消息,所以即使在从客户机814的连接不存在 时,CEP 811也将自动从服务器802取回所有消息并将它们预加载到EPC 810 中。

实际上,在EPC终止的持久化连接的整体形成一个从服务器至用户位置 的通过本局客户机-服务器连接递送内容的用户中心内容递送网络。因此, 用户位置由连接构造暗示,并且不需要被收集和显式地存储在某个类型的数据 库中。

在本发明的另一实施例中,EPC和CEP功能被集成到一个过程中,并且 CEPD不需要包含CEP实体。在这些实施例中,CEP实现代理端点,并且直接 与消息存储交互。当客户机终止其会话时,CEP如上所述地维持服务器会话。 图9示出此情形的一个例子。如图所示,CEP将其功能集成到EPC中,并直 接终止客户机和服务器传输连接。

在另一个实施例中,CEP可以任选地使用如McCanneII中所描述的分层 式分段和如McCanneIV中所描述的传输连接和截取及自动配置被配置成如在 McCanneIII、McCanneI中所描述的事务加速器和分段系统。另外,CEP可以 用于实现任何基于用户亲合性的协议的内容递送,而不只是电子邮件。 McCanneI中所描述的分段和事务加速方案是独立于协议和应用程序的这一事 实对此有所裨益。即,不同于上述EPC,使用分段的事务加速器对许多不同的 协议和应用程序都起作用,而不只是电子邮件。

图10示出这一情形。具有持久性分段存储(PSS)1004的客户机方事务 加速器(CTA)1003位于客户机附近,而具有PSS 1006的服务器方事务加速 器(STA)1005位于服务器附近。插在CTA 1003与STA 1005之间的是WAN。 另外,CEPD 1002插在客户机与CTA 1003之间。CEP 1008终止从客户机1001 至服务器1007的传输连接并试图打开从CEPD 1002到服务器1007的新连接。 当CEP 1008发起到服务器1007的连接时,CTA和STA以诸如在McCanne IV 中所描述的某种方式截取该连接。

在此配置下,CEP 1008处在通过将使服务器向客户机传送所需的数据的 合成协议消息注入到客户机-服务器会话中来实现所需数据的内容递送的位 置上。CEP 1008进而在知道包括该数据的分段现在都存在于PSS 1004和PSS 1006中的情况下丢弃所得的数据。当客户机1001随后试图从服务器1007检索 相应数据时,如在McCanneI中所描述的,在CTA/STA对一起折叠所请求的 数据时,该数据无需再通过网络重新发送。

不同于其中消息被递送至特定用户的电子邮件,其它协议涉及由用户以自 组织(ad hoc)方式引发的数据访问模式。例如,在诸如CIFS等文件访问协议 中,用户能访问由不同用户创建并存储在不同服务器上的大量不同文件。同样, 浏览Web(或是专用企业网或是通常的因特网)的用户最终可能在世界上几乎 任何地方访问数据。为了处理这一情形,CEP能推断诸如网页或文件等数据对 象的用户亲合性。

一种推论方法是使用在McCanneIII中所述的事务预测框架。另一种方法 是将用户亲合性信息收集在数据库中并使用此数据库来驱动CEP内容递送算 法。

在一个实施例中,设备中的每一CEP维持用户亲合性数据库(UADB)。 UADB包含记录对数据对象的访问的一组记录。每一记录包括用户标识符(例 如,登录名)、对象标识符(例如,文件服务器和路径名或Web URL)、第 一次访问的时戳、最近一次访问的时戳、计数以及还可能有其它字段。记录可 包含其它可由不同的内容递送策略和/或算法以不同方式使用的协议或应用程 序专用的信息。例如,文件访问协议的记录格式还可包括所讨论的对象的“最 后一次修改时间”。

每次客户机通过CEP访问数据对象时,CEP在UADB中查找该对象记录。 如果该对象记录不存在,则为该用户和对象创建一条具有设置成当前时间的时 戳的新记录并将其输入到UADB中,且计数被初始化为1。如果记录已存在, 则计数递增且最近一次访问时间被更新。

在UADB的情形中,CEP例如在夜晚,在空闲网络活动期间,继续以某 个配置的比特率等以后台进程的形式执行内容递送。这可以在客户机终止连接 之后通过由CEP维持的会话来完成,或如果CEP具有发起其自己连接的许可, 则CEP可登录(建立连接)。

此后台递送过程是通过令CEP在UADB中以循环法扫描所有与由所述 CEP处理的用户匹配的记录来实现的。对于每一记录,从服务器中检索对象并 简单地由CEP丢弃该对象,从而将表示所需对象的所有分段数据填充到本地 CTA的PSS中。此步骤可以通过额外地保持所讨论的对象的修改时戳(如上 所述)并仅在服务器上的修改时间比存储在对象记录中的最近一次修改时间更 近时才取回该数据对象来最优化。此方案特别高效,因为正好被抽取多次的类 似数据(例如具有相同数据的两个文件)由于在McCanneI和McCanneII中所 描述的分段算法的高效属性而只遍历WAN一次。

各种策略可用于控制扫描数据对象的频度,且在需要时,控制跨越网络抽 取数据的频度。例如,与比较少被访问的对象相比,较常被访问的对象可被更 频繁地扫描。或者,与最近被访问时间较远的对象相比,最近被访问的时间较 近的对象可被更频繁地扫描。或者,在某个可配置的时间长度里未被访问的对 象可以被简单地从UADB丢弃。

图11示出假定采用象CIFS那样的文件访问协议的情况下具有居间CEP 的客户机-服务器交互的游动图。在本例中,CEP包括记录文件访问模式的 UADB(未示出)。假设客户机已与CIFS服务器建立了CIFS会话。

在该图的顶部,客户机打开文件“A”,随后从文件“A”读数据,并关 闭它。当这些客户机-服务器事务流过CEP时,CEP在UADB中记录一个通 知用户已访问文件“A”的对象记录。过了一些时间之后,客户机注销且会话 被终止,但是如上所提及的,CEP代表断开的客户机维持与服务器的会话以实 现内容递送。再过了一些时间之后,例如某另一对该文件具有写许可的其它某 个用户对文件“A”进行了修改。后台内容递送过程始终在CEP内运行,有时 通过向服务器发送针对文件“A”的“统计”消息来检查图中所示的文件“A” 的修改时间。在某一刻,CEP注意到文件“A”的修改时间比存储在UADB对 象记录中的修改时间更近。因此,CEP打开文件“A”,读取其内容,并简单 地丢弃所得的结果,因为表示文件“A”中所包含的数据的所有片段现已被成 功地复制到本地CTA的PSS中。客户机进而与服务器建立新CIFS会话,并访 问文件“A”。CTA随后拆卸老的CIFS会话并允许建立新的CIFS会话。

或者,STA中的代理机构可以执行拆卸老的会话并允许建立新会话通过 的工作。此服务器方途径的优点在于在一段时间里从多个位置访问电子邮件服 务的各用户将不会留下活动内容递送会话的踪迹,即便一个时刻只有一个客户 机活动。由于CTA中存在所有所需的片段,因此跨越WAN检索文件“A”获 得了高性能。

将CEP与事务加速器和片段结合在一起使用的某些优点在电子邮件被发 送至大量收件人的例子中是显而易见的。在该情形中,假设某消息被发送至许 多收件人。然后,尽管CEP的许多实例中的每一个下拉了电子邮件数据的单 个拷贝,但该数据被CTA/STA对跨越WAN只向每一位置传送一次。甚至每 一CEP相互独立地动作并且不做任何事情来协助数据的高效递送,只向任何 给定位置传送该电子邮件的一个拷贝。另外,该方法容易地与现有基础结构集 成,不需要对现有客户机、服务器或应用程序进行变化或添加。

如在对CIFS和电子邮件的CEP内容递送的讨论中显而易见的,通常需要 CEP内的协议专用知识来解释并将合成消息注入到客户机-服务器会话中用 于所需的数据传送。在某些实施例中,协议专用知识被嵌入在共同驻留在CTA 内的多种类型的CEP中以创建“修改的CTA”。此配置在图12中示出,图 12示出通过修改的CTA通信的多个客户机。每一客户机与协议专用CEP的一 个实例通信,并且每一个这类CEP可以有一个以上的实例。

例如,CIFS客户机与CIFS CEP通信,而MAP客户机与MAPI CEP通信。 如在McCanneI中所述,这些CEP中的每一个可用作客户机代理,该客户机代 理进而与控制PSS降低WAN上带宽消耗的事务变换模块(TT和TT-1)通信。 每一CEP与STA上的服务器方代理逻辑地通信,该服务器方代理进而与起点 服务器通信从而将客户机与目标服务器连接。例如,CIFS CEP与CIFS服务器 代理通信,该服务器进而与目标CIFS服务器通信。

上述说明只是例示而非限定。本发明的许多变形在本领域的技术人员查阅 本公开时将变得显而易见。因此,本发明的范围不是参照上述说明书来确定的 而应是参照所附权利要求书及其等效技术方案的完整范围来确定的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号