CN102067557B - 使用本地托管高速缓存和密码散列函数来减少网络通信的方法和系统 - Google Patents

使用本地托管高速缓存和密码散列函数来减少网络通信的方法和系统 Download PDF

Info

Publication number
CN102067557B
CN102067557B CN200980123432.9A CN200980123432A CN102067557B CN 102067557 B CN102067557 B CN 102067557B CN 200980123432 A CN200980123432 A CN 200980123432A CN 102067557 B CN102067557 B CN 102067557B
Authority
CN
China
Prior art keywords
trustship
data
client computer
speed cache
hash
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.)
Active
Application number
CN200980123432.9A
Other languages
English (en)
Other versions
CN102067557A (zh
Inventor
R·T·劳
S·辛格豪尔
S-M·谭
R·S·布里格斯
K·纳克赫德
E·J·弗兰纳瑞
N·R·沙赫
G·努斯卡
K·M·祖贝里
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Priority to CN201510014317.5A priority Critical patent/CN104615666B/zh
Publication of CN102067557A publication Critical patent/CN102067557A/zh
Application granted granted Critical
Publication of CN102067557B publication Critical patent/CN102067557B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/183Provision of network file services by network file servers, e.g. by using NFS, CIFS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials

Abstract

所描述的方法和系统允许分支机构处的客户机从本地托管高速缓存而非从WAN上的应用服务器检索数据,以便改善等待时间并减少总体WAN通信。数据中心处的服务器可以适于基于是否启用托管高速缓存系统来提供散列列表或所请求的数据。客户机侧的托管高速缓存可以基于散列来将数据提供给客户机。可以生成散列以便提供可以被用来以高效方式索引数据的数据指纹。

Description

使用本地托管高速缓存和密码散列函数来减少网络通信的方法和系统
技术领域
本发明一般涉及计算机系统,且尤其涉及改善用于通过网络向作出请求的客户机提供数据的响应时间的计算系统。
背景技术
一般在商务环境中实现的数据网络配置涉及在数据中心处集中化数据存储以及将此数据(例如,经由数据中心处的服务器)提供给广域网上的多个客户机计算设备。该多个客户机计算设备可以位于WAN的一个或多个分支。这些分支可以表示使用具有到WAN的至少一个连接的局域网(LAN)来通信地相互耦合的多个计算设备。LAN可以经由路由器或本领域内已知的其他桥接设备来耦合到WAN。在大公司环境中,数据中心可以相对于分支远程设置。在客户机设备上运行的应用程序可能需要来自数据中心的数据(例如,经由数据中心处的应用程序中心提供)以便操作。广域网(WAN)上的高数据流量通常可以减少带宽并增加对WAN上的数据的请求的等待时间。这可以减慢分支机构中的计算设备处的应用程序响应时间。
为帮助减少广域网上的数据通信并改善带宽和等待时间,一些企业可以实现WAN优化器系统。通常,广域网(WAN)优化器系统是被设计成减少WAN上的带宽消耗的硬件。WAN优化器系统的目标是减少用于承载数据通信的WAN带宽量。通常,WAN优化器可用于智能地管理(使用特定算法)对去往WAN的数据的压缩和传输以及对来自WAN的数据的检索。通过压缩WAN上的数据通信,可以减少数据通信,且伴随着对应的拥塞减少。由于WAN上的拥塞减少,因此路由器等待时间、抖动和分组丢失也可以相应地下降。
尽管现有WAN优化器系统提供WAN带宽方面的一般改善,但现有WAN优化器系统可能不适于处理加密数据或提供端对端安全性。此外,现有WAN优化器系统可能需要操作数据中心和每一分支机构两者处的接口硬件,由此导致维护成本增加。
发明内容
该方法和系统允许分支机构处的客户机从托管高速缓存而非从WAN上的应用服务器检索数据,以便改善等待时间并减少总体WAN通信。数据中心处的服务器可以适于基于是否启用托管高速缓存系统来提供散列列表或所请求的数据。客户机侧的托管高速缓存可以基于这些散列来将数据提供给客户机。散列通常可以提供可以被用来索引数据的数据指纹。
附图说明
图1示出可以根据所述实施例操作的计算系统的框图;
图2示出一般WAN优化器系统;
图3示出使用托管高速缓存的数据检索过程的系统实施例;
图4示出供与托管高速缓存一起使用的记录格式;
图5示出实现多个托管高速缓存的系统实施例;
图6示出使用分布式高速缓存的对等网络实施例;
图7示出对托管高速缓存使用专用对等体的对等过程实施例;
图8示出使用图3的系统的服务器侧过程实施例;
图9示出使用图3的系统的客户机侧过程实施例;以及
图10示出使用期满参数的记录格式。
具体实施方式
尽管以下正文阐明众多不同实施例的详细描述,但是应当理解,该描述的法律范围由本发明所附的权利要求书的言辞来限定。该详细描述应被解释为仅是示例性的,且不描述每一可能的实施例,因为描述每一可能的实施例即使不是不可能的也是不切实际的。可使用现有技术或在本申请提交日之后开发的技术来实现众多替换实施例,而这仍落入权利要求书的范围之内。
还应该理解,在本专利中,除非使用句子“如此处所用,术语‘_____’特此被定义为意指……”或者类似句子来明确地定义一个术语,否则不管是明确地还是含蓄地,都没有限制该术语意义超出其平常或普通意义的意图,并且,这一术语不应该被解释为被限制在基于本专利的任何部分中(除了权利要求书的语言之外)所做的任何陈述的范围中。就本专利所附的权利要求书中引用的任何术语在本专利中以与单数意义相一致的方式来引用而言,这是为简明起见而如此做的,仅仅是为了不使读者感到混淆,且这类权利要求术语并不旨在隐含地或以其它方式限于该单数意义。最后,除非一权利要求要素是通过叙述单词“装置”和功能而没有叙述任何结构来定义的,否则任何权利要求要素的范围并不旨在基于35U.S.C.§12第6段的应用来解释。
图1示出了可用于显示和提供本说明书所描述的用户界面的合适的计算系统环境100的示例。应当注意,计算系统环境100仅为合适的计算环境的一个示例,并不旨在对本权利要求的方法和装置的使用范围或功能提出任何限制。也不应该将计算环境100解释为对示例性操作环境100中示出的任一组件或其组合有任何依赖性或要求。
参考图1,用于实现所要求保护的方法和装置的各个框的示例性系统包括计算机110形式的通用计算设备。计算机110的组件可以包括但不限于:处理单元或处理器120、系统存储器130和将包括系统存储器在内的各种系统组件耦合至处理单元120的系统总线121。
计算机110可经由局域网(LAN)171和/或经由调制解调器172或其他网络接口170的广域网(WAN)173,使用到一个或多个远程计算机的逻辑连接来在联网环境中操作。
计算机110通常包括各种计算机可读介质,计算机可读介质可以是可由计算机110访问的任何可用介质,并且包括易失性和非易失性介质、可移动和不可移动介质两者。系统存储器130包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM)131和随机存取存储器(RAM)132。ROM可包括基本输入/输出系统133(BIOS)。RAM 132通常包含数据和/或程序模块,该数据和/或程序模块包括操作系统134、应用程序135、其他程序模块136和程序数据137。计算机110还可包括其他可移动/不可移动、易失性/非易失性计算机存储介质,诸如硬盘驱动器141、对磁盘152进行读写的磁盘驱动器151以及对光盘156进行读写的光盘驱动器155。硬盘驱动器141、151和155可经由接口140、150与系统总线121接口。
用户可以通过输入设备,诸如键盘162和定点设备161(通常被称为鼠标、跟踪球或触摸垫)向计算机20输入命令和信息。其他输入设备(未示出)可以包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等等。这些和其他输入设备通常由耦合至系统总线的用户输入接口160连接至处理单元120,但也可以由其他接口和总线结构,诸如并行端口、游戏端口或通用串行总线(USB)连接。监视器191或其它类型的显示设备也经由接口,诸如视频接口190连接至系统总线121。除监视器以外,计算机还可以包括其他外围输出设备,诸如扬声器197和打印机196,它们可以通过输出外围接口190连接。
WAN优化器系统
图2示出实现本领域中公知的WAN优化器系统200的广域网(WAN)。WAN优化器系统通常可以部署在广域网连接的两侧。
WAN优化器系统通常涉及一对组件硬件设备:通常在WAN 203一侧的数据中心202处实现的服务器侧组件201以及分支206处的客户机侧组件204。在许多情况下,WAN优化器组件设备(服务器201或客户机组件204)可以被设置在WAN路由器208之后(例如,在与WAN连接相对的端口处耦合到路由器)。这些设备201和204可以用来调整前往WAN 203的应用程序通信以使得提高经由WAN 203的应用程序性能。结果可以是WAN加速以及更快的应用程序响应时间。这可以为分支机构处的最终用户以及移动工作者(例如经由膝上型计算机或其他移动计算设备连接)提供对重要应用程序的更高的访问速度。
分支206可以包括通常向数据中心202请求数据的多个客户机计算机211。在一些公司环境中,分支可以被实现为划分功能(例如,会计、采购、客户服务等等)。在一些公司环境中,分支206可以提供具体的地理服务位置。通常,客户机计算机211可以执行访问数据中心202处的一个或多个应用服务器215的一个或多个业务应用程序。
应用服务器215可以耦合到数据库217(例如,位于数据中心或远离数据中心),以便将数据提供给由应用服务器215执行并通过WAN 203提供给分支机构处的客户机211的应用程序。当然,图2同等地适用于连接到WAN以便经由WAN从服务器215接收通信的任何客户机设备(例如经由因特网连接的远程膝上型计算机),而不是使用LAN 210的分支配置。
WAN优化器功能
通常,服务器侧WAN优化器设备201可以用来检查和索引由数据中心的服务器(例如,服务器215)始发的数据分组,基于该检查来压缩数据包并通过WAN203传送数据包。客户机侧WAN优化器组件204可以用来通过WAN 203从服务器侧组件201接收经压缩的数据,解压数据包并将数据提供给分支206处的作出请求的客户机211设备。
在一些WAN优化器系统中,服务器侧组件设备201可以索引数据以便调度数据传输(例如,按优先级)。客户机204处的WAN优化器组件设备还可以用来基于由服务器设备201执行的索引来高速缓存数据。当接收到来自分支206处的客户机211的对客户机侧WAN优化器设备204处的相同数据的第二请求时,客户机侧WAN优化器设备204可以简单地从其高速缓存而非越过WAN 203返回数据。
WAN优化器的问题
如图2所示,现有WAN优化器系统200通常需要在诸如数据中心202之类的服务器端安装第一组件设备201,并且在诸如分支机构206之类的客户机端安装第二组件设备204,其中数据中心202和分支机构206通过广域网(WAN)203进行通信。在具有多个分支机构206的环境中,需要安装多个客户机侧优化器设备204。
多个组件设备的操作增加了安装和维护的成本。具体而言,因为WAN优化器要求高度详细(即,高粒度)的数据通信检查,所以可能招致用于操作优化器系统的大量处理开销。此外,因为对现有WAN优化器的检查过程要求精细的数据部分粒度水平(即,优化器通常需要理解数据是什么以使其可以对数据进行分类或以其他方式操作数据),所以WAN优化器通常不能操作加密数据(例如,当在网络上使用诸如IP安全,即IPSec协议或安全套接字层,即SSL协议等端对端加密协议来发送数据时)。在这种情况下,WAN优化器可以不影响WAN通信,因为它们不能操作此数据流(WAN优化器服务器侧组件不能理解加密数据,且由此现有WAN优化器系统不能够压缩或索引加密数据)。此外,因为WAN优化器需要检查和理解数据,所以可能无法使用现有WAN优化器来容易地提供端对端安全性。而且,由于在其中WAN包括公共通信(例如,到因特网的连接)的大多数公司环境中安全通常是主要关心的问题,因此WAN优化器无法向安全通信(例如,加密的)提供有用的压缩和等待时间益处。
使用托管高速缓存的优化
图3示出了提供端对端安全性的用于优化分支处的客户机设备的数据检索的计算系统300的实施例。当然,图3同等地适用于连接到WAN以便经由WAN(例如,膝上型计算机连接)从服务器接收通信的任何客户机设备,而不是使用LAN的分支配置。应注意,术语客户机可以被用来意指物理计算设备或在向服务器请求数据的计算设备上运行的客户机应用程序。多个应用程序可由同一计算设备执行。
现在将描述图3的系统的一般操作。数据中心302经由应用服务器315将数据提供给分支306处的客户机311。分支306可以表示其中多个客户机计算机311经由局域网,即LAN 310连接的地理位置。类似于图2,客户机计算机311可以与服务器315通信以请求和检索在数据中心302处存储和管理的数据。客户机计算机311可以经由在LAN 310和WAN 303之间的连接来检索数据。到WAN的连接可以经由路由器308。在此实施例中,托管高速缓存320还耦合到分支306处的LAN 310。托管高速缓存320可以在特定计算设备上实现,或者可以表示在多个计算设备中实现的分布式高速缓存,例如当客户机以对等方式操作时(下面进一步讨论)。托管高速缓存320可以经由局域网通信地耦合到客户机。在一些实施例中,托管高速缓存可以驻留在与请求数据的客户机(例如,任一客户机311)相同的设备上。
图3的客户机311可以被编程为向服务器315发送对数据的请求。应用服务器315可以被编程为确定是否允许请求数据的客户机311使用托管高速缓存320。然后,应用服务器315可以提供客户机311请求的数据或具体地标识客户机311请求的数据的标识符的列表。应用服务器315可以生成标识符(例如,使用算法),或者另一计算实体或应用程序(例如,数据库管理系统)可以生成标识符并将它们存储在一个位置(例如,数据中心处的数据库)中以供应用服务器检索。标识符的示例是由散列函数产生的散列,其中散列可以充当所请求的数据的指纹(下面进一步讨论)。在服务器连接到数据库317的情况下,散列可以与数据一起存储在数据库317中,或可以在数据被检索以供传送给客户机时由服务器315求散列。
一些客户机311能够使用托管高速缓存320,而一些客户机不能够(例如,传统计算设备和系统)。当客户机311能够使用托管高速缓存320时,客户机311可以被编程为从应用服务器315接收所请求的数据或从应用服务器315接收对应于所请求的数据的散列集。客户机311可以适于使用散列来从托管高速缓存320而非应用服务器315检索高速缓存的数据。托管高速缓存320可以被编程为存储由可以用作记录键327的对应的散列索引的所接收的数据326。托管高速缓存320还可以被编程为检索和返回对应于散列值或键327的数据326。托管高速缓存320可以使用任何已知的列表方法,诸如表325或其他程序对象来存储经索引的数据。
散列函数和散列索引
散列函数通常是用于接收某些种类的数据并输出相对较小的值(例如,小整数)的算法或明确定义的过程。散列函数所返回的值可以被称为散列值,散列码、散列和,或简称为散列。此外,取决于特定散列函数,散列可以提供数据部分(例如,分段、分组、块等等)的在统计上唯一的指纹。有时,这些散列函数可以被称为密码散列函数。散列指纹可以被用来对与散列相对应的数据执行数据完整性分析。例如,当基于散列返回数据时,数据可以被输入到相同的散列函数中(如果已知的话)以便返回散列。如果散列匹配,则所接收的数据是用来产生散列的相同的数据在统计上有较高机率。
散列函数可以被用来加速表查找或数据比较任务,例如在数据库中查找项目、在较大文件中检测重复的或相似的记录、在数据序列中查找相似的延伸等等。特别地,因为散列函数以较小数字格式提供相对唯一的(例如,对于一数据范围而言是唯一的)索引,所以读取散列值并基于散列值进行索引通常花费较少的处理时间。
托管高速缓存操作
在该系统的一个实施例中,托管高速缓存320可以含有用来通过散列值327索引所接收的数据326的散列表325。托管高速缓存320可以作为例如数据库表或其中可以通过散列值来检索数据的其他列表函数或注册表来维护。本领域中已知的任何检索机制(例如,查询语言调用)可以被用来基于散列值来查询托管高速缓存以获取数据(例如,SQL)。
在一个实施例中,散列函数可以是基于公钥和/或私钥对的加密算法。以此方式,散列可以表示绑定到加密密钥的数据部分的密码唯一标识符。公钥-私钥对加密的实现在本领域中是公知的。在使用公钥-私钥对加密的一个实施例中,客户机可以不需要加密密钥。例如,当客户机仅仅将该客户机从服务器接收到的散列值传递给托管高速缓存时,客户机不需要携带加密密钥。在另一示例中,在检查数据完整性的情况下,客户机可以使用加密密钥和加密算法来验证从服务器返回的数据是否对应于散列。当然,不涉及加密密钥的散列函数也可以被用来检查数据完整性函数。
如图4中更详细地示出的,托管高速缓存索引方案的一实施例可以使用特定记录格式。在图4的索引实施例中,经索引的数据存储400可以包含具有由记录键403索引的数据部分402的记录401。记录键403可以是记录的散列(其中散列对应于在所处所描述的系统中使用的公共散列函数)。记录键或散列403可以是密码唯一标识符(CUI)。CUI可以具有两个主要特定。第一,CUI在统计上可以是唯一的。类似于公共数据库索引方案,记录键需要是唯一的以便防止表中的重复实体条目。因此,CUI可以是被导出以使其对特定情形或应用唯一具有较高概率的标识符。例如,在如上所述的数据系统中,如果可以从相同的数据部分导出密码唯一标识符的概率对于一数据值范围而言来说是不太可能的,则CUI可以是在统计上唯一的。第二,CUI可以对应于特定用户散列函数,例如,正由服务器、客户机和托管高速缓存使用的公共散列函数。在其中散列是密钥对加密系统的情形中,CUI可以与对应于用来生成散列的特定加密算法的特定公钥或私钥相对应。例如,可以使用加密算法从公钥导出CUI。在一些实施例中,可以使用该算法来验证CUI与其公钥对应或匹配。
图4的记录401可以被用来高速缓存由散列值索引的数据。CUI记录散列键403可以被用来定位每一记录401和检索对应于散列键403的数据部分402。在一个实施例中,对本地网络而言记录401可以是公开的,即,经索引的信息可以不加密(散列键可能除外)。然而,下面描述的其他实施例可以加密数据部分402或记录401。
多个托管高速缓存
图5示出了实现多个托管高速缓存321-322的系统实施例。在此实施例中,客户机311可以基于多个优化参数来与托管高速缓存321-322中的特定托管高速缓存通信或交互。例如,商业企业可以基于地理邻近度或网络邻近度(例如,在高速缓存和客户机之间进行通信所需要的最小网络路由连接是什么)来为客户机提供托管高速缓存。此外,可以基于子网或其他网络划分来提供不同的托管高速缓存。在一个实施例中,可以提供多个托管高速缓存作为冗余措施。例如,仅托管高速缓存的子集(例如,一个托管高速缓存)可以被指定为活动的且可供与客户机连接和交互。如果所指定的托管高速缓存发生故障,则可以激活冗余的托管高速缓存。可以用与所指定的活动托管高速缓存相同的信息来填充并更新冗余的、非活动托管高速缓存。例如,可以跨越多个托管高速缓存复制数据。
使用对等网络的分布式散列表
在一个实施例中,客户机可以是对等网络的一部分。图6示出了使用实现分布式托管高速缓存600的对等网络的实施例。分布式托管高速缓存可以表示服务器无关持久索引系统。分布式高速缓存600可以在形成对等网络605的一组对等体实体601-604上维护。可以使用例如散列函数在逻辑上对分布式托管高速缓存600中的记录进行划分或分组。散列函数可以按某一逻辑次序将实体分组或群集在一起,以使得可以使得检索更为高效。散列函数可以将记录以有组织的方式聚合在一起,由此使得检索更为高效。分布式托管高速缓存可以具有两个主要特性:1)记录内容分布在多个节点/客户机/对等体,诸如节点601-604上;以及2)提供用于发布和检索记录的方法的路由机制(未示出)。
在图6的实施例中,如上所述,服务器可被配置成将数据的散列提供给请求信息的客户机601-604中的任一个。然后,客户机可以向对等网络605发送包括散列内的广播请求消息以便在对等网络中定位包含对应于该散列的数据的对等体节点。如果对等体先前已经请求并存储数据,则该对等体可以回复该请求并将数据提供给发送该广播消息的对等体。以此方式,可以跨越对等网络的多个不同的对等体(对等体节点)维护托管高速缓存。由此,分支处的客户机可以返回基于由应用服务器提供的散列而请求的数据。在此实施例中,对等网络中的对等体可以协作以高速缓存数据。尽管在此小节中描述对等实施例,但应注意,该方法和系统可以在包括不涉及对等网络的协议在内的任何客户机-服务器协议上使用。
图7示出了不使用分布式托管高速缓存的另一对等网络实施例。单个对等体701可以被选为或指定为单独的托管高速缓存(其可被称为超级对等体),而不是实现跨其中每一个对等体存储数据或该数据的一部分的副本的多个对等体的托管高速缓存。客户机/节点/对等体702-704可以被编程为查看单个对等体701以获得托管高速缓存服务和信息。然而,客户机702-704中的每一个都能够主存该高速缓存且可以出于冗余或故障转移的目的来这样做。在此实施例中,在将单个对等体指定为或选为托管高速缓存时可以考虑若干参数。例如,该指定可以基于对等体的工作负载、对等体的处理能力和/或对等体的存储容量。
即使只有图7的单个对等体被指定为托管高速缓存,充当对等网络705中的客户机(702-704)的每一对等体也可以维护其自己的托管高速缓存。在此配置中,客户机对等体(例如,701-704)可以向服务器请求数据,从服务器接收散列集并且首先检查其本地高速缓存是否包括该数据。如果该对等体的本地高速缓存不包含该数据,则该对等体可以搜索指定的托管高速缓存对等体。在另一实施例中,在对等体701出现故障的情况下,然后,对等网络中的其他对等体(例如,702-704)可以切换到分布式托管高速缓存模型,在该模型中它们开始在对等网络的本地高速缓存中搜索数据(即,分布式托管高速缓存模型)。
可以基于特定客户机配置以多种方式实现托管高速缓存。如上面讨论的,托管高速缓存不需要在对等网络上实现。托管高速缓存可以被实现为操作系统组件或被实现为通常在计算设备上运行的进程。例如,托管高速缓存可以被实现为Microsoft Windows操作系统组件。
托管高速缓存服务提供基于散列索返回数据的聚焦功能。可以不必实现数据加密,这是因为托管高速缓存通常是分支中的可信实体。然而,在一些实施例中,当对特定实现适当时,可以使用任何可用加密方案来实现高速缓存的加密。例如,可以实现用于托管高速缓存的认证或授权方案,以使得仅经授权的用户可以被授予对托管高速缓存的访问权(例如,被授予对托管高速缓存进行读写的访问权)。应注意,此安全措施可以完全在分支处,例如在LAN上实现。
可以使用以上描述的系统来实现不同的过程以提供用于改善等待时间的数据传输的端对端安全性。
图8示出了可以使用以上所描述的系统来实现的一个这样的过程实施例。具体而言,诸如应用服务器315等服务器可以通过网络801从客户机接收数据请求消息。该服务器可以确定客户机是否能够使用托管高速缓存802。在一个实施例中,客户机请求可以包括客户机能够使用托管高速缓存的首部或其他指示。在另一个实施例中,服务器可以被编程为通过在存储(例如注册表)中查找客户机来查找客户机是否能够使用托管高速缓存。在此实施例中,客户机可以向服务器告知客户机身份(例如,经由来自客户机的请求消息中的标识符)。如果服务器确定客户机不能够使用托管高速缓存,则服务器可以通过提供所请求的数据803来处理请求。如果服务器确定客户机能够使用托管高速缓存,则服务器可以提供数据804的散列而非数据本身。在其他实施例中,服务器可以引用能够使用托管高速缓存的客户机的集合。
在一些实施例中,在服务器传送其对客户机请求的响应之前或之时,服务器可以采用附加优化技术。例如,服务器可以聚集多个响应(散列和/或所请求的数据)并基于一个或多个参数(例如,所监视/测量的网络带宽、调度等等)来传送这些响应。服务器还可以基于散列函数来对散列集进行排序,其中散列函数将一组织(例如,顺序或次序)提供给散列集。服务器还可以基于该散列集来确定数据传输的优先顺序。
在一个实施例中,服务器可以适于使用散列来索引其数据。例如,服务器可以对服务器可以访问的数据文件使用散列函数来生成散列。在另一个实施例中,另一设备或程序可以使用散列函数来对数据求散列,并使得这些散列对服务器或其他作出请求的设备(例如,客户机或托管高速缓存)可用。散列可以充当对用于生成该散列的数据的索引。此外,散列本身提供用于验证数据完整性的机制(下面进一步讨论)。在一个实施例中,服务器可以仅在数据被请求时对所请求的数据执行散列函数。在其他实施例中,散列可以独立于请求而执行(例如,可以在接收到对数据的任何请求之前对数据求散列)。
有状态的服务器实施例
在上述实施例中,服务器对于与客户机的先前事务(例如,先前对客户机数据请求的回复)而言可以是无状态的。换言之,服务器可以不记得或存储其已经向客户机提供任何特定数据的指示。在其中服务器的确维护状态的实施例中,然后服务器可以适于确定托管高速缓存是否已经存储客户机正在请求的数据。例如,服务器可以被编程为存储指示特定数据是否先前已经被请求并被发送给分支处的客户机的信息,其中已知客户机能够使用托管高速缓存。在接收到对相同数据的后续请求时,服务器就可以被编程为简单地向作出该后续请求的客户机提供数据的散列。该才做可以在假设托管高速缓存已经高速缓存先前请求的数据的情况下编程。如果服务器不记得先前发送所请求的数据集(或存储指示数据先前已经被请求或被提供的信息),则服务器可以被编程为将数据提供给作出请求的客户机。以此方式,可以实现其中可以减少或防止应用服务器、托管高速缓存或客户机中的任一个之间的特定来回通信的的进一步的等待时间改善。在此实施例中,服务器可以被编程为在不确定客户机是否启用托管高速缓存的情况下操作。在一替换实施例中,服务器仍然可以检查客户机是否启用托管高速缓存。这可以被用于具有不能够使用托管高速缓存的传统应用程序和设备并要求服务器仅将数据发送给特定客户机(即,不发送散列)的混合网络。在这种情况下,即使服务器已经将所请求的数据发送给分支的客户机且所请求的数据可以被存储在本地高速缓存上,传统设备仍要求返回实际数据以便操作。
图9示出了在分支处使用该系统的过程程。请求数据的客户机可以从服务器接收响应消息901。该响应可以包括客户机所请求的数据或对应于所请求的数据的散列集而非实际数据集。在框902中,客户机可以被编程为确定响应是包括数据还是包括散列集而非数据。当客户机确定来自服务器的响应包括所请求的实际数据时,然后客户机可以消费数据903并将数据的副本存储在托管高速缓存中904。托管高速缓存可以存储由散列值索引的数据。散列值可以由服务器生成,且与实际数据一起被传递(例如,在框901中)。或者,客户机可以对数据求散列并将散列与实际数据一起提供给托管高速缓存。在又一实施例中,托管高速缓存可以对数据求散列。不管哪一实体执行散列函数,托管高速缓存可以使用散列来索引托管高速缓存所存储的数据。此外,由实体中的任一个(当多于一个实体正在执行散列函数时)使用的散列函数可以全部相同。
如果客户机接收到散列集而非实际数据集,客户机可以基于散列来向托管高速缓存查询数据905。托管高速缓存可以确定其是否具有对应于散列集的数据906。如果托管高速缓存包含该数据,则客户机可以基于其从应用服务器接收到的散列来从托管高速缓存中检索该数据907。可任选地,客户机还可以使用散列对由托管高速缓存接收的数据执行数据完整性检查908。如本领域中的技术人员已知的,散列可以提供被用来生成散列的数据的唯一指纹。由此,验证由客户机从托管高速缓存接收的数据的完整性和同一性的方法是对来自托管高速缓存的数据执行相同的散列函数(例如,已知在提供散列和托管高速缓存的服务器之间常见的散列函数),以便查看是否从该数据得到相同的散列。如果是,则可以验证数据的完整性和同一性。如果数据被确定为通过验证且有效909,则在框910客户机可以消费检索到的数据。如果数据未通过且因此不是有效的,则可以从服务器检索数据集且可以用从服务器检索到的新数据来更新托管高速缓存911。
如果托管高速缓存不包含所请求的数据,则可以实现用数据集来填充托管高速缓存911并将该数据集提供给客户机912的若干种方法。在一个实施例中,托管高速缓存可以实现检索由客户机请求的其当前未存储的数据的功能。例如,托管高速缓存可以被编程为向应用服务器请求数据。在这种情况下,应用服务器可以将具有或不具有散列的数据返回给托管高速缓存,且然后托管高速缓存可以将所请求的数据提供给作出请求的客户机。然后,托管高速缓存可以连同从服务器接收到的散列一起或基于其基于数据生成的散列来存储新数据。当由托管高速缓存和服务器使用的散列函数相同时,此实施例的方法和系统可以用来将相同的散列索引提供给客户机以用于稍后的检索。
在另一个实施例中,客户机可以承担从应用服务器检索未被存储在托管高速缓存中的数据的责任。例如,当托管高速缓存将基于客户机发送的散列来指示其当前未存储由客户机请求的数据的消息返回给客户机时,然后客户机可以向应用服务器发送对数据的第二请求。在此情况下,客户机可以将托管高速缓存不包含所请求的数据的指示与第二请求一起发送应用服务器。在一个实施例中,这可以通过指示客户机不能够使用托管高速缓存来执行。在此情况下,应用服务器可以简单地将所请求的数据提供给客户机,且然后客户机可以将数据推送到托管高速缓存。数据可以由服务器、客户机或托管高速缓存来求散列。在另一个实施例中,托管高速缓存当前不具有所请求的数据的指示可以作为单独的指示来发送。例如,从客户机到应用服务器的第二请求中的首部可以包括客户机能够使用托管高速缓存的指示和托管高速缓存不包括所请求的信息的指示两者。在此示例中,服务器可以返回所请求的数据以及所请求的数据的散列。
在一个实施例中,可以用已知具有较高访问率的数据集来预先填充托管高速缓存,而不是等待托管高速缓存基于初始客户机请求来从零开始填充。这可以经由系统宕机期间的排定加载来完成。
托管高速缓存的数据管理可以通过根据时间戳来周期性地清除托管高速缓存中的数据来执行。例如,每一数据段或块可以由多个变量(创建日期、接收日期等等)来进行时间编码。当从时间戳起的当前持续时间消逝时,可以删除数据块。这提供了用于使数据保持相对新鲜的机制。例如,当数据被删除时,更新近地从应用服务器下载该数据的新版本(在需要时)。关于求散列的数据需要注意的一个重要问题是单个文件可以由多个散列索引。此外,两个或更多文件可以具有包含相同散列公共数据块。数据可以按数据块清除且由此数据文件可以包含需要从应用服务器重新检索的一些已删除的部分。
在图10所示的实施例中,对于每一记录可以包括期满参数1001。这些记录可以持久存储在托管高速缓存中,直到它们被发布者显式地删除或直到它们基于期满参数而期满。此期满参数1001可以对应于数据有效的持续时间。期满参数1001可以指示记录的有效性的期满时间。由此,期满参数1001可以被用于如图9所示出的检索过程。例如,在框909,可以检查由期满参数1001指示的期满时间以确定该期满时间是否已经期满。如果期满参数1001期满,则记录是无效的且框911可以被用来从服务器检索新数据。否则,记录是有效的且可由客户机消费910。
托管高速缓存发现过程
可以用发现协议来实现托管高速缓存。发现协议可以是向客户机提供探测网络上的托管高速缓存的存在的能力的任何合适的协议。发现机制可以显式的或自动的。例如,在显式发现协议中,客户机可以被定向到提供关于任何已注册的托管高速缓存的信息的注册表。或者,可以使用将每一计算设备定向到特定托管高速缓存的组计算策略或脚本来实现显式发现。在自动发现实施例中,可以向连接的客户机推送关于该客户机可访问的网络段上的托管高速缓存的存在的信息。应注意,即使客户机可以连接到包括彼此在邻近的地理位置的多个客户机器的分支,客户机机器也可以被分割成域或子网,其中访问在这些域或子网中或之间受限。
在一个实施例中,能够使用托管高速缓存的客户机可以使用预定发现协议来确定托管高速缓存是否在该客户机的网络上可用。换言之,客户机可以被编程为当被连接到网络时使用特定发现协议来通信。注意,客户机可以表示客户机应用程序或客户机设备。在替换实施例中,客户机可以负责在连接到网络时公布其自己的可用性或存在。发现协议还可以提供用于发布客户机的存在的机制,其中客户机和托管高速缓存基于通信域相互知晓。例如,客户机可以被配置为是移动的(例如,膝上型计算机),其中客户机可以连接到第一网络或第二网络(例如,基于域或子网),其中每一网络可以具有单独的托管高速缓存。在任一种情况下,发现协议可以适于与客户机一起工作,以便在客户机直接连接到的网络中提供托管高速缓存。
优化监视
可以执行对托管高速缓存和对应的服务器的系统的数据通信监视,以便提供对所述系统的进一步优化。例如,可以监视的某些数据传输参数包括来自客户机的数据请求的等待时间。另一变量可以是访问客户机访问托管高速缓存的频率对比访问WAN连接的频率。对数据通信的监视和记录以及分析可以允许网络管理员调整所述方法和系统的操作参数。例如,基于监视数据,管理员可以发现可以在非高峰时间预先填充哪些数据。
与现有WAN优化器的集成
在一个实施例中,客户机侧WAN优化器设备可以适于用作托管高速缓存。在此实施例中,没有服务器侧WAN设备是必需的。
在一个实施例中,除了托管高速缓存之外可以使用WAN优化器设备。因为WAN优化器通常不能够处理加密文件,所以只要数据未进行加密传输,WAN优化器就可以被用于在客户机和服务器之间的一般数据或文件访问。对于加密数据,可以使用托管高速缓存实现。此配置可以在具有传统系统或设备(例如,未被配置成识别托管高速缓存或与其通信的识别)的网络中实现。在另一个实施例中,当客户机不能够使用托管高速缓存时,该客户机可以使用现有WAN优化器系统(例如,包括服务器和客户机侧WAN优化器组件设备两者的WAN优化器系统),而能够使用托管高速缓存的那些客户机也可以这样做。服务器可以确定如何经由嵌入在数据请求消息中的信息(例如,经由所描述的首部)来响应对数据的客户机请求。
使用所要求保护的方法和系统的一种益处在于,可以减少对在WAN的服务器和客户机侧两者包括和维护两个组件框的需求。这降低了维护成本。此外,现在可以在WAN上发送加密数据,同时仍实现和/或超过由现有WAN优化器系统提供的等待时间改善。所描述的方法和系统的另一益处在于,降低了执行详细的数据检查以提供索引和压缩所需要的处理能力。换言之,WAN优化器将数据索引至要求更高处理能力的更精细粒度。相反,所要求保护的方法和系统基于数据生成散列,其中散列函数通常是高效且快速的,且不需要很多的处理开销。
所描述的方法和系统的另一益处在于,其通常消除了对WAN上的客户机和服务器之间的中间设备的需求。相反,所描述的方法和系统使用包含在安全分支环境的界限内的托管高速缓存。出现了关于其中未用所请求的数据填充高速缓存的情形的问题。然后,可以按在客户机和应用服务器之间协商的任何方式发送数据。换言之,数据可以是加密的或不加密的。消除了中间人意味着移除WAN上的客户机和服务器之间的任何工作部分。
另一益处是协议无关。现有WAN优化器可能需要被编程为使用多个不同的协议来操作。本申请的方法和系统简单地通过在服务器和客户机之间使用的现有协议来发送散列。

