Movatterモバイル変換


[0]ホーム

URL:


CN101189605B - User-affinity-based content delivery using connection endpoint brokers - Google Patents

User-affinity-based content delivery using connection endpoint brokers
Download PDF

Info

Publication number
CN101189605B
CN101189605BCN2005800498730ACN200580049873ACN101189605BCN 101189605 BCN101189605 BCN 101189605BCN 2005800498730 ACN2005800498730 ACN 2005800498730ACN 200580049873 ACN200580049873 ACN 200580049873ACN 101189605 BCN101189605 BCN 101189605B
Authority
CN
China
Prior art keywords
user
server
data object
data
client computer
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.)
Expired - Fee Related
Application number
CN2005800498730A
Other languages
Chinese (zh)
Other versions
CN101189605A (en
Inventor
吴峙熹
S·麦克卡尼
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.)
Riverbed Technology LLC
Original Assignee
Riverbed Technology LLC
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 Riverbed Technology LLCfiledCriticalRiverbed Technology LLC
Publication of CN101189605ApublicationCriticalpatent/CN101189605A/en
Application grantedgrantedCritical
Publication of CN101189605BpublicationCriticalpatent/CN101189605B/en
Anticipated expirationlegal-statusCritical
Expired - Fee Relatedlegal-statusCriticalCurrent

Links

Images

Classifications

Landscapes

Abstract

In a network that supports transactions between a client and a server over a network path having operational characteristics to be overcome, data is transmitted in a manner that selectively preloads the data, or representations, signatures, fragments, etc. of the data using user affinity and dynamic user location information to overcome the one or more operational characteristics, thereby overcoming the operational characteristics. Examples of operating characteristics to overcome include bandwidth limitations, errors, and latency. The dynamic location information may be stored in data structures accessible by the agent of the data server and populated based on user activity with respect to agents associated with user locations, or the dynamic location information may be obtained implicitly when the agents maintain connections after the clients terminate the connections and use those maintained connections to preload data for users associated with those clients. The preloaded data may be protocol specific data or protocol independent data.

Description

Translated fromChinese
使用连接端点代理基于用户亲合性的内容递送User-affinity-based content delivery using connection endpoint brokers

相关申请的交叉引用Cross References to Related Applications

本公开涉及以下一起转让的共同待审查美国专利申请: This disclosure is related to the following commonly assigned co-pending U.S. patent applications:

于2002年10月30日提交的题为“Transaction Accelerator for Client ServerCommunication Systems(用于客户机服务器通信系统的事务加速器)”(下文称为“McCanne I”)的第10/285,315号美国专利申请被援引包含于此用于各种目的。 U.S. Patent Application No. 10/285,315, entitled "Transaction Accelerator for Client Server Communication Systems" (hereinafter "McCanne I"), filed October 30, 2002, is This reference is hereby incorporated for all purposes. the

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

于2003年8月12日提交的题为“Transparent Client-Server TransactionAccelerator(透明客户机-服务器事务加速器)”(下文称为“McCanne III”)的第10/640,405号美国专利申请被援引包含于此用于各种目的。 U.S. Patent Application No. 10/640,405, filed August 12, 2003, entitled "Transparent Client-Server Transaction Accelerator" (hereinafter "McCanne III") is hereby incorporated by reference Used for various purposes. the

于2003年8月12日提交的题为“Cooperative Proxy Auto Discovery andConnection Interception(协作代理自动发现和连接截取)”(下文称为“McCanneIV”)的第10/640,562号美国专利申请被援引包含于此用于各种目的。 U.S. Patent Application No. 10/640,562, entitled "Cooperative Proxy Auto Discovery and Connection Interception," (hereinafter "McCanne IV"), filed August 12, 2003, is hereby incorporated by reference Used for various purposes. the

发明的领域 field of invention

本发明一般涉及在网络上的数据传输,尤其涉及对在客户机与服务器之间的传输和应用层处的数据传输的改进。 The present invention relates generally to data transmission over a network, and more particularly to improvements to the transmission between a client and server and data transmission at the application layer. the

发明的背景 background of the invention

局域网(LAN)通信的特征在于带宽大、等待时间短和对网络有相当大的企 业控制。相反,广域网(WAN)与LAN相比通常带宽较低并且等待时间较长,并且常常具有在使用WAN的企业外部的网络控制的手段。在大型分布式企业中,特别是当分布的办公室中的用户试图访问从集中数据中心运行的数据或应用程序时,WAN由此造成了性能瓶颈的问题。例如,在WAN上从集中数据中心中的邮件服务器检索电子邮件(“e-mail”)将会涉及能影响终端用户生产力的冗长的数据传送。相反,跨越LAN从本地邮件服务器检索电子邮件向终端用户提供实际上即时的性能。类似地,跨越WAN从Web服务器取回Web页面或从文件服务器取回文件与跨越LAN从本地服务器取回这类数据相比就性能而言较为困难。 Local Area Network (LAN) communications are characterized by high bandwidth, low latency, and considerable corporate control over the network. In contrast, Wide Area Networks (WANs) typically have lower bandwidth and higher latency than LANs, and often have a means of network control outside the enterprise using the WAN. In large distributed enterprises, the WAN thus creates a performance bottleneck problem, especially when users in distributed offices try to access data or applications running from a centralized data center. For example, retrieving electronic mail ("e-mail") over a WAN from a mail server in a centralized data center would involve lengthy data transfers that could impact end-user productivity. In contrast, retrieving e-mail from a local mail server across a LAN provides virtually instant performance to end users. Similarly, retrieving a Web page from a Web server or a file from a file server across a WAN is more difficult in terms of performance than retrieving such data from a local server across a LAN. the

总而言之,用户将经常需要运行被设计成对于特定网络配置具有可接受的性能的应用程序,但不得不在性能低得多的网络配置上运行那些应用程序。常见的例子是必须适应WAN的基于LAN的应用程序,该例子在本文的几处用到。 In summary, users will often need to run applications designed to have acceptable performance for a particular network configuration, but will have to run those applications on a much lower performing network configuration. A common example is a LAN-based application that must accommodate a WAN, which is used in several places in this article. the

对于为较高性能网络设计的应用程序处理数据的较低性能网络,已有数种克服网络性能的方法。然而,大多数解决方案都存在着这样或那样的不尽人意的地方。 There are several ways to overcome network performance on lower performance networks where data is processed by applications designed for higher performance networks. However, most solutions have one or another unsatisfactory place. the

一种方法是复制服务器并部署自动将数据从数据中心中的起点服务器镜像或复制到各分布式位置上的复制的服务器,以实际上将数据的拷贝移得离客户机更近。复制的服务器随后将具有来自起点服务器的数据的拷贝(镜像),但复制的服务器将比起点服务器更靠近其所服务的客户机。客户机将自它们的本地复制服务器访问数据以实现更好的性能,因为这些数据在网络意义上将“更近”。此方法的缺点在于部署复制服务器以及管理从起点服务器至复制服务器的数据流动和同步的复杂性和开销。用此方法,难以预测何时何地需要什么数据,因此该实现常常仅仅是在每一位置复制所有可用数据。 One approach is to replicate the servers and deploy automatically mirroring or replicating data from the origin server in the data center to replicated servers at each distributed location to actually move copies of the data closer to the clients. The replicated server will then have a copy (mirror) of the data from the origin server, but the replicated server will be closer to the clients it serves than the origin server. Clients will access data from their local replica server for better performance because the data will be "closer" in the network sense. The disadvantage of this approach is the complexity and overhead of deploying the replica server and managing the flow and synchronization of data from the origin server to the replica server. With this approach, it is difficult to predict what data will be needed where and when, so often the implementation simply copies all available data at each location. the

另一种已被用于Web内容和流媒体的方法是在各分布式位置处部署代理(proxy)高速缓存设备以增强对在给定位置被不止一次检索的数据的访问性能。在LAN/WAN的这一配置中,高速缓存代理位于客户机附近的LAN上。高速缓存代理将起到其跨越WAN被访问的客户机和服务器集合之间的中介的 作用。高速缓存存储先前传送过的数据期望被高速缓存的数据将来某时将被请求。当客户机向Web服务器请求数据时,例如,该客户机的Web连接被代理高速缓存截取。如果代理高速缓存具有所请求的数据,则它简单地跨越LAN本地地供应该数据。如果它不具有所请求的数据,则它跨越WAN从服务器检索所请求的数据,将该数据传送至请求的客户机,并将检索到的数据由其统一资源定位符(URL)索引地存储在其高速缓存中,以期望它将被再次用于随后的请求。 Another approach that has been used for web content and streaming media is to deploy proxy caching devices at distributed locations to enhance access performance to data that is retrieved more than once at a given location. In this LAN/WAN configuration, the Caching Proxy is located on the LAN near the client. The Caching Proxy will act as an intermediary between its set of clients and servers being accessed across the WAN. A cache stores previously transmitted data with the expectation that the cached data will be requested at some point in the future. When a client requests data from a web server, for example, the client's web connection is intercepted by the proxy cache. If the proxy cache has the requested data, it simply serves that data locally across the LAN. If it does not have the requested data, it retrieves the requested data from the server across the WAN, delivers the data to the requesting client, and stores the retrieved data indexed by its Uniform Resource Locator (URL) at its cache in the expectation that it will be used again for subsequent requests. the

