Claims
- 1. A method for distributing content, the method comprising:
generating a canonical reference file representing at least a portion of the content; during a period in which the current state of the content differs from the canonical reference file, transmitting the canonical reference file to a client; generating a delta file that represents a difference between the canonical reference file and the current state of the content; and transmitting the delta file to the client to allow the client to construct the current state of the content based on the delta file and the canonical reference file.
- 2. The method of claim 1 wherein:
the step of transmitting the canonical reference file to a client is performed prior to the client requesting the content; and the step of transmitting the delta file to the client is performed in response to the client requesting the content.
- 3. The method of claim 1 wherein both the canonical reference file and the delta file are transmitted to the client in response to a single request for the content from the client.
- 4. The method of claim 1, further comprising, prior to the step of transmitting the delta file, the step of:
retrieving the current state of the content from a cache of content previously retrieved from another server.
- 5. The method of claim 1 wherein the content includes static content and dynamic content, and
wherein the step of generating the canonical reference file generates the reference file based on the static content; and wherein the step of generating the delta file generates the delta file based on the dynamic content.
- 6. The method of claim 1, further comprising, prior to the step of transmitting the delta file, the step of:
compressing the delta file.
- 7. The method of claim 6 wherein the steps of compressing and transmitting the delta file uses streaming technology that allows the content to be displayed as it is received without having to wait for the entire content to be received.
- 8. The method of claim 1, comprising the step of:
deleting the canonical reference file from a server that generated the canonical reference file and from one or more clients to which the server distributes the content, upon the canonical reference file not being referenced by the server or by the one or more clients for a particular period of time.
- 9. The method of claim 1, wherein the canonical reference file is common to a plurality of servers and to each of one or more clients to which each of the plurality of servers distributes the content, and wherein the step of transmitting the canonical reference file transmits the canonical reference file to one or more clients to which each of the plurality of servers distributes the file content.
- 10. The method of claim 9 wherein the step of generating the canonical reference file comprises the step of:
coalescing reference files from the plurality of servers.
- 11. The method of claim 9, comprising the step of:
transmitting, by a first server, the canonical reference file to one or more of the plurality of servers other than the first server.
- 12. The method of claim 1, comprising the steps of:
regenerating the canonical reference file in response to a condition upon which regenerating depends.
- 13. The method of claim 12 wherein the condition is expiration of a period of time since the last generation of the canonical reference file for the content, and
wherein the step of regenerating the canonical reference file is performed in response to the condition.
- 14. The method of claim 12 wherein the condition is receipt of a manually initiated command requesting regeneration of the canonical reference file for the content, and
wherein the step of regenerating the canonical reference file is performed in response to the condition.
- 15. The method of claim 12 wherein the condition is detection that the size of the delta file associated with the current state of the content meets or exceeds a size threshold,
wherein the step of regenerating the canonical reference file is performed in response to the condition.
- 16. The method of claim 12 wherein the condition is detection that the number of requests for the content meets or exceeds a request threshold, and
wherein the step of regenerating the canonical reference file is performed in response to the condition.
- 17. The method of claim 1, comprising the steps of:
applying a condition upon which the step of transmitting the canonical reference file depends, and wherein the step of transmitting the canonical reference file is based on the condition.
- 18. The method of claim 1 comprising the step of:
storing the delta file for transmission to an other client in response to the other client requesting the content.
- 19. A method for distributing content, the method comprising:
generating a canonical reference file representing at least a portion of the content; transmitting the canonical reference file to a plurality of clients, including the steps of
transmitting the canonical reference file to a first client when the content is in a first state; transmitting the canonical reference file to a second client when the content is in a second state that is different from the first state; when any client of the plurality of clients requests the content, transmitting to the client a delta file that represents a difference between the canonical reference file and a current state of the content.
- 20. The method of claim 19 wherein:
the step of transmitting the canonical reference file to at least one of the first and second clients is performed prior to the respective first or second client requesting the content; and the step of transmitting the delta file to the respective first or second client is performed in response to the respective first or second client requesting the content.
- 21. The method of claim 19 wherein both the canonical reference file and the delta file are transmitted to at least one of the first and second clients in response to a single request for the content from the respective first or second client.
- 22. The method of claim 19, further comprising, prior to the step of transmitting the delta file, the step of:
retrieving the current state of the content from a cache of content previously retrieved from another server.
- 23. The method of claim 19 wherein the content includes static content and dynamic content, and
wherein the step of generating the canonical reference file generates the reference file based on the static content; and wherein a step of generating the delta file generates the delta file based on the dynamic content.
- 24. A method for receiving content, the method comprising:
receiving a canonical reference file representing at least a portion of the content, during a period of time in which the current state of the content differs from the canonical reference file; receiving a delta file that represents a difference between the canonical reference file and the current state of the content; and constructing the current state of the content based on the delta file and the canonical reference file.
- 25. The method of claim 24 wherein the canonical reference file is common to a plurality of clients and wherein the step of receiving the canonical reference file is performed by more than one of the plurality of clients.
- 26. The method of claim 24 wherein:
the step of receiving the canonical reference file is performed prior to requesting the content; and the step of receiving the delta file is performed in response to a request for the content.
- 27. The method of claim 24 wherein both the canonical reference file and the delta file are received in response to a single request for the content.
- 28. The method of claim 24 comprising:
decompressing the delta file.
- 29. A system for implementing delta encoding for distribution of content, comprising:
at least one server, configured to
generate a canonical reference file representing at least a portion of the content; during a period in which the current state of the content differs from the canonical reference file, transmit the canonical reference file to a client computer; generate a delta file that represents a difference between the canonical reference file and the current state of the content; and transmit the delta file to the client computer; and a client program, configured on the client computer to
receive the canonical reference file; receive the delta file; and construct the current state of the content based on the delta file and the canonical reference file.
- 30. The system of claim 29, wherein the client program is installed on the at least one client computer prior to receiving the canonical reference file.
- 31. The system of claim 29 comprising:
a plurality of servers, wherein the plurality of servers are configured to store the canonical reference file.
- 32. The system of claim 31 wherein the client program is configurable to request communication with a particular server of the plurality of servers.
- 33. The system of claim 29, comprising:
a cache server, configured to store content retrieved through a network from another server; wherein the at least one server retrieves the current state of the content from the cache server.
- 34. A computer-readable medium carrying one or more sequences of instructions for distributing content, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:
generating a canonical reference file representing at least a portion of the content; during a period in which the current state of the content differs from the canonical reference file, transmitting the canonical reference file to a client; generating a delta file that represents a difference between the canonical reference file and the current state of the content; and transmitting the delta file to the client to allow the client to construct the current state of the content based on the delta file and the canonical reference file.
- 35. A computer-readable medium carrying one or more sequences of instructions for distributing content, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:
generating a canonical reference file representing at least a portion of the content; transmitting the canonical reference file to a plurality of clients, including the steps of
transmitting the canonical reference file to a first client when the content is in a first state; transmitting the canonical reference file to a second client when the content is in a second state that is different from the first state; when any client of the plurality of clients requests the content, transmitting to the client a delta file that represents a difference between the canonical reference file and a current state of the content.
- 36. A computer-readable medium carrying one or more sequences of instructions for receiving content, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:
receiving a canonical reference file representing at least a portion of the content, during a period of time in which the current state of the content differs from the canonical reference file; receiving a delta file that represents a difference between the canonical reference file and the current state of the content; and constructing the current state of the content based on the delta file and the canonical reference file.
- 37. A computer apparatus comprising:
a memory; a network interface; and one or more processors coupled to the memory and the network interface and configured to execute one or more sequence of instructions for distributing content, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:
generating a canonical reference file representing at least a portion of the content; during a period in which the current state of the content differs from the canonical reference file, transmitting the canonical reference file to a client; generating a delta file that represents a difference between the canonical reference file and the current state of the content; and transmitting the delta file to the client to allow the client to construct the current state of the content based on the delta file and the canonical reference file.
- 38. A computer apparatus comprising:
a memory; a network interface; and one or more processors coupled to the memory and the network interface and configured to execute one or more sequence of instructions for distributing content, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:
generating a canonical reference file representing at least a portion of the content; transmitting the canonical reference file to a plurality of clients, including the steps of
transmitting the canonical reference file to a first client when the content is in a first state; transmitting the canonical reference file to a second client when the content is in a second state that is different from the first state; when any client of the plurality of clients requests the content, transmitting to the client a delta file that represents a difference between the canonical reference file and a current state of the content.
- 39. A computer apparatus comprising:
a memory; a network interface; and one or more processors coupled to the memory and the network interface and configured to execute one or more sequence of instructions for receiving content, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:
receiving a canonical reference file representing at least a portion of the content, during a period of time in which the current state of the content differs from the canonical reference file; receiving a delta file that represents a difference between the canonical reference file and the current state of the content; and constructing the current state of the content based on the delta file and the canonical reference file.
CROSS REFERENCE TO RELATED APPLICATION
[0001] This application claims priority from U.S. Provisional Patent Application No. 60/282,303 filed Apr. 5, 2001, entitled “Delta Encoding Using Canonical Base Files” (Atty. Docket 50269-0522), which is hereby incorporated by reference herein in its entirety for all purposes.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60282303 |
Apr 2001 |
US |