Claims (20)

1.一种减少网络的带宽利用并改善网络上的数据检索的等待时间的方法,所述方法包括:
经由第一网络将客户机连接到服务器;
经由第二网络将客户机连接到托管高速缓存,其中所述客户机能够经由独立于所述第一网络的所述第二网络与所述托管高速缓存通信;
通过所述第一网络将第一请求消息从客户机传送至所述服务器,其中所述消息包含对数据集的请求;
在所述客户机处经由所述第一网络接收所请求的数据集以及对应的散列集或者接收对应于所述数据集的散列集而非所述数据集;
在所述客户机处确定所述客户机是接收到所述散列集和所述数据集还是接收到所述散列集而非所述数据集;
当所述客户机接收到所述散列集和所述数据集时,经由所述第二网络将所述数据集的副本存储在所述托管高速缓存中;以及
当所述客户机接收到所述散列集而非所述数据集时,由所述客户机基于所述散列集来经由所述第二网络向所述托管高速缓存查询所述数据集,其中所述托管高速缓存存储由散列索引的数据。
2.如权利要求1所述的方法,其特征在于,所述第一网络是运行安全套接字层协议或IP安全协议中的一个的端对端安全网络。
3.如权利要求1所述的方法,其特征在于,通过所述第一网络将第一请求消息从所述客户机传送至所述服务器还包括传送包含所述客户机能够利用所述托管高速缓存的指示的消息。
4.如权利要求1所述的方法,其特征在于,还包括当所述托管高速缓存不包含所请求的数据时,由所述托管高速缓存将对所述客户机请求的数据的请求发送给服务器。
5.如权利要求1所述的方法,其特征在于,还包括从所述托管高速缓存接收所述托管高速缓存不包含对应于所述散列集的数据的指示并且将对所述客户机请求的数据的第二请求发送给所述服务器。
6.如权利要求1所述的方法,其特征在于,所述托管高速缓存存储与所述数据集中的每一个数据相关联的期满参数,所述期满参数包含指示每一数据的有效时间段的期满值。
7.如权利要求1所述的方法,其特征在于,还包括将所述托管高速缓存实现为跨经由所述第二网络连接的多个客户机存储的分布式散列表。
8.如权利要求1所述的方法,其特征在于,生成所述散列集包括基于加密算法来生成所述散列集,其中所述散列集被生成为对由所述托管高速缓存来高速缓存的数据在统计上唯一。
9.如权利要求1所述的方法,其特征在于,还包括在所述客户机处通过对从所述托管高速缓存接收到的数据集执行散列函数并确定所述散列函数是否产生与用于查询所述数据的散列相匹配的散列,来验证所述数据集。
10.一种减少网络带宽利用并改善网络上的数据检索的等待时间的方法,所述方法包括:
在服务器处通过网络从客户机接收请求消息,其中所述消息包含所述客户机对存储在所述服务器处的数据集的请求;
对存储在所述服务器处的数据集使用第一散列函数来生成散列集,其中所述散列集中的每一个散列表示所述数据集中的每一个数据的统计上唯一的指纹;
在所述服务器处确定所述客户机是否能够使用托管高速缓存,其中所述托管高速缓存基于散列来索引数据,其中所述散列是使用所述第一散列函数产生的;
当所述客户机不能够使用托管高速缓存时,由所述服务器经由所述网络将所述数据集和所生成的对应的散列集传送给所述客户机;
当所述客户机能够使用托管高速缓存时,由所述服务器经由所述网络将所述散列集,但不将所述数据集传送给所述客户机。
11.如权利要求10所述的方法,还包括将散列函数提供给所述客户机,所述散列函数对应于被用来为所述数据集产生所述散列集的散列函数。
12.如权利要求10所述的方法,还包括在所述服务器处通过网络从所述托管高速缓存接收请求消息,其中所述消息包含所述托管高速缓存对存储在所述服务器处的数据集的请求。
13.如权利要求10所述的方法,还包括从所述客户机接收对相同数据集的第二请求,所述客户机在所述第二请求中提供所述托管高速缓存不包含所述数据集的指示。
14.如权利要求10所述的方法,其特征在于,确定所述客户机是否能够使用托管高速缓存包括在指示哪些客户机能够使用托管高速缓存的注册表中执行对所述客户机的查找,或者读取所述请求消息中的指示以确定所述客户机是否能够使用托管高速缓存。
15.一种用于减少包括一组计算设备的广域网上的等待时间的计算系统,所述计算设备包括处理器以及操作上耦合到所述处理器的、用于存储可由所述处理器执行的指令的存储器,所述计算系统包括:
托管高速缓存,所述托管高速缓存适于存储由散列值索引的数据;
第一网络,所述第一网络通信地耦合客户机和服务器;
第二网络,所述第二网络通信地将所述客户机与托管高速缓存耦合,其中所述第二网络独立于所述第一网络并被配置成在不使用所述第一网络的情况下提供所述客户机和所述托管高速缓存之间的通信;
服务器,所述服务器适于经由所述第一网络响应于客户机请求而将数据集或对应于所述数据集的散列集传送给客户机;以及
客户机,所述客户机适于在所述服务器传送所述散列集时接收所述散列集,并且基于所接收到的对应的散列集经由所述第二网络向托管高速缓存查询所述数据集。
16.如权利要求15所述的系统,其特征在于,所述客户机在所述服务器传送所述数据集时接收所述数据集,并且其中所述客户机根据散列值来将所述数据集的副本存储到所述托管高速缓存中。
17.如权利要求15所述的系统,其特征在于,所述托管高速缓存适于在所述托管高速缓存不包含所请求的数据时向所述服务器发送对所述客户机请求的数据的请求。
18.如权利要求15所述的系统,其特征在于,所述客户机适于在所述托管高速缓存不包含所请求的数据时发送对所述数据集的请求。
19.如权利要求15所述的系统,其特征在于,所述服务器适于使用散列函数来生成散列,并且其中所述客户机适于通过使用与所述服务器相同的散列函数来对从所述托管高速缓存接收到的数据求散列来验证从所述托管高速缓存接收到的数据。
20.如权利要求15所述的系统,其特征在于,所述服务器还适于成为有状态的服务器,所述有状态的服务器跟踪先前传送给所述客户机的数据集,并且响应于对相同的数据集的附加请求,传送对应于所述数据集的散列集而非所述数据集。
CN200980123432.9A 2008-06-19 2009-04-21 使用本地托管高速缓存和密码散列函数来减少网络通信的方法和系统 Active CN102067557B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510014317.5A CN104615666B (zh) 2008-06-19 2009-04-21 有助于减少网络通信的客户端和服务器

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/141,950 US9747340B2 (en) 2008-06-19 2008-06-19 Method and system of using a local hosted cache and cryptographic hash functions to reduce network traffic
US12/141,950 2008-06-19
PCT/US2009/041267 WO2009154869A2 (en) 2008-06-19 2009-04-21 Method and system of using a local hosted cache and cryptographic hash functions to reduce network traffic

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201510014317.5A Division CN104615666B (zh) 2008-06-19 2009-04-21 有助于减少网络通信的客户端和服务器