以此方式,被访问了多次的数据只在第一次客户机请求时遭遇WAN的性能瓶颈,而对所有后续访问将受益于LAN的性能益处。然而,对于只被访问一次的数据,就不存在性能益处。其它技术被用于改善对数据(后来再次被请求或只被请求一次)的第一次客户机请求的性能。例如,网络高速缓存系统已被增加了内容递送能力,籍此操作员能将合需的内容在其被请求之前移到代理高速缓存中。在此模型中,内容发布系统通常与内容递送系统接口以允许操作员向代理高速缓存服务器集合发布内容。因此,假定某个数据已按此方式被预加载到代理高速缓存中,对该数据的第一次客户机请求将体验到高性能。然而,这些系统通常创建和管理起来很复杂,并且通常需要部署新的商务过程来支持这一信息递送模式。同样,取决于用户配置来合适地放置内容通常开销昂贵、不是最优化的并且易于出错。 In this way, data that is accessed multiple times will only experience the performance bottleneck of the WAN on the first client request, and will benefit from the performance benefits of the LAN for all subsequent accesses. However, for data that is only accessed once, there is no performance benefit. Other techniques are used to improve the performance of the first client request for data that is later requested again or only once. For example, web caching systems have been augmented with content delivery capabilities whereby operators can move desired content to proxy caches before they are requested. In this model, a content publishing system typically interfaces with a content delivery system to allow operators to publish content to a collection of proxy cache servers. Therefore, assuming that some data has been preloaded into the proxy cache in this way, the first client request for that data will experience high performance. However, these systems are often complex to create and manage, and often require the deployment of new business processes to support this information delivery model. Also, depending on user configuration to place content properly is often expensive, sub-optimal, and error-prone. the

解决WAN瓶颈的另一方法是分布服务器以使得用于企业的一部分的服务器位于用于企业该部分的客户机附近。例如,具有数个分支办公室的企业可在每一分支办公室中定位电子邮件服务器、文件服务器等,并将给定用户的数据存储在该用户的分支办公室的服务器上。例如,当针对特定用户的电子邮件消息到达企业的主邮件网关时,该邮件网关将标识该特定用户的分支办公室的电子邮件服务器,并将该电子邮件消息路由至所标识出的服务器。当用户检索他们的电子邮件时,它是从本地办公室的电子邮件服务器被取回的,并且性能很高。类似地,位于特定办公室的用户将向/从该办公室的文件服务器存储和检索文件,从而同样实现很高的性能。 Another way to address WAN bottlenecks is to distribute servers so that servers for one part of the enterprise are located near clients for that part of the enterprise. For example, an enterprise with several branch offices may locate an email server, file server, etc. in each branch office and store a given user's data on the server in that user's branch office. For example, when an email message for a particular user arrives at the enterprise's primary email gateway, the email gateway will identify the email server of the particular user's branch office and route the email message to the identified server. When users retrieve their e-mail, it is retrieved from the local office e-mail server with high performance. Similarly, users at a particular office will store and retrieve files to/from a file server in that office, again achieving high performance. the

然而,这一方法不总是可取的,因为在大企业中跨许多地点管理和分布服 务器的成本很高。每一这类设备必须被管理、备份、服务等。在集中数据中心内管理尽可能多的服务器通常开销低廉且可取得多。然而,集中体系结构要求通过WAN访问服务器,如上所述,这会引起困难的性能问题。 However, this approach is not always desirable because of the high cost of managing and distributing servers across many locations in large enterprises. Each such device must be managed, backed up, serviced, etc. Managing as many servers as possible in a centralized data center is usually cheap and readily available. However, the centralized architecture requires access to the server over the WAN, which, as mentioned above, can cause difficult performance issues. the

认证和安全机制可能使这些方法中的许多更加复杂。将内容例如从起点服务器移至复制服务器的代理机构(agent)必须是完全可信的,因为这一代理机构具有对所有数据的完全访问权限。向第三方设备或软件委托对企业中每一人的数据的“超级用户”访问权在许多顾客环境中是一个部署障碍。 Authentication and security mechanisms can further complicate many of these methods. An agent that moves content eg from an origin server to a replica server must be fully trusted, since this agent has full access to all data. Delegating "superuser" access to everyone's data in an enterprise to third-party devices or software is a deployment barrier in many customer environments. the

因此,需要改进的在网络上处理数据的技术。 Accordingly, there is a need for improved techniques for processing data over a network. the

发明概要Summary of the invention

在支持客户机与服务器之间的事务的网络中——其中客户机是请求事务的主机而服务器是发出响应于客户机请求的响应的主机,且客户机与服务器之间的分组在包括一个或多个跳跃并具有一个或多个要克服的工作特性的网络路径上行进——利用用户亲合性和动态用户位置信息来选择性地预加载数据、或数据的表示、签名、片段等来传输数据,以克服该一个或多个工作特性。要克服的工作特性的例子包括带宽限制、出错和等待时间。 In a network that supports transactions between clients and servers—where the client is the host requesting the transaction and the server is the host issuing the response in response to the client's request, and packets between the client and server are Traveling on network paths with multiple hops and with one or more operational characteristics to overcome - leveraging user affinity and dynamic user location information to selectively preload data, or transmit representations, signatures, fragments, etc. of data data to overcome the one or more operating characteristics. Examples of operational characteristics to overcome include bandwidth limitations, errors, and latency. the

在某些实施例中,动态位置信息被存储在可由数据服务器的代理机构访问的数据结构中,且这些数据结构是基于关于与用户位置相关联的代理的用户活动来填充的。在其它实施例中,动态位置信息在客户机终止连接之后代理维持连接并且使用那些维持的连接来为与那些客户机相关联的用户预加载数据时被隐式地获得。 In some embodiments, the dynamic location information is stored in data structures accessible by agents of the data server, and these data structures are populated based on user activity with respect to agents associated with the user's location. In other embodiments, dynamic location information is obtained implicitly when the broker maintains connections after clients terminate the connections and uses those maintained connections to preload data for users associated with those clients. the

考虑到以下的详细说明和优选实施例,本发明的其它特征和优点将是显而易见的。 Other features and advantages of the invention will be apparent from consideration of the following detailed description and preferred embodiments. the

附图简要说明 Brief description of the drawings

图1是根据本发明的代理设备的一个实施例的框图,在此例子中代理设备是电子邮件代理设备(EPD)。 Figure 1 is a block diagram of one embodiment of a proxy device, in this example an electronic mail proxy device (EPD), in accordance with the present invention. the

图2是根据本发明的实现成双端口NIC设备的代理设备的框图。 FIG. 2 is a block diagram of a proxy device implemented as a dual-port NIC device in accordance with the present invention. the

图3是示出可用于在请求该数据之前将数据递送至靠近可能请求该数据的用户的位置网络的内容递送代理机构(CDA)、用户位置数据库(ULDB)的配置。 Figure 3 is a diagram showing the configuration of a content delivery agency (CDA), user location database (ULDB) that can be used to deliver data to a network of locations close to users likely to request the data before requesting the data. the

图4是示出使用诸如图3中所示的配置递送电子邮件的过程的游动(swim)图。 FIG. 4 is a swim diagram illustrating the process of delivering email using a configuration such as that shown in FIG. 3 . the

图5是示出通过连接端点代理(CEP)代理的连接的图示。 FIG. 5 is a diagram showing a connection proxied by a Connection Endpoint Proxy (CEP). the

图6示出内容递送系统的一个实施例,其中连接端点代理设备(CEPD)与电子邮件代理高速缓存(EPC)集成。 Figure 6 illustrates an embodiment of a content delivery system in which a Connection Endpoint Proxy Device (CEPD) is integrated with an Email Proxy Cache (EPC). the

图7是示出如何在正常的电子邮件消息接发协议之上执行内容递送功能的一个例子的游动图。 Figure 7 is a flow diagram showing one example of how content delivery functionality is performed on top of the normal email messaging protocol. the

图8是示出在分布式企业中连接端点代理(CEP)和电子邮件代理高速缓存(EPC)的配置的图示。 Figure 8 is a diagram showing the configuration of a Connected Endpoint Proxy (CEP) and Email Proxy Cache (EPC) in a distributed enterprise. the

图9示出包括双端口NIC设备的集成的EPC和CEP设备的一个实施例。 Figure 9 illustrates one embodiment of an integrated EPC and CEP device including a dual port NIC device. the

图10示出集成的CEPD和客户机方事务加速器(CTA)的一个实施例。 Figure 10 illustrates one embodiment of an integrated CEPD and client-side transaction accelerator (CTA). the

图11是用诸如CIFS等文件访问协议具有居间CEP的客户机-服务器交互的游动图。 Figure 11 is a walk diagram of client-server interaction with an intermediary CEP using a file access protocol such as CIFS. the

图12是包括协议专用和/或协议知悉的CEP的内容递送系统的各部分的图解。 12 is a diagram of portions of a content delivery system including protocol-specific and/or protocol-aware CEP. the

发明的详细说明 Detailed description of the invention

如在阅读本公开后将显而易见的,本发明具有许多应用。在说明根据本发明的内容递送系统的一个实施例时,只说明了少数几个可能的变形。其它应用和变形对于本领域的普通技术人员将是显而易见的,因此本发明不应被解释成只限于这些例子,而应根据所附权利要求来理解。 As will be apparent after reading this disclosure, the present invention has many applications. In describing one embodiment of the content delivery system according to the present invention, only a few possible variations have been described. Other applications and modifications will be apparent to those of ordinary skill in the art, so the present invention should not be construed as limited to these examples, but construed in accordance with the appended claims. the

