CN101188627A - 用于客户-服务器通信系统的事务加速器 - Google Patents

用于客户-服务器通信系统的事务加速器 Download PDF

Info

Publication number
CN101188627A
CN101188627A CNA2007103073837A CN200710307383A CN101188627A CN 101188627 A CN101188627 A CN 101188627A CN A2007103073837 A CNA2007103073837 A CN A2007103073837A CN 200710307383 A CN200710307383 A CN 200710307383A CN 101188627 A CN101188627 A CN 101188627A
Authority
CN
China
Prior art keywords
section
client
server
net load
data
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.)
Granted
Application number
CNA2007103073837A
Other languages
English (en)
Other versions
CN101188627B (zh
Inventor
S·麦克坎尼
M·J·德玛
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.)
NBT Technology Inc
Original Assignee
NBT Technology Inc
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=32175156&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=CN101188627(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by NBT Technology Inc filed Critical NBT Technology Inc
Publication of CN101188627A publication Critical patent/CN101188627A/zh
Application granted granted Critical
Publication of CN101188627B publication Critical patent/CN101188627B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/288Distributed intermediate devices, i.e. intermediate devices for interaction with other intermediate devices on the same level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/289Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • H04L67/5651Reducing the amount or size of exchanged application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Abstract

在具有事务加速的网络中,对于已加速的事务来说,客户直接给客户端事务处理器一个请求,其转发这个请求给服务器端事务处理器,这个处理器依次提供请求或它的表示到用于响应此请求的服务器。服务器发送响应到服务器端事务处理器,其转发这个响应到客户端事务处理器,这个处理器依次提供响应给客户。通过在服务器端事务处理器可存取的永久性段存储器中,和客户端事务处理器可存取的永久性段处理器中存储用于事务的数据段,事务可以被事务处理器加速。当数据要在事务处理器之间发送时,发送事务处理器比较要发送的数据段和存储在它永久性段存储器中的段,并关于存储在它永久性段存储器中,与所替代的数据段匹配或近似匹配的条目,来替代数据段。接收事务存储器重构由参考对应来自它永久性段存储器的段数据的替代段发送的数据,按照需要请求遗漏来自发送者的段。事务加速器可以处理多个客户和/或多个服务器,且存储在永久性段存储器中的段可以涉及不同的事务、不同的客户和/或不同的服务器。永久性段存储器可以预先提供来自其他事务加速器的段数据。

Description

用于客户-服务器通信系统的事务加速器
本申请是申请日为2003年10月28日申请号为第200380107078.3号发明名称为“用于客户-服务器通信系统的事务加速器”的中国专利申请的分案申请。
相关应用参照
美国专利申请系列10/285,330,名为“在存储和传输中数据压缩的基于内容分段方案,包括分级分段表示”[代理记录摘要号021647-000200US](在下文中“McCanne II”)和本申请同一日期申请,在此为所有目的结合和参考。
                            发明背景
本发明通常涉及用于通过有限的带宽信道有效移动数据的系统,尤其是涉及使可用数据在有限信道上响应对数据请求比数据未处理就发送来响应请求更快。
许多在高速连接上运行良好的应用和系统需要适合于在较低速连接上运行。例如,在局域网(LAN)上操作一个文件系统工作良好,但常常需要在诸如LAN的高速链路上访问文件,不适合于从需要访问文件的客户和服务文件的文件服务器沿着整个路径访问。对其它网络服务,诸如e-mail服务、计算服务、多媒体、食品会议、数据库查询、办公协作等等,类似的设计问题同样存在。
例如,在联网文件系统中,在一个地方被应用程序使用的文件可能被存储在另外一个地方。在一个典型的情景中,大量用户在联网的计算机上操作,贯串一个组织和/或地理区域共享一个文件或存储在一个文件系统中的文件组。文件系统可能接近用户中的一个,但典型的它远离大多数的用户,但用户常常期望文件出现在靠近他们的站点。
正如在此使用的,“客户”通常指的是可以提出对数据或动作的请求的计算机、计算设备、外围设备、电子设备或类似的,而“服务器”通常指的是响应由一个或更多客户提出的对数据或动作的请求而操作的计算机、计算设备、外围设备、电子设备或类似的。
请求可以是针对计算机、计算设备、外围设备、电子设备或类似设备的操作,和/或针对正在由客户执行或控制的应用程序。一个例子是计算机运行一个需要存储在计算机外部的文档的字处理程序,它使用网络文件系统客户在网络上对文件服务器发出请求。另外一个例子是对直接在服务器的动作的请求它本身执行一个动作,诸如打印服务器、处理服务器、控制服务器、设备接口服务器和I/O(输入/输出)服务器等等。
请求常常通过提供请求数据或执行请求动作的响应消息,或指示无法服务此请求的响应消息,诸如错误消息或失败或不正确请求的监控系统的警报来满足。服务器还可能阻塞请求、传送请求、变换请求或类似的,然后响应请求或不响应请求。
在有些情况,通常当作服务器的设备可以担当客户并提出请求,通常当作客户的设备可以担当服务器并响应请求。此外,单个设备对于其它服务器/客户或它自己来说,可以既是服务器也是客户。例如,桌上型计算机可以运行数据库客户和针对数据库客户的用户界面。如果桌上型计算机用户操作数据库客户,使它提出数据请求,则数据库客户将发布这个请求,大概到数据库服务器。如果数据库服务器正在相同桌上型计算机上运行,桌上型计算机将有效地提出请求给它自己。应该可以理解的是,如在此所用的,客户和服务器常常是不同的且被网络、物理距离、安全测量和其它障碍分离,但那些都不需要客户和服务器的特征。
在有些情况下,客户和服务器不是必须唯一的。例如,在点对点网络中,一个点可能对另一个点请求,但也可能提供对那个点的响应。因此,应该可以理解的是,当术语“客户”和“服务器”典型地在此使用分别作为提出“请求”和提供“响应”的角色的时候,那些元素可能扮演其它不清晰地通过客户-服务器范例描绘的角色。
通常,请求-响应环可以被称为“事务”,对于一个给定的事务,有些物体(物理的、逻辑的和/或虚拟的)可以被说成是那个事务的“客户”,有些其它物体(物理的、逻辑的和/或虚拟的)可以被说成是那个事务的“服务器”。
通常客户-服务器事务经过分组网络在客户和服务器之间直接流动,但在有些环境中,这些事务可以通过称为“代理”的传输层或应用层设备被截取和转发。在这种情况下,代理是客户连接的终点和另一个连接到代表客户的服务器的起点。可替换地,代理连接到一个或更多依次连接到服务器的其它代理。每个代理可能当事务从客户流到服务器时,转发、修改或不同的变换事务,反之亦然。代理的例子包括(1)Web代理,其通过高速缓存或通过控制访问服务器加强安全来加强性能,(2)邮件中继,其转发来自客户的邮件到其它邮件服务器,(3)DNS中继,其隐藏DNS名字解析等。
如在此使用的,术语“近”、“远”、“本地”和“远程”可能指的是物理距离,但更典型的是他们指的是有效距离。二台计算机、计算设备、服务器、客户、外围设备等之间的有效距离至少近似于二台计算机之间获得数据困难的测量。例如,文件数据存储在直接连接到使用这个文件数据的计算机处理器的硬盘驱动器上,通过专用高速总线连接,硬盘驱动器和计算机处理器彼此有效的“近”,但硬盘驱动器和计算机处理器之间的业务在一个低的总线上,具有更多的可能截住数据的插入事件,硬盘驱动器和计算机处理器被说成是更远地分离。
较大和较小的物理距离不需要对应较大和较小的有效距离。例如,被高质量和高带宽光纤英里分离的文件服务器和桌上型计算机,与被几英尺分离和通过嘈杂环境中无线连接耦合的文件服务器和桌上型计算机相比,可能具有更小的有效距离。
通常,在有效距离大的地方,需要更多的努力来造成较短有效距离的效果。发展了许多方法来造成这个效果。例如,当由于有限的带宽增加有效距离时,使用压缩或通过高速缓存来改善这个限制。压缩是使用较少比特来表示大量数据比特的处理,以这样的方式作,在大多数情况下,可以从压缩处理的反相来恢复原始比特或原始比特的足够近似值。高速缓存是存储先前发送结果的处理,以期望用户将再次请求结果,并比结果来自原始提供者更快速地从高速缓冲存储器接收响应。
压缩使得有限带宽更有效使用,且可能导致更少的等待时间,但在有些情况下,没有等待时间改善发生。关于客户-服务器事务的等待时间,是当提出数据请求和请求数据被接收的时间之间的延迟的测量。在有些情况下,如果在提出请求之后压缩数据需要时间,在接收之后解压缩数据需要时间,则压缩可能增加等待时间。如果在进行请求之前的时间之前压缩数据,则可以改善,但如果数据没必要适合压缩时间之前,或如果提供请求的数据量相对于所使用的类似数据量来说太大,则没有可行性。
高速缓存还提供有些帮助来减小有效距离,但在有些情况它帮助不了这么多。例如,在单个处理器正在从它控制的存储器检索数据,并以重复的方式这样作的地方,可能是这样的情况,当从存储器读取处理器指令时,高速缓存可以大大加快处理器的任务。在典型地高速缓冲存储器设置中,请求者请求来自有些存储器的数据,设备等的数据,结果提供给请求者,并存储在比原始设备提供数据具有更快响应时间的高速缓存存储器中。然后,当请求者再次请求这个数据时,如果它仍然在高速缓存存储器中,则高速缓存存储器可以在原始设备能够返回数据之前,响应请求返回数据,并快速满足请求。
高速缓存有它的难点,其中之一是数据可能在源头改变,高速缓存存储器将提供“陈旧”数据给请求者。这是“高速缓存一致性”问题。高速缓存的另一个问题是数据的原始源头可能想跟踪数据的使用,将不知道来自高速缓存存储器服务而非来自原始源头。例如,Web服务器在远离运行“指向”Web服务器的Web浏览器的大量计算机的地方,Web浏览器可能高速缓存来自它们浏览的站点的Web页面,来避免再次下载Web页面发生的延迟。虽然这可以改善很多情况下的性能,并降低Web服务器的负荷,但是Web服务器操作员可能试图跟踪“页面浏览”的总数量,但是将对由高速缓存存储器服务的那些不知情。在有些情况下,因特网服务提供者可能操作远离浏览器的高速缓存存储器,并为大量浏览器提供高速缓存的内容,这样Web服务器操作员可能甚至完全错过唯一的用户。
另外,在下面Web高速缓存的机制为原始数据和高速缓存的数据之间的一致性仅仅提供自由的模式。通常,基于与原始数据的变化无关的事务中的直观推断或暗示,Web数据被高速缓存一段时间。这意味高速缓存Web数据有时变得和原始服务器不一致,且这样的不一致被Web站点操作者、服务提供者和用户简单容忍作为合理的性能平衡。不幸地,这个自由一致性的模式完全不适合于通常的如同联网文件系统的客户-服务器通信。当客户与文件服务器相互作用时,一致性模式必须全部正确,并精确地确保使用文件系统的应用程序的正确操作。
网络响应的有些解决方案处理在文件系统或网络层的问题。一个建议的解决方案是低带宽网络文件系统的使用,诸如在操作系统原理(SOSP′01)上的18th ACM研讨会,pp.174-187(Chateau Lake Louise,Banff,Canada,2001年10月)(ACM出版社在ACM SIGOPS操作系统回顾的vol.35,5中)的会议记录中,Muthitacharoen,A.,et al“的带宽网络文件系统”中所描述的。在那个称为LBFS的系统中,客户采用“整个文件”高速缓存,由此在文件打开操作上,客户从服务器取来文件中所有的数据,然后操作在本地高速缓存文件数据的拷贝。如果客户对文件进行了改变,则当客户关闭文件时,那些改变被传送回服务器。为了最优化这些传输,LBFS使用无用信息替换文件片,收件人使用与存储本地文件相关联的无用信息来解析无用信息到文件的原始部分。这样的系统由于他们受文件系统的束缚,所以有限制,且通常要求改善客户和服务器之间响应的修改。此外,无用信息机制在相对大(平均)大小的信息块上运行,当文件受有细密纹理的变化超时支配时,其工作得很差。最后,LBFS被设计得密切受网络文件系统协议的束缚。不能优化或加速其它类型的客户-服务器事务,例如e-mail、Web、流媒体等等。
另一个提议的解决方案在ACM SIGCOMM(2000八月)的会议记录中,Spring,N.,et al,“用于消除冗余网络业务的协议独立技术”被提出。如在那个参考中所描述的,类似于最近发送的分组的网络分组可以通过标识重复字符串和使用标记替换重复字符串来减小大小,标记由在网络任一端的共享分组高速缓存存储器解析。这个方法,虽然有利,但具有大量的缺点。因为它在个别的分组上单独运行,所以增加的性能增益被分组净负荷大小对分组报头的比例限制(因为分组报头通常不能使用上述技术压缩)。同样,因为机制是在分组等级实现,所以它仅仅应用到通信路径的二端已经配置设备的网络区域。这个结构难于实现,且在有些环境中可能不切实际。同样,通过使用具有先进先出替换策略的相对小的基于高速缓冲的存储器,来高速缓存网络分组(例如,没有大磁盘备份存储的帮助),此方法的功效被限制于检测和使用被及时本地化的通信冗余。最后,因为这个方法没有任何束缚于产生(冗余)的网络业务的应用或服务,所以不能预期数据被使用的地方和远端高速缓冲存储器中数据提供网络业务潜在更加加速和优化的前一阶段。
在跨越到广域网络操作的企业中,应对上述的问题做了许多欠理想的补丁。例如,有些企业采取购买越来越多的带宽来保持响应。组织中的个体将试图通过求助于特别的e-mail协作来本地解决(其可能使一个文件更加容易被一个用户取得,但增加了版本控制问题和增加了整个网络的负荷)。其它解决问题的试图可能包括手工创建数据拷贝来运行或推进只读复制品给远程服务器。
考虑到上面的问题和目前解决方案的限制,可以对如何在网络上为事务传送数据进行改善。
发明简述
在具有事务加速器的网络实施例中,对于加速事务来说,客户直接向客户端事务处理器提出请求,其转送这个请求给服务器端事务处理器,服务器端处理器依次提供请求或它的表示给用于响应请求的服务器。服务器发送响应给服务器端事务处理器,其转发响应给客户端事务处理器,客户端事务处理器依次提供响应给客户。通过在服务器端事务处理器可存取的永久性段存储器中,和客户端事务处理器可存取的永久性段处理器中存储用于事务的数据段,事务可以被事务处理器加速。当数据要在事务处理器之间发送时,发送事务处理器比较要发送的数据段和存储在它永久性段存储器中的段,并参照永久性段存储器中与所替代的数据段匹配或近似匹配的条目,来替代数据段。将被发送的数据可能从客户发送到服务器、从服务器发送到客户、从一个点发送到一个点等等。然后接收事务存储器通过用其永久性段存储器的对应段数据来替换段参考,而重构发送数据。如果段是指向,但不存在于接收器的永久性段存储器中,则接收方可以经由端信道或经由用于发送参考到段的链路来发布对来自发送方的丢失段的请求。在每个端的永久性段存储器可能填充着可能被重复的段,这样将常常发生段替换,结果在网络上使用更少的带宽,从而加速了事务。
事务加速器可以是专用的,诸如客户端事务加速器仅仅与一个客户交互,服务器端事务加速器仅仅与一个服务器交互,但事务加速器还可能处理超过一个的客户和/或超过一个的服务器。在处理多个事务的地方,不是针对同样的客户和服务器,就是遍及可能不同的客户和可能不同的服务器,存储在永久性段存储器的段可以涉及不同的事务、不同的客户和/或不同的服务器。例如,如果事务加速器遇到数据段,并存储它到处理给定事务中它的永久性段存储器,数据段的参考可能在不同的事务中再次被使用,涉及不同客户或相同客户和不同服务器或相同服务器,或涉及整个不同客户-服务器应用。
在有些实施例中,事务加速器的永久性段存储器预先填充了来自其它事务加速器的段数据,这样当事务发生时,更多的段可在发送端被用于替换参考,且更多段可用于在接收端从参考重构。
考虑到下面的详细描述和较佳实施例,本发明的其它特点和优点将变得明显。
                          附图简述
图1是根据本发明第一实施例的联网客户-服务器系统的方框图。
图2是图1系统的方框图,更详细地显示客户端事务加速器(“CTA”)和服务器端事务加速器(“STA”),考虑到空间条件,整个系统稍微简略显示。
图3是可用于图1所示系统的永久性段存储器(“PSS”)的实施例中数据组织的图示说明。
图4是可用于图2的事务变换器(“TT”)的编码器的方框图。
图5是可用于图2的反相事务变换器(TT-1)的解码器的方框图。
图6是通过参考数据段来分割和表示输入数据的编码处理的图示说明。
图7是图示说明用于解码从图4的编码器输出的数据的处理过程的流程图。
图8是实现事务加速器并使用预发式段分配器(“PSD”)的联网系统的方框图。
图9是根据本发明实施例的联网点对点系统的方框图。
图10是实现事务加速器且客户端事务加速器集成在客户里的联网系统的方框图。
图11是实现事务加速器且服务器端事务加速器集成在服务器里的联网系统的方框图。
图12是实现事务加速器且PSS在大量事务加速器中共享的联网系统的方框图。
图13是显示多点传送被用于更新和读取共享PSS的图12的系统的多点传送实现的方框图。
图14是显示大量本地耦合的客户经由LAN到WAN的多点传送实现的方框图。
图15是实现事务加速器且网络处理多种协议和服务的联网系统的方框图。
                        发明详述
本发明有许多应用,阅读这个说明后将变得明显。在描述根据本发明的事务加速器系统实施例中,仅仅描述少数几个可能的变化。本领域的普通技术人员的一个将明白其它应用和变换,所以发明将不仅于例子所说明的,而是结合附加的权利要求书。
事务作为在这里使用的术语,是导致数据从一个地方移动到另一个地方的一组逻辑步骤。在有些情况下,被移动的数据存在于它与事务无关的发端,诸如文件存在服务器的磁盘中的文件读取事务。在其它情况下,在发端产生用于事务的数据,诸如响应计算请求、查询等等。典型地,启动事务的计算机、计算设备等等称为“客户”,响应或被期望响应的计算机、计算设备等等称为“服务器”。数据可以以任一方向流动。例如,文件系统客户可以通过请求文件读取来启动事务。相应数据将从响应此请求的服务器返回,所以在这个情况下,大多数数据从服务器流动到客户。然而,在客户启动文件写入事务的地方,大量数据从客户流动到服务器,或者作为启动请求的一部分或作为后续消息。事务可以在多个部分中,但在简单事务中,客户发送请求(数据、详细、信号等等明确地是请求或是请求的表示或指示)给服务器,服务器使用响应(数据、详细、信号等等明确地是响应或请响应表示或指示)来响应给客户。例如更复杂的事务可能包括一些服务器需要用来解释请求、验证客户接收请求的响应的权限、获得用于准备响应所需的附加信息等等的来来回回。
在此,客户和服务器之间连接的典型例子是分组网络,但其它连接方法也可能被使用,诸如点对点有线或无线信道。将归纳这些组件,在此称为具有假设节点之间通信的信道的“节点”。
事务可能首先由客户在一个节点直接对在另一个节点的服务器发出一个用于文件数据的请求开始,随后有包含所请求的文件数据响应的传输。其它事务可能是对文件特指部分、所有文件、另外数据构造的全部或有些的请求,或者事务可能涉及从请求者流动的数据或涉及一个命令。事务的例子包括“读取数据块”、“读取文件”、“读取流”、“写入携带这个数据的数据块”(从请求者流动数据的例子)、“打开文件”、“对这个数据执行计算”、“获得携带这些特征的电子邮件”、“发送电子邮件”、“检验新电子邮件”、“列出目录内容”等等。
有些事务可能包括大量以一个方向或二个方向流动的数据。有些事务甚至可能包括具有超过一个的请求者和/或超过一个的接收者的事务。为了清楚地说明,按照典型简单事务来描述这些许多的事务类型,一个客户提出一个服务器请求且一个服务器以客户期望的某种方式响应请求。然而,基于阅读这个说明,普通技术熟练人士中的一个能够应用这些概念到客户和服务器之间或更通常的二个节点之间的一对多和多对多事务。在描述一个方向数据流动的地方,应该可以理解的是数据可能以其它方向流动和/或信息可能仅仅以一个方向流动,但数据和/或信号以二个方向流动来完成信息的移动。
使用在此描述的一些系统,客户访问服务器(在需要的地方反之亦然)可以通过事务加速器“穿过”,其匹配事务到具有内容感应段切点的可变长度段序列。段可以存储在各种位置,典型地在客户和服务器的高速访问中,使用可缩放存储段在持久性命名系统中。段可以从文件系统或其它系统数据块和结构中去耦,使得可以在多个上下文中找到匹配段。作为替代高速缓冲存储文件、数据块或其它系统依靠的结构,段可以被存储和被用于表示段内容的参考约束。
图1使根据本发明实施例的联网客户-服务器系统10的方框图,在此可能发生这样的事务。如那里所示,客户12在网络16上经由客户端事务加速器(“CTA′s”)20和服务器端事务加速器(“STA′s”)22与服务器14耦合。在事务加速器的位置不是特指的地方,它在此称为“TA”,指示它可被称为客户端事务加速器、服务器端事务加速器、点事务加速器或可能甚至是客户和服务器(也可能是点)使用的事务加速器。
虽然图1中没有显示,客户和服务器之间(也可能客户和客户之间以及服务器和服务器之间)的附加路径存在并旁路TA′s。这样附加路径可以用于承载传统业务,诸如不可能受益于事务加速器的事务。通过发送在TA′s周围这样的事务,TA′s的状态可以保持集中在加速的事务上,例如,通过不使TA的永久性段存储器(下面描述的)存储来自不可能受益于事务加速器的事务的段。
如图所示,CTA20可能服务一个或更多客户,多个CTA′s20可能在一个网络上实现。如在此使用的且除非另外指出,索引“n”指的是不定整数,每个索引的不同使用指的是不同的不定整数。例如,图1图示说明可以有一些数量的CTA′s和一些数量的STA′s,不必一个对一个对应。通常,CTA′s的数量可能基于客户的数量、期望客户的数量、网络设计等等,而STA′s的数量可能基于服务器的数量、期望服务器的数量、网络设计等等。在一些实现中,每个服务器连接到专用于那个服务器的STA。在一些实现中,大量服务器可能耦合到服务器阵列管理器24,并依次经由STA耦合到因特网16。在一些情况下,客户可能与多于一个的CTA相互作用,如图1线27所图示说明的,服务器可能和多于一个的STA相互作用,如图1线29所图示说明的。
在一个CTA和一个STA相互作用并从连接到那个CTA的多个客户接收到请求的地方,对应STA发送每个客户的请求给请求所指向的服务器。然而,TA′s可能更加接近耦合它们的客户/服务器,这样所有或近似所有对一个服务器的加速事务通过一个服务器的STA。另外,在一些实现中,TA′s共享状态,使得在一个TA的事务可能受益于存储在另一个TA的段。
客户连接可能以许多的方法被发送到CTA,类似于关于客户的多么优先技术代理功能。例如,使用域名服务器(DNS)重新指向可以用于导致客户来分析CTA而不是服务器的IP地址,从而发送请求给CTA。可替换地,客户或客户的应用程序可以固定配置来使用特殊的CTA或在每个应用程序基础上的一组CTA′s。一旦客户连接到达CTA,然后CTA可以经由能以许多方法工作的查询处理联系适当的STA。例如映像表(保持在集中且可查询数据库上或配置到CTA)可用于指向CTA到适当的STA;或在事务中传送的信息可以允许CTA发现使用哪个STA;或可配置政策可以被编程到CTA指示哪个传送端口应该转播到哪个STA′s。同样,STA可以使用类似的查询处理来决定对从CTA到达的新客户连接联系哪个服务器。STA也可以使用事务中的数据来推断服务器连接什么服务器(例如在对CIFS文件服务器连接进行一个连接建立请求时,HTTP Web请求包含服务器的身份)。
应该可以理解的是,当图1所示的网络是因特网,如今普遍使用网络的全球因特网网络的时候,为此可以替代其它网络。例如,因特网上的网络业务可以经过公共网络传播,并主要基于TCP/IP(传输控制协议/因特网协议)分组交换。然而,在此显示的发明的实施例还可能在不是公共的网络上使用,诸如内联网、外联网和虚拟私有网络。实施例还可能用于WAN′S、LAN′S、WAN/LAN耦合、无线连接、移动链路、卫星链路、蜂窝电话网络和任何其它关注响应的网络。此外,当如今TCP/IP是最通用的分组交换协议且因此作为一个好的例子时,可能使用其它网络协议(以太网等等)。为了覆盖那些协议,在此描述的客户和服务器(和点,如下面描述的)可能使用HTTP,FTP,SNMP,POP3,IMAP,SMTP,NFS,CIFS,RPC或其它用于数据传输的开放或私有的协议。
在一个公用事务中,客户发送对文件、数据块或其它数据单元的请求给服务器,如果可能的话,服务器使用数据响应来响应此请求。例如,在客户是运行计算机辅助设计(CAD)程序的计算机,且需要存储在文件服务器上的CAD文件的地方,客户可能阐明对文件的请求,压缩此请求为消息并在网络上发送这个消息给适当的文件服务器。然后文件服务器可能实现鉴别,检验在文件服务器上文件的存在,如果客户被批准拥有文件且文件存在,则文件服务器可能创建一个消息或一组消息或包含所请求文件数据的分组,并发送这些消息/分组到提出请求的客户。
使用TA′s可能改善事务的响应,即加速事务。在典型环境中,客户和CTA′s之间的链路27是快速链路,诸如本地区域网络(LAN)链路及等待时间和带宽是较低的在网络16上的链路。“等待时间”指的是发送消息时间和接收到它时间之间的时间(通常以时间单位度量),“带宽”指的是为特定任务在一个链路上可以承载多少容量(通常以每单位时间比特数量来度量)。在许多情况下,低带宽可能导致高等待时间,但那些因素可以是独立的,这样可能有高带宽但仍然有高等待时间。其它因素可能影响响应和/或带宽开销,诸如链路的可靠性和带宽使用率。
在使用TA′s的典型文件请求事务中,客户12通过发送请求消息启动与服务器14的事务。如上面所说明的,如果事务包括小数量的比特或其它因素存在,则使用TA′s不能使得事务完成得有任何加快,因此事务可能在传统分组路径上进行。然而,无论如何事务可能经过TA′s,其可能是有用的,如下面所说明的,这样TA′s对业务有更为完整的视图。作为一个例子,如果客户请求通过CTA,则CTA可以记住请求并协调对请求的响应,来提供附加服务给客户。CTA还可能使用请求来猜测在将来什么时间事情可能发生,并使用这些猜测来进一步优化事务加速器的处理。
当服务器14接收一个请求时,它配置一个响应给请求,并经由与它耦合的STA22发送它给客户。在基本实现中,每个客户耦合到一个CTA,每个服务器耦合到一个STA,但在更复杂的实现中,服务器可能耦合到多于一个的STA,并使用一些优化逻辑来确定在哪个时间用哪个STA。客户可能耦合到多于一个的CTA,并使用一些优化逻辑来确定在哪个时间用哪个CTA。
CTA20可以无变化地发送请求到适当的STA和/或接收STA22可以接收来自服务器的响应并无变化地发送这个响应到适当的CTA20。然而,在请求或响应包括大量数据的地方,可能期望有效的事务加速器在这样的情况,数据是否如在此所述的通过在接收端存储数据段,在发送端使用存储段的参考替换数据来被“压缩”。在一些情况下,这样的替换不会加速事务,但可能仍然有好处,诸如对数据“采取措施使其发展”,这样接收端具有能够被后面用于重构参考那些段的发送数据的段数据。参考图2将更加清楚的描述这样的概念。
如在图2和其它图中详细所示,事务请求和响应经由TA′s发送,而不是直接从客户到服务器。当然,在一些结构中,CTA和客户和/或STA和服务器紧密结合,这样不要求明确重新选择路由。但是,假设数据被发送是有用处的,至少因为它阐明来自客户的业务可以经由CTA发送,来自服务器的业务可以经由STA发送,但业务还可以旁路TA′s。因为TA′s可以在传输网络层操作,他们可以作为工作单元在事务上操作。
容易发送被加速业务的一个结构是通过连接代理的使用。因此,CTA作为对客户和其进入一个事务的服务器的连接代理服务,STA作为对服务器对其响应的客户的连接代理服务。可以理解的是,TA系统可以用均衡的TA′S实现,例如在CTA和STA被非常相似地设置,可能除非CTA被建立为了期望遇到来自客户但不是来自STA的新事务,STA被建立为了不期望遇到来自服务器但期望它们来自CTA的新事务。
图2是系统10部分的方框图,更加详细地显示CTA20、STA22和它们互相连接。当仅仅显示一个客户和一个服务器时,可以理解的是,即使没有显示,图1的各种组件也可能存在。例如,CTA20可以处理来自多于一个客户的事务,STA22可以处理和多于一个服务器的事务。如图2所图示说明的,客户12耦合到CTA20的客户代理30。在这个例子中,当使用到达和来自客户的复用和解复用业务的其它形式时,客户代理用于接收来自一个或更多客户对CTA20的数据,并发送对CTA20的数据到一个或更多客户。图2中所示CTA20的其它组件包括事务变换器(TT)32、反相事务变换器(TT-1)34、持久性段存储器(PSS)36和参考解析器(RR)38。服务器14耦合到STA22的服务器代理40,其显示包括类似与CTA20那些的组件,诸如事务变换器(TT)42、反相事务变换器(TT-1)44、持久性段存储器(PSS)46和参考解析器(RR)48。
客户12耦合到与TT32和TT-134耦合的客户代理30。TT32耦合到PSS36和CTA20与STA22之间的网络。TT-134耦合到PPS36、客户代理30、RR38和CTA20与STA22之间的网络。如所示,RR38还耦合到PSS36和CTA20与STA22之间的网络。
在图的另一侧,服务器14耦合到与TT42和TT-144耦合的服务器代理40。TT42耦合到PSS46和STA22与CTA20之间的网络。TT-144耦合到PPS46、服务器代理40、RR48和STA22与CTA20之间的网络。如所示,RR48还耦合到PSS46和STA22与CTA20之间的网络。
可以理解的是,CTA20的一些或全部组件和/或STA22可以集成到CTA20或STA22中,这样不需要组件间外在连接,但仍然存在逻辑耦合。例如,CTA20可能整个地实现为具有数据存储器、程序存储器的单个程序,和具有包含用于实现客户代理、TT、TT-1和RR的指令的程序存储器的处理器,当这些指令由处理器实现时。在这样的实现中,数据存储器可以逻辑地区分来保持对处理器执行指令、客户代理状态、TT、TT-1和RR以及PSS内容的的可变需要。STA22同样如此。
PSS可以是磁盘子系统、存储器子系统或其部分。PSS也可以是具有磁盘支持存储器、数据库服务器、数据库等的存储器子系统。
所显示连接的,箭头指示最共用的方向或信息流动的方向,但信息可以在附加的方向流动,在单个方向流动的信息可能包括同样以相反方向流动的数据。例如,TT32通常在TT-144的方向发送信息,但诸如证实、握手等数据可以从TT-144到TT32流动。
一些连接用在CTA20和STA22之间跨越的虚线显示(例如TT′s和TT-1′s和RR′s之间)。尽管它们用特殊的线表示,可以理解的是,这些线可以表示不同的网络连接,或区分在公共网络连接上的分组流动,或甚至显示的逻辑连接中共享分组。因此,虚线连接可能是包括超过一个端口数量和/或超过一个IP地址的独立连接,但它们也可能是一个分组交换连接上三个逻辑连接,诸如经由使用公共端口数量和公共IP地址的公共路径。
客户和CTA以及服务器和STA之间的无点线标记为“LAN/直接”,来指示那些连接是可能比标记“因特网/WAN/等等”的TA′s之间的连接更高的性能(等待时间、带宽、可靠性等)。前面的例子包括LANs、电缆、主板、CPU总线等。如果TA′s之间的连接是更高性能的连接,系统仍然可操作,但可能看不见事务加速器的一些好处。
操作中,CTA′s和STA′s检查它们事务的净负荷,其中能与事务无关的唯一命名机制从那些净负荷中获得授权的存储/高速缓存字符串或数据(“段”)的其它序列。当从一个TA发送净负荷到另一个时,TA可以使用段数据的参考替换段数据。一个指示是这个替换应该在段数据是发送者期望接收者拥有唯一命名的段数据的时候发生,或者因为它在早先的事务中出现,或通过其它处理被发送到接收者,然而其它指示或没有指示可用于确定是否用参考替换段数据。在一些情况分段和替换在不期望加速的地方将不执行,诸如在包含的数据数量小的地方。事务的分段部分可以是发送数据的任何部分,只要事务在接收端仍然可以被足够辨认以被重构。
因为段可以是唯一命名的且名字与事务无关,所以出现在一个事务中的段可以存储在TA′s并用作加速其它事务。例如,在客户启动大量文件请求事务的地方,如果文件拥有共有数据,则共有数据可能作为一个段形成,且在发送第一个这样的段之后,所有对具有共有数据的文件的更多请求将拥有替换共有数据的段参考,来在发送重构文件到提出请求的客户之前由CTA替换。类似地,在一个CTA处理多于一个的客户的地方,一个客户的段可以用于其它客户。
事务是不同于文件事务的地方,类似的加速是可能的。例如,在CTA耦合到邮件客户以及STA耦合到邮件服务器的地方,CTA已获得附加的内容之后,许多客户经由CTA请求的邮件附件可以表现为一个段,然后在客户请求附件的每个序列时间,响应STA将使用段参考替换附件,接收CTA将用存储的附件替换参考。因为附件作为与事务无关的段存储,所以可能在文件事务、附加邮件事务或其它事务中找到相同段数据,在每个情况,发送者使用段参考替换数据,接收者使用段数据替换段参考。
在此值得注释的是,这样的方法有几个优点。不象高速缓存,在当事务被重复且高速缓冲存储器不是无效的时候,事务结果被高速缓存并重复使用的地方,段可以用于几个无关的事务,且段不需要束缚在任意的切点。因为段名字和内容可以与任何特殊的比特流或事务无关,它们可在任意数量的时间持久性存储器中存在,即使系统成分失效和重新启动,新的成分被加入混合,段存储被擦除等。
接收者可以为包括在它持久性存储器中和/或为在从发送者接收参考序列的传输之前、期间或之后获得段数据。最好是在可能的时候以改善事务响应的方法获得段数据。例如,如果可以预期对段的需要,则可以在需要它之前发送段数据,这样当它被需要时,它可以更快的被获得。然而,在一些情况下,诸如在接收TA没有任何存储的段且在事务期间必须获得它们的全部的地方,事务加速可能不发生,因为需要发送的数据总数量没有减少。
假设请求流过TA′s,客户12将发送请求给客户代理30,其然后发送它到TT32,修改请求或仅仅转播它。TT32确定如何变换请求,如所需要的在PSS存储段和参考(在下面更加详细的解释),并发送变换后或未修改的请求给TT-144,其实现任何需要的反相变换(下面更加详细的解释),并发送请求给服务器代理40,依次到服务器14。响应经过同样的路径。
在消息(诸如客户请求消息或服务器响应消息)已被变换的地方,反相事务变换器使用它PSS的内容来重构消息。在简单情况下,发送者的TT通过识别消息的段来变换消息,用参考替换所识别的段,并在PSS中存储参考一段对。在McCanneII中描述了针对基于内容聪明地分割数据的一些技术。通过发送参考而不是段数据,事务期间TA′s之间的总业务被减少,或许大多数业务被移到较小的临界时间或较小的临界路径。
在接收TA在它PSS中有发送TT使用的参考-段对的地方,接收TT-1可以通过使用它们对应的段数据替换参考来再生发送数据。接收TA可以从一侧信道或来自发送TA的部分业务获得存储在它PSS的段数据。因此,从发送TA传送到接收TA的数据可能包括段参考和表示从参考到段数据映像的“联系”。当然,如果每次用参考替换段,并发送参考和联系,则没有节省许多带宽,事实上增加了带宽。然而,在发送者猜想接收者已经有联系的地方,发送者可以省略联系,导致充分地更少业务。在此值得注释的是,从这个过程获得好处不要求精确知道接收者有什么。
在一些情况下,实现请求所需的所有数据在客户的PSS存在,使得如果代替地使用高速缓存机制,则用PSS作为高速缓冲存储器,根本没有任何消息需要发送给服务器。然而,这要求CTA是足够聪明以至于理解客户事务并构建来自于存在于PSS的数据的适当响应。通常这是个困难的问题,尤其当许多不同应用类型和客户一服务器方案通过CTA代理且某些客户-服务器事务不简单地服从高速缓存的时候(例如文件系统写入操作、数据库更新事务、文件删除等)。因此,最后是使用在此描述的TA′s并任何形式发送消息到服务器,这样使得避免高速缓存机制的矛盾。例如,如果文件服务器接收对文件的所有请求,即使在客户存在整个文件内容,服务器可以跟踪请求,服务器可以实现诸如文件锁定协议的复杂操作,即使没有真实地文件数据需要在网络传送。
在TA系统的较佳实施例中,上面的好处自动产生。例如,STA分割每个事务净负荷并用参考替换段。针对STA猜想CTA拥有的段数据,STA对那些段使用它知道CTA拥有的参考。当数据在服务器变化时,STA创建表示变化后数据的段,并可以假设CTA没有那些段,而非试图修改PSS中存在的段。在这种情况下,STA对表示变化后数据的新段使用新参考。在接收TA(在这个例子中是CTA),对旧数据的参考可以从存储在接收者PSS中的联系分析出来,但对于新的数据、变化后的段,参考从包括在来自发送者的数据流中的联系分析出来。然后那些联系被接收者的TT-1存储到接收者的PSS中,这样它们可被那个接收者的后续事务利用。
此外,因为参考总体上是唯一的(如下面所描述的),它们可以被网络中任何TA使用,不仅仅如在这个例子中描述的STA和CTA对。例如,CTA可能和不同的STA通信,并使用前面STA分配的参考。如果将来二个STA′s通信,则它们立即享受已经散布到二个设备的段联系的好处。
几个机制可用于确保在整个系统中任何给定时间每个命名的段拥有唯一名字(即没有二个具有不同数据的段被错误的分配相同的名字)。在一个方法中,每个段参考被产生作为大的随机数字,在唯一参考的数字比所有可能大小随机数字的空间低得多。这个机制比理想的更小,因为存在小的可能性二个段拥有相同的段参考,但不同的段数据,其导致接收TA错误地重构具有错误数据的消息。
另一个机制是从段数据产生,使得每个段参考是段数据的一个无用信息,不同的段数据将导致不同的无用信息,除了在非常罕见的情况下。但是罕见的情况总是有问题的,只要系统中存在二个具有相同参考但不同段数据的降级段。不象随机数字的情况,每当特殊数据模式存在于数据流中,这个问题将重现。
一个简单避免上面问题的方法是针对每个发送TA从唯一ID(诸如当普遍唯一IP地址在整个网络使用时主机的IP地址、主机MAC地址、分配的唯一标识符或其他方法)和连续数字的组合产生段参考。在大多数实现中,唯一连续数字的最大数字被绑定,因此将最终需要被重新使用。然而,通过使用可以持续数百万年的供应且不需要特殊处理的足够标签数字,可以有效地不绑定名字空间。打标签可以压缩来未标签提供小的脚标。
因为标签将被顺序分配,且因为对应的段将常常出现在相同的序列里,所以实际上可以实现好的标签压缩(不仅仅穿过网络而且在表示整个系统中总是采用的标签字符串的数据结构中)。附加压缩还可能在发送TA′s输出数据流上。例如,在接收TA可以标识发送TA且发送TA′s参考包括发送TA′s唯一ID的地方,当接收TA知道在形成参考中使用什么ID时,ID不需要出现在发送数据中(尽管通常当发送TA参考不仅仅它自己绑定而且绑定和标签起源于其他TA′s时,必须告知附加信息)。这个方法的一个其他的优点是,TA可以标识来自段参考的ID成分的它PSS中每个段的来源以用于统计分析、诊断和类似的。
在系统所期望的生命期期间打算重新使用标签的系统中,系统最好包括一个机制来“终止”参考绑定,这个终止普及到网络中所有的TA′s。一个方法是时间戳每个段,使得它拥有在使用段的系统中每个成分可容易地推断的固定生命期。如果以粗糙的方式分配时间戳给标签(例如时间戳一天变化一次),则标签压缩消除与分配和告知时间戳相关的大多数协议报头。从而TA可以猜想什么时候它安全地重新使用特殊组标签。
然而管理段名字空间的另一个替换是拥有唯一参考的中心分配。在这样的情况下,发送TA从保证参考是唯一的源头中请求一个参考或一批参考。此外,每个分配可以被分配最大的生存时间,使得参考或参考块的分配可以绝对地被重新使用。
可能发生的是,发送TA在某一绑定在接收TA不存在时候,假设它存在。在接收TA拥有PSS溢出、信息损坏、功率损耗等或接收TA故意移出绑定的情况,这个可能发生。在这样的情况下,接收TA可以无需终止或不得不报告事务故障而获得段数据。这允许系统适度地处理由于磁盘满了、磁盘故障、网络故障、系统崩溃等遗漏的数据。如果发送TA假设接收TA拥有绑定,则发送TA将使用那个绑定的参考发送消息,但将不包括绑定的段数据。当接收TT-1设法分析参考时,它将失败。在那些情况下,接收TT-1发送结构请求给它的RR,其然后提出一个请求给发送者的RR。当接收到所需数据时,可能由于可用数据的事件触发信号,TT-1可以正好阻塞并重启动;这个处理对TT-1是透明的(除了在获得响应中的延迟)。一旦接收者接收到段数据,接收者的RR可以提供数据给接收者的TT-1或仅仅放在接收者的PSS,在此它可以被接收者的TT-1访问。当发送者的TT适当地增加绑定到它的PSS时,它保留那些保证最小时间数量的绑定;同样当它用参考替换段数据时,当接收者的RR为那个段数据提出发送者的RR请求时可以保证它,它将存在于发送者的PSS,在发送者的段的所提供和保证的“生命期”比接收者可能要求提出段请求的最大时间数量更大。
图3包括简单PSS的绑定表数据构造的图示说明。如所示,绑定表存储大量绑定,诸如(R1,S1)、(R2,S2)等,在此Ri是第i绑定的参考标签,Si是第i绑定的参考数据。每个绑定的时间戳可能用于老化绑定。绑定记录可能包括图3中没有显示的其他字段,诸如那些在表1列出的和/或类似或附加的字段,可能除了其他表、数据结构、物体和/或代码。
表1
-访问的时间数量
-最后的访问时间
-最后的修改时间
-生命期
-编码方法标识符(例如未编码的原始数据、运行长度编码、MD5编码、加密)
-指针
-错误校正数据(如果没有段数据打断)
-创建绑定的发送者的标识(绑定“所有者”)
-创建时间(对超时段有用,诸如通过使用生命期字段)
-其他字段
一些附加数据结构可能包括参考的索引、其他字段的索引、段的指示等,用于搜寻或另外处理PSS的内容。可以用许多能用于编码处理的方法来索引段,但一个实施例建立段的索引,众所周知的在包含段的整个数据计算的无用信息被用作键。如果使用编码方法标识符,段数据可以被编码来错误校正、加密等。
对于一些段数据来说,可能适合于压缩段数据来减少PSS的存储需求和所需的经过周围绑定的传输花费。在一些情况下,编码方法是固定的已知的,所以不需要编码方法标识符。例如,发送TA可以发送段的逐字功能,例如前向错误校正已编码的段数据块、段加密、段签名或类似的,而非传送和高速缓存逐字段(即逐字的表示事务数据的子字符串或子序列的段)。这将允许接收TA解码来自已适当编码的数据的共用存储池的不同段,如果编码数据的某些段被丢失或破坏,则仍然可以重构原始段,从而增加错误校正到链路,无需在客户或服务器变化。
为了跟踪哪个接收者知道哪个段,在PSS可能存在其他字段。在一些实现中,发送者仅仅分割数据并创建与接收者可能能按结果做无关的参考,但在其他实现中,发送者保留不能确定接收者是否可能拥有特殊绑定的信息,诸如通过跟踪哪个接收者以前接收哪个段。通过记录哪个接收者在Bloom滤波器中拥有哪个段可以优化对这样信息的存储(即通过目的文件的无用信息索引的比特向量到给出罕见错误正极但从来不给出错误负极的向量中)。
一些实现可能使用探索法,这样服务器代理包括段绑定,仅仅当它创建新条目和其他需要段的客户代理将不得不请求它的时候,因为仅仅第一个客户代理将自动获得针对新段的绑定。
TA可能包括用于PSS清除的例行程序,诸如当客户关闭文件时,删除涉及特殊服务器上特殊文件的客户端PSS中所有段的探索法。服务器端PSS也可能删除对应的段,或推迟对那些段的清除,直到所有的客户关闭文件。其他清除可能包括删除已经超过它们生命期或已经一段时间没有使用的段条目。其他探索法可能指示特殊段绑定被使用和放弃的时间。
PSS的设置有许多好处,通过阅读这个说明,其中一些将变得明显。因为在变化切点可以发生分割,段与事务无关,段可能在任意长度时间的PSS内生存,并用于完全不涉及其中创建和存储段事务的事务。因为段参考对于唯一的段数据来说是唯一的,接收者可以总是正确识别对段参考的段数据(如果接收者有段的话)。这仅仅比高速缓存结果更好。它还比使用本地化信号统计压缩更好,诸如建立适当的码本和类似的。段名字和内容与任何特殊的比特流无关,即使系统成分崩溃和重新启动,新成分被增加到混合里,擦去持久性段存储等等。应该可以理解的是,“持久性”用于描述PSS不意味着段被永久不变地存储,因此能够从来不被清除;仅仅是段中至少一些坚持至少超过一个事务。
图4图示说明编码器140和PSS142。用于TA的TT可能正好是编码器140,但TT还可能包括其他功能或元件。如所示,编码器140有一个用于编码数据的输入,并控制用于编码控制参数和带宽外面关于输入数据的信息的输入。编码器140被显示有用于编码数据和PSS142中存储的段绑定的输出。在操作中,编码器140将处理输入数据,标识数据的段,用参考替换段的数据,已绑定的方式提供段数据和段参考给PSS142并输出编码后数据。如图4所示,结果编码后数据可能包括参考、绑定和剩余数据(诸如不能有效用参考表示的数据)。在此,一块剩余数据还称作“未参考段”。在一些实施例中,被分段但没有参考的数据和没有分段的数据之间存在差异。在前者中,有一个定义的段开始和结束,但段内容没有用段参考替代,然而在后者中,同样可能没有段开始或结束。为了便于下面描述,忽略此差异。
编码器140的另一个输出是对PSS142用在解码引入数据中的段绑定(或者为了提供给其他要求的TA′s)。控制到编码器140的输入可能包括目标段大小,带宽外信息可能包括指示这样的事情作为段默认生命期、关于数据源的信息等的参数。目标段大小是控制通过分段处理产生的段的平均大小的参数。通常,段长度随着大小的某个特定分布变化,目标段大小控制通过分段处理产生的平均大小。当段大小能被固定时,最好允许段大小变化,使得段配合比如果系统处理的数据被分段成任意固定的段更经常。
TT把它创建的绑定放到它自己的PSS中用于解码,但同样所以绑定的“所有者”(即创建绑定的TA)可以保持跟踪它,提供它给其他并同样当编码后续数据时查阅它(所以段参考可能在段数据重复的地方被重新使用)。
绑定的所有者的TT-1常常重新使用那些绑定,诸如当段数据的序列走圆形行程时,即从STA流动到CTA并返回,或反之亦然。例如,用户编辑文件情况这可能发生。用户的文件客户将请求文件数据,服务器将服务文件,且当用户编辑文件时,文件数据的绑定将在CTA′s的PSS和STA′s的PSS中存在。如果用户写回文件数据,则没有变化的部分可以完全用在文件数据第一次发送到用户的客户时候创建的参考标签来表示。在这个情况下,CTA简单参考相同STA创建的旧的绑定,而非在发送数据返回STA的时候创建新绑定。其他例子包括电子邮件,客户可以请求电子邮件(经由类似IMAP或POP的一个协议),然后在网络上转播它返回(经由类似SMTP的另一个协议),在这个情况,STA′s TT-1可以使用在电子邮件第一次发送到客户的时候由STA′s创建的绑定,假设SMTP事务和IMAP或POP事务流过STA/CTA对。另一个例子是用户经由CIFS从Web站点(通过HTTP)拷贝信息到文件系统,假设HTTP事务和CIFS事务流过STA/CTA对。
由于PSS的这个特性,客户和服务器可以使用非常小的带宽且无需改变客户或服务器,来回有效地发送大块数据。这个在大文件被移动且仅仅稍微有点改变的情况特别有用,诸如二个或更多用户在一个大CAD文件上合作的情况。使用在此显示的系统,网络性能可以足够导致用户放弃其他工作区网络瓶颈,诸如远程访问、存储本地文件拷贝、推出文件的只读拷贝等。
如果根据内容分割输入数据,则相同比特序列可能导致相同的段,而不管比特序列在什么地方发生。这有个优点是重复的比特序列有效的被注意和参考。然而,在有强制需求或改善性能的情况,外部因素可能开始活动。例如,如果有抵消好处的话,则关于可以使用的事务的一些参数可能导致多余一个的为一个比特序列创建的段。在一种方法中,外部因素是什么段存在于PSS中,以及基于在PSS中已经存在什么段来决定段分界。虽然这不象前面描述的更基础的方法可以升级,但是它可能导致段更多的重新使用,从而拥有一些好处。
这可以通过一个例子来图示说明。如果通常地单向切割净负荷,但不同组的切点将更近似匹配已经在PSS中的段,则将导致更大的压缩。然而,为了能够保持增益,发送TA将不得有一些想法接收TA可能具有哪个段,使得如果发送者知道大多数发送者的PSS段不存在与接收者的PSS,则发送TA不基于发送者的PSS进行它的切割。
图5图示说明了解码器150和PSS152。用于TA的TT-1可能仅仅是解码器150,但TT-1也可能包括其他功能或元件。解码器150接收编码后的数据,其可能已经通过图14所示解码器140输出。如上所述,编码后数据可能包括参考、绑定和剩余数据。当解码器150遇到它接收数据中的绑定时,它可以使用绑定中的段数据来重构原始数据,它还能够存储绑定到它的PSS中。当解码器150遇到没有绑定的参考时,它能够使用参考从PSS152获得段数据来重构段。如果在PSS152中没有找到段参考,则解码器150可以发送对段数据的请求。
图6是编码处理的图示说明,其中输入数据被分割和用参考表示成为段数据。如所示,原始输入数据被存入缓冲器160(尽管如果需要的话可以不要缓冲)。然后分割原始数据成段。几个技术适用于确定什么地方定义为分离每个段和它邻近邻居的“切割线”。一些分割的方法如McCanne II中所描述的。可能使用的其他方法是以规则的时间间隔,或诸如标记的结束线的在原始输入数据中发现的数据固定序列的一些关系,来放置切割线的简单方法,尽管这样的方法可能不会产生最好的执行分割机制。
然而在图6的例子中确定切割线,缓冲器160中原始输入数据被分割成段SA,SB,SC,SD,SE,和SF。在这个例子中,第一个五个段用参考替换,参考是R15,R16,R17,R3,和R8。在此值得注释的是,参考不必是顺序的,这个例子图示说明了一些参考(例如R3和R8)可能是已经遇到过的段数据,在这种情况不使用新的段,但参考先于段存在。这儿还图示说明了段(例如SF)不需要用参考替换。
原始输入数据可以完全用从原始输入数据产生的输出数据和绑定来表示。提供绑定给用于产生绑定的TA的PSS,和其他以及一些或所有绑定可以作为输出数据的一部分被发送。在这个例子中,新绑定是(R15,SA),(R16,SB)和(R17,SC)。在这个例子中,因为用于段SD和SE的段数据已被知道并用参考R3和R8存储,所以不需要绑定(R3,SD)和(R8,SE)。
图7是图示说明用于可能由图4的编码器输出和由图5的解码器解码的解码数据的处理过程的流程图。处理步骤标志为“S1”,“S2”等,除非另外标识,通常步骤按顺序进展。在第一个步骤(S1)中,参考后的数据(例如带参考编码后的数据)被接收并分析标记。如果检查标记(S2)且它不是参考,则它必须是未参考段,所以直接输出标记(S3)。然而,如果标记是参考,则解码器检查(S4)在支持解码器的PSS中是否存在参考。如果是YES,则解码器从PSS参考段(S5)。如果是NO,则解码器发送一个解决请求(S6)给支持解码器的参考分析器,并接收从参考分析器返回的已解决已参考的段(S7)。在参考标签编码段数据的源头的情况,标签可以被参考分析器用于帮助找到参考后的段。
一旦解码器访问参考后段的段数据(进展到步骤S3或步骤S7),它输出段数据(S8)。然后解码器检查附加的标记(S9)。如果有更多的标记,则处理过程携带下一个标记在步骤S2重复,除非处理完成了。
上面的描述仅仅表示使用PSS编码和解码段绑定和参考的一个特殊实施例。其他方法可能包括标签和数据直接关系更完善的表示,诸如那些在McCanne II中所显示的。
图8是联网系统的方框图,其中事务加速被实现并使用预发式段分配器(“PSD”)。如所示,PSD210包括PSD控制器212、它自己的PSS214和其他用于PSD可变的存储器216。在一些实现中,使用多个PSD′s,尽管仅仅在图中显示了一个。
通过PSD210的操作,段更加可能在需要它们的时候存在,从而需要更少的段解决请求。在需要将段从PSS移动到PSS的情况,PSD210可以在对这个段的实际需要之前触发这个处理过程,使得事务返回更加快速,当接收到净负荷时,接收TA不必为接收TA阻塞来发布对段的请求给发送TA。PSD210可以自己分配或仅仅指示段的所有者(或其他占有者)传送它们。在一些状况下,PSD210可能保留他们自己的PSS214,但在一些实现中,PSD仅仅指示PSS′s之间绑定的流动且不保留它自己的PSS。
PSD210可能监控来自CTA′s20和STA′s22事务流动,并确定可能需要哪个段和什么地方需要。当PSD210确定需要一个段时,它可以发送消息给发送TA,诸如STA服务文件系统或电子邮件系统。消息将指示发送TA执行分割,存储绑定在它自己的PSS,且甚至传送绑定给其他PSS′s,使得当发送TA接收到将导致发送TA发送净负荷的消息时,进行分割。当很好的做完时,接收TA将获得在接收TA接收带有参考的净负荷时需要的绑定,在带宽不是临界的时候可以发送那些绑定。更加典型地,发送TA是STA,但PSD还可能指示CTA′s“预先存入”绑定到系统中。
在一些情况下,服务器代理增加到服务器中来识别用于预存的选择物。例如,诸如Microsoft ExchangeTM服务器的邮件服务器可能耦合到网络并用STA和关联服务器代理。服务器代理检测电子邮件和附件到达的时间,并基于过去观察或操作员的政策,预先存入具有相应段数据的特殊CTA。这可能通过跟踪哪个客户读取来自哪个位置的它们的电子邮件来完成,或者通过静态配置或者最好是测量。然后,当远程用户读取电子邮件时,大多数电子邮件的数据已经在用户的远程站点了,但事务仍然返回交换邮件服务器来确保协议的正确性。
除了预先触发段产生,PSD210还可能帮助“预先填充”各种具有已经存在使得那些TA′s拥有在接收参考时准备好的段数据的绑定的TA PSS′s。在一个实现中,PSD210在传播模式上操作,如利用USENET消息条目所做的那样,通知新绑定给PSD210,PSD210然后传播来自通知TA的新绑定给所有或一些其他的TA′s,其可能依次传播绑定。可替换地,或者除了PSD触发的预先填充,发送TA可能预期哪个段需要被发送到接收TA,并发送它们在任何时间之前或“带宽之外”,这样接收TA不需要发布附加的请求来解决未知的段。
在不加选择的传播可能导致网络超载或提高相对于仅仅发送完成的带宽利用率的地方,可以使用每个事务的原始数据更加改进的方法。在更加有效方法的例子中,PSD使用启发式来确定哪个TA′s可能需要哪个段。在另一个方法中,服务器包括提供具有在允许PSD确定哪个CTA′s将需要哪个来自“代理”服务器的段的高层的信息的PSD的服务器代理。在一些实施例中,使用上面方法的组合。
具有服务器代理的PSD的另一个实施例包括一种类型的文件系统监控。在此,服务器代理监控文件系统活动,且每当新的数据写入文件系统,代理命令PSD复制适当的段绑定给一个或更多CTA′s。用户或定义的操作者政策可以指示整个文件系统的数据是否被复制或仅仅复制配置部分。此外,这些政策可以通过访问模式的测量增加,使得来自文件系统的最频繁访问的部分的段数据被复制(且这些测量可以在预先CTA基础上实现)。结果,每个这样的CTA有效地包括所有(或部分)文件系统数据的镜像。然后,当客户通过网络文件-系统协议(例如CIFS或NFS)和CTA联系时,事务一路上流动返回到原始文件服务器,然而这些事务被完全压缩到参考的纯字符串中。这个方法确保原始文件系统语义被保存,好像所有客户共享单个文件服务器,但是客户-服务器通信行为的性能表现为好像所有数据在本地预先客户文件服务器。
虽然上面略述的段机制可以充分地减少客户-服务器通信的带宽要求,但是事务仍然受广域间固有通信等待时间的支配。这些等待时间瓶颈可以不利地影响性能,且可以使用类似文件前面读取和后面写入的补充技术来处理。然而由于数据的压缩和分级,前面读取和后面写入技术变得极端有效,因为所有数据已经在CTA存在,所以在网络上他们导致非常小的开销。
所有这些方法可以用机制补充来对各种种类的CTA/STA通信采用带宽政策。例如,某些带宽限制可强加到PSD来限制分级算法的积极性。在另一个例子中,带宽政策可应用于不同级别的分级数据(例如文件系统段复制可以具有高于电子邮件附件段复制的优先权)。
图9是根据本发明实施例的联网点对点系统的方框图。如所示,各种点180经由点事务加速器(PTA′s)182彼此互相作用。点180可能直接相互作用,尽管没有显示这样的连接。运行中,一个点180可能经由每个点的PTA182和网络184,请求来自另一个点的数据。如所示,每个PTA182可能包括点代理190、TT192、TT-1194、PSS196和RR198。在点对点系统中,点本质上功能如同用于一些事务的客户和用于另一些事务的服务器,这样事务加速机制将以类似的方式运行。
图10是联网系统的方框图,其中事务加速被实现且客户端事务加速器集成到客户中,与成为独立实体相反。如所示,客户系统302经由网络304直接耦合到服务器306,经由服务器加速器STA310耦合到服务器308。所显示的客户系统302包括通信处理320、直接网络I/O处理322、CTA处理324和包括持久性段存储器328的存储器326。通信处理320与直接网络I/O处理322、CTA处理324和存储器326耦合。CTA处理324耦合到PSS328。
运行中,通信处理320典型地在应用层执行功能,要求和客户系统302外面的服务器相互作用。例如,通信处理可能包括web浏览器、电子邮件客户、Java程序和交互式网络程序、聊天程序、FTP程序等等。在通信处理直接和服务器相互作用的地方,通信处理将和直接网络I/O处理322相互作用,来与服务器相互作用,但在事务要被加速的地方,通信处理将和CTA324相互作用。在一些实施例中,通信处理320和CTA324可能是单个应用程序的组成成分,而在另一些实施例中它们可能是分离的应用处理。CTA处理324可以使用存储器326的一部分作为PSS来加速事务,非常类似前面所描述的各种孤立CTA′s所作的。在一些变化中,PSS328是来自存储器326的独立存储器,其用于客户系统302的其他处理,诸如通信处理320的需要。
直接网络I/O处理322通过和网络304上服务器的相互作用,满足通信处理320的网络I/O需要。在一些情况下,直接网络I/O处理322和与CTA324相同的服务器相互作用,通过到服务器308的虚线来描述。客户系统302可能包括没有显示的其他处理,包括涉及事务加速的处理。例如,通信处理320可能依靠确定何时直接发送事务给服务器以及何时试图加速它的分离处理。
图11是联网系统的方框图,其中事务加速被实现,服务器端事务加速器集成到服务器里。图显示了服务器系统352、网络354、客户356、客户358和客户事务加速器(CTA)360。所显示的服务器系统352包括通信处理370、直接网络I/O处理372、STA处理374和包括持久性段存储器378的存储器376。通信处理370与直接网络I/O处理372、STA处理374和存储器376耦合。STA处理374耦合到PSS378。如通过从客户356到直接网络I/O处理372的线所图示说明的,客户356直接耦合到服务器系统352,其处理不通过STA处理374的事务。客户358经由CTA360和STA处理374耦合到服务器系统352,但也可能用于其他事务直接连接到直接网络I/O处理372。
运行中,通信处理370执行功能,诸如响应来自客户的请求的服务器处理。服务器系统352和客户直接相互作用,事务将经由直接网络I/O处理372在通信处理和客户之间流动。在服务器系统352和客户经由TA′s相互作用的地方,事务将经由STA处理374在通信处理和客户之间流动。STA处理374可以使用存储器376的一部分作为PSS来加速事务,非常类似前面所描述的各种孤立STA′s所作的。在一些变化中,PSS378是来自存储器376的独立存储器,其用于服务器系统352的其他处理,诸如通信处理370的需要。
直接网络I/O处理372通过和网络354上服务器的相互作用,满足通信处理352的网络I/O需要。在一些情况下,直接网络I/O处理372和与STA374相同的服务器相互作用,通过到客户358的虚线来描述。服务器系统352可能包括没有显示的其他处理,包括涉及事务加速的处理。例如,通信处理370可能依靠确定何时直接发送事务给服务器以及何时试图加速它的分离处理。
应该可以理解的是,图10和11的元件可能被组合,这样具有内部CTA′s的客户系统可以和具有内部STA′s的服务器系统通信。还应该可以理解的是,使用箭头线的信号的地方,还可能存在双向信息或数据流动。
在客户和/或服务器中嵌入TA的一个缺点是,每个设备以它们自己的PSS告终,减少了高速缓存代表在给定位置的大量客户(或服务器)的相同段数据的好处。然而这个问题可以在另一个实施例中克服,其允许PSS逻辑地跨过多个TA′s,最好位于公共LAN段(内部高速链路互连的公共网络区域,例如一个楼或近似接近的多个楼里面多层互连的高速校园网)。在这种情况下,逻辑共享的PSS可以是隶属于网络的另一个设备或它可以是嵌入到每个CTA中的几个PSS′s,这样通过协同操作协议(例如IP多点传送)这些PSS′s作为单个的逻辑的实体运转。
图12是联网系统的方框图,其中事务加速被实现,且在大量事务加速器之间共享PSS。如所示,客户耦合到用于事务加速的本地CTA402。替换保留的分离PSS,本地CTA′s402耦合到共享的PSS404。最好地是,本地CTA′s和共享的PSS之间的连接是相对于经由在客户和服务器之间存在的网络405的连接,具有更高性能的连接。还可能存在共享参考分析器406,并耦合到共享的PSS404和共享PSS的本地CTA′s。
当每个本地CTA402是用请求消息启动一个事务或接收一个响应消息时,本地CTA402将使用用于存储和段数据检索的共享PSS404。由于作为一个本地CTA的事务的结果被存储的段可以用于另一个本地CTA的事务,所以在系统上使用对于每个本地CTA402分离的PSS′s有一个优点。例如,如果本地CTA402(1)最近处理包括从服务器S获得数据的客户事务,则服务器S为那个事务创建的段将可能在共享PSS404中存在。如果本地CTA402(2)然后处理在服务器S指示的不同客户(或相同配置的相同客户,诸如循环法本地CTA共享机制)的事务,本地CTA402(2)将发送请求给用于服务器S的STA。如果用于第二个事务的段匹配本地CTA402(1)更早事务的一些,则不管它们实际上是表示相同的请求还是结果净负荷拥有共有的相同数据的不相关请求,本地CTA402(2)将接收对那些段的参考,而不是段数据本身。
当本地CTA接收不能从共享PSS404解决的段参考时,本地CTA可以发送用于解决的请求给共享参考分析器406。在一些实施例中,每个本地CTA拥有它自己的共享参考分析器,其传送它的参考解决给共享PSS404和本地CTA的其他成分。其他实施例可能采用所有客户使用的单个共享参考分析器。
当在图12中所描述的共享PSS作为在客户端的时候,可以在服务器端配置类似的设置,拥有客户端的共享或单独的PSS′s。同样,具有共享PSS′s的TA′s可能在TA′s具有单独PSS′s的相同网络上存在。尽管图12显示共享PSS404是不同于本地CTA′s,可以是共享PSS包含在本地CTA′s的一个中,尽管它在共享那个PSS的其他CTA′s的外部。
可能使用本地的网络多点传送通信在它服务的本地CTA′s之间连接PSS。在这种方法中,每个事务加速器预定众所周知的本地范围的多点传送群。通过使用本地的范围,系统可以保证仅仅用本地高速网络连接的事务加速器通过这个机制彼此协调。每个主机可以产生发送给这个群的定期会话消息分组(或未交换会话分组的另一个配置群),允许对预定那个群的其他事务加速器的环程时间估计的计算。众所周知的技术可以用于这个处理过程,诸如在1997年12月卷5,6号pp.784-803的联网上IEEE/ACM事务中Floyd,S.,et al.,“对轻-重会话和应用层框架的可靠多点传送架构”中所显示的那些。会话协议允许群中所有的成员获悉每个其他的存在,还能够推断来自成员总和的群的大小。
使用这个多点传送结构,用于高速缓存段数据的系统可以用许多方法加强。在一个方法中,每当事务加速器接收到新的段绑定,它可以多点传送段绑定给本地范围群内所有其他事务加速器。这个可以减轻上面用每个具有分离PSS的客户来略述的问题,因为在本地事务加速器组中的每个PSS将被彼此复制,从而任何给定的数据段将在WAN连接上仅仅发送一次。
为了确保在网络多点传送连接上传输的可靠性,许多针对可靠多点传送的众所周知的机制被采用作Floyd et al.可靠多点传送协议中引用的证件中。假设这个多点传送通信在同类的高速本地区域或校园区域网络中处理,则拥塞控制和WAN多点传送的困难问题都完全避免了。
图13是显示图12系统的多点传送实现的方框图,其中多点传送通信用于更新或读取共享的PSS。如图12所示的设置,本地CTA′s412连到客户和网络405,并和其他本地CTA′s共享所共享的PSS414。共享RR416配置在相同多点传送群417上,作为共享PSS414的每个实例(标识为414(1),414(2),...)。逻辑地,如果本地CTA′s处理所需的I/O读取和写入共享PSS,则可能称为多点传送群包含共享RR416和本地CTA′s。用图中线418来图示说明多点传送业务。
在另一个方法中,PSS不是如上面说描述的预先激活复制,但更合适的事务加速器可以发布本地请求给分析未知的段。换句话说,当事务加速器接收一个不在它PSS里面的数据的参考,它在本地范围多点传送群上发送解决请求消息。因此所有的其他本地事务加速器将接收请求消息,除非错误发生。在它PSS中有请求的数据的接收者然后可以用数据响应。通过使用众所周知的开槽和阻尼技术(如Floyd etal.中),当发生小延迟的时候,仅仅一个响应消息典型地将在网络上发送。
如果请求者没有接收到响应(从会话消息环程时间计算的一些讨论延迟之后),请求者假设数据不存在于本地环境,并在WAN上发送解决请求给原始的在询问中产生数据参考的事务加速器。在此值得注释的是,因为本地环程时间与WAN环程时间(典型地好几毫秒或更多)相比,是相当的小(典型地小于1毫秒),所以由这个启动检查导致的外部延迟被忽略(即典型地在少许百分比下),而由于较高的本地网络性能的好处是真实的。
但是在另一个方法中,上面所描述的二个方法之间的混合消除了关于本地解决请求的延迟。在这个混合方法中,每当事务加速器接收到新的段绑定,作为多点传送的整个段的替代,它简单地多点传送段的名字。这样,所有的本地事务加速器获悉段呈现的是什么,无需必须拥有所有段数据的拷贝。然后,当接收到用于不在PSS中但它的名字被记录作为本地已知的段的参考时,事务加速器可以发送对数据的本地请求,且本地请求可以之间到发送出新段绑定的事务加速器,如果可以标识发送者的话。另外,加速器可以假设数据不是本地存在且立即穿过WAN发送请求。即使当段被推断时本地存在的,它也可能已经被从所有其他本地加速器的PSS′s驱逐出去。在这种情况下,请求加速器将仍然终止连接并回复穿过WAN发送它的解决请求。
但是在另一个方法中,穿过本地加速器群的PSS′s存储的段不需要完全复制。在此,每个加速器对使用合作的高速缓冲技术的段高速缓冲存储器的一部分负责。如上面所描述的,当由另一个加速器管理的段数据的参考需要被分析时,请求可以在多点传送群上被直接或间接的发送到那个设备。一旦数据已经重新集合并传达给客户(或服务器),它可以被放弃且不需要进入本地PSS(因为段数据被其他事务加速器积极地管理)。
图14显示了大量具有集成CTA′s的客户502。客户502耦合到LAN504,其依次经由LAN-WAN链路508耦合客户502到WAN506。不是在LAN504上所有的客户需要包括CTA512,但至少显示二个客户包括集成的CTA′s512。显示的每个CTA包括PSS514和RR516。通过这个实现,CTA所有的功能可以作为运行在客户上的软件来实现。
客户的CTA512处理被运行在那个客户上的客户应用程序510所请求的事务加速。例如,运行在客户502(2)上的应用程序启动和服务器的被加速的事务,将连接到CTA512(2)。然后在LAN504和WAN506上CTA512(2)将打开和相应STA的连接,如上面所说明的。当CTA512(2)接收包括已经被加速的净负荷的响应消息时,CTA512(2)将使用PSS514(2)的内容来服从加速净负荷中参考的标签。
为了实现可能已经在LAN504上服务器和其他客户之间的段的好处,PSS′s514可以协作PSS′s。通过协作,每个CTA可以使用来自它们自己PSS和在LAN504上其他CTA′s的PSS′s的段绑定。然后,如果段绑定不能在本地找到,则CTA′sRR可以在WAN上发送绑定的请求给STA。
在一些情况下,当RR接收新的绑定时(或它的CTA创建的一个),它分配新的绑定给LAN上其他RR′s中的每个,这样每个客户的PSS填充了在LAN上创建的可用绑定,且当CTA服从净负荷时,CTA已经拥有在LAN上可用的每个绑定的拷贝。在此这称为“规范协作”。
在其他情况,没有提早分配绑定,但在请求上发送绑定。因此,当RR需要它所没有的绑定时,它为绑定提出LAN上其他RR′s的请求。在此这称为“要求协作”。
在这些方法的混合中,当RR接收新绑定或它CTA创建的一个,它分配指示新段的参考的“绑定通知”和原始CTA给LAN上其他的CTA′s。当另一个CTA确定它在它自己的PSS中没有所需要的绑定时,CTA′sRR检查先前接收到的绑定通知的列表。如果所需的绑定在列表中,则请求RR通知始发站CTA获得绑定。如果RR确定它没有绑定且没有来自LAN上另一个CTA的绑定通知,则RR在WAN上为绑定发送请求。在此这称为“通知协作”。
应该可以理解的是,给定LAN可以实现多于一个的上面所描述的协作机制。RR′s之间为协作的通知可以使用多点传送来实现。例如,协作的客户中的每个(或它们的CTA′s或RR′s)可以是多点传送群中的一个成员。对于“规范协作”来说,每个原始CTA多点传送它接收或创建的新绑定。对于要求协作来说,请求RR可以多点传送请求且响应CTA(s)可以单播或多点传送它们的回答。多点传送它们的回答允许不请求绑定的其他CTA来接收它且可能存储它到其他CTA′s PSS。对于通知协作来说,可以多点传送通知,但对于请求来说,可以单播那些,因为请求者将知道哪个CTA拥有所请求的绑定。当然,通知协作系统可以在绑定通知没有指示原始CTA,或者没有存储那个信息的情况实现,在这种情况下,可能多点传送绑定请求,但当使用通知协作时最好的方法是跟踪哪个CTA发送哪个通知。
图15是联网系统的方框图,其中实现事务加速且网络处理各种协议和服务。所显示的CTA和STA耦合到计算CIFS、NFS、SMTP、IMAP和HTTP事务。在其他设置中,服务器在不同位置且客户在不同位置。在每个情况下,加速协议的事务通过CTA和STA,且能够如上面所述加速,并对参加事务的客户和服务器是透明的。除了图中图示说明的开放协议之外,CTA′s和STA′s可以为诸如MicrosoftExchangeTM、Lotus NotesTM等等的专利协议加速事务。因为具有在此所描述的其他变化,TA′s可能被集成到客户和服务器中。例如,一些软件卖主可能包括事务加速作为它们的客户-服务器软件套中的一部分。
上面的描述被图示说明但没有被限制。根据对上述说明的回顾,对本领域的普通技术人员来说发明的许多变化将变得明显。因此将不参考上面的描述来确定本发明的范围,而是以附加的权利要求书及其等同的整个范围来确定。

Claims (15)

1.在一个网络中,其中客户启动与服务器的事务,网络运送来自客户的请求消息给服务器,并运送来自服务器的响应消息给客户,其中请求消息和响应消息中至少一个包含在网络上从发送端到接收端传送的净负荷,一种改进包括:
客户端事务加速器包括:
a)与客户耦合的代理,用于接收用于传输到服务器的请求消息和关联从服务器到客户的重构响应消息;
b)事务变换器,用于变换从代理接收到的请求消息,包括:
i)分割器,用于根据基于净负荷内容的分割过程分割请求消息净负荷成至少一个段;和
ii)替换器,用于确定表示所述至少一个段中每个段的段数据作为未参考段还是作为参考段;
c)永久性段存储器,用于存储段数据和针对请求消息净负荷的参考段的段参考,其中带有不同段数据的段具有不同段参考,不同段参考可以与创建段参考的事务无关;和
d)反相事务变换器,用于当响应消息已经被加速时,去变换响应消息净负荷成重构的响应消息,包括:
i)确定段参考出现在响应消息净负荷中位置的记号赋予器;和
ii)用于为每个被记号赋予器检测到的段参考替换来自永久性段存储器的段数据的反参考器;
服务器端事务加速器包括:
a)与服务器耦合的代理,用于接收用于传输到客户的响应消息和中继从客户到服务器的重构请求消息;
b)事务变换器,用于变换从代理接收到的响应消息,包括:
i)分割器,用于根据基于净负荷内容的分割过程分割响应消息净负荷成至少一个段;和
ii)替换器,用于确定表示所述至少一个段的每个段的段数据作为未参考段还是作为参考段;
c)永久性段存储器,用于存储段数据和针对响应消息净负荷的参考段的段参考,其中带有不同段数据的段具有不同段参考,不同段参考可以与创建段参考的事务无关;和
d)反相事务变换器,用于当请求消息已经被加速时,去变换请求消息净负荷成重构的请求消息,包括:
i)确定段参考出现在请求消息净负荷中位置的记号赋予器;和
ii)用于为每个被记号赋予器检测到的段参考替换来自永久性段存储器的段数据的反参考器,
其中所述请求消息净负荷或响应消息净负荷中至少一个段作为参考段发送,并且所述请求消息净负荷或响应消息净负荷中至少一个段作为未分割数据发送。
2.在一个网络中,其中客户启动与服务器的事务,网络运送来自客户的请求消息给服务器,并运送来自服务器的响应消息给客户,其中请求消息和响应消息中至少一个包含在网络上从发送端到接收端传送的净负荷,一种加速事务的方法包括:
根据基于净负荷内容的分割过程,分割净负荷成至少一个段;
对所述至少一个段的每个段来说,确定发送在净负荷中的段数据是作为未参考段还是作为参考段;
对于每个参考段来说,将至少一些段数据替换为对于所替换数据的参考,并存储与其参考相关联的替换后的参考数据;
从发送端发送净负荷到接收端作为加速净负荷,其包括段参考、对应于未参考段的符号和作为未分割数据发送的净负荷的至少一部分中的至少一个;
在网络上接收加速净负荷;
如果有,在加速净负荷中标识段参考;
用接收端可用的段数据替换加速净负荷中的段参考,来形成重构的净负荷;和
提供重构的净负荷到接收端作为所传送的净负荷;
当段数据被存储作为段参考的一部分时,通过段数据的可逆功能变换段数据,并存储这个变换的结果;和
当段数据被用于解参考段时,使用可逆功能的反相来去变换存储的结果。
3.在一个网络中,其中客户启动与服务器的事务,网络运送来自客户的请求消息给服务器,并运送来自服务器的响应消息给客户,其中请求消息和响应消息中至少一个包含在网络上从发送端到接收端传送的净负荷,一种事务加速器包括:
用于变换待发送的消息的净负荷的事务变换器,包括:
a)用于根据基于净负荷内容的分割过程,分割净负荷成至少一个段的分割器;和
b)用于确定表示所述至少一个段的每个段的段数据作为非参考段还是作为参
考段的替换器;
用于存储参考段的段数据和段参考的永久性段存储器;
用于去变换来自远程事务加速器的事务变换器的加速净负荷的反相事务变换器,包括:
a)确定段参考出现在加速器净负荷中位置的记号赋予器;和
b)用于为每个被记号赋予器检测到的段参考替换来自所述永久性段存储器的
段数据的反参考器;
用于当遇到对于不在所述永久性段存储器中出现的段的段参考时,解析由所述反参考器需要的参考的参考解析器;并且
所述净负荷的至少一部分作为未分割数据发送。
4.在一个网络中,其中客户启动与服务器的事务,网络运送来自客户的请求消息给服务器,并运送来自服务器的响应消息给客户,其中请求消息和响应消息中至少一个包含净负荷,所述净负荷包括根据基于净负荷内容的分割过程分割的一个或多个段,其中所述净负荷在网络上从发送端传送到接收端,一种加速事务的方法包括:
对所述至少一个段的每个段来说,确定发送在净负荷中的段数据是作为未参考段还是作为参考段;
对于每个参考段来说,将至少一些段数据替换为对于所替换数据的参考,并将与其参考相关联的替换后的参考数据存储在永久性段存储器中;
从发送端发送净负荷到接收端作为加速净负荷;
在网络上接收加速净负荷;
如果有,在加速净负荷中标识段参考;
用接收端可用的段数据替换加速净负荷中的段参考,来形成重构的净负荷;和
提供重构的净负荷到接收端作为所传送的净负荷;
当段数据被存储作为段参考的一部分时,通过段数据的可逆功能变换段数据,并存储这个变换的结果;和
当段数据被用于解参考段时,使用可逆功能的反相来去变换存储的结果。
5.在一个网络中,其中客户启动与服务器的事务,网络运送来自客户的请求消息给服务器,并运送来自服务器的响应消息给客户,其中请求消息和响应消息中至少一个包含净负荷,所述净负荷包括根据基于净负荷内容的分割过程分割的一个或多个段,其中所述净负荷在网络上从发送端传送到接收端,一种事务加速器包括:
用于变换待发送的消息的净负荷的事务变换器,包括用于确定表示每个段的段数据作为非参考段还是作为参考段的替换器;
用于存储参考段的段数据和段参考的永久性段存储器;
用于去变换来自远程事务加速器的事务变换器的加速净负荷的反相事务变换器,包括:
a)确定段参考出现在加速器净负荷中位置的记号赋予器;和
b)用于为每个被记号赋予器检测到的段参考替换来自所述永久性段存储器的段数据的反参考器;
用于当遇到对于不在所述永久性段存储器中出现的段的段参考时,解析由所述反参考器需要的参考的参考解析器。
6.如权利要求5所述的事务加速器,其特征在于,还包括用于在所述事务加速器终止发送端和接收端之间的TCP连接的代理。
7.在一个网络中,其中客户启动与服务器的事务,网络运送来自客户的请求消息给服务器,并运送来自服务器的响应消息给客户,其中请求消息和响应消息中至少一个包含在网络上从发送端到接收端传送的包括一个或多个段的净负荷,一种改进包括:
客户端事务加速器包括:
a)与客户耦合的代理,用于接收用于传输到服务器的请求消息和中继从服务器到客户的重构请求消息;
b)事务变换器,用于变换从代理接收到的请求消息,包括替换器,用于确定表示每个段的段数据作为未参考段还是作为参考段;
c)永久性段存储器,用于存储段数据和针对请求消息净负荷的参考段的段参考,其中带有不同段数据的段具有不同段参考,不同段参考可以与创建段参考的事务无关;和
d)反相事务变换器,用于当响应消息已经被加速时,去变换响应消息净负荷成重构的响应消息,包括:
i)确定段参考出现在响应消息净负荷中位置的记号赋予器;和
ii)用于为每个被记号赋予器检测到的段参考替换来自永久性段存储器的段数据的反参考器;
服务器端事务加速器包括:
a)与服务器耦合的代理,用于接收用于传输到客户的响应消息和中继从客户到服务器的重构请求消息;
b)事务变换器,用于变换从代理接收到的响应消息,包括替换器,用于确定表示每个段的段数据作为未参考段还是作为参考段;
c)永久性段存储器,用于存储段数据和针对响应消息净负荷的参考段的段参考,其中带有不同段数据的段具有不同段参考,不同段参考可以与创建段参考的事务无关;和
d)反相事务变换器,用于当请求消息已经被加速时,去变换请求消息净负荷成重构的请求消息,包括:
i)确定段参考出现在请求消息净负荷中位置的记号赋予器;和
ii)用于为每个被记号赋予器检测到的段参考替换来自永久性段存储器的段数据的反参考器。
8.如权利要求7所述的改进,其特征在于,还包括:
客户端参考解析器,用于当遇到对于不在客户端的永久性段存储器中出现的段的段参考时,解析由客户端的反参考器需要的参考;和
服务器端参考解析器,用于当遇到对于不在服务器端的永久性段存储器中出现的段的段参考时,解析由服务器端的反参考器需要的参考。
9.在一个网络中,其中客户启动与服务器的连接,网络通过所述连接运送来自客户的请求消息给服务器,并通过所述连接运送来自服务器的响应消息给客户,其中客户通过第一连接与第一代理进行通信,服务器通过第二连接与第二代理进行通信,并且所述第一和第二代理通过第三连接互相通信,一种在客户和服务器之间传送数据的方法包括:
在所述第二代理通过第二连接从服务器接收净负荷;
对于每个净负荷,根据基于净负荷内容的分割过程标识净负荷内的一个或多个数据段;
对于所述一个或多个数据段的每个,确定发送在净负荷中数据段的段数据是作为未参考段还是作为参考段;
对于每个参考段,将至少一些段数据替换为对于所替换数据的参考,并将与其参考相关联的替换后的参考数据存储在永久性段存储器中,以形成加速净负荷;
通过第三连接从第二代理发送加速净负荷到第一代理;
在第一代理通过第三连接接收加速净负荷;
如果有,在加速净负荷中标识段参考;
用客户或第一代理可用的段数据替换加速净负荷中的段参考,来形成重构的净负荷;和
通过第一连接从第一代理提供重构的净负荷到客户作为所传送的净负荷;
当段数据被存储作为段参考的一部分时,通过段数据的可逆功能变换段数据,并存储这个变换的结果;和
当段数据被用于解参考段时,使用可逆功能的反相来去变换存储的结果。
10.在一个网络中,其中客户启动与服务器的连接,网络通过所述连接运送来自客户的请求消息给服务器,并通过所述连接运送来自服务器的响应消息给客户,其中客户通过第一连接与第一代理进行通信,服务器通过第二连接与第二代理进行通信,并且所述第一和第二代理通过第三连接互相通信,一种客户端事务加速器,包括:
a)与客户耦合的第一代理,用于通过第一连接接收用于传输到服务器的请求消息、通过第一连接中继从服务器到客户的重构请求消息、通过第三连接发送加速净负荷到第二代理并通过第三连接从第二代理接收加速净负荷;
b)事务变换器,用于变换从第一代理接收到的请求消息,包括替换器,用于确定表示每个段的段数据作为未参考段还是作为参考段;
c)永久性段存储器,用于存储段数据和针对请求消息净负荷的参考段的段参考,其中带有不同段数据的段具有不同段参考,不同段参考可以与创建段参考的事务无关;和
d)反相事务变换器,用于当响应消息已经被加速时,去变换响应消息净负荷成重构的响应消息,包括:
i)确定段参考出现在响应消息净负荷中位置的记号赋予器;和
ii)用于为每个被记号赋予器检测到的段参考替换来自永久性段存储器的段数据的反参考器。
11.如权利要求10所述的客户端事务加速器,其特征在于,还包括用于当遇到对于不在所述永久性段存储器中出现的段的段参考时,解析由所述反参考器需要的参考的参考解析器。
12.在一个网络中,其中客户启动与服务器的连接,网络通过所述连接运送来自客户的请求消息给服务器,并通过所述连接运送来自服务器的响应消息给客户,其中客户通过第一连接与第一代理进行通信,服务器通过第二连接与第二代理进行通信,并且所述第一和第二代理通过第三连接互相通信,一种服务器端事务加速器,包括:
a)与服务器耦合的第二代理,用于通过第二连接接收用于传输到客户的响应消息、通过第二连接中继从客户到服务器的重构请求消息、通过第三连接发送加速净负荷到第一代理并通过第三连接从第一代理接收加速净负荷;
b)事务变换器,用于变换从第二代理接收到的响应消息,包括替换器,用于确定表示每个段的段数据作为未参考段还是作为参考段;
c)永久性段存储器,用于存储段数据和针对响应消息净负荷的参考段的段参考,其中带有不同段数据的段具有不同段参考,不同段参考可以与创建段参考的事务无关;和
d)反相事务变换器,用于当请求消息已经被加速时,去变换请求消息净负荷成重构的请求消息,包括:
i)确定段参考出现在请求消息净负荷中位置的记号赋予器;和
ii)用于为每个被记号赋予器检测到的段参考替换来自永久性段存储器的段数据的反参考器。
13.如权利要求12所述的服务器端事务加速器,其特征在于,还包括用于当遇到对于不在所述永久性段存储器中出现的段的段参考时,解析由所述反参考器需要的参考的参考解析器。
14.在一个网络中,其中客户启动与服务器的连接,网络通过所述连接运送来自客户的请求消息给服务器,并通过所述连接运送来自服务器的响应消息给客户,其中客户通过第一连接与第一代理进行通信,服务器通过第二连接与第二代理进行通信,并且所述第一和第二代理通过第三连接互相通信,一种改进,包括:
客户端事务加速器,包括:
a)与客户耦合的第一代理,用于通过第一连接接收用于传输到服务器的请求消息、通过第一连接中继从服务器到客户的重构请求消息、通过第三连接发送加速净负荷到第二代理并通过第三连接从第二代理接收加速净负荷;
b)事务变换器,用于变换从第一代理接收到的请求消息,包括替换器,用于确定表示每个段的段数据作为未参考段还是作为参考段;
c)永久性段存储器,用于存储段数据和针对请求消息净负荷的参考段的段参考,其中带有不同段数据的段具有不同段参考,不同段参考可以与创建段参考的事务无关;和
d)反相事务变换器,用于当响应消息已经被加速时,去变换响应消息净负荷成重构的响应消息,包括:
i)确定段参考出现在响应消息净负荷中位置的记号赋予器;和
ii)用于为每个被记号赋予器检测到的段参考替换来自永久性段存储器的段数据的反参考器;以及
服务器端事务加速器,包括:
a)与服务器耦合的第二代理,用于通过第二连接接收用于传输到客户的响应消息、通过第二连接中继从客户到服务器的重构请求消息、通过第三连接发送加速净负荷到第一代理并通过第三连接从第一代理接收加速净负荷;
b)事务变换器,用于变换从第二代理接收到的响应消息,包括替换器,用于确定表示每个段的段数据作为未参考段还是作为参考段;
c)永久性段存储器,用于存储段数据和针对响应消息净负荷的参考段的段参考,其中带有不同段数据的段具有不同段参考,不同段参考可以与创建段参考的事务无关;和
d)反相事务变换器,用于当请求消息已经被加速时,去变换请求消息净负荷成重构的请求消息,包括:
i)确定段参考出现在请求消息净负荷中位置的记号赋予器;和
ii)用于为每个被记号赋予器检测到的段参考替换来自永久性段存储器的段数据的反参考器。
15.如权利要求14所述的改进,其特征在于,还包括:
客户端参考解析器,用于当遇到对于不在客户端的永久性段存储器中出现的段的段参考时,解析由客户端的反参考器需要的参考;和
服务器端参考解析器,用于当遇到对于不在服务器端的永久性段存储器中出现的段的段参考时,解析由服务器端的反参考器需要的参考。
CN2007103073837A 2002-10-30 2003-10-28 用于客户-服务器通信系统的事务加速器 Expired - Fee Related CN101188627B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/285,315 2002-10-30
US10/285,315 US7120666B2 (en) 2002-10-30 2002-10-30 Transaction accelerator for client-server communication systems

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CNB2003801070783A Division CN100369026C (zh) 2002-10-30 2003-10-28 用于客户-服务器通信系统的事务加速器

