CN101485174B - 用于有效传送先前存储内容的方法和系统 - Google Patents

用于有效传送先前存储内容的方法和系统 Download PDF

Info

Publication number
CN101485174B
CN101485174B CN2007800248715A CN200780024871A CN101485174B CN 101485174 B CN101485174 B CN 101485174B CN 2007800248715 A CN2007800248715 A CN 2007800248715A CN 200780024871 A CN200780024871 A CN 200780024871A CN 101485174 B CN101485174 B CN 101485174B
Authority
CN
China
Prior art keywords
file
sequence
data sequence
client
length
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
CN2007800248715A
Other languages
English (en)
Other versions
CN101485174A (zh
Inventor
H·博茨
S·德瓦拉简
S·安娜玛莱萨米
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Citrix Systems Inc
Original Assignee
Citrix Systems 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
Application filed by Citrix Systems Inc filed Critical Citrix Systems Inc
Publication of CN101485174A publication Critical patent/CN101485174A/zh
Application granted granted Critical
Publication of CN101485174B publication Critical patent/CN101485174B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/194Calculation of difference between files
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5603Access techniques
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99948Application of database or data structure, e.g. distributed, multimedia, or image
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99955Archiving or backup
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99956File allocation

Abstract

本发明公开了用于减小网络上传送的文件的文件尺寸的系统和方法。本方法包括接收包含数据序列的第一文件;建立具有对应于交迭数据序列的项目的哈希表;接收包括数据序列的第二文件;比较第二文件中的数据序列的每一个和哈希表中的数据序列以确定出现在第一和第二文件二者中的数据序列;并且建立包括来自第二文件的数据序列和出现在第一和第二文件二者中的所述数据序列的位置和长度的表示的第三文件。

Description

用于有效传送先前存储内容的方法和系统
发明领域
本发明涉及互联网和计算机网络内容传送,并且更具体地,涉及用于减小在网络上传送的文件的文件尺寸的系统和方法。
背景技术
在许多网络环境中,带宽是一种紧缺资源。带宽被环境的连接基础结构或者网络上设备的最大传输量或者接收速度所限制。虽然带宽是紧缺的,但是通过减小网络上所传输文件的尺寸可以实现传输时间上的显著的改进。
包括因特网和万维网的网络的另一个共有特征是冗余数据的传输。例如,经常是客户端可以在不同日期请求相同文件来观察已经发生的任何变化。文件数据的大部分是多余的,因为其早已传输给用户。例如,如果文件是新闻的web页面,标题和格式化信息将保持不变。另一个例子,客户端可以在一个小时内多次载入一个文件,例如如果文件为列出更新的体育比分的web页面。在此例中,从一次观看到另一次观看改变的数据仅是比分自身,而队名、队标和格式编排将保持不变。
已经存在多种系统和方法用于利用此冗余来减小所传输文件的尺寸。多个web浏览器存储用户已经浏览的站点的图片,使得如果用户返回这些站点则不需要重新传输。虽然该方法有一定效果,但是其典型的仅限于标准图像文件,并且不能减小包括大量文本、脚本或者格式化信息的页面的文件尺寸。许多web站点使用帧、小应用程序(applet)或者脚本来控制web页面使得仅已经改变的页面的部分将被重新传输。该方法的缺陷是编程站点来使用这些技术通常要求大量的开发时间和资源,并且可以要求重新编码先前存在的文件。因此需要一种方法来影响许多网络传输中发现的冗余以减小所传输文件的尺寸,其可以容易地应用到现存的文件和未来的文件。
发明内容
本发明提供一种有效机制,通过该机制,对于包括先前已经传输的数据的文件,所传输的文件尺寸能够被显著减小。本发明可以使这种减小成为可能而不需要文件特定的、应用特定的或者网络特定的解决方案,并且因此可以不需要大量的开发投入。
在一个方面中,本发明是用于建立对先前存储文件的有效更新的方法。本方法包括接收包含数据序列的第一文件;建立具有对应于交迭数据序列的项目的哈希表;接收包括数据序列的第二文件;比较第二文件中的数据序列的每一个和哈希表中的数据序列以确定出现在第一文件和第二文件二者中的数据序列;存储出现在第一和第二文件二者中的所述数据序列的长度和位置的表示;并且建立包括来自第二文件的数据序列和出现在第一和第二文件二者中的所述数据序列的位置和长度的表示的第三文件。
在另一个方面中,本发明是用于接收对先前存储文件的有效更新的方法。本方法包括接收包含数据序列的第一文件;接收包括数据序列和第一文件中序列的位置和长度的表示的第二文件;并且执行Java脚本函数来建立包括来自第二文件的数据序列和由第二文件指示的第一文件中的序列的第三文件。
在又一方面中,本发明是用于建立对先前存储文件的有效更新的计算机系统。本系统包括收发器,接收第一和第二文件,每一文件包括各自多个数据序列;哈希引擎,其与所述收发器通信并且计算用于第一文件和第二文件中的数据序列的哈希值,其中,至少两个所述序列交迭,并且确定出现在第一和第二文件二者中的数据序列;存储元件,其与所述哈希引擎通信,存储出现在第一和第二文件二者中的所述序列的长度和位置的表示;和处理器,其与所述存储元件通信,建立包括来自第二文件的数据序列和出现在第一和第二文件二者中的所述序列的长度和位置的表示的第三文件。
附图说明
通过参见结合附图的以下描述,本发明的前述和其他目的、方面、特征和优点将会更加明显并更易理解,其中:
图1A和1B是用作客户端-服务器网络中设备的计算或者网络设备的实施例的框图;
图2是描述运行在客户端-服务器网络中的网络装置的实施例的框图;
图3是描述用于建立对先前存储文件的有效更新的方法的一个实施例的流程图;
图4是描述用于建立对先前存储文件的有效更新的方法的另一个实施例的流程图;
图5是描述用于建立和接收对先前存储文件的有效更新的方法的另一个实施例的流程图;
图6是描述用于将来自先前存储的第一文件的第二文件和包括来自第二文件的数据序列以及出现在第一和第二文件二者中的数据序列的位置和长度的表示的第三文件组合的方法的一个实施例的流程图;
图7是描述用于确定文件传输方法的方法的一个实施例的流程图。
具体实施方式
此处描述的服务器和客户端可包括能够处理信息和发送并且接收信息的任何设备,包括但不限于个人计算机、笔记本型计算机、个人数字助理、蜂窝电话、寻呼机、独立计算机服务器、刀片服务器、机架式服务器或者所述任何类型服务器的组合。
图1A和1B描述用做客户端计算设备和服务器计算设备的典型计算机100的框图。如图1A和1B中所示,每个计算机100包括中央处理单元102和主存储单元104。每个计算机100还可以包括其它光学元件,诸如一个或者多个输入/输出设备130a-130b(总的使用附图标记130表示)以及与中央处理单元102通信的高速缓冲存储器140。
中央处理单元102是响应并处理从主存储单元104取出的指令的任意逻辑电路。在很多实施例中,中央处理单元由微处理器单元提供,例如:由位于California,Mountain View的Intel公司生产的微处理器单元;由位于Illinois,Schaumburg的Motorola公司生产的处理器;由位于California,Santa Clara的Transmeta公司生产的Crusoe和Efficeon系列处理器;由位于New York,White Plains的IBM公司生产的系列处理器;或者由位于California,Sunnyvale的AMD公司生产的系列处理器。
主存储单元104可以是能够存储数据并允许微处理器102直接访问任意存储位置的一个或多个存储芯片,例如静态随机存取存储器(SRAM)、突发式SRAM或同步突发SRAM(BSRAM)、动态随机存取存储器(DRAM)、快速页面模式DRAM(FPM DRAM)、增强型DRAM(EDRAM)、扩展数据输出RAM(EDO RAM)、扩展数据输出DRAM(EDODRAM)、突发扩展数据输出DRAM(BEDO DRAM)、增强型DRAM(EDRAM)、同步DRAM(SDRAM)、JEDEC SRAM、PC100 SDRAM、双数据速率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、同步链接DRAM(SLDRAM)、直接型Rambus DRAM(DRDRAM)或者铁电RAM(FRAM)。在图1A所示实施例中,处理器102通过系统总线150(下面有更详细的说明)与主存储器104通信。图1B说明了处理器通过存储器端口与主存储器104直接通信的计算机系统100的实施例。例如,在图1B中,主存储器104可以是DRDRAM。
图1A和图1B说明了主处理器102通过次级总线与高速缓冲存储器140直接通信的实施例,次级总线有时也称为后端总线。在其它实施例中,主处理器102使用系统总线150与高速缓冲存储器140通信。高速缓冲存储器140通常具有比主存储器104更快的响应时间,且通常由SRAM、BSRAM或EDRAM提供。
在图1A所示实施例中,处理器102通过局部系统总线150与各种I/O设备130通信。可以使用各种总线将中央处理单元102连接到I/O设备130,包括VESA VL总线、ISA总线、EISA总线、微通道体系结构(MCA)总线、PCI总线、PCI-X总线、PCI-Express总线或NuBus。对于I/O设备是视频显示器的实施例,处理器102可以使用加速图形端口(AGP)与显示器通信。图1B说明了主处理器102通过超传输(HyperTransport)快速I/O或者InfiniBand直接与I/O设备130b通信的计算机系统100的实施例。图1B还说明了混合了局部总线和直接通信的实施例:处理器102使用局部互连总线与I/O设备130a通信,而直接与I/O设备130b通信。
大量各种I/O设备130可以出现在计算机系统100中。输入设备包括键盘、鼠标、轨迹板、轨迹球、麦克风和画图板。输出设备包括视频显示器、扬声器、喷墨打印机、激光打印机和彩色热升华打印机。I/O设备还可以提供用于计算机系统800的大容量存储,诸如硬盘驱动器、用于接收诸如3.5英寸、5.25英寸盘或ZIP盘的软盘驱动器、CD-ROM驱动器、CD-R/RW驱动器、DVD-ROM驱动器、各种格式的磁带驱动器、USB存储设备,诸如California,Los Alamitos的Twintech Industry公司生产的USB闪烁驱动器系列设备。
在进一步的实施例中,I/O设备130可以是系统总线150和外部通信总线之间的桥接器,外部通信总线诸如USB总线、Apple桌面总线、RS-132串行连接、SCSI总线、FireWire总线、FireWire800总线、以太网总线、AppleTalk总线、千兆位以太网总线、异步传输模式总线、HIPPI总线、超HIPPI总线、SerialPlus总线、SCI/LAMP总线、光纤信道(FibreChannel)总线或串列式小型计算机系统接口总线。
图1A和1B所示类型的通用计算机通常在操作系统的控制下运行,操作系统控制任务的调度和对系统资源的访问。典型的操作系统包括:由位于Washington,Redmond的Microsoft公司生产的MICROSOFT WINDOWS;由位于California,Cupertino的Apple计算机公司生产的MacOS;由位于New York,Armonk的IBM公司生产的OS/2以及由位于Utah,Salt Lake城的Caldera公司发布的免费操作系统Linux,以及其他操作系统。
对于包括移动设备的实施例,该设备可为JAVA驱动的蜂窝电话,例如i55sr、i58sr、i85s或者i88s,这些都是由Illinois,Schaumburg的Motorola公司生产的;由日本,Kyoto的Kyocera生产的6035或7135;或者由韩国首尔的Samsung Electronics有限公司生产的i300或者i330。在包括移动设备的其他实施例中,移动设备可为在Palm0S操作系统控制下运行的个人数字助理(PDA),正如Tungsten W、VII、VIIx、i705,所有这些都由California,Milpitas的palmOne股份有限公司生产。在其他实施例中,客户端113可以是在PocketPC操作系统控制下运行的个人数字助理(PDA),诸如iPAQ4155、iPAQ5555、iPAQ1945、iPAQ2215以及iPAQ4255,所有这些都是由California,Palo Alto的Hewlett-Packard公司生产的;由California,Walnut的ViewSonic制造的ViewSonic V36;或者由New York,New York的Toshiba American股份有限公司生产的Toshiba PocketPC e405。在又一些实施例中,移动设备是组合PDA/电话设备,例如Treo 180、Treo 270、Treo600、Treo 650、Treo 700或者Treo 700w,所有这些都是由California,Milpitas的palmOne股份有限公司生产的。在又一些实施例中,移动设备是在PocketPC操作系统控制下运行的蜂窝电话,例如由Motorola公司生产的MPx200。一个典型的移动设备可包括如以上在图1A和1B中描述的许多元件,包括处理器102和主存储器104。
图2描述客户端-服务器网络中运行的网络装置的实施例的框图。总的来说,多个客户端213a、213b、...213n(总的称之为213)通过网络211连接到网络装置209,网络装置209又连接到包括多个服务器205a、205b、...205n(总的称之为205)的网络211’。客户端213、网络211、服务器205和网络装置209可以包括包含与此处所示的性能、描述、功能、配置基本相似的任何计算设备。
依旧参见图2,更详细地,示出经由网络211’连接到多个服务器205的网络装置209。在所示实施例中,服务器205可以包括能够处理信息和发送并且接收信息的任何设备,包括独立计算机服务器、刀片服务器、机架式服务器或者所述任何类型服务器的组合。服务器还可以包括数据库、文件服务器、web服务器、应用服务器或任意其它类型的服务器。在包括多个服务器的实施例中,服务器可以是相同的服务器,或者可以在种类、型号、类型、内容、性能、适用性或者任何其他方面存在不同。
网络装置209可以执行涉及提供服务给客户端213的任何功能,包括但不限于防火墙服务、SS1池化和加速、TCP池化和加速、数据压缩、连接监控、应用记录、应用加速、应用传送、负载平衡、高速缓存、虚拟化、翻译、重定向、连接池化、代理服务、反向代理服务、验证和会话管理。在一些实施例中,网络装置209可以驻留在与服务器205相同的物理机器上。在一些实施例中,网络装置209可以与服务器205共享处理器、磁盘空间、RAM或者任何其他计算资源。
在所示实施例中,网络装置209连接到网络211、211’。网络211、211’可以包括互联网、局域网、web服务器、文件服务器、路由器、数据库、计算机、服务器和网络装置或者能够发送和接收信息的任何其他计算设备。网络211、211’可以包括通过电缆、红外(IR)端口和无线信号或者连接多个计算设备的任何方式所连接的计算设备。网络211、211’和连接到网络的任何设备可以通过用于在多个计算设备间或者多个计算设备中通信的任何通信协议进行通信,这些协议包括但不限于:SSL、HTML、XML、RDP、ICA、FTP、HTTP、TCP、IP、UDP、IPX、SPX、NetBIOS、NetBEUI、SMB、SMTP、以太网(Ethernet)、ARCNET、光纤分布式数据接口(FDDI)、RS232、IEEE 802.11、IEEE 802.11a、IEEE 802.11b、IEEE 802.11g、以及直接异步连接,或者其中任意组合。网络211、211’可以包括采用了用于在移动设备间通信的任一协议或者多个协议的移动电话网络,所述协议包括AMPS、TDMA、CDMA、GSM、GPRS或者UMTS。网络211、211’可以包括物理相异的网络,或者网络211、211’可以包括相同的网络,并且可以使用任何方式连接。在一些实施例中,经由网络211’通信的设备可以使用与经由网络211通信的设备相比专用的或不同的协议。
在任何上述设备之间的基于TCP/IP的通信的实施例中,可以使用任何基于TCP/IP的协议,包括消息应用编程接口(MAPI)(email)、文件传输协议(FTP)、超文本传输协议(HTTP)、通用因特网文件系统(CIFS)协议(文件传输)、独立计算框架(ICA)协议、远程桌面协议(RDP)、无线应用协议(WAP)、移动IP协议,以及IP上的语音(VoIP)协议。也可以使用任何类型和形式的传输控制协议。诸如修改的传输控制协议,例如事务TCP(T/TCP),带有选择确认的TCP(TCPSACK),带有大窗口的TCP(TCP-LW),例如TCP-Vegas协议的拥塞预测协议,以及TCP电子欺骗协议。在其他实施例中,可以使用任何类型和形式的用户数据报协议(UDP),例如IP上的UDP。
现在参见图3,示出用于建立对先前存储文件的有效更新的方法的一个实施例。尽管图3描述的方法在上下文中由网络装置209和客户端213执行,但是该方法可以由此处所讨论的任何计算设备或者独立或者以任何组合来执行。总的来说,该方法包括:接收包括第一多个数据序列的第一文件(步骤301);传输第一文件到客户端(步骤303);接收包括第二多个数据序列的第二文件(步骤309);建立具有多个项目的哈希表,多个项目的每一个对应于第一多个序列中的相应一个,并且其中所述项目的至少两个对应于交迭的数据序列(步骤311);计算用于第二多个数据序列的哈希值(步骤313);比较第二多个数据序列的每一个和来自具有相同哈希值的第一多个序列的序列来确定两个文件中都出现的数据序列(步骤315);存储在第一文件和第二文件二者中出现的所述数据序列的长度和位置的表示(步骤317);建立包括来自第二文件的数据序列以及在第一和第二文件二者中都出现的所述数据序列的长度和位置的表示的第三文件(步骤319);并且发送第三文件到客户端(步骤321)。
依旧参见图3并且现在更详细地,网络装置209接收包括第一多个数据序列的第一文件(步骤301)。在一些实施例中,可以从网络211’、服务器205、数据库或者其中任意组合来接收第一文件。在一些实施例中,第一文件可以从磁盘或者其他存储介质读取,从高速缓存获取,或者从RAM存取。在其他实施例中,第一文件可以从网络装置209上执行的应用或者过程接收。
第一文件可以包括对应于包含该文件的位或者字节序列的数据序列。第一文件可以包括任何文件协议,包括但不限于,HTML、XML、WML、SVG、其它文档协议、图像文件协议、语音文件协议、视频文件协议和二进制文件协议。在一些实施例中,该文件包括web页面或者web页面的部分。在一些实施例中,文件包括以某频率更新的任何web页面,包括但不限于新闻页面、web应用页面、聊天室、公告板、体育页面、电子邮件页面、目录列表、跟踪页面和web摄影(webcam)页面。接收第一文件之后,网络装置209可以存储或者高速缓存第一文件以准许之后的获取。在一些实施例中,网络装置209可以根据此处所述的任何网络装置功能来修改所述第一文件。
在一些实施例中,接收第一文件(步骤301)之后,网络装置209传输第一文件到客户端(步骤303)。网络装置209可以经过此处所述的任何网络或者协议传输第一文件到此处所述的任何客户端。网络装置209可以根据网络装置执行的任何功能来修改第一文件,包括压缩、加速和加密。尽管图3描述的网络装置209在步骤301之后立即传输第一文件,在其他实施例中,所述传输可以在网络装置209接收第一文件(步骤301)之后发生的任何步骤(步骤305-321)之后发生。
在一些实施例中,网络装置209可以存储所述传输的记录。所述记录可以存储在任何存储元件中,包括数据库或者高速缓存。在一个实施例中,网络装置209可以存取所述高速缓存来确定给定文件是否先前已经传输到客户端。在一个实施例中,可以设置所述记录以在设定时间之后终止。例如,如果网络装置209具有指示在每一天结束时给定客户端213删除来自其高速缓存的所有文件的信息,则网络装置可以设置传输到客户端213的文件的所有记录在每一天结束时终止。
在所示实施例中,网络装置209传输第一文件到客户端213(步骤303)之后,客户端可以随后接收第一文件(步骤305),显示第一文件(步骤307),并且存储第一文件(步骤308)。客户端可以根据此处所述任何实施例来执行这些步骤。
在所示实施例中,网络装置209传输第一文件到客户端213(步骤303)之后,网络装置接收包括第二多个数据序列的第二文件(步骤309)。在其他实施例中,网络装置209可以在传输第一文件到客户端(步骤303)之前或期间接收第二文件(步骤309)。第二文件可以包括此处所述的任何的文件类型、协议、web页面和web页面的部分。接收到第二文件之后,网络装置209可以存储或者高速缓存第二文件以准许随后的获取。在一些实施例中,网络装置209可以根据此处所述的任何网络装置功能来修改所述第二文件。
在接收包括第二多个数据序列的第二文件之后(步骤309),网络装置可以建立具有多个项目的哈希表,多个项目中的每一个对应于第一多个序列中的相应一个,并且其中所述项目的至少两个对应于交迭的数据序列(步骤311)。所述哈希表可以根据任意已知的哈希表算法来建立,所述哈希表算法提供功能性以作为项目存储数据序列或者对数据序列的引用并且随后有效搜索所述表的匹配给定序列的项目。在其他实施例中,网络装置可以在接收第二文件(步骤309)之前或者期间建立哈希表(步骤311)。
在一些实施例中,哈希表中的项目可以对应于来自包括字节序列的第一文件的数据序列。字节序列可以是任意长度。在一个实施例中,序列是四字节序列。
在所示实施例中,至少两个哈希表项目对应于交迭的数据序列。交迭的序列可以具有共同的任意数量的字节。例如,如果文件包括序列“abcdefghijklmnop”,四字节序列交迭的例子包括“cdef”和“defg”,还有“cdef”和“fghi”。在一个实施例中,哈希表项目对应于连续的交迭字节序列。例如,如果文件包括序列“abcdefg”,包括至少两个连续交迭四字节序列的哈希表可以包括对应于序列“abcd”“bcde”“cdef”和“defg”的项目。
在一些实施例中,哈希表项目在给定时刻可以仅对应于来自第一文件的给定部分或者“窗口”的数据序列。如果整个文件被立刻哈希的话,这允许该哈希表的尺寸小于该哈希表的可能的尺寸。在一些实施例中,仅哈希第一文件的第一个X个字节,并且随后根据一些条件的发生,从表中移除Y个项,随后在表中加入Y个项。在一个实施例中,使用64K字节的窗口尺寸,并且根据特定条件的发生,窗口以32K字节移动。在此实施例中,哈希来自第一文件的第一个64K字节的序列,并且随后根据特定条件的发生,移除对应于来自文件的第一个32K字节的序列的项目,并且加入对应于来自文件的下一个32K字节的序列的项目。
移动哈希窗口所基于的条件可以是改进哈希算法的执行时间、性能或者压缩的任何条件。在一个实施例中,在窗口的给定一半中已经发现超过85%的序列匹配时则移动窗口。在另一个实施例中,当给定比例的第二文件已经和已有哈希项目比较时则移动窗口。在一个实施例中,对于已经与第一文件相比的第二文件的适当部分,当哈希值已经被计算并且被比较时则移动窗口。例如,如果第一文件为100K字节,第二文件是80K字节,当第二文件的80/100*64K字节已经和哈希表中的序列相比较时可以移动哈希窗口。
网络装置209建立哈希表之后(步骤311),网络装置209可以随后计算所述第二多个数据序列的哈希值(步骤313)。根据用于计算第一多个序列的哈希值的相同的方法来计算所述哈希值。网络装置209可以以与其从第一文件选择数据序列相同的方式来从第二文件选择数据序列。例如,如果网络装置209建立的哈希表项目对应于来自第一文件的连续交迭的四字节序列,网络装置可以选择来计算来自第二文件的连续交迭的四字节序列的哈希值。
在计算第二多个数据序列的一些或者全部的哈希值(步骤313)之后,网络装置209可以比较第二多个数据序列的每一个与来自具有相同哈希值的第一多个序列的序列以确定在两个文件中都出现的数据序列(步骤315)。网络装置可以根据当前可用的任何哈希算法执行该步骤。所述比较可以包括比较匹配的序列的随后字节以确定更长的匹配。例如,第一文件可以包括序列“abcdefghijklmno”并且第二文件可以包括序列“zyxwvutcdefghituv”。如果在连续四字节序列上作哈希,网络装置209可以确定序列“cdef”在两个文件中都出现。网络装置209随后比较匹配序列的随后字节以确定序列“cdefghi”出现于两个文件二者中。因此,在一些实施例中,确定出现于两个文件二者中的序列的长度可以随计算哈希值的序列的长度改变。在一些实施例中,可以设置匹配序列上的最小和最大长度。
确定出现于两个文件中的数据序列(步骤315)之后,网络装置209可以存储出现在第一和第二文件二者中的所述数据序列的长度和位置的表示(步骤317)。网络装置209可以在任何存储介质中存储该表示,诸如高速缓存、RAM、磁盘或者磁带。在一些实施例中,网络装置209可以在网络装置209自身上存储该表示。在其他实施例中,网络装置209可以在另一个计算设备100上存储该表示。在一些实施例中,可以存储数据序列的长度和位置,而网络装置209正比较第二多个数据序列的每一个和来自于具有相同哈希值的第一多个序列的序列(步骤313)。在其他实施例中,对于要存储的给定序列的长度和位置,可以要求最小长度。在一个实施例中,最小长度可以指定为四字节。
在两个文件中都出现的所述序列的长度和位置的表示可以包括识别序列的长度和位置的任何表示。在一些实施例中,所述序列的位置被存储为文件中的绝对位置。在其他实施例中,所述序列的位置被存储为所述第一文件中相对于一个给定参考指针的位置。在一个实施例中,所述参考指针可以被固定,在另一个实施例中,所述参考指针可以根据设置的规则移动。
在一个实施例中,参考指针可以被初始设置指向第一文件的开始。指针随后可以在每次发现存在多于5字节的匹配序列后增加。指针可以被增加到指向第一文件中匹配序列的最后一个字节加一。在此实施例中,在两个文件中都出现的所述序列的位置可以被存储为从参考指针的位置起正向或者负向的给定数量字节。
在一些实施例中,所匹配序列的长度和位置被存储为固定长度整数。在一个实施例中,所匹配序列的长度被存储为1字节整数,其中整数表示介于4到1027字节的长度。在此实施例中,所匹配序列的字节长度被限制为4的倍数。在其他实施例中,任何其他位或者字节长度整数可以被用于存储所述序列长度。在又一些实施例中,任何其他限制可以被施加到所匹配序列的字节长度,包括最小和最大长度以及限制字节长度到给定倍数。在又一些实施例中,所匹配序列的长度可以存储为可变长度整数。在一些实施例中,所匹配序列的位置可以被存储为可变长度整数。在其他实施例中,所匹配序列的位置可以被存储为给定字节或者位长度的固定长度整数。
网络装置209存储出现在第一和第二文件二者中的所述数据序列的长度和位置的表示(步骤317)之后,网络装置209可以建立包括来自第二文件的数据序列和在第一和第二文件中都出现的数据序列的位置和长度的表示的第三文件。所述建立(步骤317)可以发生在所匹配序列的所有长度和位置都存储之后,或者所述建立(317)可以与发现所匹配序列同时发生。第三文件可以包含此处所述任何格式的长度和位置的表示。在一些实施例中,特殊的字节或者位序列可以位于共享序列的长度和位置之前。
例如,如果第一文件包括字符串“abcdefghijklmnop”,第二文件包括字符串“xxxxxxxdefghijkxxxxxxcdefxxx”,第三文件可以包括序列“xxxxxxx3,8xxxxxx2,4xxx”。在此例中,3、8用于指明一个表示,以指示从第一文件的字节3开始并且8字节长的序列(在一些实施例中该表示可以是两个固定长度的二进制整数)。同样地,2、4指明一个表示,以指示从第一文件的字节2开始并且4字节长的序列。
作为另一个例子,如果第一文件包括包括字符串“abcdefghijklmnop”,第二文件包括字符串“xxxxxxxdefghijkxxxxxxcdefxxx”,第三文件可以包括序列“xxxxxxx3,8xxxxxx-9,4xxx”。在此例中,共享序列的位置被存储为与参考指针的相对距离,根据上述方法递增。在此例中,网络装置209以与上例相同方式指示第一所匹配序列,因为参考指针初始指向第一文件的开始。参考指针随后增加到指向第一文件中匹配序列的最后一个字节加一的位置。因此,第二匹配序列被指示为-9、4,其指示第二所匹配序列发生在紧随第一文件中之前所匹配序列的字节之前的9个字节。
在一个实施例中,第三文件可以以字节协议编码,诸如ASCII。在一个实施例中,二进制数据的每一组7个字节可以被编码为8个字节的ASCII字符。这种转化可以使用任何公知的转化方法实现。ASCII字符可以对应于任何现有的字符集定义,包括ISO-8859-1。在一些实施例中,第三文件可以包括HTML文件。在一个实施例中,第三文件可以包括Java脚本变量,该Java脚本变量包括来自第二文件的所述数据序列和出现在第一和第二文件二者中的所述数据序列的位置和长度的表示。在一个实施例中,第三文件还可以包括含有用于通过处理所述Java脚本变量来组合所述第二文件的功能的Java脚本函数。在其他实施例中,第三文件可以包括对含有所述功能的Java脚本函数的引用。
以下HTML代码示出可以被传输到客户端的第三文件的一个例子。
<HTML>
    <HEAD>
       <SCRIPT>
           var updateFile=″~~~~~"
       <SCRIPT>
    </HEAD>
  <BOD Y onload=createPage(updateFile)>
  </BODY>
</HTML>
在上述例子中,HTML文件包括命名为“updateFile”的Java脚本变量。该变量可以包括来自第二文件的数据序列和出现在第一和第二文件二者中的所述数据序列的长度和位置的表示。上述例子还包括对命名为“createPage”的Java脚本函数的调用。所述函数或者可以包括在HTML文件中或者存储在客户端上,其可以包括用于使用来自Java脚本变量“updateFile”的数据来组合所述第二文件的功能。在上述例子中,标准HTML浏览器可以在载入HTML页面时执行“createPage”函数。“createPage”函数还可以包括用于一旦第二文件被组合则改变HTML页面来显示所述第二文件的功能。
建立包括来自第二文件的数据序列和出现在第一和第二文件二者中的所述数据序列的位置和长度的表示的第三文件(步骤319)之后,并且网络装置209可以传输第三文件到客户端(步骤321)。所述传输可以通过此处讨论的任何的网络和方法发生。网络装置209可以根据网络装置209所执行的包括压缩、加速和加密的任何功能来修改第三文件。
传输第三文件到客户端(步骤321)之后,客户端213可以接收第三文件(步骤323),执行Java脚本函数以重新建立包括来自第二文件的数据序列和第三文件所指示的第一文件中的序列的第二文件(步骤325);并且显示第二文件(步骤327)。客户端213可以根据此处描述的任何实施例执行这些步骤。
现在参见图4,示出描述用于建立对先前存储文件的有效更新的方法的另一个实施例的流程图。总的来说,该方法包括使用对应于第一文件中的交迭数据序列的项目建立哈希表(步骤311);设置参考指针指向所述第一文件的开始(步骤401);计算用于第二文件的数据序列的哈希值(步骤313);并且确定在两个文件二者中是否都出现所述序列(步骤315)。该方法随后还可以包括或者移动到第二文件中的下一序列(步骤409)或者确定匹配序列的总长度(步骤403)并且确定所述长度是否超过最小阈值(步骤405)。该方法还可以包括或者移到第二文件中的下一序列(步骤409)或者存储相对于参考指针的匹配序列的长度和位置(步骤317)。该方法还可以包括设置参考指针指向第一文件中的匹配序列的最后一个字节加一(步骤407)并且随后移到第二文件中的下一序列(步骤409)。在所述实施例中,可以由网络装置209执行该方法。
依旧参见图4,现在更详细地,网络装置209使用对应于第一文件中的交迭数据序列的项目建立哈希表(步骤311)。可以根据用于建立此处所述哈希表的任何方法来执行该步骤。
在使用对应于第一文件中的交迭数据序列的项目建立哈希表(步骤311)之后,网络装置209可以设置参考指针指向所述第一文件的开始(步骤401)。该参考指针可以包括任何类型的指针。
设置参考指针指向第一文件的开始(步骤401)之后,网络装置209可以计算用于第二文件的数据序列的哈希值(步骤313)。可以根据用于计算此处所述哈希值的任何方法来执行该步骤。
计算用于第二文件的数据序列的哈希值(步骤313)之后,网络装置209可以确定在两个文件中是否都出现所述序列(步骤315)。可以根据此处所述的任何方法来执行该步骤。
如果不是在两个文件中都出现一个序列,网络装置209可以移动到第二文件的下一个序列(409)。所述下一序列可以包括发生在第二文件中给定序列之后的任何序列。在一个实施例中,下一个序列可以是前一序列之后开始一字节的序列。在另一个实施例中,下一序列可以是前一序列之后开始任何其他数量个字节的序列。在一些实施例中,移动到第二文件的下一个序列(步骤409)可以伴以上述的移动哈希窗。如果不存在下一个序列,该方法可以终止。
如果在两个序列中都出现一个序列,网络装置209可以通过比较所匹配序列的随后的字节来确定匹配序列的总长度(步骤403)。根据此处所述的任何方法可以确定总长度。
网络装置209随后可以确定匹配序列的总长度是否超过一个给定阈值(步骤405)。可以根据此处所述的任何方法做出该确定。如果匹配序列的长度没有超过最小阈值,网络装置209可以移动到第二文件的下一个序列。
如果该长度超过最小阈值,网络装置209可以随后根据此处所述的任何方法存储匹配序列的长度和相对于给定参考指针的位置。网络装置209可以随后根据此处所述任何方法增加参考指针(步骤407)。网络装置209随后可以移动到第二文件的下一个序列(步骤409)。
现在参见图5,示出用于有效接收对先前存储文件的更新的方法的一个实施例。总的来说,所述方法包括:接收组合函数(步骤503);接收包括数据序列的第一文件(步骤305);显示所述第一文件,存储所述第一文件(步骤308);接收包括数据序列和在第一文件中的序列的位置和长度的表示的第三文件(步骤323);执行Java脚本函数以建立包括来自第二文件的数据序列和由第三文件指示的第一文件中的序列的第二文件(步骤325);并且显示所述第二文件(步骤327)。
依旧参见图5,现在更详细地,网络装置209可以传输组合函数。所述组合函数可以包括用于使用包括来自第二文件的数据序列和出现在第一和第二文件二者中的所述数据序列的位置和长度的表示的文件来组合第二文件的任何计算机可读程序装置。所述组合函数可以包括任何编程或者脚本语言,包括Java脚本或者Java。在一些实施例中,可以根据此处所述的任何其他网络装置函数来传输该组合函数。在一个实施例中,该组合函数可以包括在提供其它客户端侧加速功能的程序中。
在所示实施例中,网络装置209传输组合函数(步骤501)之后,客户端213接收组合函数(步骤503)。客户端可以通过此处所述的任何网络、协议或者计算设备来接收所述组合函数。在一些实施例中,客户端213从网络装置209接收组合函数。在一个实施例中,组合函数可以被包括作为客户端侧加速程序的部分。在其他实施例中,组合函数可以通过发送软件的任何方法被安装在客户端213上,该方面包括通过磁盘或者其他便携存储设备。
在所示实施例中,接收组合函数(步骤503)之后,客户端213接收包括数据序列的第一文件。在所示实施例中,客户端213从网络装置209接收第一文件。在其他实施例中,客户端213可以从任何计算设备接收第一文件。所述文件可以包括此处所述任何文件类型或者协议。
客户端213接收包括数据序列的第一文件(步骤305)之后,客户端213可以显示所述第一文件(步骤307)。可以以任何对于给定文件合适的方式显示该文件。在一些实施例中,文件可以被显示在web浏览器中。在其他实施例中,文件可以被显示在商业应用中,诸如字处理器或者电子数据表。在又一些实施例中,文件可以包括独立应用并且被照此显示。在一些实施例中,文件可以对应于运行在虚拟计算环境中的应用。在一个实施例中,文件可以对应于远程执行应用。在其他实施例中,文件可以对应于流应用。
客户端213显示所述第一文件(步骤307)之后,客户端213可以存储所述第一文件(步骤308)。客户端213可以存储第一文件到任何存储元件中,包括存储在高速缓存、磁盘、闪烁存储器或者RAM中。在一些实施例中,客户端213可以压缩文件用于存储。在其他实施例中,客户端213可以仅存储文件的部分。在一些实施例中,客户端213可以在显示所述第一文件(步骤307)之前或者期间来存储所述第一文件(步骤308)。
客户端213存储所述第一文件(步骤308)之后,所述客户端213可以接收第三文件(步骤323)。在所示实施例中,客户端213从网络装置209接收第三文件。在其他实施例中,客户端213可以从任何计算设备接收第三文件。所述文件可以包括此处所述的任何文件类型或者协议。在一些实施例中,该文件可以包括ASCII字符。在其他实施例中,该文件可以包括二进制数据。
客户端213接收所述第三文件(步骤323)之后,客户端可以执行Java脚本函数来组合第二文件(步骤325)。在一些实施例中,Java脚本函数可以被包括在所述第三文件中。在其他实施例中,该Java脚本函数可以已经存储在客户端213上。在一些实施例中,Java脚本函数可以在客户端侧加速程序中提供。在一些实施例中,第三文件可以包括到客户端213可以下载Java脚本函数的位置的链接。
Java脚本函数可以执行此处所述的任何技术或者任何技术的逆操作来组合所述第二文件。在一些实施例中,Java脚本函数可以包括在步骤503接收的组合函数。在其他实施例中,Java脚本函数可以包括对所述组合函数的引用。在又一些实施例中,所述Java脚本函数可以包括用于下载所述组合函数的方法。
执行Java脚本函数以组合所述第二文件(步骤325)之后,所述客户端可以显示所述第二文件(步骤327)。该文件可以根据此处所述用于显示文件的任何方法来显示。
现在参见图6,示出用于将来自先前存储的第一文件的第二文件和包括来自第二文件的数据序列以及出现在第一和第二文件二者中的数据序列的位置和长度的表示的第三文件组合的方法的一个实施例。总的来说,该方法包括读取来自第三文件的数据集(步骤601)并且确定所述数据集是否对应于出现在第一和第二文件二者中的所述数据序列的位置和长度(步骤603)。所述方法还可以包括在所述第一文件中的指定位置读取指定长度的字节(步骤605);将所述字节加到第二文件(步骤607);将参考指针增加到指向从第一文件读取的字节的最后一个字节加一的位置(步骤609);并且移到来自所述第三文件的下一数据集(步骤613)。在一个实施例中,所述方法可以由客户端213执行。在另一个实施例中,所述方法可以由图5描述的组合函数来执行。
依旧参见图6,现在更详细地,客户端213可以设置参考指针指向第一文件的开始。这可以根据此处所述的任何方法来执行。
设置参考指针(步骤601)之后,客户端213可以从第三文件读取数据集(步骤602)。所述数据集可以包括所述第三文件的任何数量的位或者字节。在一个实施例中,所述数据集随后存储在存储元件或者高速缓存中。
读取所述数据集(步骤602)之后,客户端213可以确定所述数据集是否对应于在第一文件中的序列的长度和位置。在一个实施例中,客户端可以确定所述数据集是否包括特殊字符或者位序列。
如果所述数据集不对应于在第一文件中的序列的长度和位置,客户端213可以将所述数据集加到第二文件(步骤611)。所述加可包括添加所述数据集到第二文件的末尾。客户端213可以随后移动到来自第三文件的下一数据集(步骤613)。
如果所述数据集对应于在第一文件中的序列的长度和位置,客户端213随后可以在第一文件中的指定位置读取指定长度的字节(步骤605)。客户端可以通过识别此处描述的长度和位置的任何表示来确定所指定的长度和位置。在一个实施例中,客户端可以随后存储所述指定字节到存储元件或者高速缓存中。
在第一文件中的指定位置读取指定长度的字节(步骤605)之后,客户端213随后可以将所述字节加到所述第二文件(步骤607)。所述加可以包括添加所述字节到第二文件的末尾。
客户端213可以随后将参考指针增加到指向从第一文件读取的字节的最后一个字节加一的位置(步骤609)。这可以根据此处所述的任何方法来执行。客户端213随后可以移到来自第三文件的下一数据集(步骤613)。
现在参见图7,示出用于确定文件传输方法的方法的一个实施例。所述方法可以由上述的任何机器或者机器的组合来执行,尽管以下所述的实施例该方法由网络装置209执行。总的来说,该方法包括接收来自客户端213对资源的请求(步骤701);发送对所述客户端的性能的请求(步骤703);接收传达所述客户端性能的信息(步骤705);并且确定文件传输方法(步骤707)。
依旧参见图7,现在更详细地,网络装置209接收来自客户端的请求(步骤701)。在一个实施例中,从客户端接收请求(步骤701)包括直接从客户端接收请求。在其他实施例中,来自客户端213的请求可以从上述的任何网络、连接和装置接收。所述请求可以包括前述的任何协议。在一些实施例中,该请求可以包括完全如从客户端213传输的请求。在其他实施例中,该请求可以包括对来自客户端213的初始请求的修改。所述修改可以包括在提供上述任何网络装置服务过程中的修改,对内容、格式、协议、寻址、标题或请求的其它部分的修改,来自于客户端213的请求或者是新请求。请求可以包括由客户端213直接请求的资源,并且可以包括在执行用于客户端213的任何服务过程中所请求的资源。
从客户端接收请求(步骤701)之后,网络装置209发送对所述客户端性能的请求(步骤703)。在一个实施例中,所述请求可以被发送到客户端213。在另一个实施例中,请求可以被发送到收集代理,如美国专利申请序列号10/956832“A METHOD AND APPARATUS FOR ASSIGNING ACCESS CONTROLLEVELS IN PROVIDING ACCESS TO NETWORKED CONTENT FILES”中所述,其内容通过引用明确引入。所述收集代理可以驻留在与发送该请求的网络装置同一个物理机器上,或者它们可以驻留在不同的物理机器上。所述请求也可以被发送到文件、高速缓存、数据库、服务器、执行应用或者关于客户端213的任何其他信息源。
发送对客户端性能的请求(步骤703)之后,网络装置209接收传达所述客户端性能的信息(步骤705)。所述信息可以从客户端213、收集代理、文件、高速缓存、数据库、服务器、执行应用或者关于客户端213的任何其他信息源中接收。所述信息可以包括但不限于客户端节点213的机器ID、操作系统类型、操作系统的现存补丁、所安装网卡的MAC地址、客户端设备上的数字水印、活动目录中的成员、病毒扫描器的存在、个人防火墙的存在、HTTP头、浏览器类型、设备类型、网络连接信息、授权证书和以上优选讨论的任何其他性能。在一些实施例中,网络装置可以存储或者高速缓存所述信息用于之后的获取。
接收传达所述客户端性能的信息(步骤705)之后,网络装置可以确定对应于所述客户端213的文件传输方法(步骤707)。可以基于任何所接收到的任一信息做出所述确定。
在一些实施例中,响应在步骤705接收的信息,网络装置209可以确定根据图3中所述用于建立对先前存储文件的有效更新的方法来传输文件。在一个实施例中,响应对应于客户端213存储器尺寸、连接速度、连接带宽、处理器速度或者存储文件的之前存在的信息,做出该确定。
在一些实施例中,网络装置209可以响应步骤705接收的信息来确定以传输组合函数到客户端213。例如,如果网络209接收到客户端213不具有组合函数的信息以及指示客户端213有能力执行组合函数的信息,网络装置可以传输组合函数到客户端213。在一些实施例中,所述组合函数可以与任何其他文件一起传输,包括请求的内容文件、或者根据网络装置209的函数传输的其他文件。在一些实施例中,网络装置可具有多个组合函数。例如,网络装置209可以具有优选用于不同计算环境、操作系统和硬件配置的多个组合函数。网络装置随后可以响应步骤705接收到的信息来确定哪个组合函数传输到客户端213。
虽然本发明参考具体优选实施例来详细示出和说明,本领域内的普通技术人员应该理解在不脱离由所附权利要求书限定的本发明的精神和范围的情况下,可以对本发明在形式和细节上作出多种改变。

Claims (26)

1.一种用于建立对先前存储文件的有效更新的方法,所述方法包括:
(a)接收包含第一多个数据序列的第一文件;
(b)接收包括第二多个数据序列的第二文件;
(c)建立具有多个项目的哈希表,多个项目的每一个对应于第一多个序列的相应一个,并且其中至少两个所述项目对应于交迭数据序列;
(d)计算所述第二多个数据序列的哈希值;
(e)比较所述第二多个数据序列的每一个和来自于第一多个序列中的具有相同哈希值的序列以确定在两个文件中都出现的数据序列;
(f)存储出现在第一和第二文件二者中的所述数据序列的长度和位置的表示;并且
(g)建立包括来自第二文件的数据序列和出现在第一和第二文件二者中的所述数据序列的位置和长度的表示的第三文件。
2.权利要求1所述的方法,其中,步骤(c)包括建立具有对应于所述第一文件中连续、交迭字节序列的项目的哈希表。
3.权利要求1所述的方法,其中,步骤(c)包括建立具有对应于所述第一文件中连续、交迭的四字节长度的序列的项目的哈希表。
4.权利要求1所述的方法,其中,步骤(c)包括建立具有对应于包括所述第一文件的给定N字节的窗口中的数据序列的项目的哈希表。
5.权利要求1所述的方法,其中,步骤(d)包括:
(i)计算所述第二文件中的给定数据序列的哈希值;
(ii)对于对应于所述哈希值的项目,检查所述哈希表;
(iii)比较来自所述第二文件的所述数据序列与所述第一文件中对应于所述哈希表项目的数据序列;并且
(iv)比较来自所述第二文件的所述序列之后的字节和第一文件中所述序列之后的字节以确定出现在第一和第二文件二者中的序列的总长度。
6.权利要求1所述的方法,其中,步骤(g)包括建立包括来自所述第二文件的数据序列和出现在第一和第二文件二者中的序列的位置和长度的表示的第三文件,其中所述位置被表示为与所述第一文件中的位置的相对距离。
7.权利要求1所述的方法,其中,步骤(g)包括建立包括来自所述第二文件的数据序列和出现在第一和第二文件二者中的序列的位置和长度的表示的第三文件,其中使用字节编码协议将所述第三文件转换为字节序列。
8.权利要求1所述的方法,还包括步骤:
(h)将所述第三文件传输到客户端。
9.权利要求8所述的方法,其中步骤(h)包括经HTTP传输所述第三文件到客户端。
10.权利要求8所述的方法,其中步骤(h)包括经Java脚本变量传输所述第三文件到客户端。
11.权利要求8所述的方法,其中步骤(h)包括传输所述第三文件到客户端用于重新组合到所述第二文件中。
12.一种用于有效接收对先前存储文件的更新的方法,所述方法包括:
(a)接收包含数据序列的第一文件;
(b)接收包括来自第二文件的数据序列和在第一文件和第二文件中都出现的序列的位置和长度的表示的第三文件;并且
(c)执行Java脚本函数来重新建立包括来自第二文件的数据序列和由第三文件指示的第一文件中的序列的第二文件。
13.权利要求12所述的方法,其中,所述第三文件包括Java脚本变量,所述Java脚本变量包括数据序列和在所述第一文件和第二文件中都出现的序列的位置和长度的表示。
14.权利要求12所述的方法,其中,步骤(b)包括接收包括来自第二文件的数据序列和在所述第一文件和第二文件中都出现的序列的位置和长度的表示的第三文件,其中所述位置被表示为与所述第一文件中的位置的相对距离。
15.权利要求14所述的方法,其中,步骤(c)包括:
(i)维护初始指向所述第一文件的开始的参考指针;
(ii)基于所接收的指示第一文件中的序列与参考指针的距离的信息,识别来自所述第一文件的序列;并且
(iii)设置所述参考指针指向所述第一文件中序列的最后一个字节加一。
16.一种用于建立对先前存储文件的有效更新的计算机系统,所述系统包括:
收发器,其接收第一和第二文件,每一文件包括各自多个数据序列;
哈希引擎,其与所述收发器通信并且计算第一文件和第二文件中的数据序列的哈希值,其中,第一文件中的至少两个所述序列交迭,并且确定出现在第一和第二文件二者中的数据序列;
存储元件,其与所述哈希引擎通信,并且存储出现在第一和第二文件二者中的所述序列的长度和位置的表示;和
处理器,其与所述存储元件通信,并且建立包括来自所述第二文件的数据序列和出现在两个文件中的所述序列的长度和位置的表示的第三文件。
17.权利要求16所述的计算机系统,其中,所述哈希引擎计算所述第一文件中连续、交迭字节序列的哈希值。
18.权利要求16所述的计算机系统,其中,所述哈希引擎计算所述第一文件中连续、交迭的四字节长度的序列的哈希值。
19.权利要求16所述的计算机系统,其中,所述哈希引擎计算包括所述第一文件的给定N字节的窗口中的数据序列的哈希值。
20.权利要求16所述的计算机系统,其中,所述哈希引擎比较出现在第一和第二文件二者中的序列之后的字节以确定出现在第一和第二文件二者中的数据序列的总长度。
21.权利要求16所述的计算机系统,其中,所述处理器建立包括来自所述第二文件的数据序列和在所述第一文件和第二文件中都出现的数据序列的位置和长度的表示的第三文件,其中所述位置被表示为与所述第一文件的参考指针的相对距离。
22.权利要求16所述的计算机系统,其中,所述处理器将所建立的第三文件转换为字节流。
23.权利要求16所述的计算机系统,其中,所述计算机系统还包括传输器,用于将所述第三文件传输到客户端。
24.权利要求23所述的计算机系统,其中,所述传输器经HTTP传输所述第三文件到客户端。
25.权利要求24所述的计算机系统,其中,所述传输器经Java脚本变量传输所述第三文件到客户端。
26.权利要求24所述的计算机系统,其中,所述传输器传输所述第三文件到客户端用于重新组合到所述第二文件中。
CN2007800248715A 2006-06-30 2007-06-29 用于有效传送先前存储内容的方法和系统 Active CN101485174B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/428,058 US7756826B2 (en) 2006-06-30 2006-06-30 Method and systems for efficient delivery of previously stored content
US11/428,058 2006-06-30
PCT/US2007/072490 WO2008005840A2 (en) 2006-06-30 2007-06-29 Method and systems for efficient delivery of previously stored content

Publications (2)

Publication Number Publication Date
CN101485174A CN101485174A (zh) 2009-07-15
CN101485174B true CN101485174B (zh) 2012-08-22

Family

ID=38878037

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007800248715A Active CN101485174B (zh) 2006-06-30 2007-06-29 用于有效传送先前存储内容的方法和系统

Country Status (11)

Country Link
US (2) US7756826B2 (zh)
EP (1) EP2044755B1 (zh)
JP (1) JP2009543227A (zh)
KR (1) KR20090034321A (zh)
CN (1) CN101485174B (zh)
AU (1) AU2007269315B2 (zh)
BR (1) BRPI0713874A2 (zh)
CA (1) CA2655020A1 (zh)
HK (1) HK1128840A1 (zh)
IL (1) IL196034A0 (zh)
WO (1) WO2008005840A2 (zh)

Families Citing this family (166)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9275052B2 (en) * 2005-01-19 2016-03-01 Amazon Technologies, Inc. Providing annotations of a digital work
US9672533B1 (en) 2006-09-29 2017-06-06 Amazon Technologies, Inc. Acquisition of an item based on a catalog presentation of items
US8725565B1 (en) 2006-09-29 2014-05-13 Amazon Technologies, Inc. Expedited acquisition of a digital item following a sample presentation of the item
US7865817B2 (en) 2006-12-29 2011-01-04 Amazon Technologies, Inc. Invariant referencing in digital works
US7716224B2 (en) 2007-03-29 2010-05-11 Amazon Technologies, Inc. Search and indexing on a user device
US9665529B1 (en) 2007-03-29 2017-05-30 Amazon Technologies, Inc. Relative progress and event indicators
US8990215B1 (en) 2007-05-21 2015-03-24 Amazon Technologies, Inc. Obtaining and verifying search indices
US20080307233A1 (en) * 2007-06-09 2008-12-11 Bank Of America Corporation Encoded Data Security Mechanism
JP2009027400A (ja) * 2007-07-19 2009-02-05 Alaxala Networks Corp 過大フロー検出装置、過大フロー検出回路、端末装置及びネットワークノード
US8683458B2 (en) * 2007-11-30 2014-03-25 Red Hat, Inc. Automatic full install upgrade of a network appliance
US20090287986A1 (en) * 2008-05-14 2009-11-19 Ab Initio Software Corporation Managing storage of individually accessible data units
US8418164B2 (en) * 2008-05-29 2013-04-09 Red Hat, Inc. Image install of a network appliance
WO2010080533A2 (en) * 2008-12-18 2010-07-15 Bizanga Ltd. Multipurpose storage system based upon a distributed hashing mechanism with transactional support and failover capability
US9087032B1 (en) 2009-01-26 2015-07-21 Amazon Technologies, Inc. Aggregation of highlights
US8832584B1 (en) 2009-03-31 2014-09-09 Amazon Technologies, Inc. Questions on highlighted passages
US8692763B1 (en) 2009-09-28 2014-04-08 John T. Kim Last screen rendering for electronic book reader
US9054913B1 (en) 2009-11-30 2015-06-09 Dell Software Inc. Network protocol proxy
US8438244B2 (en) 2010-04-19 2013-05-07 Microsoft Corporation Bandwidth-proportioned datacenters
US8996611B2 (en) 2011-01-31 2015-03-31 Microsoft Technology Licensing, Llc Parallel serialization of request processing
US9813529B2 (en) 2011-04-28 2017-11-07 Microsoft Technology Licensing, Llc Effective circuits in packet-switched networks
WO2011133443A1 (en) * 2010-04-19 2011-10-27 Greenbytes, Inc. A method for optimizing the memory usage and performance of data deduplication storage systems
US8533299B2 (en) * 2010-04-19 2013-09-10 Microsoft Corporation Locator table and client library for datacenters
US8447833B2 (en) 2010-04-19 2013-05-21 Microsoft Corporation Reading and writing during cluster growth phase
US9170892B2 (en) 2010-04-19 2015-10-27 Microsoft Technology Licensing, Llc Server failure recovery
US9454441B2 (en) * 2010-04-19 2016-09-27 Microsoft Technology Licensing, Llc Data layout for recovery and durability
US8745064B2 (en) 2010-09-13 2014-06-03 Lumension Security, Inc. Systems and methods for operating a saturated hash table
US9495322B1 (en) 2010-09-21 2016-11-15 Amazon Technologies, Inc. Cover display
US8843502B2 (en) 2011-06-24 2014-09-23 Microsoft Corporation Sorting a dataset of incrementally received data
US9158741B1 (en) 2011-10-28 2015-10-13 Amazon Technologies, Inc. Indicators for navigating digital works
US9736121B2 (en) 2012-07-16 2017-08-15 Owl Cyber Defense Solutions, Llc File manifest filter for unidirectional transfer of files
US9778856B2 (en) 2012-08-30 2017-10-03 Microsoft Technology Licensing, Llc Block-level access to parallel storage
US10218586B2 (en) 2013-01-23 2019-02-26 Owl Cyber Defense Solutions, Llc System and method for enabling the capture and securing of dynamically selected digital information
US8776254B1 (en) 2013-01-23 2014-07-08 Owl Computing Technologies, Inc. System and method for the secure unidirectional transfer of software and software updates
US9306953B2 (en) 2013-02-19 2016-04-05 Owl Computing Technologies, Inc. System and method for secure unidirectional transfer of commands to control equipment
US11422907B2 (en) 2013-08-19 2022-08-23 Microsoft Technology Licensing, Llc Disconnected operation for systems utilizing cloud storage
US9798631B2 (en) 2014-02-04 2017-10-24 Microsoft Technology Licensing, Llc Block storage by decoupling ordering from durability
US9304766B2 (en) * 2014-02-21 2016-04-05 Red Hat Israel, Ltd. Determining character sequence digest
US9311329B2 (en) 2014-06-05 2016-04-12 Owl Computing Technologies, Inc. System and method for modular and continuous data assurance
US10282228B2 (en) * 2014-06-26 2019-05-07 Amazon Technologies, Inc. Log-based transaction constraint management
US20220164840A1 (en) 2016-04-01 2022-05-26 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US11244367B2 (en) 2016-04-01 2022-02-08 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US11004125B2 (en) 2016-04-01 2021-05-11 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US10284604B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing and scanning systems for generating and populating a data inventory
US10803200B2 (en) 2016-06-10 2020-10-13 OneTrust, LLC Data processing systems for processing and managing data subject access in a distributed environment
US11200341B2 (en) 2016-06-10 2021-12-14 OneTrust, LLC Consent receipt management systems and related methods
US11651104B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Consent receipt management systems and related methods
US11651106B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11023842B2 (en) 2016-06-10 2021-06-01 OneTrust, LLC Data processing systems and methods for bundled privacy policies
US10783256B2 (en) 2016-06-10 2020-09-22 OneTrust, LLC Data processing systems for data transfer risk identification and related methods
US11418492B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing systems and methods for using a data model to select a target data asset in a data migration
US11188862B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Privacy management systems and methods
US10678945B2 (en) 2016-06-10 2020-06-09 OneTrust, LLC Consent receipt management systems and related methods
US10740487B2 (en) 2016-06-10 2020-08-11 OneTrust, LLC Data processing systems and methods for populating and maintaining a centralized database of personal data
US11210420B2 (en) 2016-06-10 2021-12-28 OneTrust, LLC Data subject access request processing systems and related methods
US11562097B2 (en) 2016-06-10 2023-01-24 OneTrust, LLC Data processing systems for central consent repository and related methods
US10503926B2 (en) 2016-06-10 2019-12-10 OneTrust, LLC Consent receipt management systems and related methods
US10592692B2 (en) 2016-06-10 2020-03-17 OneTrust, LLC Data processing systems for central consent repository and related methods
US11038925B2 (en) 2016-06-10 2021-06-15 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10944725B2 (en) 2016-06-10 2021-03-09 OneTrust, LLC Data processing systems and methods for using a data model to select a target data asset in a data migration
US11675929B2 (en) 2016-06-10 2023-06-13 OneTrust, LLC Data processing consent sharing systems and related methods
US11222309B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11222139B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems and methods for automatic discovery and assessment of mobile software development kits
US10592648B2 (en) 2016-06-10 2020-03-17 OneTrust, LLC Consent receipt management systems and related methods
US11100444B2 (en) 2016-06-10 2021-08-24 OneTrust, LLC Data processing systems and methods for providing training in a vendor procurement process
US11025675B2 (en) 2016-06-10 2021-06-01 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US11144622B2 (en) 2016-06-10 2021-10-12 OneTrust, LLC Privacy management systems and methods
US11138299B2 (en) 2016-06-10 2021-10-05 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11301796B2 (en) 2016-06-10 2022-04-12 OneTrust, LLC Data processing systems and methods for customizing privacy training
US11392720B2 (en) 2016-06-10 2022-07-19 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US11481710B2 (en) 2016-06-10 2022-10-25 OneTrust, LLC Privacy management systems and methods
US11228620B2 (en) 2016-06-10 2022-01-18 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11366909B2 (en) 2016-06-10 2022-06-21 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10949565B2 (en) 2016-06-10 2021-03-16 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10565161B2 (en) 2016-06-10 2020-02-18 OneTrust, LLC Data processing systems for processing data subject access requests
US11336697B2 (en) 2016-06-10 2022-05-17 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10885485B2 (en) 2016-06-10 2021-01-05 OneTrust, LLC Privacy management systems and methods
US11087260B2 (en) 2016-06-10 2021-08-10 OneTrust, LLC Data processing systems and methods for customizing privacy training
US11188615B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Data processing consent capture systems and related methods
US11294939B2 (en) 2016-06-10 2022-04-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US10607028B2 (en) 2016-06-10 2020-03-31 OneTrust, LLC Data processing systems for data testing to confirm data deletion and related methods
US11636171B2 (en) 2016-06-10 2023-04-25 OneTrust, LLC Data processing user interface monitoring systems and related methods
US10685140B2 (en) 2016-06-10 2020-06-16 OneTrust, LLC Consent receipt management systems and related methods
US11625502B2 (en) 2016-06-10 2023-04-11 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US10896394B2 (en) 2016-06-10 2021-01-19 OneTrust, LLC Privacy management systems and methods
US11403377B2 (en) 2016-06-10 2022-08-02 OneTrust, LLC Privacy management systems and methods
US11354435B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for data testing to confirm data deletion and related methods
US10846433B2 (en) 2016-06-10 2020-11-24 OneTrust, LLC Data processing consent management systems and related methods
US11461500B2 (en) 2016-06-10 2022-10-04 OneTrust, LLC Data processing systems for cookie compliance testing with website scanning and related methods
US11057356B2 (en) 2016-06-10 2021-07-06 OneTrust, LLC Automated data processing systems and methods for automatically processing data subject access requests using a chatbot
US11438386B2 (en) 2016-06-10 2022-09-06 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11343284B2 (en) 2016-06-10 2022-05-24 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US11416590B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11544667B2 (en) 2016-06-10 2023-01-03 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10169609B1 (en) 2016-06-10 2019-01-01 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11416589B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10839102B2 (en) 2016-06-10 2020-11-17 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US11151233B2 (en) 2016-06-10 2021-10-19 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10909265B2 (en) 2016-06-10 2021-02-02 OneTrust, LLC Application privacy scanning systems and related methods
US11134086B2 (en) 2016-06-10 2021-09-28 OneTrust, LLC Consent conversion optimization systems and related methods
US11277448B2 (en) 2016-06-10 2022-03-15 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10510031B2 (en) 2016-06-10 2019-12-17 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US11727141B2 (en) 2016-06-10 2023-08-15 OneTrust, LLC Data processing systems and methods for synching privacy-related user consent across multiple computing devices
US11157600B2 (en) 2016-06-10 2021-10-26 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11586700B2 (en) 2016-06-10 2023-02-21 OneTrust, LLC Data processing systems and methods for automatically blocking the use of tracking tools
US11341447B2 (en) 2016-06-10 2022-05-24 OneTrust, LLC Privacy management systems and methods
US11227247B2 (en) 2016-06-10 2022-01-18 OneTrust, LLC Data processing systems and methods for bundled privacy policies
US10467432B2 (en) 2016-06-10 2019-11-05 OneTrust, LLC Data processing systems for use in automatically generating, populating, and submitting data subject access requests
US10997318B2 (en) 2016-06-10 2021-05-04 OneTrust, LLC Data processing systems for generating and populating a data inventory for processing data access requests
US11354434B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US11416798B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing systems and methods for providing training in a vendor procurement process
US11520928B2 (en) 2016-06-10 2022-12-06 OneTrust, LLC Data processing systems for generating personal data receipts and related methods
US10909488B2 (en) 2016-06-10 2021-02-02 OneTrust, LLC Data processing systems for assessing readiness for responding to privacy-related incidents
US11328092B2 (en) 2016-06-10 2022-05-10 OneTrust, LLC Data processing systems for processing and managing data subject access in a distributed environment
US11366786B2 (en) 2016-06-10 2022-06-21 OneTrust, LLC Data processing systems for processing data subject access requests
US11074367B2 (en) 2016-06-10 2021-07-27 OneTrust, LLC Data processing systems for identity validation for consumer rights requests and related methods
US10282559B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US11222142B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems for validating authorization for personal data collection, storage, and processing
US10997315B2 (en) 2016-06-10 2021-05-04 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11138242B2 (en) 2016-06-10 2021-10-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US11416109B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Automated data processing systems and methods for automatically processing data subject access requests using a chatbot
US11295316B2 (en) 2016-06-10 2022-04-05 OneTrust, LLC Data processing systems for identity validation for consumer rights requests and related methods
US11475136B2 (en) 2016-06-10 2022-10-18 OneTrust, LLC Data processing systems for data transfer risk identification and related methods
US10796260B2 (en) 2016-06-10 2020-10-06 OneTrust, LLC Privacy management systems and methods
US11146566B2 (en) 2016-06-10 2021-10-12 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10853501B2 (en) 2016-06-10 2020-12-01 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10318761B2 (en) 2016-06-10 2019-06-11 OneTrust, LLC Data processing systems and methods for auditing data request compliance
US10565236B1 (en) 2016-06-10 2020-02-18 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10606916B2 (en) 2016-06-10 2020-03-31 OneTrust, LLC Data processing user interface monitoring systems and related methods
US10873606B2 (en) * 2016-06-10 2020-12-22 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10878127B2 (en) 2016-06-10 2020-12-29 OneTrust, LLC Data subject access request processing systems and related methods
US11238390B2 (en) 2016-06-10 2022-02-01 OneTrust, LLC Privacy management systems and methods
US10938686B2 (en) 2019-02-25 2021-03-02 Zscaler, Inc. Systems and methods for analyzing digital user experience
US10728117B1 (en) 2019-02-25 2020-07-28 Zscaler, Inc. Systems and methods for improving digital user experience
US10892964B2 (en) 2019-02-25 2021-01-12 Zscaler, Inc. Systems and methods for monitoring digital user experience
US11863409B2 (en) 2019-02-25 2024-01-02 Zscaler, Inc. Systems and methods for alerting administrators of a monitored digital user experience
US11811623B2 (en) 2016-10-26 2023-11-07 Zscaler, Inc. Deep tracing of user experience
US10013577B1 (en) 2017-06-16 2018-07-03 OneTrust, LLC Data processing systems for identifying whether cookies contain personally identifying information
US11544409B2 (en) 2018-09-07 2023-01-03 OneTrust, LLC Data processing systems and methods for automatically protecting sensitive data within privacy management systems
US11144675B2 (en) 2018-09-07 2021-10-12 OneTrust, LLC Data processing systems and methods for automatically protecting sensitive data within privacy management systems
US10803202B2 (en) 2018-09-07 2020-10-13 OneTrust, LLC Data processing systems for orphaned data identification and deletion and related methods
CN110362615A (zh) * 2019-05-09 2019-10-22 中国航空工业集团公司西安航空计算技术研究所 面向具有复杂接口的多对象智能数据表驱动方法及装置
US10972370B1 (en) 2020-01-10 2021-04-06 Zscaler, Inc. Monitoring and analysis of cloud-based applications
US11544410B2 (en) 2020-01-10 2023-01-03 Zscaler, Inc. Secure access to third-party cloud-based applications
US11822522B2 (en) * 2020-01-31 2023-11-21 EMC IP Holding Company LLC Intelligent filesystem for container images
US11797528B2 (en) 2020-07-08 2023-10-24 OneTrust, LLC Systems and methods for targeted data discovery
WO2022026564A1 (en) 2020-07-28 2022-02-03 OneTrust, LLC Systems and methods for automatically blocking the use of tracking tools
US20230289376A1 (en) 2020-08-06 2023-09-14 OneTrust, LLC Data processing systems and methods for automatically redacting unstructured data from a data subject access request
WO2022060860A1 (en) 2020-09-15 2022-03-24 OneTrust, LLC Data processing systems and methods for detecting tools for the automatic blocking of consent requests
WO2022061270A1 (en) 2020-09-21 2022-03-24 OneTrust, LLC Data processing systems and methods for automatically detecting target data transfers and target data processing
US11418588B2 (en) 2020-09-29 2022-08-16 EMC IP Holding Company LLC Intelligent peer-to-peer container filesystem
WO2022099023A1 (en) 2020-11-06 2022-05-12 OneTrust, LLC Systems and methods for identifying data processing activities based on data discovery results
US11863415B2 (en) 2021-01-14 2024-01-02 Zscaler, Inc. Determining endpoint and application behavior for monitoring user experience
US11811633B2 (en) 2021-01-14 2023-11-07 Zscaler, Inc. Traceroutes through external proxies
WO2022159901A1 (en) 2021-01-25 2022-07-28 OneTrust, LLC Systems and methods for discovery, classification, and indexing of data in a native computing system
WO2022170047A1 (en) 2021-02-04 2022-08-11 OneTrust, LLC Managing custom attributes for domain objects defined within microservices
WO2022170254A1 (en) 2021-02-08 2022-08-11 OneTrust, LLC Data processing systems and methods for anonymizing data samples in classification analysis
US20240098109A1 (en) 2021-02-10 2024-03-21 OneTrust, LLC Systems and methods for mitigating risks of third-party computing system functionality integration into a first-party computing system
WO2022178089A1 (en) 2021-02-17 2022-08-25 OneTrust, LLC Managing custom workflows for domain objects defined within microservices
WO2022178219A1 (en) 2021-02-18 2022-08-25 OneTrust, LLC Selective redaction of media content
EP4305539A1 (en) 2021-03-08 2024-01-17 OneTrust, LLC Data transfer discovery and analysis systems and related methods
US11562078B2 (en) 2021-04-16 2023-01-24 OneTrust, LLC Assessing and managing computational risk involved with integrating third party computing functionality within a computing system
US11502908B1 (en) 2021-06-02 2022-11-15 Zscaler, Inc. Geo tagging for advanced analytics and policy enforcement on remote devices
US11863391B2 (en) 2021-06-04 2024-01-02 Zscaler, Inc. Distributed telemetry and policy gateway in the cloud for remote devices
US11582294B2 (en) 2021-06-04 2023-02-14 Zscaler, Inc. Highly scalable RESTful framework
US11329905B1 (en) 2021-08-19 2022-05-10 Zscaler, Inc. Distributed adaptive probability for population selection of remote devices in a network
US11620142B1 (en) 2022-06-03 2023-04-04 OneTrust, LLC Generating and customizing user interfaces for demonstrating functions of interactive user environments

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6816872B1 (en) * 1990-04-26 2004-11-09 Timespring Software Corporation Apparatus and method for reconstructing a file from a difference signature and an original file
WO2006009210A1 (ja) * 2004-07-21 2006-01-26 Sony Corporation コンテンツ処理装置,コンテンツ処理方法およびコンピュータプログラム

Family Cites Families (119)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6206829B1 (en) 1996-07-12 2001-03-27 First Opinion Corporation Computerized medical diagnostic and treatment advice system including network access
US6022315A (en) 1993-12-29 2000-02-08 First Opinion Corporation Computerized medical diagnostic and treatment advice system including network access
US5694546A (en) 1994-05-31 1997-12-02 Reisman; Richard R. System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list
BR9508403A (pt) 1994-07-14 1997-11-11 Johnson Grace Company Método e aparato para compressão de imagens
US6948070B1 (en) * 1995-02-13 2005-09-20 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
US5905492A (en) 1996-12-06 1999-05-18 Microsoft Corporation Dynamically updating themes for an operating system shell
US6130726A (en) 1997-03-24 2000-10-10 Evolve Products, Inc. Program guide on a remote control display
US6173287B1 (en) * 1998-03-11 2001-01-09 Digital Equipment Corporation Technique for ranking multimedia annotations of interest
US6993004B2 (en) 1998-10-29 2006-01-31 Sound Starts, Inc. Method and apparatus for practicing IP telephony from an Internet-capable radio
US6314094B1 (en) 1998-10-29 2001-11-06 Central Coast Patent Agency Inc Mobile wireless internet portable radio
US6550012B1 (en) 1998-12-11 2003-04-15 Network Associates, Inc. Active firewall system and methodology
US6424979B1 (en) 1998-12-30 2002-07-23 American Management Systems, Inc. System for presenting and managing enterprise architectures
US6292792B1 (en) 1999-03-26 2001-09-18 Intelligent Learning Systems, Inc. System and method for dynamic knowledge generation and distribution
US6615166B1 (en) 1999-05-27 2003-09-02 Accenture Llp Prioritizing components of a network framework required for implementation of technology
US6473794B1 (en) 1999-05-27 2002-10-29 Accenture Llp System for establishing plan to test components of web based framework by displaying pictorial representation and conveying indicia coded components of existing network framework
US6957186B1 (en) 1999-05-27 2005-10-18 Accenture Llp System method and article of manufacture for building, managing, and supporting various components of a system
US7165041B1 (en) 1999-05-27 2007-01-16 Accenture, Llp Web-based architecture sales tool
US6721713B1 (en) 1999-05-27 2004-04-13 Andersen Consulting Llp Business alliance identification in a web architecture framework
US6536037B1 (en) 1999-05-27 2003-03-18 Accenture Llp Identification of redundancies and omissions among components of a web based architecture
US6519571B1 (en) 1999-05-27 2003-02-11 Accenture Llp Dynamic customer profile management
US6792086B1 (en) 1999-08-24 2004-09-14 Microstrategy, Inc. Voice network access provider system and method
US6640244B1 (en) 1999-08-31 2003-10-28 Accenture Llp Request batcher in a transaction services patterns environment
US6601234B1 (en) 1999-08-31 2003-07-29 Accenture Llp Attribute dictionary in a business logic services environment
US6438594B1 (en) 1999-08-31 2002-08-20 Accenture Llp Delivering service to a client via a locally addressable interface
US6539396B1 (en) 1999-08-31 2003-03-25 Accenture Llp Multi-object identifier system and method for information service pattern environment
US6615253B1 (en) 1999-08-31 2003-09-02 Accenture Llp Efficient server side data retrieval for execution of client side applications
US6571282B1 (en) 1999-08-31 2003-05-27 Accenture Llp Block-based communication in a communication services patterns environment
US6636242B2 (en) 1999-08-31 2003-10-21 Accenture Llp View configurer in a presentation services patterns environment
US6549949B1 (en) 1999-08-31 2003-04-15 Accenture Llp Fixed format stream in a communication services patterns environment
US6496850B1 (en) 1999-08-31 2002-12-17 Accenture Llp Clean-up of orphaned server contexts
US6434568B1 (en) 1999-08-31 2002-08-13 Accenture Llp Information services patterns in a netcentric environment
US6601192B1 (en) 1999-08-31 2003-07-29 Accenture Llp Assertion component in environment services patterns
US6640249B1 (en) 1999-08-31 2003-10-28 Accenture Llp Presentation services patterns in a netcentric environment
US6578068B1 (en) 1999-08-31 2003-06-10 Accenture Llp Load balancer in environment services patterns
US6715145B1 (en) 1999-08-31 2004-03-30 Accenture Llp Processing pipeline in a base services pattern environment
US6339832B1 (en) 1999-08-31 2002-01-15 Accenture Llp Exception response table in environment services patterns
US6615199B1 (en) 1999-08-31 2003-09-02 Accenture, Llp Abstraction factory in a base services pattern environment
US6529948B1 (en) 1999-08-31 2003-03-04 Accenture Llp Multi-object fetch component
US6606660B1 (en) 1999-08-31 2003-08-12 Accenture Llp Stream-based communication in a communication services patterns environment
US6434628B1 (en) 1999-08-31 2002-08-13 Accenture Llp Common interface for handling exception interface name with additional prefix and suffix for handling exceptions in environment services patterns
US6742015B1 (en) 1999-08-31 2004-05-25 Accenture Llp Base services patterns in a netcentric environment
US6477665B1 (en) 1999-08-31 2002-11-05 Accenture Llp System, method, and article of manufacture for environment services patterns in a netcentic environment
US6550057B1 (en) 1999-08-31 2003-04-15 Accenture Llp Piecemeal retrieval in an information services patterns environment
US6842906B1 (en) 1999-08-31 2005-01-11 Accenture Llp System and method for a refreshable proxy pool in a communication services patterns environment
US6502213B1 (en) 1999-08-31 2002-12-31 Accenture Llp System, method, and article of manufacture for a polymorphic exception handler in environment services patterns
US6289382B1 (en) 1999-08-31 2001-09-11 Andersen Consulting, Llp System, method and article of manufacture for a globally addressable interface in a communication services patterns environment
US6640238B1 (en) 1999-08-31 2003-10-28 Accenture Llp Activity component in a presentation services patterns environment
US6529909B1 (en) 1999-08-31 2003-03-04 Accenture Llp Method for translating an object attribute converter in an information services patterns environment
US6442748B1 (en) 1999-08-31 2002-08-27 Accenture Llp System, method and article of manufacture for a persistent state and persistent object separator in an information services patterns environment
US6477580B1 (en) 1999-08-31 2002-11-05 Accenture Llp Self-described stream in a communication services patterns environment
US6332163B1 (en) 1999-09-01 2001-12-18 Accenture, Llp Method for providing communication services over a computer network system
US7610289B2 (en) 2000-10-04 2009-10-27 Google Inc. System and method for monitoring and analyzing internet traffic
US6792458B1 (en) 1999-10-04 2004-09-14 Urchin Software Corporation System and method for monitoring and analyzing internet traffic
US7523181B2 (en) 1999-11-22 2009-04-21 Akamai Technologies, Inc. Method for determining metrics of a content delivery and global traffic management network
US6754699B2 (en) 2000-07-19 2004-06-22 Speedera Networks, Inc. Content delivery and global traffic management network system
US7043488B1 (en) 2000-01-21 2006-05-09 International Business Machines Corporation Method and system for storing hierarchical content objects in a data repository
US6986102B1 (en) 2000-01-21 2006-01-10 International Business Machines Corporation Method and configurable model for storing hierarchical data in a non-hierarchical data repository
US7007034B1 (en) 2000-01-21 2006-02-28 International Business Machines Corporation File structure for storing content objects in a data repository
US6449627B1 (en) 2000-01-21 2002-09-10 International Business Machines Corp. Volume management method and system for a compilation of content
US6839701B1 (en) 2000-01-21 2005-01-04 International Business Machines Hitmask for querying hierarchically related content entities
US6611840B1 (en) 2000-01-21 2003-08-26 International Business Machines Corporation Method and system for removing content entity object in a hierarchically structured content object stored in a database
US7076494B1 (en) 2000-01-21 2006-07-11 International Business Machines Corporation Providing a functional layer for facilitating creation and manipulation of compilations of content
US7089239B1 (en) 2000-01-21 2006-08-08 International Business Machines Corporation Method and system for preventing mutually exclusive content entities stored in a data repository to be included in the same compilation of content
BR0108797A (pt) * 2000-03-01 2003-02-18 Computer Ass Think Inc Método e sistema para atualização de um arquivo compactado de um arquivo de computador
US20020065864A1 (en) 2000-03-03 2002-05-30 Hartsell Neal D. Systems and method for resource tracking in information management environments
US20020059274A1 (en) 2000-03-03 2002-05-16 Hartsell Neal D. Systems and methods for configuration of information management systems
US20020049841A1 (en) 2000-03-03 2002-04-25 Johnson Scott C Systems and methods for providing differentiated service in information management environments
US20030236745A1 (en) 2000-03-03 2003-12-25 Hartsell Neal D Systems and methods for billing in information management environments
US20020174227A1 (en) 2000-03-03 2002-11-21 Hartsell Neal D. Systems and methods for prioritization in information management environments
US20020095400A1 (en) 2000-03-03 2002-07-18 Johnson Scott C Systems and methods for managing differentiated service in information management environments
US20020049608A1 (en) 2000-03-03 2002-04-25 Hartsell Neal D. Systems and methods for providing differentiated business services in information management environments
WO2001065330A2 (en) 2000-03-03 2001-09-07 Sanctum Ltd. System for determining web application vulnerabilities
US7162539B2 (en) * 2000-03-16 2007-01-09 Adara Networks, Inc. System and method for discovering information objects and information object repositories in computer networks
US6981180B1 (en) 2000-03-16 2005-12-27 Akamai Technologies, Inc. Method and apparatus for testing request-response service using live connection traffic
US6976090B2 (en) * 2000-04-20 2005-12-13 Actona Technologies Ltd. Differentiated content and application delivery via internet
US7152047B1 (en) 2000-05-24 2006-12-19 Esecure.Biz, Inc. System and method for production and authentication of original documents
US6883168B1 (en) * 2000-06-21 2005-04-19 Microsoft Corporation Methods, systems, architectures and data structures for delivering software via a network
US8126313B2 (en) 2000-06-28 2012-02-28 Verizon Business Network Services Inc. Method and system for providing a personal video recorder utilizing network-based digital media content
US6591266B1 (en) 2000-07-14 2003-07-08 Nec Corporation System and method for intelligent caching and refresh of dynamically generated and static web content
US7155723B2 (en) 2000-07-19 2006-12-26 Akamai Technologies, Inc. Load balancing service
US7047281B1 (en) * 2000-08-08 2006-05-16 Fineground Networks Method and system for accelerating the delivery of content in a networked environment
US6868292B2 (en) 2000-09-14 2005-03-15 The Directv Group, Inc. Device control via digitally stored program content
AU2002227121A1 (en) 2000-11-07 2002-05-21 Surgient Networks, Inc. Systems and methods for providing differentiated business services in information management environments
US20030182414A1 (en) * 2003-05-13 2003-09-25 O'neill Patrick J. System and method for updating and distributing information
US6691301B2 (en) 2001-01-29 2004-02-10 Celoxica Ltd. System, method and article of manufacture for signal constructs in a programming language capable of programming hardware architectures
US6963981B1 (en) 2001-01-29 2005-11-08 Akamai Technologies, Inc. Method and apparatus for remote installation of an operating system over a network connection
US6847983B2 (en) * 2001-02-28 2005-01-25 Kiran Somalwar Application independent write monitoring method for fast backup and synchronization of open files
JP3990115B2 (ja) * 2001-03-12 2007-10-10 株式会社東芝 サーバ側プロキシ装置及びプログラム
US7054912B2 (en) * 2001-03-12 2006-05-30 Kabushiki Kaisha Toshiba Data transfer scheme using caching technique for reducing network load
US20020143798A1 (en) 2001-04-02 2002-10-03 Akamai Technologies, Inc. Highly available distributed storage system for internet content with storage site redirection
AUPR797501A0 (en) 2001-09-28 2001-10-25 BlastMedia Pty Limited A method of displaying content
US6904430B1 (en) * 2002-04-26 2005-06-07 Microsoft Corporation Method and system for efficiently identifying differences between large files
US7899915B2 (en) 2002-05-10 2011-03-01 Richard Reisman Method and apparatus for browsing using multiple coordinated device sets
US6925467B2 (en) * 2002-05-13 2005-08-02 Innopath Software, Inc. Byte-level file differencing and updating algorithms
US7277963B2 (en) 2002-06-26 2007-10-02 Sandvine Incorporated TCP proxy providing application layer modifications
US7587517B2 (en) * 2002-07-08 2009-09-08 Precache Inc. Packet routing via payload inspection for quality of service management
US7395355B2 (en) 2002-07-11 2008-07-01 Akamai Technologies, Inc. Method for caching and delivery of compressed content in a content delivery network
US7007064B2 (en) 2002-08-02 2006-02-28 Motorola, Inc. Method and apparatus for obtaining and managing wirelessly communicated content
US7096311B2 (en) * 2002-09-30 2006-08-22 Innopath Software, Inc. Updating electronic files using byte-level file differencing and updating algorithms
JP2004152136A (ja) * 2002-10-31 2004-05-27 Matsushita Electric Ind Co Ltd データ更新システム、データ更新システムの差分データ生成装置及びプログラム、並びに更新後ファイル復元装置及びプログラム
US7353225B2 (en) * 2002-11-13 2008-04-01 Sun Microsystems, Inc. Mechanism for comparing content in data structures
US7360025B1 (en) 2002-12-13 2008-04-15 O'connell Conleth Method and system for automatic cache management
US7188216B1 (en) 2002-12-13 2007-03-06 Vignette Corporation Method and system for an extensible caching framework
JP4302970B2 (ja) * 2002-12-16 2009-07-29 富士通株式会社 差分更新方法、プログラム及び装置
US7320009B1 (en) * 2003-03-28 2008-01-15 Novell, Inc. Methods and systems for file replication utilizing differences between versions of files
US7890464B2 (en) * 2003-06-20 2011-02-15 Innopath Software, Inc. Processing software images and generating difference files
US20050004954A1 (en) 2003-07-01 2005-01-06 Hand Held Products, Inc. Systems and methods for expedited data transfer in a communication system using hash segmentation
US7031972B2 (en) * 2003-07-21 2006-04-18 Innopath Software, Inc. Algorithms for block-level code alignment of software binary files
US8131739B2 (en) 2003-08-21 2012-03-06 Microsoft Corporation Systems and methods for interfacing application programs with an item-based storage platform
AU2003259961B2 (en) 2003-08-21 2010-05-27 Microsoft Technology Licensing, Llc Systems and methods for interfacing application programs with an item-based storage platform
US7529811B2 (en) 2003-08-21 2009-05-05 Microsoft Corporation Systems and methods for the implementation of a core schema for providing a top-level structure for organizing units of information manageable by a hardware/software interface system
EP1658555A4 (en) 2003-08-21 2009-05-06 Microsoft Corp SYSTEMS AND METHODS FOR MODELING DATA IN A STORAGE PLATFORM BASED ON OBJECTS
US7529779B2 (en) * 2004-06-10 2009-05-05 Samsung Electronics Co., Ltd. Apparatus and method for efficient generation of delta files for over-the-air upgrades in a wireless network
US7711706B2 (en) * 2004-11-08 2010-05-04 Innopath Software, Inc. Reorganizing images in static file system differencing and updating
US8271578B2 (en) 2004-12-08 2012-09-18 B-Obvious Ltd. Bidirectional data transfer optimization and content control for networks
US7698318B2 (en) * 2006-02-10 2010-04-13 Microsoft Corporation Automatically determining file replication mechanisms
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
KR101433859B1 (ko) * 2007-10-12 2014-08-27 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 파일 데이터 관리 방법
US7941410B2 (en) * 2008-09-30 2011-05-10 Microsoft Corporation Method and system of managing conflicts for a set of synchronized folders

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6816872B1 (en) * 1990-04-26 2004-11-09 Timespring Software Corporation Apparatus and method for reconstructing a file from a difference signature and an original file
WO2006009210A1 (ja) * 2004-07-21 2006-01-26 Sony Corporation コンテンツ処理装置,コンテンツ処理方法およびコンピュータプログラム

Also Published As

Publication number Publication date
EP2044755B1 (en) 2015-07-22
CN101485174A (zh) 2009-07-15
WO2008005840A3 (en) 2008-06-05
US20100235374A1 (en) 2010-09-16
US20080005203A1 (en) 2008-01-03
IL196034A0 (en) 2009-09-22
AU2007269315B2 (en) 2011-09-15
JP2009543227A (ja) 2009-12-03
BRPI0713874A2 (pt) 2013-01-01
EP2044755A2 (en) 2009-04-08
US8838630B2 (en) 2014-09-16
HK1128840A1 (zh) 2009-11-06
AU2007269315A1 (en) 2008-01-10
CA2655020A1 (en) 2008-10-01
US7756826B2 (en) 2010-07-13
WO2008005840A2 (en) 2008-01-10
KR20090034321A (ko) 2009-04-07

Similar Documents

Publication Publication Date Title
CN101485174B (zh) 用于有效传送先前存储内容的方法和系统
US7685298B2 (en) Systems and methods for providing authentication credentials across application environments
US7877463B2 (en) Method and systems for providing access to dynamic content via static pages
US9621666B2 (en) Systems and methods for enhanced delta compression
US6892206B2 (en) Reduction of meta data in a network
US7716306B2 (en) Data caching based on data contents
US6523062B1 (en) Facilitating memory constrained client devices by employing deck reduction techniques
US7636765B2 (en) Data transfer scheme using caching technique for reducing network load
US20080250119A1 (en) Data transfer scheme using caching and differential compression techniques for reducing network load
US20060271559A1 (en) Method and system for delta compression
CN109565518B (zh) 用于可互换的内容取回的方法和系统
KR20040044182A (ko) 통신네트워크의 유효 대역폭 증가 시스템 및 방법
CN102577303A (zh) 用于生成dns查询以提高抗dns攻击性的系统和方法
US7424509B2 (en) System and method for printing from a web application
US20020107986A1 (en) Methods and systems for replacing data transmission request expressions
JP4031516B2 (ja) サーバ側プロキシ装置、クライアント側プロキシ装置、データ転送方法及びプログラム
JP3943867B2 (ja) サーバ側プロキシ、データ転送方法及びプログラム
JP3943868B2 (ja) サーバ側プロキシ、データ転送方法及びプログラム
JP4157585B2 (ja) サーバ側プロキシ装置、クライアント側プロキシ装置、データ転送方法及びプログラム
JP2007287167A (ja) クライアント側プロキシ装置、データ転送方法及びプログラム

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