本文所使用的术语“事务”是导致数据从一处移至另一处的步骤的逻辑组合。在某些情形中,被移动的数据独立于事务地存在于其起点处,诸如其中文件存在于服务器的盘上的文件读取事务就是如此。在其它情形中,诸如响应于对计算、查找等的请求,在起点处为事务生成数据。通常,发起事务的计算机、 计算机设备等被称为“客户机”,而响应或预期响应的计算机、计算机设备等被称为“服务器”。 The term "transaction" as used herein is a logical grouping of steps that causes data to be moved from one place to another. In some cases, the data being moved exists independently of the transaction at its origin, such as a file read transaction where the file exists on the server's disk. In other cases, data is generated at the origin for transactions, such as in response to requests for calculations, lookups, and the like. Generally, a computer, computing device, etc. that initiates a transaction is referred to as a "client," and a computer, computing device, etc. that responds or expects a response is referred to as a "server." the

数据能在任一方向上流动。例如,文件系统客户机可以通过请求从文件服务器进行文件读取来发起事务。响应于该请求,相应数据将从服务器返回,因此在该情形中,大批量数据从服务器流向客户机。然而,在客户机发起文件写事务的情形中,大批量数据作为初始请求的一部分或作为后续消息从客户机流向服务器。 Data can flow in either direction. For example, a file system client may initiate a transaction by requesting a file read from a file server. In response to this request, the corresponding data will be returned from the server, so in this scenario, a large amount of data flows from the server to the client. However, in the case of a client-initiated file write transaction, large volumes of data flow from the client to the server either as part of the initial request or as subsequent messages. the

事务可以分多个部分,但在一个简单的事务中,客户机向服务器发送一个请求(显式地是请求或者指示或表示请求的数据、消息、信号等),而服务器用一响应(显式地是响应或者指示或表示响应的数据、消息、信号等)向客户机响应。例如,更复杂的事务可涉及例如服务器澄清请求,验证客户机接收对请求的响应的权限,取得准备响应所需的附加信息等所需的某种来回。 Transactions can be divided into multiple parts, but in a simple transaction, the client sends a request to the server (explicitly the data, message, signal, etc. A response is a response or data, message, signal, etc. indicating or representing a response) to a client. For example, more complex transactions may involve some back-and-forth such as the server clarifies the request, verifies the client's authority to receive a response to the request, obtains additional information needed to prepare the response, and the like. the

这里,客户机与服务器之间的连接的典型的例子是分组网络,但也可以使用诸如点对点有线或无线信道等其它连接手段。这些元素在本文中将被概括并称为“节点”,其中假设在节点之间有用于通信的信道。 Here, a typical example of the connection between the client and the server is a packet network, but other connection means such as point-to-point wired or wireless channels may also be used. These elements will be generalized herein and referred to as "nodes", where it is assumed that there are channels for communication between the nodes. the

事务可始于一个节点处的客户机作出针对另一节点处的服务器的文件数据请求,接着包含所请求的文件数据的响应被递送。其它事务可以是对文件的特定部分、整个文件、另一数据构成的全部或某些的请求,或者事务可以涉及从请求方流出的数据或涉及命令。事务的例子包括“读取块”、“读取文件”、“读取流”、“用此数据写块”(从请求方流出数据的一个例子)、“打开文件”、“对此数据执行计算”、“取得具有这些特征的电子邮件”、“发送电子邮件”、“检查新电子邮件”、“列出目录内容”等。 A transaction may begin with a client at one node making a request for file data to a server at another node, followed by a response containing the requested file data being delivered. Other transactions may be requests for a specific portion of a file, an entire file, all or some of another data composition, or a transaction may involve data flowing from a requesting party or involve commands. Examples of transactions include "read block", "read file", "read stream", "write block with this data" (an example of streaming data from the requester), "open file", "execute calculate", "get email with these characteristics", "send email", "check for new email", "list directory contents", etc. the

某些事务可能涉及在一个方向或两个方向上流动的大量数据。某些事务甚至可能涉及具有一个以上请求方和/或一个以上接收方的交互。为了说明的清楚起见,这许多事务类型被按照其中一个客户机向一个服务器作出请求而该一个服务器以客户机预期的方式响应该请求的典型的简单事务的形式来说明。然而,在阅读此公开时,普通技术人员将能把这些概念应用于在客户机与服务器之间或更一般化地在两个节点之间的一对多和多对多事务。在数据流被描述成 在一个方向上的情形中,应理解数据可以在另一方向上流动和/或信息可以仅在一个方向上流动,但数据和/或信号在两个方向上流动以完成信息的移动。 Some transactions may involve large amounts of data flowing in one or both directions. Some transactions may even involve interactions with more than one requester and/or more than one receiver. For clarity of illustration, these many transaction types are illustrated in terms of a typical simple transaction in which a client makes a request to a server and the server responds to the request in the manner expected by the client. However, upon reading this disclosure, one of ordinary skill will be able to apply these concepts to one-to-many and many-to-many transactions between a client and a server, or more generally between two nodes. Where data flow is described as being in one direction, it is understood that data can flow in another direction and/or information can flow in one direction only, but that data and/or signals flow in both directions to complete information of the mobile. the

如本文中使用中,“近”可以指物理上邻近,但也可以指网络邻近。网络邻近涉及性能属性。例如,LAN的两个节点可以被认为比由慢网络信道分隔的两个节点更近。物理上大的距离并不导致网络邻近是常有的情况,但也存在两个物理上邻近的节点在网络意义上非常远以及两个物理上远离的节点在网络意义上相对较近的例子。 As used herein, "near" may refer to physical proximity, but may also refer to network proximity. Network proximity relates to performance attributes. For example, two nodes of a LAN can be considered closer than two nodes separated by a slow network channel. It is often the case that physically large distances do not lead to network proximity, but there are also examples where two physically adjacent nodes are very far in the network sense and two physically distant nodes are relatively close in the network sense. the

本文所使用的术语“用户亲合性”是指在计算机系统或网络中与终端用户的关联。因此,具有用户亲合性的数据与该用户,或在某些情形中固有地连系于一个或多个用户。例如,定址到用户“某男”的电子邮件将具有关于该用户的用户亲合性。类似地,文件服务器上为“某男”所拥有的文件将具有关于该用户的用户亲合性。更一般化地,由分布式设置中的多个用户访问的文件将具有关于每一此类用户的用户亲合性。 As used herein, the term "user affinity" refers to an association with an end user in a computer system or network. Thus, data having a user affinity is inherently tied to that user, or in some cases to one or more users. For example, an email addressed to user "so-and-so" would have a user affinity for that user. Similarly, a file on a file server owned by "someone" will have a user affinity for that user. More generally, files accessed by multiple users in a distributed setting will have a user affinity for each such user. the

用户亲合性可以被有利地用于使数据递送最优化。在一个普通方法中,如上所述,可以用分布式方式建立多个服务器以将诸如电子邮件、文件等用户数据保持在该数据的用户附近。然而,其缺点在于服务器是分布式的且更难以维护等。 User affinity can be advantageously used to optimize data delivery. In a common approach, as described above, multiple servers can be set up in a distributed fashion to keep user data, such as e-mails, files, etc., close to the user of the data. However, the disadvantage is that the server is distributed and more difficult to maintain etc. the

这可以通过几种发明方法和装置克服。这里对两个例子及某些变形进行说明。 This can be overcome by several inventive methods and devices. Two examples and some variations are described here. the

使用动态位置信息存储来路由具有用户亲合性的数据Use dynamic location information store to route data with user affinity

在一种方法中,存储在服务器上的数据被选择性地拷贝到离客户机更近的高速缓存,其中该选择是基于被拷贝的数据的用户亲合性和从动态用户位置信息确定的用户的可能位置。将说明的一个具体例子是电子邮件内容递送系统,其中给定电子邮件消息的用户亲合性可基于电子邮件消息的预期收件人,而动态用户位置信息可从正在使用与电子邮件内容递送系统耦合的客户机的用户的先前交互来确定。 In one approach, data stored on the server is selectively copied to a cache closer to the client, where the selection is based on the user affinity of the copied data and the user's user location as determined from dynamic user location information. possible location. A specific example that will be described is an email content delivery system, where the user affinity for a given email message can be based on the intended recipients of the email message, and dynamic user location information can be derived from the email content delivery system being used. The user's previous interaction with the coupled client is determined. the

图1示出这类电子邮件内容递送系统的一个例子。如图所示,电子邮件代理高速缓存(EPC)100位于靠近远处位置的用户的网络上。EPC 100使在WAN 上用户所使用的客户机与集中式电子邮件服务器之间的通信性能最优化。EPC100通过一个或多个网络接口卡(NIC)附连到网络,并且包括用于终止和可任选地截取客户机连接的机制、用于保持电子邮件的拷贝的消息存储、以及用于终止和发起客户机与服务器之间的电子邮件传输连接的连接处理器。 Figure 1 shows an example of such an email content delivery system. As shown, an email proxy cache (EPC) 100 is located on a network near a user at a remote location.EPC 100 optimizes the communication performance between the client computer used by the user and the centralized email server on the WAN.EPC 100 is attached to the network through one or more network interface cards (NICs) and includes mechanisms for terminating and optionally intercepting client connections, message storage for maintaining copies of email, and for terminating and A connection handler that initiates an email transport connection between a client and a server. the