Publications (2)

Publication Number Publication Date
CN101188627A true CN101188627A (zh) 2008-05-28
CN101188627B CN101188627B (zh) 2012-11-21

Family

ID=32175156

Family Applications (2)

Application Number Title Priority Date Filing Date
CNB2003801070783A Expired - Fee Related CN100369026C (zh) 2002-10-30 2003-10-28 用于客户-服务器通信系统的事务加速器
CN2007103073837A Expired - Fee Related CN101188627B (zh) 2002-10-30 2003-10-28 用于客户-服务器通信系统的事务加速器

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CNB2003801070783A Expired - Fee Related CN100369026C (zh) 2002-10-30 2003-10-28 用于客户-服务器通信系统的事务加速器

Country Status (8)

Country Link
US (7) US7120666B2 (zh)
EP (1) EP1570365B1 (zh)
JP (2) JP2006505215A (zh)
CN (2) CN100369026C (zh)
AU (1) AU2003287241A1 (zh)
HK (1) HK1076892A1 (zh)
IL (1) IL168274A (zh)
WO (1) WO2004042508A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102158887A (zh) * 2011-04-19 2011-08-17 北京神州数码思特奇信息技术股份有限公司 通过主动探测及时反映业务系统运行情况的方法
CN102171673B (zh) * 2008-08-06 2014-09-17 莫维克网络公司 用于减少往返和改进体验质量的跨层管道传送优化
US11615415B2 (en) 2016-08-05 2023-03-28 Advanced New Technologies Co., Ltd. Service displaying method and terminal

