Method and system for differencing container files
First Claim
1. In a computer system having a client connected to at least one server over a communications mechanism, said client having a client extension associated therewith and said at least one server having a server extension associated therewith, said client and said server utilizing containers for the transmission of information, each container having one or more objects, said objects having associated lengths and CRCs, said objects also having header and contents portions, a method for reducing the amount of information sent from said server to said client in said communications system, said method comprising:
- requesting, by a browser at said client, a URL (Uniform Resource Locator), said URL comprising the name of a container file;
passing said request from said browser at said client to said client extension;
recognizing, by said client extension, said requested name of said container file as one that had been previously cached;
passing said request for said named container from said client to said server extension, said passed request including a unique identifier (such as a CRC) of the previously cached container having the requested name;
receiving, by the server extension, the request for said named container;
passing, by said server extension, said request for said named container to said web server indicated in said URL;
receiving a response, at said server extension, from said web server;
if said response indicates that a new version of the named container file exists then;
creating a catalog, at said server extension, from said new version of said named container file;
computing a unique identifier for said named container file;
adding said catalog and said unique identifiers for said catalog to a catalog list at said server;
searching said catalog list for a catalog whose unique identifier matches the unique identifier of said passed request received from said client;
creating a difference file between the matched catalog and the catalog of the new version of said named container file if a match is found and sending said difference file to said client extension; and
,sending the new version of said named container file to said client if no match is found.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and system for efficiently updating container objects on remote systems. The method and system involve a server extension which determines whether the files within the container object have changed since the last time they were sent to the client. If they have changed, the server extension sends only the changed files with instructions on how to reconstruct the container object to a client extension. The client extension receives the changes and the instructions and reconstitutes the container object and transmits the container object to the client browser.
226 Citations
12 Claims
-
1. In a computer system having a client connected to at least one server over a communications mechanism, said client having a client extension associated therewith and said at least one server having a server extension associated therewith, said client and said server utilizing containers for the transmission of information, each container having one or more objects, said objects having associated lengths and CRCs, said objects also having header and contents portions, a method for reducing the amount of information sent from said server to said client in said communications system, said method comprising:
-
requesting, by a browser at said client, a URL (Uniform Resource Locator), said URL comprising the name of a container file; passing said request from said browser at said client to said client extension; recognizing, by said client extension, said requested name of said container file as one that had been previously cached; passing said request for said named container from said client to said server extension, said passed request including a unique identifier (such as a CRC) of the previously cached container having the requested name; receiving, by the server extension, the request for said named container; passing, by said server extension, said request for said named container to said web server indicated in said URL; receiving a response, at said server extension, from said web server; if said response indicates that a new version of the named container file exists then; creating a catalog, at said server extension, from said new version of said named container file; computing a unique identifier for said named container file; adding said catalog and said unique identifiers for said catalog to a catalog list at said server; searching said catalog list for a catalog whose unique identifier matches the unique identifier of said passed request received from said client; creating a difference file between the matched catalog and the catalog of the new version of said named container file if a match is found and sending said difference file to said client extension; and
,sending the new version of said named container file to said client if no match is found. - View Dependent Claims (2, 3, 4)
-
-
5. In a computer system having a client connected to at least one server over a communications mechanism, said client having a client extension associated therewith and said at least one server having a server extension associated therewith, said client and said server utilizing containers for the transmission of information, each container having one or more objects, said objects having associated lengths and CRCs, said objects also having associated header and contents portions, an apparatus for reducing the amount of information sent from said server to said client in said communications system, said apparatus comprising:
-
means for requesting, by a browser at said client, a URL, said URL having the name of a container file; means for passing said request from said browser at said client to said client extension; means for recognizing, by said client extension, said requested name of said container file as one that had been previously cached by said client; means for passing said request for said named container from said client to said server extension, said passed request including a unique identifier (such as a CRC) of the previously cached container having the requested name; means for receiving, by the server extension, the request for said named container; means for passing, by said server extension, said request for said named container to said web server indicated in said URL; means for receiving a response, at said server extension, from said web server; if said response indicates that a new version of the named container file exists then; means for creating a catalog, at said server extension, from said new version of said named container file; means for computing a unique identifier for said named container file; means for adding said catalog and said unique identifier to a catalog list at said server; means for searching said catalog list for a catalog whose unique identifier matches the unique identifier of said passed request received from said client; means for creating a difference file between the matched catalog and the catalog of the new version of said named container file if a match is found and means for sending said difference file to said client extension; and
,means for sending the new version of said named container file to said client if no match is found. - View Dependent Claims (6, 7, 8)
-
-
9. A computer program product for reducing the amount of information sent from a server extension to a client extension in a communications system, said client extension having at least one client associated therewith and said server extension having at least one server associated therewith, said client and said server utilizing containers for the transmission of information, each container having one or more objects, said objects having associated lengths and CRCs, said objects also having associated header and contents portions, the computer program product comprising:
a computer-readable program code means embodied in a computer-readable storage medium, said computer readable program code means comprising; computer readable program code means for requesting, by a browser at said client, a URL, said URL comprising the name of a container file; computer readable program code means for passing said request from said browser at said client to said client extension; computer readable program code means for recognizing, by said client extension, said requested name of said container file as one that had been previously cached by said client; computer readable program code means for passing said request for said named container from said client extension to said server extension, said passed request including a unique identifier (such as a CRC) of the previously cached container having the requested name; computer readable program code means for receiving, by the server, the request for said named container; computer readable program code means for passing, by said server extension, said request for said named container to said web server indicated in said URL; computer readable program code means for receiving a response, at said server, from said web server; if said response indicates that a new version of the named container file exists then; computer readable program code means for creating a catalog, at said server, from said new version of said named container file; computer readable program code means for computing a unique identifier for said named container file; computer readable program code means for adding said catalog and said unique identifier to a catalog list at said server; computer readable program code means for searching said catalog list for a catalog whose unique identifier matches the unique identifier of said passed request received from said client extension; computer readable program code means for creating a difference file between the matched catalog and the catalog of the new version of said named container file if a match is found and sending said difference file to said client extension; and
,computer readable program code means for sending the new version of said named container file to said client if no match is found. - View Dependent Claims (10, 11, 12)
Specification