所示的EPC 100包括:连接处理器(CH)105、消息存储(MS)110、客户机120以及客户机120与连接处理器105之间的客户机连接140。在附图中存在相似项目的多个实例的情形中,它们用共同的附图标记表示,并且不同的实例用不同的附加说明来表示。因此,图1示出三个连接处理器105(1)、105(2)、105(3)。应理解,虽然这些例子示出三个客户机和三个连接处理器,但也可以存在更少或更多个客户机或更少或更多个连接处理器(且连接处理器的数目与客户机的数目不一定相同)。 TheEPC 100 shown includes: a connection handler (CH) 105, a message store (MS) 110, aclient 120, and aclient connection 140 between theclient 120 and theconnection handler 105. Where there are multiple instances of similar items in a drawing, they are indicated by a common reference number, and different instances are indicated by different additional descriptions. Thus, Figure 1 shows three connection handlers 105(1), 105(2), 105(3). It should be understood that while these examples show three clients and three connection handlers, there may be fewer or more clients or fewer or more connection handlers (and the number of connection handlers is the same as that of clients The number of machines is not necessarily the same). the

连接处理器105(以及EPC 100的诸部分)可以在通过连接至层2交换机的NIC附连到网络的计算机系统上运行的软件进程。EPC 100分配一网络地址(例如,网际协议或称IP地址)。每一连接处理器(CH)105代表相应的客户机120终止客户机会话并发起一个或多个服务器连接。例如,客户机120(1)通过连接140(1)与CH 105(1)通信。连接处理器105在消息存储110中存储和检索电子邮件消息数据的拷贝。 Connection processor 105 (and portions of EPC 100) may be software processes running on computer systems attached to a network through a NIC connected to alayer 2 switch.EPC 100 assigns a network address (eg, Internet Protocol or IP address). Each connection handler (CH) 105 terminates a client session and initiates one or more server connections on behalf of acorresponding client 120 . For example, client 120(1) communicates with CH 105(1) over connection 140(1).Connection handler 105 stores and retrieves a copy of the email message data inmessage store 110 . the

当以此方式部署时,附连到LAN的客户机例如通过使用EPC的IP地址而不是服务器的地址来与EPC 130通信而不是直接与起点服务器通信。这能提供某些益处,但还可以进一步改进,因为图1中所示的方法在电子邮件协议和客户机并不能现成地支持这类配置时经常难以实现。 When deployed in this manner, clients attached to the LAN communicate with the EPC 130 rather than directly with the origin server, for example, by using the EPC's IP address instead of the server's address. This can provide some benefits, but can be further improved, as the approach shown in Figure 1 is often difficult to implement when email protocols and clients do not support this type of configuration out-of-the-box. the

图2中示出一个改进的实施例,其中EPC 200包括双端口NIC,并且能被插入层2交换机与路由器之间的网络路径中,并且还包括连接处理器205(或按需要包括实例化连接处理器205的机制)。此配置允许EPC诸如根据在McCanneIV中所述的方法透明地截取和代理连接。在此实施例中,EPC 200对于它不代理的所有话务起到层2中继或网桥的作用。对于它代理的连接,EPC200在截取模块240中截取相应的话务,并将所截取的话务导向到EPC 200内合适的连接处理器205。 An improved embodiment is shown in FIG. 2, whereEPC 200 includes a dual-port NIC and can be inserted into a network path between aLayer 2 switch and a router, and also includes a connection handler 205 (or instantiated connection mechanism of the processor 205). This configuration allows the EPC to transparently intercept and proxy connections, such as according to the method described in McCanne IV. In this embodiment,EPC 200 acts as aLayer 2 relay or bridge for all traffic it does not proxy. For the connections it proxies, theEPC 200 intercepts the corresponding traffic in theinterception module 240 and directs the intercepted traffic to theappropriate connection handler 205 within theEPC 200. the

在此实施例中,与电子邮件服务器的客户机连接由EPC 200终止,这很象Web高速缓存终止连接。优选地,为每一客户机会话创建连接处理器,并与被客户机作为目标的电子邮件服务器建立相应的连接。当电子邮件客户机从服务器检索消息时,EPC 200检查其消息存储210来查看该消息是否已存在,并且如果存在则返回该消息。否则,EPC 200从起点电子邮件服务器取回该消息,将该消息存储在消息存储210中,并将该消息传送至电子邮件客户机。 In this embodiment, the client connection to the email server is terminated by theEPC 200, much like a Web cache terminates the connection. Preferably, a connection handler is created for each client session and establishes a corresponding connection with the email server targeted by the client. When an email client retrieves a message from a server, theEPC 200 checks itsmessage store 210 to see if the message already exists, and returns it if so. Otherwise,EPC 200 retrieves the message from the origin email server, stores the message inmessage store 210, and transmits the message to the email client. the

以此方式复制电子邮件是简单直接的任务,因为电子邮件协议通常给每一电子邮件分配一唯一性的标识符,并且消息是不可变更的。因此,不存在一致性问题要解决,因为电子邮件消息的拷贝实际上与原始消息相同。换而言之,如果EPC能使用消息的唯一性标识符在其消息存储中定位该消息,则它知道消息的拷贝总是有效的。 Copying emails in this way is a straightforward task since email protocols typically assign each email a unique identifier and messages are immutable. Therefore, there is no consistency problem to solve because the copy of the email message is effectively the same as the original message. In other words, if the EPC can locate the message in its message store using its unique identifier, it knows that a copy of the message is always valid. the

图3示出一个还包括部署在服务器处或其附近的内容递送代理机构(CDA)的内容递送系统。电子邮件服务器的内容递送代理机构用被确定为给靠近电子邮件代理高速缓存(EPC)的用户的消息预加载该EPC。当新邮件消息到达服务器时,该服务器的内容递送代理机构检查该消息以确定该消息的收件人。内容递送代理机构随后确定哪个EPC最靠近这个(些)收件人。此用户位置确定可以按如下所述的多种方式进行。一旦确定了合适的EPC,内容递送代理机构向所选择的EPC转发该消息的拷贝以供存储在该EPC的消息存储中。当用户随后取回该消息时,EPC从其消息存储供应该消息,并且结果所得的性能很高。 Figure 3 illustrates a content delivery system that also includes a content delivery agency (CDA) deployed at or near the server. The content delivery proxy of the email server preloads the EPC with messages determined to be addressed to users near the email proxy cache (EPC). When a new mail message arrives at a server, the server's content delivery agent examines the message to determine the recipients of the message. The content delivery agency then determines which EPC is closest to the recipient(s). This user location determination can be done in a number of ways as described below. Once a suitable EPC is determined, the content delivery agency forwards a copy of the message to the selected EPC for storage in the EPC's message store. When the user subsequently retrieves the message, the EPC serves the message from its message store, and the resulting performance is high. the

用户位置确定的一种方法涉及咨询由系统操作员维护的数据库。替换地,此确定可以通过咨询从用户在哪里读取他们的电子邮件的动态观察数据自动建立的数据库来确定。 One method of user location determination involves consulting a database maintained by the system operator. Alternatively, this determination may be determined by consulting a database automatically built from dynamic observation data of where users read their e-mails. the

在一个特定的例子中,图3示出分别操作电子邮件服务器302(1)和302(2)的两个数据中心300(1)和300(2)。如图所示,各数据中心300还包括CDA 304。所示的数据中心300(1)还包括用户位置数据库(ULDB)305。应理解数据中心、电子邮件服务器、内容递送代理机构、客户机和EPC的数目不需要与图3中所示的相同。例如,可以使用单个电子邮件服务器或者可以使用两个以上的电 子邮件服务器。 In one particular example, FIG. 3 shows two data centers 300(1) and 300(2) operating email servers 302(1) and 302(2), respectively. As shown, eachdata center 300 also includes aCDA 304. The illustrated data center 300( 1 ) also includes a user location database (ULDB) 305 . It should be understood that the number of data centers, email servers, content delivery agencies, clients and EPCs need not be the same as shown in FIG. 3 . For example, a single email server may be used or more than two email servers may be used. the

客户机310、311、312、313和314通过WAN访问电子邮件。各客户机通过由该客户机的本地EPC 330代理的连接与两个电子邮件服务器302中的一个通信。与各电子邮件服务器相关联的是内容递送代理机构(CDA)304。CDA可以是与电子邮件服务器在相同的计算机上运行并通过API与所述服务器接口的软件,或者它可以是在附连到与电子邮件服务器一致的网络的计算机上运行的并通过网络协议或在网络协议之上的API与该电子邮件服务器接口的设备。 Clients 310, 311, 312, 313, and 314 access email over the WAN. Each client communicates with one of the twoemail servers 302 through a connection proxied by the client'slocal EPC 330. Associated with each email server is a content delivery agency (CDA) 304 . The CDA may be software running on the same computer as the email server and interfacing with said server via an API, or it may be running on a computer attached to the same network as the email server and A device that interfaces with this email server through an API over a network protocol. the

在位于各种位置的客户机通过它们附近的EPC检索消息时,各EPC记录有用户正在从该位置检索电子邮件这一事实,并向ULDB 305传送指示该用户与该位置(例如,该EPC的位置)之间的映射的消息。例如,EPC 330(1)通过连接320(1)传送此信息。此消息可包含用户标识(即,登录名字、用户ID等)以及位置标识符(例如,用户检索消息所通过的EPC的IP地址等)。传送至ULDB的消息可以被成批组合在一起并在可配置的最大速率下被发送以允许系统在不降低性能的情况下缩放。 As clients at various locations retrieve messages through EPCs near them, each EPC records the fact that the user is retrieving e-mail from that location and transmits to theULDB 305 an location) between the mapped messages. For example, EPC 330(1) communicates this information over connection 320(1). This message may contain a user identification (ie, login name, user ID, etc.) as well as a location identifier (eg, the IP address of the EPC through which the user retrieved the message, etc.). Messages delivered to ULDB can be batched together and sent at a configurable maximum rate to allow the system to scale without performance degradation. the