Families Citing this family (246)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6415323B1 (en) * 1999-09-03 2002-07-02 Fastforward Networks Proximity-based redirection system for robust and scalable service-node location in an internetwork
US20110128972A1 (en) 2000-04-17 2011-06-02 Randy Thornton Peer to peer dynamic network link acceleration
US8510468B2 (en) 2000-04-17 2013-08-13 Ciradence Corporation Route aware network link acceleration
WO2001080515A2 (en) 2000-04-17 2001-10-25 Circadence Corporation System and method for data prioritization
US8195823B2 (en) 2000-04-17 2012-06-05 Circadence Corporation Dynamic network link acceleration
US8898340B2 (en) 2000-04-17 2014-11-25 Circadence Corporation Dynamic network link acceleration for network including wireless communication devices
US8065399B2 (en) 2000-04-17 2011-11-22 Circadence Corporation Automated network infrastructure test and diagnostic system and method therefor
US8024481B2 (en) 2000-04-17 2011-09-20 Circadence Corporation System and method for reducing traffic and congestion on distributed interactive simulation networks
US8996705B2 (en) 2000-04-17 2015-03-31 Circadence Corporation Optimization of enhanced network links
US7673074B1 (en) * 2002-10-24 2010-03-02 Emulex Design & Manufacturing Corporation Avoiding port collisions in hardware-accelerated network protocol
US7650416B2 (en) 2003-08-12 2010-01-19 Riverbed Technology Content delivery for client-server protocols with user affinities using connection end-point proxies
US8364815B2 (en) * 2005-03-18 2013-01-29 Riverbed Technology, Inc. Reliability and availability of distributed servers
US7120666B2 (en) 2002-10-30 2006-10-10 Riverbed Technology, Inc. Transaction accelerator for client-server communication systems
US8176186B2 (en) 2002-10-30 2012-05-08 Riverbed Technology, Inc. Transaction accelerator for client-server communications systems
US7318100B2 (en) * 2003-04-14 2008-01-08 Riverbed Technology, Inc. Cooperative proxy auto-discovery and connection interception
US8069225B2 (en) * 2003-04-14 2011-11-29 Riverbed Technology, Inc. Transparent client-server transaction accelerator
US7170890B2 (en) 2002-12-16 2007-01-30 Zetera Corporation Electrical devices with improved communication
US8005918B2 (en) 2002-11-12 2011-08-23 Rateze Remote Mgmt. L.L.C. Data storage devices having IP capable partitions
US7649880B2 (en) 2002-11-12 2010-01-19 Mark Adams Systems and methods for deriving storage area commands
EP1561159A4 (en) * 2002-11-12 2007-08-29 Zetera Corp ELECTRICAL DEVICES WITH IMPROVED COMMUNICATION
US7742473B2 (en) * 2002-11-12 2010-06-22 Mark Adams Accelerator module
US20040160975A1 (en) * 2003-01-21 2004-08-19 Charles Frank Multicast communication protocols, systems and methods
EP2325743B1 (en) 2003-01-31 2012-12-19 Good Technology Corporation Asynchronous real-time retrieval of data
US8473620B2 (en) * 2003-04-14 2013-06-25 Riverbed Technology, Inc. Interception of a cloud-based communication connection
US20050005027A1 (en) * 2003-04-18 2005-01-06 International Business Machines Corporation Method and system for obtaining data through an IP transmission network by using an optimized domain name server
US7831641B2 (en) * 2003-04-24 2010-11-09 Neopath Networks, Inc. Large file support for a network file server
US7346664B2 (en) * 2003-04-24 2008-03-18 Neopath Networks, Inc. Transparent file migration using namespace replication
US7587422B2 (en) * 2003-04-24 2009-09-08 Neopath Networks, Inc. Transparent file replication using namespace replication
US7430570B1 (en) 2003-04-28 2008-09-30 Ibrix, Inc. Shadow directory structure in a distributed segmented file system
US8112458B1 (en) 2003-06-17 2012-02-07 AudienceScience Inc. User segmentation user interface
US7966333B1 (en) 2003-06-17 2011-06-21 AudienceScience Inc. User segment population techniques
US7853699B2 (en) * 2005-03-15 2010-12-14 Riverbed Technology, Inc. Rules-based transaction prefetching using connection end-point proxies
WO2005029251A2 (en) * 2003-09-15 2005-03-31 Neopath Networks, Inc. Enabling proxy services using referral mechanisms
US7978716B2 (en) 2003-11-24 2011-07-12 Citrix Systems, Inc. Systems and methods for providing a VPN solution
US9032096B2 (en) * 2003-12-17 2015-05-12 Cisco Technology, Inc. Reducing the impact of network latency on application performance
US8010670B2 (en) * 2003-12-23 2011-08-30 Slipstream Data Inc. Meta-data based method for local cache utilization
US8223653B2 (en) * 2004-04-05 2012-07-17 Ixia Broadcast capable file system
US7720796B2 (en) * 2004-04-23 2010-05-18 Neopath Networks, Inc. Directory and file mirroring for migration, snapshot, and replication
US8195627B2 (en) 2004-04-23 2012-06-05 Neopath Networks, Inc. Storage policy monitoring for a storage network
US8190741B2 (en) * 2004-04-23 2012-05-29 Neopath Networks, Inc. Customizing a namespace in a decentralized storage environment
US7571167B1 (en) * 2004-06-15 2009-08-04 David Anthony Campana Peer-to-peer network content object information caching
US7757074B2 (en) 2004-06-30 2010-07-13 Citrix Application Networking, Llc System and method for establishing a virtual private network
US8495305B2 (en) 2004-06-30 2013-07-23 Citrix Systems, Inc. Method and device for performing caching of dynamically generated objects in a data communication network
US8739274B2 (en) 2004-06-30 2014-05-27 Citrix Systems, Inc. Method and device for performing integrated caching in a data communication network
US20060015579A1 (en) * 2004-07-16 2006-01-19 Bharat Sastri Architecture and protocol for a wireless communication network to provide scalable web services to mobile access devices
KR20070037650A (ko) 2004-07-23 2007-04-05 사이트릭스 시스템스, 인크. 종단에서 게이트웨이로 패킷을 라우팅하기 위한 방법 및시스템
US8914522B2 (en) 2004-07-23 2014-12-16 Citrix Systems, Inc. Systems and methods for facilitating a peer to peer route via a gateway
US8914330B2 (en) * 2004-09-17 2014-12-16 International Business Machines Corporation Bulk deletion through segmented files
US8613048B2 (en) 2004-09-30 2013-12-17 Citrix Systems, Inc. Method and apparatus for providing authorized remote access to application sessions
US7711835B2 (en) 2004-09-30 2010-05-04 Citrix Systems, Inc. Method and apparatus for reducing disclosure of proprietary data in a networked environment
US7748032B2 (en) 2004-09-30 2010-06-29 Citrix Systems, Inc. Method and apparatus for associating tickets in a ticket hierarchy
US8549149B2 (en) * 2004-12-30 2013-10-01 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing
US8706877B2 (en) 2004-12-30 2014-04-22 Citrix Systems, Inc. Systems and methods for providing client-side dynamic redirection to bypass an intermediary
US7810089B2 (en) * 2004-12-30 2010-10-05 Citrix Systems, Inc. Systems and methods for automatic installation and execution of a client-side acceleration program
US8700695B2 (en) 2004-12-30 2014-04-15 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP pooling
US8954595B2 (en) 2004-12-30 2015-02-10 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP buffering
WO2006078953A2 (en) * 2005-01-21 2006-07-27 Internap Network Services Corporation System and method for application acceleration on a distributed computer network
EP2739014B1 (en) 2005-01-24 2018-08-01 Citrix Systems, Inc. Systems and methods for performing caching of dynamically generated objects in a network
US8255456B2 (en) 2005-12-30 2012-08-28 Citrix Systems, Inc. System and method for performing flash caching of dynamically generated objects in a data communication network
US8024568B2 (en) 2005-01-28 2011-09-20 Citrix Systems, Inc. Method and system for verification of an endpoint security scan
US8332485B1 (en) 2005-03-04 2012-12-11 Cisco Technology, Inc. Lock optimization and lock prediction approaches for reducing client-server messages
US7702850B2 (en) 2005-03-14 2010-04-20 Thomas Earl Ludwig Topology independent storage arrays and methods
US20060248194A1 (en) 2005-03-18 2006-11-02 Riverbed Technology, Inc. Connection forwarding
EP1869859A1 (en) * 2005-03-23 2007-12-26 TELEFONAKTIEBOLAGET LM ERICSSON (publ) System and method for transporting data units through a communication network
US7676467B1 (en) 2005-04-14 2010-03-09 AudienceScience Inc. User segment population techniques
US7809752B1 (en) 2005-04-14 2010-10-05 AudienceScience Inc. Representing user behavior information
WO2006112844A1 (en) * 2005-04-18 2006-10-26 Riverbed Technology, Inc. Transparent client-server transaction accelerator
AU2005330679B2 (en) * 2005-04-19 2011-03-24 Riverbed Technology, Inc. Content delivery based on user affinity using connection end-point proxies
US7620981B2 (en) 2005-05-26 2009-11-17 Charles William Frank Virtual devices and virtual bus tunnels, modules and methods
US7853962B1 (en) 2005-05-31 2010-12-14 Cisco Technology, Inc. Method and apparatus for optimization of remote procedure call communications
WO2007002855A2 (en) * 2005-06-29 2007-01-04 Neopath Networks, Inc. Parallel filesystem traversal for transparent mirroring of directories and files
US8438628B2 (en) * 2005-08-10 2013-05-07 Riverbed Technology, Inc. Method and apparatus for split-terminating a secure network connection, with client authentication
US8478986B2 (en) * 2005-08-10 2013-07-02 Riverbed Technology, Inc. Reducing latency of split-terminated secure communication protocol sessions
US8613071B2 (en) * 2005-08-10 2013-12-17 Riverbed Technology, Inc. Split termination for secure communication protocols
US8392684B2 (en) 2005-08-12 2013-03-05 Silver Peak Systems, Inc. Data encryption in a network memory architecture for providing data based on local accessibility
US8171238B1 (en) 2007-07-05 2012-05-01 Silver Peak Systems, Inc. Identification of data stored in memory
US7571344B2 (en) * 2005-08-12 2009-08-04 Silver Peak Systems, Inc. Ensuring data integrity in network memory
US8095774B1 (en) 2007-07-05 2012-01-10 Silver Peak Systems, Inc. Pre-fetching data into a memory
US8370583B2 (en) 2005-08-12 2013-02-05 Silver Peak Systems, Inc. Network memory architecture for providing data based on local accessibility
US8819092B2 (en) 2005-08-16 2014-08-26 Rateze Remote Mgmt. L.L.C. Disaggregated resources and access methods
US7743214B2 (en) 2005-08-16 2010-06-22 Mark Adams Generating storage system commands
WO2007031696A1 (en) * 2005-09-13 2007-03-22 Arm Limited Cache miss detection in a data processing apparatus
US8929402B1 (en) 2005-09-29 2015-01-06 Silver Peak Systems, Inc. Systems and methods for compressing packet data by predicting subsequent data
US8489562B1 (en) 2007-11-30 2013-07-16 Silver Peak Systems, Inc. Deferred data storage
US8811431B2 (en) 2008-11-20 2014-08-19 Silver Peak Systems, Inc. Systems and methods for compressing packet data
US8131689B2 (en) * 2005-09-30 2012-03-06 Panagiotis Tsirigotis Accumulating access frequency and file attributes for supporting policy based storage management
US9270532B2 (en) 2005-10-06 2016-02-23 Rateze Remote Mgmt. L.L.C. Resource command messages and methods
US20070081184A1 (en) * 2005-10-12 2007-04-12 Daos Brenda F System and method for releasing multiple document processing operations
US7716307B1 (en) 2005-10-21 2010-05-11 Cisco Technology, Inc. Method and apparatus for reducing client-server messages associated with opening a file
US7630295B2 (en) 2005-10-31 2009-12-08 Silver Peak Systems, Inc. Network device continuity
US20070115812A1 (en) * 2005-11-22 2007-05-24 Silver Peak Systems, Inc. Sequence numbers for multiple quality of service levels
US8010595B2 (en) * 2005-11-29 2011-08-30 International Business Machines Corporation Execution of server-side dynamic pages
US7636767B2 (en) * 2005-11-29 2009-12-22 Cisco Technology, Inc. Method and apparatus for reducing network traffic over low bandwidth links
US7912089B2 (en) * 2005-12-30 2011-03-22 Qurio Holdings, Inc. Methods, systems, and products for condensing messages
US7921184B2 (en) 2005-12-30 2011-04-05 Citrix Systems, Inc. System and method for performing flash crowd caching of dynamically generated objects in a data communication network
US7782904B2 (en) * 2005-12-30 2010-08-24 Qurio Holdings, Inc. Methods, systems, and products for condensing messages
US8301839B2 (en) 2005-12-30 2012-10-30 Citrix Systems, Inc. System and method for performing granular invalidation of cached dynamically generated objects in a data communication network
WO2007099273A1 (en) * 2006-03-03 2007-09-07 Arm Limited Monitoring values of signals within an integrated circuit
US20090031082A1 (en) * 2006-03-06 2009-01-29 Simon Andrew Ford Accessing a Cache in a Data Processing Apparatus
US8447802B2 (en) 2006-03-08 2013-05-21 Riverbed Technology, Inc. Address manipulation to provide for the use of network tools even when transaction acceleration is in use over a network
US20070226292A1 (en) * 2006-03-22 2007-09-27 Chetuparambil Madhu K Method and apparatus for preserving updates to execution context when a request is fragmented and executed across process boundaries
US8782393B1 (en) 2006-03-23 2014-07-15 F5 Networks, Inc. Accessing SSL connection data by a third-party
US7924881B2 (en) 2006-04-10 2011-04-12 Rateze Remote Mgmt. L.L.C. Datagram identifier management
US8151323B2 (en) * 2006-04-12 2012-04-03 Citrix Systems, Inc. Systems and methods for providing levels of access and action control via an SSL VPN appliance
WO2007131190A2 (en) 2006-05-05 2007-11-15 Hybir Inc. Group based complete and incremental computer file backup system, process and apparatus
US8463843B2 (en) * 2006-05-26 2013-06-11 Riverbed Technology, Inc. Throttling of predictive ACKs in an accelerated network communication system
WO2007149687A2 (en) 2006-05-30 2007-12-27 Riverbed Technology, Inc. Selecting proxies from among autodiscovered proxies
WO2007140482A2 (en) 2006-05-31 2007-12-06 Riverbed Technology, Inc. Service curve mapping
US8462629B2 (en) * 2006-06-14 2013-06-11 Riverbed Technology, Inc. Cooperative operation of network transport and network quality of service modules
US8117320B2 (en) * 2006-06-30 2012-02-14 Intel Corporation Allocation of tracker resources in a computing system
US7882064B2 (en) * 2006-07-06 2011-02-01 Emc Corporation File system replication
US8885632B2 (en) * 2006-08-02 2014-11-11 Silver Peak Systems, Inc. Communications scheduler
US8755381B2 (en) 2006-08-02 2014-06-17 Silver Peak Systems, Inc. Data matching using flow based packet data storage
US8244883B2 (en) * 2006-08-03 2012-08-14 Citrix Systems, Inc. Systems and methods of for providing multi-mode transport layer compression
NZ549548A (en) * 2006-08-31 2009-04-30 Arc Innovations Ltd Managing supply of a utility to a customer premises
US8533846B2 (en) 2006-11-08 2013-09-10 Citrix Systems, Inc. Method and system for dynamically associating access rights with a resource
US20080285565A1 (en) * 2006-11-15 2008-11-20 Utah State University Systems and methods for content insertion within a router
US7899811B2 (en) * 2006-12-01 2011-03-01 Stephen L. Adams Boosting throughput of a computer file server
US7719997B2 (en) * 2006-12-28 2010-05-18 At&T Corp System and method for global traffic optimization in a network
US7760642B2 (en) 2007-03-12 2010-07-20 Citrix Systems, Inc. Systems and methods for providing quality of service precedence in TCP congestion control
US7460038B2 (en) 2007-03-12 2008-12-02 Citrix Systems, Inc. Systems and methods of clustered sharing of compression histories
US7827237B2 (en) 2007-03-12 2010-11-02 Citrix Systems, Inc. Systems and methods for identifying long matches of data in a compression history
US7796510B2 (en) 2007-03-12 2010-09-14 Citrix Systems, Inc. Systems and methods for providing virtual fair queueing of network traffic
US7619545B2 (en) 2007-03-12 2009-11-17 Citrix Systems, Inc. Systems and methods of using application and protocol specific parsing for compression
US7865585B2 (en) 2007-03-12 2011-01-04 Citrix Systems, Inc. Systems and methods for providing dynamic ad hoc proxy-cache hierarchies
US8255570B2 (en) 2007-03-12 2012-08-28 Citrix Systems, Inc. Systems and methods of compression history expiration and synchronization
US7532134B2 (en) 2007-03-12 2009-05-12 Citrix Systems, Inc. Systems and methods for sharing compression histories between multiple devices
US7644230B1 (en) * 2007-03-15 2010-01-05 Silver Peak Systems, Inc. Dynamic load management of network memory
EP1983718A1 (en) * 2007-04-17 2008-10-22 Danmarks Tekniske Universitet Method and apparatus for inspection of compressed data packages
US7827137B2 (en) * 2007-04-19 2010-11-02 Emc Corporation Seeding replication
US8775663B1 (en) 2007-04-25 2014-07-08 Netapp, Inc. Data replication network traffic compression
WO2008138008A1 (en) * 2007-05-08 2008-11-13 Riverbed Technology, Inc A hybrid segment-oriented file server and wan accelerator
US20080301053A1 (en) * 2007-05-29 2008-12-04 Verizon Services Organization Inc. Service broker
WO2008149337A2 (en) * 2007-06-05 2008-12-11 Dcf Technologies Ltd. Devices for providing distributable middleware data proxy between application servers and database servers
US7948921B1 (en) 2007-09-20 2011-05-24 Silver Peak Systems, Inc. Automatic network optimization
WO2009045299A1 (en) 2007-10-03 2009-04-09 Virtela Communications, Inc. Virtualized application acceleration infrastructure
US8307115B1 (en) 2007-11-30 2012-11-06 Silver Peak Systems, Inc. Network memory mirroring
JP5345154B2 (ja) * 2008-01-11 2013-11-20 テレフオンアクチーボラゲット エル エム エリクソン(パブル) Ipマルチメディアサブシステムにおけるメッセージハンドリング
US8442052B1 (en) 2008-02-20 2013-05-14 Silver Peak Systems, Inc. Forward packet recovery
US8788805B2 (en) * 2008-02-29 2014-07-22 Cisco Technology, Inc. Application-level service access to encrypted data streams
JP5286876B2 (ja) * 2008-03-28 2013-09-11 富士通株式会社 紐付け支援プログラム、紐付け支援装置、紐付け支援方法
US8751561B2 (en) * 2008-04-08 2014-06-10 Roderick B. Wideman Methods and systems for improved throughput performance in a distributed data de-duplication environment
US8266114B2 (en) 2008-09-22 2012-09-11 Riverbed Technology, Inc. Log structured content addressable deduplicating storage
US8463941B1 (en) * 2008-06-16 2013-06-11 Riverbed Technology, Inc. Cross-session protocol acceleration and its application to storage area network file systems
FI127113B (fi) * 2008-06-17 2017-11-15 Tekla Corp Tiedon haku
US10164861B2 (en) 2015-12-28 2018-12-25 Silver Peak Systems, Inc. Dynamic monitoring and visualization for network health characteristics
US9717021B2 (en) 2008-07-03 2017-07-25 Silver Peak Systems, Inc. Virtual network overlay
US10805840B2 (en) 2008-07-03 2020-10-13 Silver Peak Systems, Inc. Data transmission via a virtual wide area network overlay
US8743683B1 (en) 2008-07-03 2014-06-03 Silver Peak Systems, Inc. Quality of service using multiple flows
US20100008358A1 (en) * 2008-07-10 2010-01-14 Utah State University System and Methods for Content Insertion within a Router
US8307203B2 (en) * 2008-07-14 2012-11-06 Riverbed Technology, Inc. Methods and systems for secure communications using a local certification authority
US8230442B2 (en) * 2008-09-05 2012-07-24 International Business Machines Corporation Executing an accelerator application program in a hybrid computing environment
US7873060B2 (en) 2008-10-18 2011-01-18 Fortinet, Inc. Accelerating data communication using tunnels
CN102301377B (zh) * 2008-12-18 2015-07-08 科普恩股份有限公司 用于内容感知的数据分区和数据去重复的方法和设备
US8527734B2 (en) 2009-01-23 2013-09-03 International Business Machines Corporation Administering registered virtual addresses in a hybrid computing environment including maintaining a watch list of currently registered virtual addresses by an operating system
US9286232B2 (en) * 2009-01-26 2016-03-15 International Business Machines Corporation Administering registered virtual addresses in a hybrid computing environment including maintaining a cache of ranges of currently registered virtual addresses
US8843880B2 (en) * 2009-01-27 2014-09-23 International Business Machines Corporation Software development for a hybrid computing environment
US8255909B2 (en) 2009-01-28 2012-08-28 International Business Machines Corporation Synchronizing access to resources in a hybrid computing environment
US9170864B2 (en) * 2009-01-29 2015-10-27 International Business Machines Corporation Data processing in a hybrid computing environment
US20100191923A1 (en) * 2009-01-29 2010-07-29 International Business Machines Corporation Data Processing In A Computing Environment
US9721238B2 (en) 2009-02-13 2017-08-01 Visa U.S.A. Inc. Point of interaction loyalty currency redemption in a transaction
US8898280B2 (en) * 2009-02-19 2014-11-25 Fluke Corporation Methods and apparatus for determining and displaying WAN optimization attributes for individual transactions
EP2226640B1 (en) * 2009-03-03 2013-07-31 Mitsubishi Electric R&D Centre Europe B.V. Spectral analysis
US8707043B2 (en) * 2009-03-03 2014-04-22 Riverbed Technology, Inc. Split termination of secure communication sessions with mutual certificate-based authentication
US8266506B2 (en) * 2009-04-18 2012-09-11 Alcatel Lucent Method and apparatus for multiset membership testing using combinatorial bloom filters
US8135912B2 (en) 2009-05-18 2012-03-13 Hola Networks, Ltd. System and method of increasing cache size
US9031859B2 (en) * 2009-05-21 2015-05-12 Visa U.S.A. Inc. Rebate automation
US8180972B2 (en) 2009-08-07 2012-05-15 International Business Machines Corporation Reducing remote reads of memory in a hybrid computing environment by maintaining remote memory values locally
US8463706B2 (en) 2009-08-24 2013-06-11 Visa U.S.A. Inc. Coupon bearing sponsor account transaction authorization
US8560855B2 (en) * 2009-08-27 2013-10-15 Cleversafe, Inc. Verification of dispersed storage network access control information
US8560604B2 (en) 2009-10-08 2013-10-15 Hola Networks Ltd. System and method for providing faster and more efficient data communication
US20190108366A1 (en) * 2010-01-28 2019-04-11 International Business Machines Corporation Secure data transmission utilizing distributed storage
US8959366B2 (en) 2010-01-28 2015-02-17 Cleversafe, Inc. De-sequencing encoded data slices
US9417905B2 (en) * 2010-02-03 2016-08-16 International Business Machines Corporation Terminating an accelerator application program in a hybrid computing environment
EP3508978B1 (en) * 2010-03-12 2021-09-22 BlackBerry Limited Distributed catalog, data store, and indexing
WO2011116087A2 (en) 2010-03-16 2011-09-22 Copiun, Inc. Highly scalable and distributed data de-duplication
US8700892B2 (en) 2010-03-19 2014-04-15 F5 Networks, Inc. Proxy SSL authentication in split SSL for client-side proxy agent resources with content insertion
US8578132B2 (en) * 2010-03-29 2013-11-05 International Business Machines Corporation Direct injection of data to be transferred in a hybrid computing environment
US9015443B2 (en) 2010-04-30 2015-04-21 International Business Machines Corporation Reducing remote reads of memory in a hybrid computing environment
US8463846B2 (en) * 2010-05-06 2013-06-11 Cdnetworks Co., Ltd. File bundling for cache servers of content delivery networks
US9253548B2 (en) 2010-05-27 2016-02-02 Adobe Systems Incorporated Optimizing caches for media streaming
WO2012027472A2 (en) 2010-08-24 2012-03-01 Copiun, Inc. Constant access gateway and de-duplicated data cache server
IL210169A0 (en) * 2010-12-22 2011-03-31 Yehuda Binder System and method for routing-based internet security
US9578126B1 (en) * 2011-04-30 2017-02-21 F5 Networks, Inc. System and method for automatically discovering wide area network optimized routes and devices
JP5664467B2 (ja) * 2011-06-13 2015-02-04 富士通株式会社 検索プログラム、検索方法、検索装置、およびノード
US8745095B2 (en) * 2011-08-12 2014-06-03 Nexenta Systems, Inc. Systems and methods for scalable object storage
US8949371B1 (en) * 2011-09-29 2015-02-03 Symantec Corporation Time and space efficient method and system for detecting structured data in free text
US9130991B2 (en) 2011-10-14 2015-09-08 Silver Peak Systems, Inc. Processing data packets in performance enhancing proxy (PEP) environment
US9626224B2 (en) 2011-11-03 2017-04-18 Silver Peak Systems, Inc. Optimizing available computing resources within a virtual environment
US20130151323A1 (en) * 2011-12-07 2013-06-13 Visa International Service Association Systems and methods for facilitating issuance and redemption of a reward
KR101904482B1 (ko) * 2011-12-26 2018-10-08 에스케이텔레콤 주식회사 콘텐트 전송 시스템, 그 시스템에서의 네트워크 중복 전송 트래픽 최적화 방법, 중앙 제어 장치 및 로컬 캐싱 장치
US10360578B2 (en) 2012-01-30 2019-07-23 Visa International Service Association Systems and methods to process payments based on payment deals
US10230566B1 (en) 2012-02-17 2019-03-12 F5 Networks, Inc. Methods for dynamically constructing a service principal name and devices thereof
US9460436B2 (en) 2012-03-16 2016-10-04 Visa International Service Association Systems and methods to apply the benefit of offers via a transaction handler
US8880431B2 (en) 2012-03-16 2014-11-04 Visa International Service Association Systems and methods to generate a receipt for a transaction
US9922338B2 (en) 2012-03-23 2018-03-20 Visa International Service Association Systems and methods to apply benefit of offers
US9495690B2 (en) 2012-04-04 2016-11-15 Visa International Service Association Systems and methods to process transactions and offers via a gateway
WO2013163648A2 (en) 2012-04-27 2013-10-31 F5 Networks, Inc. Methods for optimizing service of content requests and devices thereof
US9864988B2 (en) 2012-06-15 2018-01-09 Visa International Service Association Payment processing for qualified transaction items
US9626678B2 (en) 2012-08-01 2017-04-18 Visa International Service Association Systems and methods to enhance security in transactions
US8762718B2 (en) 2012-08-03 2014-06-24 Palo Alto Research Center Incorporated Broadcast deduplication for satellite broadband
US10438199B2 (en) 2012-08-10 2019-10-08 Visa International Service Association Systems and methods to apply values from stored value accounts to payment transactions
US9185180B2 (en) * 2012-08-20 2015-11-10 Cisco Technology, Inc. Hybrid caching system
TW201416873A (zh) * 2012-10-19 2014-05-01 Apacer Technology Inc 網路儲存系統的檔案分享方法
US10685367B2 (en) 2012-11-05 2020-06-16 Visa International Service Association Systems and methods to provide offer benefits based on issuer identity
US9509736B2 (en) * 2013-01-16 2016-11-29 Cisco Technology, Inc. Method for optimizing WAN traffic
US9300748B2 (en) * 2013-01-16 2016-03-29 Cisco Technology, Inc. Method for optimizing WAN traffic with efficient indexing scheme
US9306997B2 (en) * 2013-01-16 2016-04-05 Cisco Technology, Inc. Method for optimizing WAN traffic with deduplicated storage
CA2901674A1 (en) * 2013-02-19 2014-08-28 Teridion Technologies Ltd. Increased data transfer rate method and system for regular internet user
EP2819367A1 (en) * 2013-06-28 2014-12-31 Thomson Licensing Method for retrieving, by a client terminal, a content part of a multimedia content
US9241044B2 (en) 2013-08-28 2016-01-19 Hola Networks, Ltd. System and method for improving internet communication by using intermediate nodes
US9990646B2 (en) 2013-10-24 2018-06-05 Visa International Service Association Systems and methods to provide a user interface for redemption of loyalty rewards
US10187317B1 (en) 2013-11-15 2019-01-22 F5 Networks, Inc. Methods for traffic rate control and devices thereof
CN103716136B (zh) * 2013-12-23 2017-08-29 上海网达软件股份有限公司 一种数据传送方法及系统
CN104767679B (zh) * 2014-01-08 2018-12-18 腾讯科技(深圳)有限公司 一种在网络系统中传输数据的方法及装置
US9672516B2 (en) 2014-03-13 2017-06-06 Visa International Service Association Communication protocols for processing an authorization request in a distributed computing system
US20150271225A1 (en) * 2014-03-18 2015-09-24 Qualcomm Incorporated Transport accelerator implementing extended transmission control functionality
US9930097B2 (en) * 2014-07-03 2018-03-27 Qualcomm Incorporated Transport accelerator systems and methods
US9948496B1 (en) 2014-07-30 2018-04-17 Silver Peak Systems, Inc. Determining a transit appliance for data traffic to a software service
US9875344B1 (en) * 2014-09-05 2018-01-23 Silver Peak Systems, Inc. Dynamic monitoring and authorization of an optimization device
US9917882B2 (en) 2014-11-30 2018-03-13 Sonicwall Inc. Transparent deferred spooling store and forward based on standard network system and client interface
US10313486B2 (en) 2015-01-07 2019-06-04 Sonicwall Inc. Optimizing transfer of fragmented packetized data
US11057446B2 (en) 2015-05-14 2021-07-06 Bright Data Ltd. System and method for streaming content from multiple servers
US9813526B2 (en) 2015-05-26 2017-11-07 Sonicwall Inc. Reducing transmission pathway lengths within a distributed network
US9606836B2 (en) * 2015-06-09 2017-03-28 Microsoft Technology Licensing, Llc Independently networkable hardware accelerators for increased workflow optimization
US10158735B2 (en) * 2015-08-07 2018-12-18 Sonicwall Inc. Read-ahead on signed connections with unsigning, inline, transparent proxies
US10419401B2 (en) * 2016-01-08 2019-09-17 Capital One Services, Llc Methods and systems for securing data in the public cloud
US10432484B2 (en) 2016-06-13 2019-10-01 Silver Peak Systems, Inc. Aggregating select network traffic statistics
US9967056B1 (en) 2016-08-19 2018-05-08 Silver Peak Systems, Inc. Forward packet recovery with constrained overhead
JP6730437B2 (ja) * 2016-08-24 2020-07-29 株式会社日立製作所 転送装置及びネットワークシステム
CN106453356B (zh) * 2016-10-25 2019-08-02 网宿科技股份有限公司 无线网络双边加速传输方法和系统
US10892978B2 (en) 2017-02-06 2021-01-12 Silver Peak Systems, Inc. Multi-level learning for classifying traffic flows from first packet data
US10257082B2 (en) 2017-02-06 2019-04-09 Silver Peak Systems, Inc. Multi-level learning for classifying traffic flows
US11044202B2 (en) 2017-02-06 2021-06-22 Silver Peak Systems, Inc. Multi-level learning for predicting and classifying traffic flows from first packet data
US10771394B2 (en) 2017-02-06 2020-09-08 Silver Peak Systems, Inc. Multi-level learning for classifying traffic flows on a first packet from DNS data
US11190374B2 (en) 2017-08-28 2021-11-30 Bright Data Ltd. System and method for improving content fetching by selecting tunnel devices
LT3767493T (lt) 2017-08-28 2023-03-10 Bright Data Ltd. Būdas pagerinti turinio parsisiuntimą, naudojant tunelinius įrenginius
US11212210B2 (en) 2017-09-21 2021-12-28 Silver Peak Systems, Inc. Selective route exporting using source type
US10637721B2 (en) 2018-03-12 2020-04-28 Silver Peak Systems, Inc. Detecting path break conditions while minimizing network overhead
US10831693B1 (en) * 2018-09-27 2020-11-10 Amazon Technologies, Inc. Multicast master
US10613977B1 (en) 2018-09-27 2020-04-07 Amazon Technologies, Inc. Target port with distributed transactions
EP3750079A4 (en) 2019-02-25 2022-01-12 Bright Data Ltd SYSTEM AND METHOD FOR URL EXTRACTION CHALLENGE MECHANISM
WO2020202135A2 (en) 2019-04-02 2020-10-08 Luminati Networks Ltd. System and method for managing non-direct url fetching service
CN110376940A (zh) * 2019-07-03 2019-10-25 中北大学 一种基于dsp的旋转变压器高精度高响应解码方法
US11153119B2 (en) 2019-10-15 2021-10-19 Cisco Technology, Inc. Dynamic discovery of peer network devices across a wide area network
US11741350B2 (en) 2019-11-27 2023-08-29 Amazon Technologies, Inc. Efficient utilization of processing element array