Publications (2)

Publication Number Publication Date
CN102067557A CN102067557A (zh) 2011-05-18
CN102067557B true CN102067557B (zh) 2015-02-11

Family

ID=41432266

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201510014317.5A Active CN104615666B (zh) 2008-06-19 2009-04-21 有助于减少网络通信的客户端和服务器
CN200980123432.9A Active CN102067557B (zh) 2008-06-19 2009-04-21 使用本地托管高速缓存和密码散列函数来减少网络通信的方法和系统

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201510014317.5A Active CN104615666B (zh) 2008-06-19 2009-04-21 有助于减少网络通信的客户端和服务器

Country Status (8)

Country Link
US (2) US9747340B2 (zh)
EP (1) EP2308216A4 (zh)
JP (1) JP5480893B2 (zh)
KR (1) KR101570892B1 (zh)
CN (2) CN104615666B (zh)
BR (1) BRPI0912888B1 (zh)
RU (1) RU2475988C2 (zh)
WO (1) WO2009154869A2 (zh)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100036804A1 (en) * 2008-08-05 2010-02-11 International Business Machines Corporation Maintained and Reusable I/O Value Caches
US20100036805A1 (en) * 2008-08-05 2010-02-11 International Business Machines Corporation System Maintainable and Reusable I/O Value Caches
US20120102134A1 (en) 2010-10-21 2012-04-26 International Business Machines Corporation Cache sharing among branch proxy servers via a master proxy server at a data center
US9078128B2 (en) * 2011-06-03 2015-07-07 Apple Inc. System and method for secure identity service
US9098378B2 (en) 2012-01-31 2015-08-04 International Business Machines Corporation Computing reusable image components to minimize network bandwidth usage
US20130201519A1 (en) * 2012-02-03 2013-08-08 Apple Inc. Bridging Non-Network Interfaces and Network Interfaces
US8805797B2 (en) * 2012-02-22 2014-08-12 International Business Machines Corporation Optimizing wide area network (WAN) traffic by providing home site deduplication information to a cache site
US10198462B2 (en) * 2012-04-05 2019-02-05 Microsoft Technology Licensing, Llc Cache management
US8880638B2 (en) * 2012-06-18 2014-11-04 International Business Machines Corporation Distributed image cache for servicing virtual resource requests in the cloud
US9300748B2 (en) 2013-01-16 2016-03-29 Cisco Technology, Inc. Method for optimizing WAN traffic with efficient indexing scheme
US9509736B2 (en) 2013-01-16 2016-11-29 Cisco Technology, Inc. Method for optimizing WAN traffic
US9306997B2 (en) * 2013-01-16 2016-04-05 Cisco Technology, Inc. Method for optimizing WAN traffic with deduplicated storage
JP2016513383A (ja) * 2013-01-19 2016-05-12 トロンデルト オーユー 数値制御製造システムにおける安全なストリーミング手法と、安全な数値制御製造システム
CN103116627B (zh) * 2013-01-31 2016-05-18 汉柏科技有限公司 一种高并发soa技术访问数据库的方法和系统
US10474652B2 (en) * 2013-03-14 2019-11-12 Inpixon Optimizing wide data-type storage and analysis of data in a column store database
US9461880B2 (en) 2013-04-23 2016-10-04 Telefonaktiebolaget L M Ericsson (Publ) Method and system for network and intra-portal link (IPL) sharing in distributed relay control protocol (DRCP)
US9497132B2 (en) 2013-04-23 2016-11-15 Telefonaktiebolaget Lm Ericsson (Publ) Method and system of implementing conversation-sensitive collection for a link aggregation group
US9553798B2 (en) 2013-04-23 2017-01-24 Telefonaktiebolaget L M Ericsson (Publ) Method and system of updating conversation allocation in link aggregation
CN103281398B (zh) * 2013-06-14 2017-04-12 清华大学 数据中心网络泛在缓存方法
US10248428B2 (en) * 2014-04-28 2019-04-02 Intel Corporation Securely booting a computing device
US9813290B2 (en) 2014-08-29 2017-11-07 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for supporting distributed relay control protocol (DRCP) operations upon misconfiguration
US10277616B2 (en) 2014-09-25 2019-04-30 Vigilant Ip Holdings Llc Secure digital traffic analysis
US10021181B2 (en) * 2014-12-22 2018-07-10 Dropbox, Inc. System and method for discovering a LAN synchronization candidate for a synchronized content management system
US10891264B2 (en) * 2015-04-30 2021-01-12 Vmware, Inc. Distributed, scalable key-value store
CN105068762B (zh) * 2015-08-06 2018-05-18 北京奇艺世纪科技有限公司 一种数据读取方法及装置
US10382552B2 (en) * 2016-12-12 2019-08-13 Verizon Patent And Licensing Inc. User device ad-hoc distributed caching of content
US10708382B2 (en) * 2018-11-08 2020-07-07 Citrix Systems, Inc. Systems and methods for latency masking via prefix caching
FR3092923B1 (fr) * 2019-02-19 2021-05-21 Sangle Ferriere Bruno Méthode cryptographique de vérification des données
FR3093574B1 (fr) * 2019-03-04 2021-10-01 Amadeus Traitement de données distribuées
CN116719582B (zh) * 2023-08-07 2023-11-03 北京市大数据中心 一种高并发系统的前端限流方法

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5452447A (en) 1992-12-21 1995-09-19 Sun Microsystems, Inc. Method and apparatus for a caching file server
US5572221A (en) 1994-10-26 1996-11-05 Telefonaktiebolaget Lm Ericsson Method and apparatus for detecting and predicting motion of mobile terminals
JP3865775B2 (ja) * 1995-04-11 2007-01-10 キネテック インコーポレイテッド データ処理システムにおけるデータの識別
US5860153A (en) * 1995-11-22 1999-01-12 Sun Microsystems, Inc. Memory efficient directory coherency maintenance
WO1999003047A1 (en) 1997-07-11 1999-01-21 Earle Machardy Content hosting environment system and cache mechanism
US6014667A (en) * 1997-10-01 2000-01-11 Novell, Inc. System and method for caching identification and location information in a computer network
US6185598B1 (en) * 1998-02-10 2001-02-06 Digital Island, Inc. Optimized network resource location
US6311216B1 (en) * 1998-05-29 2001-10-30 Microsoft Corporation Method, computer program product, and system for client-side deterministic routing and URL lookup into a distributed cache of URLS
US6377991B1 (en) * 1998-05-29 2002-04-23 Microsoft Corporation Method, computer program product, and system for migrating URLs within a dynamically changing distributed cache of URLs
US6661904B1 (en) 1998-07-15 2003-12-09 Personalogo Method and system for automated electronic conveyance of hidden data
US6757705B1 (en) 1998-08-14 2004-06-29 Microsoft Corporation Method and system for client-side caching
GB2342195A (en) 1998-09-30 2000-04-05 Xerox Corp Secure token-based document server
EP0993163A1 (en) 1998-10-05 2000-04-12 Backweb Technologies Ltd. Distributed client-based data caching system and method
US6405219B2 (en) 1999-06-22 2002-06-11 F5 Networks, Inc. Method and system for automatically updating the version of a set of files stored on content servers
EP1154356A1 (en) * 2000-05-09 2001-11-14 Alcatel Caching of files during loading from a distributed file system
US6766313B1 (en) 2000-07-12 2004-07-20 Microsoft Corporation System and method for caching and retrieving information
US7484002B2 (en) 2000-08-18 2009-01-27 Akamai Technologies, Inc. Content delivery and global traffic management network system
US6959320B2 (en) 2000-11-06 2005-10-25 Endeavors Technology, Inc. Client-side performance optimization system for streamed applications
US7062567B2 (en) 2000-11-06 2006-06-13 Endeavors Technology, Inc. Intelligent network streaming and execution system for conventionally coded applications
US7188145B2 (en) 2001-01-12 2007-03-06 Epicrealm Licensing Llc Method and system for dynamic distributed data caching
AU2002232464A1 (en) * 2001-02-09 2002-08-28 Microsoft Corporation Distribution of binary executables and content from peer locations/machines
US8156223B2 (en) * 2001-03-20 2012-04-10 Microsoft Corporation Distribution of binary executables and content from peer locations/machines
US6912591B2 (en) * 2001-05-02 2005-06-28 Science Application International Corporation System and method for patch enabled data transmissions
TW579463B (en) 2001-06-30 2004-03-11 Ibm System and method for a caching mechanism for a central synchronization server
US7092997B1 (en) * 2001-08-06 2006-08-15 Digital River, Inc. Template identification with differential caching
JP2003153229A (ja) 2001-11-15 2003-05-23 Mitsubishi Electric Corp データ通信装置及びデータ通信方法
US7392348B2 (en) * 2003-08-06 2008-06-24 International Business Machines Corporation Method for validating remotely cached dynamic content web pages
US6781963B2 (en) 2002-02-14 2004-08-24 Qualcomm Inc Method and an apparatus for terminating a user from a group call in a group communication network
JP4366040B2 (ja) 2002-03-07 2009-11-18 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワークサービスシステム、サーバ及びプログラム
JP2003271442A (ja) 2002-03-14 2003-09-26 Ntt Comware Corp キャッシュサーバおよびそのキャッシュアウト方法並びにプログラム
US7461262B1 (en) 2002-03-19 2008-12-02 Cisco Technology, Inc. Methods and apparatus for providing security in a caching device
CA2379082A1 (en) * 2002-03-27 2003-09-27 Ibm Canada Limited-Ibm Canada Limitee Secure cache of web session information using web browser cookies
US6996584B2 (en) 2002-05-14 2006-02-07 Pervasive Software, Inc. System and method of maintaining functional client side data cache coherence
US7171439B2 (en) 2002-06-14 2007-01-30 Integrated Device Technology, Inc. Use of hashed content addressable memory (CAM) to accelerate content-aware searches
US7836295B2 (en) 2002-07-29 2010-11-16 International Business Machines Corporation Method and apparatus for improving the resilience of content distribution networks to distributed denial of service attacks
JP2004126639A (ja) * 2002-09-30 2004-04-22 Toshiba Corp データ管理システム、データ管理方法及びプログラム
JP2004185263A (ja) 2002-12-03 2004-07-02 Oki Electric Ind Co Ltd 分散協調型コンテンツ配信システム
GB0303192D0 (en) * 2003-02-12 2003-03-19 Saviso Group Ltd Methods and apparatus for traffic management in peer-to-peer networks
US7441011B2 (en) 2003-10-23 2008-10-21 Microsoft Corporation Truth on client persistent caching
WO2005084132A2 (en) 2004-03-08 2005-09-15 First Oversi Ltd A method and device for peer to peer file sharing
US7788713B2 (en) * 2004-06-23 2010-08-31 Intel Corporation Method, apparatus and system for virtualized peer-to-peer proxy services
US7437364B1 (en) * 2004-06-30 2008-10-14 Google Inc. System and method of accessing a document efficiently through multi-tier web caching
EP1842354B1 (en) * 2005-01-24 2014-11-05 Citrix Systems, Inc. Systems and methods for performing caching of dynamically generated objects in a network
US7640363B2 (en) 2005-02-16 2009-12-29 Microsoft Corporation Applications for remote differential compression
JP4515319B2 (ja) 2005-04-27 2010-07-28 株式会社日立製作所 コンピュータシステム
JP2007066161A (ja) 2005-09-01 2007-03-15 Hitachi Ltd キャッシュシステム
CN101009516B (zh) * 2006-01-26 2011-05-04 华为技术有限公司 一种进行数据同步的方法、系统及装置
US7617322B2 (en) * 2006-09-29 2009-11-10 Microsoft Corporation Secure peer-to-peer cache sharing
US7634479B2 (en) * 2006-12-29 2009-12-15 Trend Micro Incorporated Pre-populating local URL rating cache
US7757002B2 (en) * 2007-03-23 2010-07-13 Sophos Plc Method and systems for analyzing network content in a pre-fetching web proxy
US8234327B2 (en) 2007-03-30 2012-07-31 Netapp, Inc. System and method for bandwidth optimization in a network storage environment
US20090307302A1 (en) * 2008-06-06 2009-12-10 Snap-On Incorporated System and Method for Providing Data from a Server to a Client

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
R. Fielding等.Hypertext Transfer Protocol-- HTTP/1.1.《Network Working Group Request for Comments: 2616》.1999,全文. *
Squirrel: A decentralized peer-to-peer web cache;Sitaram Iyer等;《Principles of Distributed Computing (PODC 2002)》;ACM;20020724;全文 *