使用此信息,ULDB随着时间推移得知各个用户的位置。结果,当有给一特定用户的新消息到达时,接收服务器的CDA能将该消息预加载到由动态位置信息确定的靠近该用户的EPC的消息存储中。例如,当给用户310的电子邮件到达服务器302(1)处时,CDA 304(1)通过连接350(1)向EPC 330(1)递送该消息的拷贝。如果ULDB指示用户从由不同EPC提供服务的不同位置访问电子邮件,则CDA能向每一可能服务该用户的EPC发送一个拷贝。 Using this information, ULDB learns the location of individual users over time. As a result, when a new message arrives for a particular user, the receiving server's CDA can preload the message into the message store of the EPC close to that user as determined by the dynamic location information. For example, when an email foruser 310 arrives at server 302(1), CDA 304(1) delivers a copy of the message to EPC 330(1) over connection 350(1). If the ULDB indicates that the user is accessing e-mail from different locations served by different EPCs, the CDA can send a copy to each EPC that may serve the user. the

图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的内容。接着,EPC403截取消息415并将相应的数据从其本地消息存储供应给客户机,从而实现高递送性能。 Figure 4 shows a tour graph for delivering example messages for a particular user. In this example, message 410 arrives at mail server 400 from the Internet. The mail server sends a "notification"message 411 to theCDA 401 indicating the arrival of a message for user "Joe".CDA 401 in turn sends a lookup message 412 for user "Joe" toULDB 402, which responds with the location ofdevice EPC 403.CDA 401 sends a "fetch" message 413 to mail server 400 to retrieve message data (and any attachments) from message 410. Once the data is received, theCDA 401 sends the data in a "preload"message 414 to theEPC 403. Subsequently, when the user attempts to read the message by theemail client 404, the client sends a "get back"message 415 to the server to request the content of the message 410. TheEPC 403 then intercepts themessage 415 and serves the corresponding data to the client from its local message store, enabling high delivery performance. the

使用连接端点代理基于用户亲合性来递送数据Use connection endpoint brokers to deliver data based on user affinity

上述方法改进了现有解决方案,但需要部署和管理与各服务器相关联的内容递送代理机构,这对于企业IT组织可能很困难并且昂贵。另外,此方法可能涉及需要与多个不同的协议、应用程序编程接口(API)、互相通信的代理机构等集成的几个独立的组件。 The above approach improves upon existing solutions, but requires deployment and management of content delivery agents associated with each server, which can be difficult and expensive for enterprise IT organizations. Additionally, this approach may involve several separate components that need to be integrated with multiple different protocols, application programming interfaces (APIs), intercommunicating agencies, and the like. the

现在将说明一种替换方法,其中内容是使用连接端点代理基于用户亲合性来递送的。作为本文所使用的术语,连接端点代理(CEP)是嵌入某设备或附连于网络的代理机构,它在客户机已终止其服务器连接之后维持客户机-服务器会话以使得该连接可用于代理发起的内容递送。 An alternative method will now be described in which content is delivered based on user affinity using a connection endpoint proxy. As the term is used herein, a Connection Endpoint Proxy (CEP) is a proxy mechanism embedded in a device or attached to a network that maintains a client-server session after a client has terminated its server connection so that the connection is available for proxy initiation content delivery. the

当客户机试图终止表示客户机-服务器会话的连接时,CEP截取该确定并维持此会话,从而继承该客户机会话。因为CEP继承了客户机会话,所以它还继承了该会话的所有安全性和访问能力。因此,CEP能将使得消息数据、附件等被从服务器被检索到本地代理中的合成事务注入到该客户机-服务器会话中。即使客户机终止其会话,CEP也能保留该客户机连接,继续监视客户机的消息存储,并且在有给该用户消息和相应数据来自服务器时将它们检索到CEP中。当客户机打开与所述服务器的新会话时,CEP拆卸先前维持的会话,然后允许建立新的会话。在除了在客户机方代理处运行的CEP外还存在服务器方代理的配置中,服务器方的代理机构能注意到何时第二用户会话被建立并拆卸任何在客户机连接终止之后仍被维持的CEP连接。 When a client attempts to terminate a connection representing a client-server session, the CEP intercepts the determination and maintains the session, thereby inheriting the client session. Because CEP inherits the client session, it also inherits all the security and access capabilities of that session. Thus, CEP can inject synthetic transactions into the client-server session that cause message data, attachments, etc. to be retrieved from the server into the home agent. Even if the client terminates its session, the CEP can preserve the client connection, continue to monitor the client's message store, and retrieve messages for the user and corresponding data from the server into the CEP as they become available. When a client opens a new session with the server, the CEP tears down the previously maintained session and then allows a new session to be established. In configurations where there is a server-side proxy in addition to the CEP running at the client-side proxy, the server-side proxy can notice when a second user session is established and tear down any CEP connection. the

CEP可以通过部署在网络代理设备内来被插入到客户机-服务器连接的路径中。容纳一组CEP的代理设备——一个CEP用于一个被代理的连接——被在本文称为连接端点代理设备(CEPD)。 CEP can be inserted into the path of a client-server connection by being deployed within a network proxy device. A proxy device that hosts a set of CEPs—one CEP for a proxied connection—is referred to herein as a Connection Endpoint Proxy Device (CEPD). the

图5示出通过一个或多个网络接口附连到网络的CEPD。在此情形中,示出了两个NIC的优选配置。多个客户机(510、511、512)具有分别通过CEP503、502和501代理的与服务器520的连接。 Figure 5 shows a CEPD attached to a network through one or more network interfaces. In this case, a preferred configuration of two NICs is shown. Multiple clients (510, 511, 512) have connections toserver 520 proxied throughCEPs 503, 502, and 501, respectively. the

图6示出内容递送系统的一个实施例,其中连接端点代理设备(CEPD)与电子邮件代理高速缓存(EPC)集成。如图所示,客户机601发起一个或多个与服务器604的传输连接,以对电子邮件消息或诸如日历数据、新闻组、共享文件等其它类型的消息进行检索、处理、检查等。 Figure 6 illustrates an embodiment of a content delivery system in which a Connection Endpoint Proxy Device (CEPD) is integrated with an Email Proxy Cache (EPC). As shown, aclient 601 initiates one or more transport connections with aserver 604 to retrieve, process, examine, etc. email messages or other types of messages such as calendar data, newsgroups, shared files, and the like. the

在某些情形中,客户机601用于访问电子邮件服务器的协议可以是诸如IMAP等标准化协议或诸如MAPI等专用协议。IMAP在1996年12月的M.Crispin的Request-for-Comments(RFC)2060“Internet Message AccessProtocol-Version 4revl(因特网消息访问协议V4.1)”中说明。MAPI是在微软的远程进程调用(RPC)之上协议的微软专用协议消息接发API(MAPI)。在这一实施例中,客户机的IMAP或MAPI连接将由CEPD 602透明地截取,这使得CEP 605处的IMAP/MAPI连接终止,并发起了与起点电子邮件服务器604的相应传输连接(或一组连接)。电子邮件代理603进而截取从CPED 602发起的连接,并接着发起与起点电子邮件服务器604的相应传输连接(或一组连接)。 In some cases, the protocol used byclient 601 to access the email server may be a standardized protocol such as IMAP or a proprietary protocol such as MAPI. IMAP is described in Request-for-Comments (RFC) 2060 "Internet Message Access Protocol-Version 4 revl (Internet Message Access Protocol V4.1)" by M. Crispin, December 1996. MAPI is a Microsoft proprietary protocol Messaging API (MAPI) protocol on top of Microsoft's Remote Procedure Call (RPC). In this embodiment, the client's IMAP or MAPI connection will be transparently intercepted byCEPD 602, which terminates the IMAP/MAPI connection atCEP 605 and initiates a corresponding transport connection (or set of connect).Email proxy 603 in turn intercepts the connection initiated fromCPED 602 and then initiates a corresponding transport connection (or set of connections) withorigin email server 604. the

一旦此传输连接管线被建立,来自客户机的消息就在包括到服务器的管线在内的各种连接上被中继,同时来自服务器的响应被中继回客户机。在连接的开始处,可以通过来回交换消息的各种机制来认证客户机。一旦客户机已被认证,则CEP 605就能自由地通过将合成消息注入客户机-服务器会话中来执行内容递送。例如,电子邮件客户机通常取回所有标题以向用户显示。然后,只有在用户试图显示和读消息之后,客户机才取回该消息。另外,电子邮件常常包含类似地只有在用户试图打开或下载附件时才被取回的大附件。为了改善用户体验,CEP能前摄地扫描用户邮箱的内容,并在它们被用户请求之前取回消息和附件数据。或者,CEP能在标题被检索时进行监视,并注入合成消息以请求相应的消息文本和附件数据。 Once this transport connection pipeline is established, messages from the client are relayed on various connections including the pipeline to the server, while responses from the server are relayed back to the client. At the beginning of the connection, the client can be authenticated by various mechanisms exchanging messages back and forth. Once the client has been authenticated, theCEP 605 is free to perform content delivery by injecting synthetic messages into the client-server session. For example, email clients typically retrieve all headers to display to the user. The client then retrieves the message only after the user attempts to display and read the message. Additionally, emails often contain similarly large attachments that are retrieved only when the user attempts to open or download the attachment. To improve user experience, CEP proactively scans the contents of user mailboxes and retrieves message and attachment data before they are requested by the user. Alternatively, CEP can monitor when headers are retrieved and inject synthetic messages requesting the corresponding message text and attachment data. the