Family Cites Families (88)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4641274A (en) * 1982-12-03 1987-02-03 International Business Machines Corporation Method for communicating changes made to text form a text processor to a remote host
JPS59117864A (ja) * 1982-12-24 1984-07-07 Fujitsu Ltd デ−タ圧縮拡張制御方式
JPS6250952A (ja) * 1985-08-30 1987-03-05 Alps Electric Co Ltd カナ漢字変換処理方式
JPH02108119A (ja) * 1988-10-17 1990-04-20 Seiko Epson Corp データ圧縮装置
US4988998A (en) * 1989-09-05 1991-01-29 Storage Technology Corporation Data compression system for successively applying at least two data compression methods to an input data stream
CA2075048C (en) 1990-01-30 1999-08-17 Gregory A. Pascucci Networked facilities management system
US5414850A (en) * 1991-08-23 1995-05-09 Stac Electronics, Inc. System for transparently compressing data files in a computer system
US5371852A (en) * 1992-10-14 1994-12-06 International Business Machines Corporation Method and apparatus for making a cluster of computers appear as a single host on a network
US6076084A (en) * 1994-01-03 2000-06-13 Norton-Lambert Corp. File transfer method and apparatus utilizing delimiters
DE4402856A1 (de) 1994-01-31 1995-08-10 Sel Alcatel Ag Verfahren zum Versenden von Briefen, sowie Teilnehmerstation, Konverterstation und Briefversendeeinrichtung
US5737594A (en) 1994-07-05 1998-04-07 Trustus Pty Ltd. Method for matching elements of two groups
US5822746A (en) 1994-07-05 1998-10-13 Trustus Pty Ltd Method for mapping a file specification to a sequence of actions
WO1996025801A1 (en) 1995-02-17 1996-08-22 Trustus Pty. Ltd. Method for partitioning a block of data into subblocks and for storing and communicating such subblocks
US5838963A (en) * 1995-10-25 1998-11-17 Microsoft Corporation Apparatus and method for compressing a data file based on a dictionary file which matches segment lengths
US5598556A (en) * 1995-12-07 1997-01-28 Advanced Micro Devices, Inc. Conditional wait state generator circuit
US5903723A (en) * 1995-12-21 1999-05-11 Intel Corporation Method and apparatus for transmitting electronic mail attachments with attachment references
US5771355A (en) * 1995-12-21 1998-06-23 Intel Corporation Transmitting electronic mail by either reference or value at file-replication points to minimize costs
US5867661A (en) * 1996-02-15 1999-02-02 International Business Machines Corporation Method and apparatus of using virtual sockets for reducing data transmitted over a wireless communication link between a client web browser and a host web server using a standard TCP protocol
US5754774A (en) * 1996-02-15 1998-05-19 International Business Machine Corp. Client/server communication system
US5758087A (en) 1996-06-14 1998-05-26 International Business Machines Corporation Apparatus and method for predicted response generation
JP2000514271A (ja) 1996-10-08 2000-10-24 ティアナン・コミュニケーションズ・インコーポレーテッド マルチサービストランスポートの多重化装置およびその方法
JPH10198680A (ja) * 1997-01-07 1998-07-31 Hitachi Ltd 分散辞書管理方法及びそれを用いた機械翻訳方法
DE69832593T2 (de) * 1997-03-07 2006-08-17 Intelligent Compression Technologies, Falmouth Netzwerk zur datencodierung
US5999949A (en) * 1997-03-14 1999-12-07 Crandall; Gary E. Text file compression system utilizing word terminators
US5931913A (en) * 1997-05-07 1999-08-03 International Business Machines Corporation Methods, system and computer program products for establishing a session between a host and a terminal using a reduced protocol
US6233253B1 (en) 1997-05-23 2001-05-15 Thomson Licensing S.A. System for digital data format conversion and bit stream generation
US5977890A (en) * 1997-06-12 1999-11-02 International Business Machines Corporation Method and apparatus for data compression utilizing efficient pattern discovery
US6009462A (en) * 1997-06-16 1999-12-28 Digital Equipment Corporation Replacing large bit component of electronic mail (e-mail) message with hot-link in distributed computer system
US5953503A (en) * 1997-10-29 1999-09-14 Digital Equipment Corporation Compression protocol with multiple preset dictionaries
JP3337633B2 (ja) * 1997-12-03 2002-10-21 富士通株式会社 データ圧縮方法及びデータ復元方法並びにデータ圧縮プログラム又はデータ復元プログラムを記録したコンピュータ読み取り可能な記録媒体
US6415329B1 (en) * 1998-03-06 2002-07-02 Massachusetts Institute Of Technology Method and apparatus for improving efficiency of TCP/IP protocol over high delay-bandwidth network
AUPP252798A0 (en) * 1998-03-24 1998-04-23 Griffits, John Philip Enhanced trusted systems processing
US6389460B1 (en) * 1998-05-13 2002-05-14 Compaq Computer Corporation Method and apparatus for efficient storage and retrieval of objects in and from an object storage device
DE19833318C2 (de) * 1998-07-24 2001-08-02 Bosch Gmbh Robert Verfahren zur Übertragung von digitalen Nutzdaten
NL1009763C2 (nl) * 1998-07-29 2000-02-01 Koninkl Kpn Nv Werkwijze en stelsel voor het overdragen van een reeks data-elementen met uitsluiting van bepaalde bijzondere data-elementen.
US6449615B1 (en) 1998-09-21 2002-09-10 Microsoft Corporation Method and system for maintaining the integrity of links in a computer network
US6397253B1 (en) * 1998-10-06 2002-05-28 Bull Hn Information Systems Inc. Method and system for providing high performance Web browser and server communications
US6163811A (en) * 1998-10-21 2000-12-19 Wildseed, Limited Token based source file compression/decompression and its application
US7225264B2 (en) * 1998-11-16 2007-05-29 Softricity, Inc. Systems and methods for delivering content over a computer network
US6697844B1 (en) * 1998-12-08 2004-02-24 Lucent Technologies, Inc. Internet browsing using cache-based compaction
US6178461B1 (en) * 1998-12-08 2001-01-23 Lucent Technologies Inc. Cache-based compaction technique for internet browsing using similar objects in client cache as reference objects
US6324581B1 (en) 1999-03-03 2001-11-27 Emc Corporation File server system using file system storage, data movers, and an exchange of meta data among data movers for file locking and direct access to shared file systems
JP2000293424A (ja) * 1999-04-09 2000-10-20 Hitachi Ltd ネットワークキャッシュ装置およびキャッシュ制御方法
GB9911989D0 (en) 1999-05-25 1999-07-21 Pace Micro Tech Plc Data transport strems processing
US6859821B1 (en) * 1999-07-19 2005-02-22 Groove Networks, Inc. Method and apparatus for prioritizing data change requests and maintaining data consistency in a distributed computer system equipped for activity-based collaboration
US6643710B1 (en) * 1999-09-17 2003-11-04 3Com Corporation Architecture to fragment transmitted TCP packets to a requested window size
US6721780B1 (en) * 1999-11-09 2004-04-13 Fireclick, Inc. Predictive pre-download of network objects
US6449658B1 (en) * 1999-11-18 2002-09-10 Quikcat.Com, Inc. Method and apparatus for accelerating data through communication networks
US6553141B1 (en) * 2000-01-21 2003-04-22 Stentor, Inc. Methods and apparatus for compression of transform data
US6704730B2 (en) * 2000-02-18 2004-03-09 Avamar Technologies, Inc. Hash file system and method for use in a commonality factoring system
US8291007B2 (en) 2000-02-22 2012-10-16 Flash Networks Ltd System and method to accelerate client/server interactions using predictive requests
AU5617601A (en) 2000-03-03 2001-09-12 Thomson Multimedia Sa Demultiplexing devices and process for at least two transport streams and a corresponding digital stream
US6697843B1 (en) 2000-04-13 2004-02-24 United Parcel Service Of America, Inc. Method and system for hybrid mail with distributed processing
AU2001263441A1 (en) 2000-06-12 2001-12-24 General Instrument Corporation Apparatus and method for resolution of conflicts in protocol data of multiple data streams
US7058699B1 (en) * 2000-06-16 2006-06-06 Yahoo! Inc. System and methods for implementing code translations that enable persistent client-server communication via a proxy
JP2002032236A (ja) * 2000-07-13 2002-01-31 Nec Commun Syst Ltd データ通信装置及びそのデータ通信方法
US6826626B1 (en) * 2000-07-21 2004-11-30 Clear Blue Technologies Management, Inc. Method of and apparatus for rapid retrieval of data in a content distribution network
US6856651B2 (en) * 2000-07-25 2005-02-15 Peribit Networks, Inc. System and method for incremental and continuous data compression
ATE397346T1 (de) 2000-07-25 2008-06-15 Juniper Networks Inc Netzwerkarchitektur und verfahren zur transparenten online-querschnittskodierung und zum transport von netzwerkkommunikationsdaten
US7047281B1 (en) 2000-08-08 2006-05-16 Fineground Networks Method and system for accelerating the delivery of content in a networked environment
US7934008B2 (en) * 2000-10-20 2011-04-26 Sony Corporation Delivery of multimedia descriptions using access units
EP1358581A2 (en) * 2000-10-24 2003-11-05 Koninklijke Philips Electronics N.V. Method and device for prefetching a referenced resource
US6970939B2 (en) * 2000-10-26 2005-11-29 Intel Corporation Method and apparatus for large payload distribution in a network
TW543311B (en) * 2000-11-16 2003-07-21 Ericsson Telefon Ab L M Static information knowledge used with binary compression methods
US6883035B2 (en) * 2000-11-16 2005-04-19 Telefonaktiebolaget Lm Ericsson (Publ) System and method for communicating with temporary compression tables
EP1354411A1 (en) * 2001-01-11 2003-10-22 Koninklijke Philips Electronics N.V. Data compression method with identifier of regressive string reference
US7562110B2 (en) * 2001-01-11 2009-07-14 F5 Networks, Inc. File switch and switched file system
EP1244310A1 (en) 2001-03-21 2002-09-25 Canal+ Technologies Société Anonyme Data referencing system
US7310687B2 (en) 2001-03-23 2007-12-18 Cisco Technology, Inc. Methods and systems for managing class-based condensation
US7124166B2 (en) * 2001-04-30 2006-10-17 Aol Llc Duplicating digital streams for digital conferencing using switching technologies
US7058763B2 (en) * 2001-05-04 2006-06-06 Lucent Technologies Inc. File system for caching web proxies
JP3798263B2 (ja) 2001-06-01 2006-07-19 三菱電機株式会社 電子メールサーバ及び電子メールキャッシュ方法及び電子メールキャッシュプログラム
US7159014B2 (en) 2001-06-04 2007-01-02 Fineground Networks Method and system for efficient and automated version management of embedded objects in web documents
US7440994B2 (en) 2001-07-06 2008-10-21 Intel Corporation Method and apparatus for peer-to-peer services to shift network traffic to allow for an efficient transfer of information between devices via prioritized list
WO2003012578A2 (en) 2001-08-01 2003-02-13 Actona Technologies Ltd. Virtual file-sharing network
AU2002323364A1 (en) 2001-08-24 2003-03-10 Peribit Networks, Inc. Dynamic multi-point meshed overlay network
US20030105837A1 (en) * 2001-11-30 2003-06-05 Yury Kamen Interception for optimal caching of distributed applications
US7370120B2 (en) * 2001-12-07 2008-05-06 Propel Software Corporation Method and system for reducing network latency in data communication
US6556651B1 (en) * 2002-01-25 2003-04-29 Photoelectron Corporation Array of miniature radiation sources
US7216135B2 (en) 2002-02-15 2007-05-08 International Business Machines Corporation File system for providing access to a snapshot dataset where disk address in the inode is equal to a ditto address for indicating that the disk address is invalid disk address
US7058958B1 (en) 2002-04-23 2006-06-06 Microsoft Corporation Client programming model with abstraction
US6678828B1 (en) * 2002-07-22 2004-01-13 Vormetric, Inc. Secure network file access control system
US7120666B2 (en) * 2002-10-30 2006-10-10 Riverbed Technology, Inc. Transaction accelerator for client-server communication systems
US6667700B1 (en) * 2002-10-30 2003-12-23 Nbt Technology, Inc. Content-based segmentation scheme for data compression in storage and transmission including hierarchical segment representation
US8069225B2 (en) * 2003-04-14 2011-11-29 Riverbed Technology, Inc. Transparent client-server transaction accelerator
US8840683B2 (en) * 2003-11-19 2014-09-23 Albany International Corp. Industrial textile fabric
US8755381B2 (en) * 2006-08-02 2014-06-17 Silver Peak Systems, Inc. Data matching using flow based packet data storage
US7948921B1 (en) * 2007-09-20 2011-05-24 Silver Peak Systems, Inc. Automatic network optimization

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102171673B (zh) * 2008-08-06 2014-09-17 莫维克网络公司 用于减少往返和改进体验质量的跨层管道传送优化
CN102158887A (zh) * 2011-04-19 2011-08-17 北京神州数码思特奇信息技术股份有限公司 通过主动探测及时反映业务系统运行情况的方法
CN102158887B (zh) * 2011-04-19 2013-10-23 北京思特奇信息技术股份有限公司 通过主动探测及时反映业务系统运行情况的方法
US11615415B2 (en) 2016-08-05 2023-03-28 Advanced New Technologies Co., Ltd. Service displaying method and terminal