Also Published As

Publication number Publication date
WO2009154869A2 (en) 2009-12-23
US9747340B2 (en) 2017-08-29
US20090319473A1 (en) 2009-12-24
US20180004748A1 (en) 2018-01-04
BRPI0912888B1 (pt) 2021-03-09
RU2010151959A (ru) 2012-06-27
JP5480893B2 (ja) 2014-04-23
EP2308216A4 (en) 2016-03-30
BRPI0912888A2 (pt) 2015-10-20
KR20110027688A (ko) 2011-03-16
CN104615666B (zh) 2018-06-05
KR101570892B1 (ko) 2015-11-20
JP2011525278A (ja) 2011-09-15
EP2308216A2 (en) 2011-04-13
CN102067557A (zh) 2011-05-18
WO2009154869A3 (en) 2010-03-18
RU2475988C2 (ru) 2013-02-20
CN104615666A (zh) 2015-05-13

Similar Documents

Publication Publication Date Title
CN102067557B (zh) 使用本地托管高速缓存和密码散列函数来减少网络通信的方法和系统
JP4982651B2 (ja) 分散型メディアネットワーク及びメタデータサーバを含んだシステム
US7203871B2 (en) Arrangement in a network node for secure storage and retrieval of encoded data distributed among multiple network nodes
EP1579349B1 (en) Method and apparatus for discovering computers for storing fragments of files in a computer network
JP5526137B2 (ja) 選択的データ転送ストレージ
JP5140765B2 (ja) データ転送記憶における測定
US20050165972A1 (en) File input/output control device and method for the same
Ali et al. Blockstack: A new decentralized internet
AU2001233320A1 (en) System for distributed media network and meta data server
KR20120072907A (ko) 오브젝트를 복수 개의 데이터 노드들의 위치에 기반하여 분산 저장하는 분산 저장 시스템 및 그 위치 기반 분산 저장 방법 및 컴퓨터에 의하여 독출 가능한 저장 매체
KR101285281B1 (ko) 자가조직 저장매체의 보안 시스템 및 그 방법
JP2012504284A (ja) データ転送記憶における分解/再構築
Dhaya et al. Cloud computing security protocol analysis with parity-based distributed file system
Hammami et al. A System Architecture for Data Storage in the Cloud
unqi Ye et al. Secure, Dependable and High Performance Cloud Storage
Irvine et al. Autonomous Network

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
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150727

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150727

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.