图7是示出如何可以在正常的电子邮件消息接发协议之上执行内容递送功能的一个例子的游动图。在此例子中,假定采用IMAP协议。 Figure 7 is a diagram showing one example of how content delivery functionality can be performed on top of normal email messaging protocols. In this example, it is assumed that the IMAP protocol is used. the

在所示的例子中,客户机首先用在登录消息中包括合适的认证信息的“登录”请求701来建立其与电子邮件服务器的会话。一旦客户机已认证了它自己, 它随后就发出“选择”请求702以指定要对特定邮箱——例如用户的“收件箱”执行的后续操作。接着,客户机发出“统计”请求703以学习包括是否存在新消息在内的各种信息。客户机随后发出用于响应于用户读取来检索消息数据并显示消息的后续的“取回”命令(704和705)。随后,在此例中,用户转为空闲而不读任何后续消息,即便它们存在于邮箱中。此时,CEP检测到会话空闲,并传送一个对于在用户的收件箱中但尚未被检索的其它消息的合成“取回”请求706。这使得电子邮件代理高速缓存将这些消息存储在其邮件存储中。随后,当用户通过发送“取回”请求来读取这些消息时,这些消息被高性能地跨越LAN从电子邮件代理高速缓存发送到客户机。 In the example shown, the client first establishes its session with the email server with a "login" request 701 that includes the appropriate authentication information in the login message. Once the client has authenticated itself, it then sends a "select" request 702 to specify the follow-up actions to be performed on a particular mailbox—such as the user's "inbox". Next, the client sends out a "statistics" request 703 to learn various information including whether there are new messages. The client then issues subsequent "retrieve" commands (704 and 705) to retrieve the message data and display the message in response to the user reading. Then, in this example, the user goes idle without reading any subsequent messages, even though they exist in the mailbox. At this point, the CEP detects that the session is idle, and transmits a synthetic "fetch" request 706 for other messages that are in the user's inbox but have not yet been retrieved. This causes the email proxy cache to store these messages in its mail store. These messages are then high performance sent across the LAN from the e-mail proxy cache to the client when the user reads them by sending a "fetch" request. the

随后,用户退出电子邮件客户机,这使得客户机连接终止。然而,不是拆卸通过电子邮件代理高速缓存到服务器的连接,CEP代之以维持该连接并继续监视电子邮件服务器内该用户的数据源。例如,当有给该用户的新的电子邮件消息到达时,服务器向客户机发送一个“通知”消息709,该消息被CEP截取并消费。作为响应,CEP通过发送“取回”请求710来检索对应于新到达的电子邮件的消息正文以及附件的数据。因此,电子邮件代理高速缓存被连续地填充以表示用户的会话的电子邮件内容的数据而无需显式地构建将用户映射至位置的数据库。 Subsequently, the user logs out of the e-mail client, which terminates the client connection. However, instead of tearing down the connection cached by the email proxy to the server, the CEP instead maintains the connection and continues to monitor the user's data source within the email server. For example, when a new e-mail message arrives for the user, the server sends the client a "notify" message 709, which is intercepted and consumed by the CEP. In response, the CEP retrieves data corresponding to the message body and attachments of the newly arrived email by sending a "fetch" request 710 . Thus, the email proxy cache is continuously populated with data representing the email content of a user's session without explicitly building a database mapping users to locations. the

现在假设用户重新启动电子邮件客户机,打开与电子邮件服务器的连接并传送一个新“登录”请求711以建立会话。此时,CEP注意到用户正在建立新会话,因此它通过在老连接上向服务器发送一个“注销”请求712来拆卸老连接,关闭该连接,随后允许客户机的“登录”请求在新连接上继续发往服务器。随后,客户机尝试通过“取回”请求713将先前已由CEP检索到的消息检索到电于邮件代理高速缓存中。这样,它们就像其是跨越LAN从电子邮件代理高速缓存供应那样被高性能地递送。 Assume now that the user restarts the email client, opens a connection with the email server and sends a new "login" request 711 to establish the session. At this point, the CEP notices that the user is establishing a new session, so it tears down the old connection by sending a "logout" request 712 to the server on the old connection, closing the connection, and then allowing the client's "login" request to be made on the new connection Continue to send to the server. Subsequently, the client attempts to retrieve the message previously retrieved by the CEP into the mail proxy cache via a "fetch" request 713 . In this way, they are delivered high performance as if they were served from an email proxy cache across the LAN. the

图8示出如何跨具有多个地点的分布的企业推广和部署上述教导中的一些。在所示的例子中,在两个数据中心中存在两个服务器:服务器801和服务器802。在一个办公室,有三个客户机813、813、814、用于每一客户机(811,812,813)的CEP和EPC 810。类似地,在其它办公室存在其它客户机、CEP 和EPC。每一客户机从这两个服务器中的一个中检索其消息。当客户机来来往往时,CEP仍旧表示用户的电子邮件客户机。因此,当新消息到达时,CEP继续沿与相应电子邮件服务器的持久化连接将它们拷贝到本地站点。例如,因为客户机814从服务器802检索其消息,所以即使在从客户机814的连接不存在时,CEP 811也将自动从服务器802取回所有消息并将它们预加载到EPC 810中。 Figure 8 illustrates how some of the above teachings can be generalized and deployed across a distributed enterprise with multiple locations. In the example shown, there are two servers in two data centers:server 801 andserver 802 . In one office, there are threeclients 813, 813, 814, a CEP andEPC 810 for each client (811, 812, 813). Similarly, other clients, CEPs and EPCs exist in other offices. Each client retrieves its messages from one of these two servers. As clients come and go, the CEP still represents the user's e-mail client. Therefore, as new messages arrive, the CEP continues to copy them to the local site along the persistent connection with the corresponding email server. For example, sinceclient 814 retrieves its messages fromserver 802,CEP 811 will automatically retrieve all messages fromserver 802 and preload them intoEPC 810 even when a connection fromclient 814 does not exist. the

实际上,在EPC终止的持久化连接的整体形成一个从服务器至用户位置的通过本局客户机-服务器连接递送内容的用户中心内容递送网络。因此,用户位置由连接构造暗示,并且不需要被收集和显式地存储在某个类型的数据库中。 In effect, the ensemble of persistent connections terminated at the EPC forms a user-centric content delivery network that delivers content over local client-server connections from the server to the user's location. Thus, user location is implied by the connection construct and does not need to be collected and explicitly stored in some type of database. the

在本发明的另一实施例中,EPC和CEP功能被集成到一个过程中,并且CEPD不需要包含CEP实体。在这些实施例中,CEP实现代理端点,并且直接与消息存储交互。当客户机终止其会话时,CEP如上所述地维持服务器会话。图9示出此情形的一个例子。如图所示,CEP将其功能集成到EPC中,并直接终止客户机和服务器传输连接。 In another embodiment of the invention, EPC and CEP functions are integrated into one process, and CEPD need not contain CEP entities. In these embodiments, the CEP implements a proxy endpoint and interacts directly with the message store. When a client terminates its session, CEP maintains the server session as described above. Figure 9 shows an example of this situation. As shown, CEP integrates its functionality into EPC and directly terminates client and server transport connections. the

在另一个实施例中,CEP可以任选地使用如McCanneII中所描述的分层式分段和如McCanneIV中所描述的传输连接和截取及自动配置被配置成如在McCanneIII、McCanneI中所描述的事务加速器和分段系统。另外,CEP可以用于实现任何基于用户亲合性的协议的内容递送,而不只是电子邮件。McCanneI中所描述的分段和事务加速方案是独立于协议和应用程序的这一事实对此有所裨益。即,不同于上述EPC,使用分段的事务加速器对许多不同的协议和应用程序都起作用,而不只是电子邮件。 In another embodiment, the CEP can optionally be configured as described in McCanne III, McCanne I using hierarchical segmentation as described in McCanne II and transport connection and interception and autoconfiguration as described in McCanne IV Transaction accelerator and segmentation system. Additionally, CEP can be used to implement content delivery for any user-affinity-based protocol, not just email. This is helped by the fact that the segmentation and transaction acceleration schemes described in McCanne I are protocol and application independent. That is, unlike the EPC described above, transaction accelerators using segmentation work with many different protocols and applications, not just email. the

图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 中所描述的某种方式截取该连接。 Figure 10 shows this situation. A client-side transaction accelerator (CTA) 1003 with persistent segment storage (PSS) 1004 is located near the client, while a server-side transaction accelerator (STA) 1005 withPSS 1006 is located near the server. Interposed between theCTA 1003 and theSTA 1005 is the WAN. In addition,CEPD 1002 is interposed between the client andCTA 1003.CEP 1008 terminates the transport connection fromclient 1001 toserver 1007 and attempts to open a new connection fromCEPD 1002 toserver 1007. When theCEP 1008 initiates a connection to theserver 1007, the CTA and STA intercept the connection in some manner such as described in McCanne IV. the