Also Published As

Publication number Publication date
HK1076892A1 (en) 2006-01-27
US7120666B2 (en) 2006-10-10
US20120209959A1 (en) 2012-08-16
WO2004042508B1 (en) 2004-09-02
EP1570365A4 (en) 2010-03-03
US8312101B2 (en) 2012-11-13
AU2003287241A8 (en) 2004-06-07
US20130041940A1 (en) 2013-02-14
US20060069719A1 (en) 2006-03-30
US7849134B2 (en) 2010-12-07
JP2010244571A (ja) 2010-10-28
US20080320106A1 (en) 2008-12-25
CN101188627B (zh) 2012-11-21
CN100369026C (zh) 2008-02-13
IL168274A (en) 2010-04-15
US8321580B2 (en) 2012-11-27
JP2006505215A (ja) 2006-02-09
US20120084465A1 (en) 2012-04-05
US8762455B2 (en) 2014-06-24
EP1570365B1 (en) 2013-01-02
US8271688B2 (en) 2012-09-18
EP1570365A2 (en) 2005-09-07
AU2003287241A1 (en) 2004-06-07
US20040088376A1 (en) 2004-05-06
US20110047295A1 (en) 2011-02-24
WO2004042508A3 (en) 2004-07-15
US7428573B2 (en) 2008-09-23
WO2004042508A2 (en) 2004-05-21
CN1735874A (zh) 2006-02-15