在此配置下,CEP 1008处在通过将使服务器向客户机传送所需的数据的合成协议消息注入到客户机-服务器会话中来实现所需数据的内容递送的位置上。CEP 1008进而在知道包括该数据的分段现在都存在于PSS 1004和PSS1006中的情况下丢弃所得的数据。当客户机1001随后试图从服务器1007检索相应数据时,如在McCanneI中所描述的,在CTA/STA对一起折叠所请求的数据时,该数据无需再通过网络重新发送。 In this configuration, theCEP 1008 is in a position to achieve content delivery of the required data by injecting composite protocol messages into the client-server session that cause the server to communicate the required data to the client.CEP 1008 then discards the resulting data knowing that the segments comprising the data now exist in both PSS 1004 andPSS 1006. When theclient 1001 subsequently attempts to retrieve the corresponding data from theserver 1007, the data need not be resent over the network when the CTA/STA pair folds the requested data together as described in McCanne I. the

不同于其中消息被递送至特定用户的电子邮件,其它协议涉及由用户以自组织(ad hoc)方式引发的数据访问模式。例如,在诸如CIFS等文件访问协议中,用户能访问由不同用户创建并存储在不同服务器上的大量不同文件。同样,浏览Web(或是专用企业网或是通常的因特网)的用户最终可能在世界上几乎任何地方访问数据。为了处理这一情形,CEP能推断诸如网页或文件等数据对象的用户亲合性。 Unlike email, where messages are delivered to specific users, other protocols involve data access patterns induced by users in an ad hoc manner. For example, in a file access protocol such as CIFS, a user can access a large number of different files created by different users and stored on different servers. Likewise, users browsing the Web (either a private corporate network or the Internet in general) may end up accessing data almost anywhere in the world. To handle this situation, CEP can infer the user affinity of data objects such as web pages or files. the

一种推论方法是使用在McCanneIII中所述的事务预测框架。另一种方法是将用户亲合性信息收集在数据库中并使用此数据库来驱动CEP内容递送算法。 One method of inference is to use the transaction prediction framework described in McCanne III. Another approach is to collect user affinity information in a database and use this database to drive the CEP content delivery algorithm. the

在一个实施例中,设备中的每一CEP维持用户亲合性数据库(UADB)。UADB包含记录对数据对象的访问的一组记录。每一记录包括用户标识符(例如,登录名)、对象标识符(例如,文件服务器和路径名或Web URL)、第一次访问的时戳、最近一次访问的时戳、计数以及还可能有其它字段。记录可包含其它可由不同的内容递送策略和/或算法以不同方式使用的协议或应用程序专用的信息。例如,文件访问协议的记录格式还可包括所讨论的对象的“最后一次修改时间”。 In one embodiment, each CEP in a device maintains a User Affinity Database (UADB). A UADB contains a set of records that record access to data objects. Each record includes a user identifier (for example, a login name), an object identifier (for example, a file server and pathname or Web URL), a timestamp of the first access, a timestamp of the most recent access, a count, and possibly other fields. Records may contain other protocol or application specific information that may be used in different ways by different content delivery strategies and/or algorithms. For example, the record format of the file access protocol may also include the "last modified time" of the object in question. the

每次客户机通过CEP访问数据对象时,CEP在UADB中查找该对象记录。如果该对象记录不存在,则为该用户和对象创建一条具有设置成当前时间的时戳的新记录并将其输入到UADB中,且计数被初始化为1。如果记录已存在,则计数递增且最近一次访问时间被更新。 Every time a client accesses a data object through CEP, CEP looks up the object record in UADB. If the object record does not exist, a new record is created for the user and object with the timestamp set to the current time and entered into UADB with the count initialized to one. If the record already exists, the count is incremented and the last access time is updated. the

在UADB的情形中,CEP例如在夜晚,在空闲网络活动期间,继续以某 个配置的比特率等以后台进程的形式执行内容递送。这可以在客户机终止连接之后通过由CEP维持的会话来完成,或如果CEP具有发起其自己连接的许可,则CEP可登录(建立连接)。 In the case of UADB, the CEP continues to perform content delivery as a background process at a certain configured bit rate, etc., e.g. at night, during idle network activity. This can be done through a session maintained by the CEP after the client terminates the connection, or the CEP can log in (establish a connection) if the CEP has permission to initiate its own connection. the

此后台递送过程是通过令CEP在UADB中以循环法扫描所有与由所述CEP处理的用户匹配的记录来实现的。对于每一记录,从服务器中检索对象并简单地由CEP丢弃该对象,从而将表示所需对象的所有分段数据填充到本地CTA的PSS中。此步骤可以通过额外地保持所讨论的对象的修改时戳(如上所述)并仅在服务器上的修改时间比存储在对象记录中的最近一次修改时间更近时才取回该数据对象来最优化。此方案特别高效,因为正好被抽取多次的类似数据(例如具有相同数据的两个文件)由于在McCanneI和McCanneII中所描述的分段算法的高效属性而只遍历WAN一次。 This background delivery process is accomplished by having the CEP scan the UADB in a round-robin fashion for all records matching a user handled by the CEP. For each record, the object is retrieved from the server and simply discarded by the CEP, filling in the local CTA's PSS with all segment data representing the desired object. This step can be minimized by additionally maintaining the modification timestamp of the object in question (as above) and only retrieving the data object if the modification time on the server is more recent than the last modification time stored in the object record optimization. This scheme is particularly efficient because similar data that happens to be extracted multiple times (e.g. two files with the same data) only traverses the WAN once due to the efficient properties of the segmentation algorithm described in McCanne I and McCanne II. the

各种策略可用于控制扫描数据对象的频度,且在需要时,控制跨越网络抽取数据的频度。例如,与比较少被访问的对象相比,较常被访问的对象可被更频繁地扫描。或者,与最近被访问时间较远的对象相比,最近被访问的时间较近的对象可被更频繁地扫描。或者,在某个可配置的时间长度里未被访问的对象可以被简单地从UADB丢弃。 Various policies can be used to control how often data objects are scanned and, if desired, how often data is pulled across the network. For example, more frequently accessed objects may be scanned more frequently than less frequently accessed objects. Alternatively, objects that were recently accessed may be scanned more frequently than objects that were recently accessed more recently. Alternatively, objects that have not been accessed for some configurable length of time can simply be discarded from UADB. the

图11示出假定采用象CIFS那样的文件访问协议的情况下具有居间CEP的客户机-服务器交互的游动图。在本例中,CEP包括记录文件访问模式的UADB(未示出)。假设客户机已与CIFS服务器建立了CIFS会话。 Figure 11 shows a walk diagram of a client-server interaction with an intervening CEP assuming a file access protocol like CIFS. In this example, the CEP includes a UADB (not shown) that records file access patterns. Assume the client has established a CIFS session with the CIFS server. the

在该图的顶部,客户机打开文件“A”,随后从文件“A”读数据,并关闭它。当这些客户机-服务器事务流过CEP时,CEP在UADB中记录一个通知用户已访问文件“A”的对象记录。过了一些时间之后,客户机注销且会话被终止,但是如上所提及的,CEP代表断开的客户机维持与服务器的会话以实现内容递送。再过了一些时间之后,例如某另一对该文件具有写许可的其它某个用户对文件“A”进行了修改。后台内容递送过程始终在CEP内运行,有时通过向服务器发送针对文件“A”的“统计”消息来检查图中所示的文件“A”的修改时间。在某一刻,CEP注意到文件“A”的修改时间比存储在UADB对象记录中的修改时间更近。因此,CEP打开文件“A”,读取其内容,并简单 地丢弃所得的结果,因为表示文件“A”中所包含的数据的所有片段现已被成功地复制到本地CTA的PSS中。客户机进而与服务器建立新CIFS会话,并访问文件“A”。CTA随后拆卸老的CIFS会话并允许建立新的CIFS会话。 At the top of the diagram, the client opens file "A", then reads data from file "A", and closes it. As these client-server transactions flow through CEP, CEP records an object record in UADB notifying the user that file "A" has been accessed. After some time, the client logs off and the session is terminated, but as mentioned above, the CEP maintains the session with the server on behalf of the disconnected client for content delivery. Some time later, file "A" is modified, for example by some other user who has write permission to the file. The background content delivery process is always running within the CEP, sometimes checking the modification time of file "A" shown in the figure by sending a "statistics" message for file "A" to the server. At some point, CEP notices that the modification time of file "A" is more recent than that stored in the UADB object record. Accordingly, the CEP opens file "A", reads its contents, and simply discards the result, since all fragments representing the data contained in file "A" have now been successfully copied into the local CTA's PSS. The client in turn establishes a new CIFS session with the server and accesses file "A". The CTA then tears down the old CIFS session and allows new CIFS sessions to be established. the

或者,STA中的代理机构可以执行拆卸老的会话并允许建立新会话通过的工作。此服务器方途径的优点在于在一段时间里从多个位置访问电子邮件服务的各用户将不会留下活动内容递送会话的踪迹,即便一个时刻只有一个客户机活动。由于CTA中存在所有所需的片段,因此跨越WAN检索文件“A”获得了高性能。 Alternatively, an agency in the STA could perform the job of tearing down old sessions and allowing new ones to go through. An advantage of this server-side approach is that each user accessing the email service from multiple locations over a period of time will leave no trace of an active content delivery session, even if only one client is active at a time. Retrieving file "A" across the WAN achieves high performance since all required fragments are present in the CTA. the

将CEP与事务加速器和片段结合在一起使用的某些优点在电子邮件被发送至大量收件人的例子中是显而易见的。在该情形中,假设某消息被发送至许多收件人。然后,尽管CEP的许多实例中的每一个下拉了电子邮件数据的单个拷贝,但该数据被CTA/STA对跨越WAN只向每一位置传送一次。甚至每一CEP相互独立地动作并且不做任何事情来协助数据的高效递送,只向任何给定位置传送该电子邮件的一个拷贝。另外,该方法容易地与现有基础结构集成,不需要对现有客户机、服务器或应用程序进行变化或添加。 Some of the advantages of using CEP with transaction accelerators and fragments are evident in the example where email is sent to a large number of recipients. In this scenario, assume a message is sent to many recipients. Then, although each of the many instances of CEP pulls down a single copy of the email data, that data is only delivered once to each location across the WAN by the CTA/STA pair. Even each CEP acts independently of each other and does nothing to assist in the efficient delivery of data, except to deliver one copy of the email to any given location. Additionally, the approach integrates easily with existing infrastructure, requiring no changes or additions to existing clients, servers, or applications. the

如在对CIFS和电子邮件的CEP内容递送的讨论中显而易见的,通常需要CEP内的协议专用知识来解释并将合成消息注入到客户机-服务器会话中用于所需的数据传送。在某些实施例中,协议专用知识被嵌入在共同驻留在CTA内的多种类型的CEP中以创建“修改的CTA”。此配置在图12中示出,图12示出通过修改的CTA通信的多个客户机。每一客户机与协议专用CEP的一个实例通信,并且每一个这类CEP可以有一个以上的实例。 As evident in the discussion of CEP content delivery for CIFS and email, protocol specific knowledge within CEP is generally required to interpret and inject synthesized messages into client-server sessions for the required data transfer. In some embodiments, protocol-specific knowledge is embedded in multiple types of CEPs co-resident within a CTA to create a "modified CTA." This configuration is illustrated in Figure 12, which shows multiple clients communicating through a modified CTA. Each client communicates with one instance of a protocol-specific CEP, and there may be more than one instance of each such CEP. the

例如,CIFS客户机与CIFS CEP通信,而MAP客户机与MAPI CEP通信。如在McCanneI中所述,这些CEP中的每一个可用作客户机代理,该客户机代理进而与控制PSS降低WAN上带宽消耗的事务变换模块(TT和TT-1)通信。每一CEP与STA上的服务器方代理逻辑地通信,该服务器方代理进而与起点服务器通信从而将客户机与目标服务器连接。例如,CIFS CEP与CIFS服务器代理通信,该服务器进而与目标CIFS服务器通信。 For example, CIFS clients communicate with CIFS CEPs, and MAP clients communicate with MAPI CEPs. As described in McCanneI, each of these CEPs can act as a client agent which in turn communicates with the transaction transformation modules (TT and TT-1 ) that control the PSS to reduce bandwidth consumption on the WAN. Each CEP logically communicates with a server-side agent on the STA, which in turn communicates with the origin server to connect the client with the target server. For example, a CIFS CEP communicates with a CIFS server proxy, which in turn communicates with a target CIFS server.

上述说明只是例示而非限定。本发明的许多变形在本领域的技术人员查阅 本公开时将变得显而易见。因此,本发明的范围不是参照上述说明书来确定的而应是参照所附权利要求书及其等效技术方案的完整范围来确定的。 The above descriptions are illustrative and not limiting. Many variations of the invention will become apparent to those skilled in the art upon review of the present disclosure. Therefore, the scope of the present invention should be determined not with reference to the above description but with reference to the appended claims and their full scope of equivalent technical solutions. the

Claims (27)

CN2005800498730A2005-04-192005-04-19 User-affinity-based content delivery using connection endpoint brokersExpired - Fee RelatedCN101189605B (en)

Applications Claiming Priority (1)

Application NumberPriority DateFiling DateTitle
PCT/US2005/013285WO2006112845A1 (en)2005-04-192005-04-19Content delivery based on user affinity using connection end-point proxies

Publications (2)

Publication NumberPublication Date
CN101189605A CN101189605A (en)2008-05-28
CN101189605Btrue CN101189605B (en)2013-04-17

Family

ID=35431177

Family Applications (1)

Application NumberTitlePriority DateFiling Date
CN2005800498730AExpired - Fee RelatedCN101189605B (en)2005-04-192005-04-19 User-affinity-based content delivery using connection endpoint brokers

Country Status (6)

CountryLink
EP (1)EP1872269A1 (en)
JP (1)JP4733739B2 (en)
CN (1)CN101189605B (en)
AU (1)AU2005330679B2 (en)
IL (1)IL186755A0 (en)
WO (1)WO2006112845A1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US7936679B2 (en)*2008-01-292011-05-03Ikanos Communications Inc.Method and apparatus for managing XDSL pseudo links
US8843758B2 (en)*2011-11-302014-09-23Microsoft CorporationMigrating authenticated content towards content consumer
CN104156343B (en)*2014-08-202017-05-10北京国双科技有限公司Processing method and device for messy codes in data warehouse

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
DE4402856A1 (en)*1994-01-311995-08-10Sel Alcatel Ag Method for sending letters, as well as subscriber station, converter station and letter sending device
US6212565B1 (en)*1998-08-262001-04-03Sun Microsystems, Inc.Apparatus and method for improving performance of proxy server arrays that use persistent connections
US6397253B1 (en)*1998-10-062002-05-28Bull Hn Information Systems Inc.Method and system for providing high performance Web browser and server communications
JP4299911B2 (en)*1999-03-242009-07-22株式会社東芝 Information transfer system
JP2000293424A (en)*1999-04-092000-10-20Hitachi Ltd Network cache device and cache control method
US6721780B1 (en)*1999-11-092004-04-13Fireclick, Inc.Predictive pre-download of network objects
JP2001166181A (en)*1999-12-032001-06-22Sanwa Denki Kogyo Co LtdOptical fixed attenuator
US6697843B1 (en)*2000-04-132004-02-24United Parcel Service Of America, Inc.Method and system for hybrid mail with distributed processing
JP2004508613A (en)*2000-06-012004-03-18エアロキャストドットコム インコーポレイテッド Preloading content objects into the content exchange
US20020138437A1 (en)*2001-01-082002-09-26Lewin Daniel M.Extending an internet content delivery network into an enterprise environment by locating ICDN content servers topologically near an enterprise firewall
JP3798263B2 (en)*2001-06-012006-07-19三菱電機株式会社 E-mail server, e-mail cache method, and e-mail cache program
US6947444B2 (en)*2001-06-062005-09-20Ipr Licensing, Inc.Method and apparatus for improving utilization efficiency of wireless links for web-based applications
US7120666B2 (en)*2002-10-302006-10-10Riverbed Technology, Inc.Transaction accelerator for client-server communication systems
JP2004254039A (en)*2003-02-192004-09-09Ntt Docomo Inc Mail communication relay system, mail communication relay device, mail communication relay method, and mail communication relay program
JP4339627B2 (en)*2003-05-232009-10-07株式会社日立製作所 Personal storage service provision method

Also Published As

Publication numberPublication date
JP4733739B2 (en)2011-07-27
JP2008537437A (en)2008-09-11
WO2006112845A9 (en)2008-01-03
AU2005330679A1 (en)2006-10-26
AU2005330679B2 (en)2011-03-24
WO2006112845A1 (en)2006-10-26
IL186755A0 (en)2008-02-09
EP1872269A1 (en)2008-01-02
CN101189605A (en)2008-05-28

Similar Documents

PublicationPublication DateTitle
US7650416B2 (en)Content delivery for client-server protocols with user affinities using connection end-point proxies
US7788329B2 (en)Throttling electronic communications from one or more senders
US7111006B2 (en)System and method for providing distributed database services
US6154776A (en)Quality of service allocation on a network
US7103656B2 (en)System and method for administrating a wireless communication network
US6912564B1 (en)System for instant messaging the sender and recipients of an e-mail message
US7133905B2 (en)Method and system for tiered distribution in a content delivery network
US8959164B2 (en)Tri-state presence indicator
US20020059454A1 (en)E-mail sender identification
JP2006505215A (en) Transaction accelerator for client-server communication system
JP2004518316A (en) Transparent implementation using value-added electronic messaging services and intermediate servers
US9100221B2 (en)Systems for messaging senders and recipients of an electronic message
US20130073647A1 (en)Presenting a recipient of an e-mail with an option to instant message a sender or another recipient based on the sender's or the other recipient's address and online status
CN101189605B (en) User-affinity-based content delivery using connection endpoint brokers
US8284782B1 (en)System and method for avoiding ARP cache pollution

Legal Events

DateCodeTitleDescription
C06Publication
PB01Publication
C10Entry into substantive examination
SE01Entry into force of request for substantive examination
C53Correction of patent of invention or patent application
CB03Change of inventor or designer information

Inventor after:Wu Zhixi

Inventor after:S. McCarney

Inventor before:D * T * S * Wu

Inventor before:S. McCarney

CORChange of bibliographic data

Free format text:CORRECT: INVENTOR; FROM: WU D. T. - S. MCCANN S. TO: WU ZHIXI MCCANN S.

C14Grant of patent or utility model
GR01Patent grant
CF01Termination of patent right due to non-payment of annual fee
CF01Termination of patent right due to non-payment of annual fee

Granted publication date:20130417

Termination date:20160419


[8]ページ先頭

©2009-2025 Movatter.jp