Similar Documents

Publication Publication Date Title
CN100369026C (zh) 用于客户-服务器通信系统的事务加速器
US8856222B2 (en) Transaction acceleration for client-server communication systems
Beck et al. An end-to-end approach to globally scalable network storage
US7512701B2 (en) System and method for efficiently replicating a file among a plurality of recipients in a reliable manner
Amir et al. Robust and E cient Replication using Group Communication
EP0823093A1 (en) Time coherent caching system
JP2003524968A (ja) Dnaトランスミッション(送信)及びトランスクリプション技術を利用した冗長データセットを表示及び維持するためのシステム及び方法
US7523217B2 (en) System and method having improved efficiency and reliability for distributing a file among a plurality of recipients
US20080010299A1 (en) File management system
CN106059936A (zh) 云系统组播文件的方法及装置
US7454424B2 (en) System and method for efficiently replicating a file
GB2412771A (en) System for managing cache updates
Miu et al. Performance analysis of a dynamic parallel downloading scheme from mirror sites throughout the internet
US8626944B2 (en) System and method for efficient replication of files
CN112732484A (zh) 一种基于端对端节点的数据备份系统
Demmer et al. E-mail4b: An e-mail system for the developing world
Clark Optimising the Web for a GPRS link
Neumann Large Scale Content Delivery applied to Files and Videos
Mohare Web Proxy Mechanisms for Wireless Networks
GB2412769A (en) System for managing cache updates

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121121

Termination date: 20201028

CF01 Termination of patent right due to non-payment of annual fee