Identifying and requesting data in network using identifiers which are based on contents of data
DC CAFCFirst Claim
1. In a system in which a set of data files are distributed across a network of servers, at least some of the data files being cached versions of data files from a source server, wherein the source server is distinct from the servers in the network, a content delivery method comprising:
- determining a data identifier for a particular data file on the source server, the data identifier being determined using a given function of the data, wherein said data used by the given function to determine the data identifier comprises the contents of the particular data file; and
responsive to a request for the particular data file, the request including at least the data identifier of the particular data file, providing the particular data file from a given one of the servers of the network of servers, said providing being based on the data identifier of the requested data item.
14 Assignments
Litigations
3 Petitions
Reexaminations
Accused Products
Abstract
In a system in which a set of data items are distributed across a network of servers, at least some of the data items being cached versions of data items from a source server, a content delivery method includes determining a data identifier for a particular data item, the data identifier being determined using a given function of the data comprising the particular data item; and responsive to a request for the particular data item, the request including at least the data identifier of the particular data item, providing the particular data item from a given one of the servers of the network of servers. The request for the particular data item may be resolved based on a measure of availability of at least one of the servers, where the measure of availability may be a measurement of bandwidth to the server; a measurement of a cost of a connection to the server, and/or a measurement of a reliability of a connection to the server. The function used to determine the identifier may be a message digest function or a hash function.
-
Citations
55 Claims
-
1. In a system in which a set of data files are distributed across a network of servers, at least some of the data files being cached versions of data files from a source server, wherein the source server is distinct from the servers in the network, a content delivery method comprising:
-
determining a data identifier for a particular data file on the source server, the data identifier being determined using a given function of the data, wherein said data used by the given function to determine the data identifier comprises the contents of the particular data file; and
responsive to a request for the particular data file, the request including at least the data identifier of the particular data file, providing the particular data file from a given one of the servers of the network of servers, said providing being based on the data identifier of the requested data item. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
wherein certain processors in the network communicate with each other using a TCP/IP communication protocol. -
8. A method as in claim 1 wherein said data identifier for said particular data file, as determined using said given function, will change when the particular data file is modified.
-
-
9. In a system in which a set of data files are distributed across a network of servers, some of the data files being cached from a source server distinct from the servers in the network, a content delivery method comprising:
-
determining a data identifier for a particular data file on the source server, the data identifier being determined using a given function of the data, wherein said data used by the given function to determine the data identifier comprises the contents of the particular data file; and
responsive to a request for the particular data file, the request including at least the data identifier of the particular data file, causing a copy of the particular data file to be provided from a given one of the servers of the network of servers.
-
-
10. A content delivery method, comprising:
-
distributing a set of data files across a network of servers;
determining a data identifier for a particular data file, the data identifier being determined using a given function of the data, wherein said data used by the given function to determine the data identifier comprises the contents of the particular data file; and
in response to a request for the particular data file, the request including at least the data identifier of the particular data file, providing the particular data file from a given one of the servers of the network of servers, said providing being based on the data identifier of the particular data file. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
determining whether the data identifier corresponds to a data identifier of any data file present on the given server.
-
-
12. A method as in claim 11 further comprising:
based on said determining, if the data identifier does not correspond to a data file present on the given server, locating the particular data file from another server.
-
13. A method as in claim 12 further comprising:
obtaining, on the given server, a local copy of the particular data file, from the other server.
-
14. A method as in claim 10 wherein at least some of the data files distributed across the network of servers are cached versions of data files from another server, distinct from the network of servers.
-
15. A method as in claim 10 further comprising:
resolving the request for the particular data file based on a measure of availability of at least one of the servers.
-
16. A method as in claim 15 wherein the measure of availability is based on one or more of:
-
(a) a measurement of bandwidth to the server;
(b) a measurement of a cost of a connection to the server, and (c) a measurement of a reliability of a connection to the server.
-
-
17. A method as in claim 10 wherein the data file is a compound data file made up of various component data files, the method further comprising:
-
for each component data file of at least some of the component data files;
(a) determining a data identifier for the component data file, the data identifier for the component file determined using the given function of the data, wherein said data used by the given function to determine the data identifier comprises the contents of the component data file; and
(b) providing the component data file from a given one of the servers of the network of servers.
-
-
18. A content delivery method, comprising:
-
distributing a set of data files across a network of servers;
for a particular data file having a particular name specifying a location in the network at which the data file may be located, determining another name for the particular data file, the other name including a data identifier determined using a given function of the data, where said data used by the given function comprises the contents of the particular data file; and
in response to a request for the particular data file, the request including the other name of the particular data file, providing the particular data file from a given one of the servers of the network of servers. - View Dependent Claims (19, 20, 21, 22)
resolving the request for the particular data file based on a measure of availability of at least one of the servers.
-
-
21. A method as in claim 20 wherein the measure of availability is based on one or more of:
-
(a) a measurement of bandwidth to the server;
(b) a measurement of a cost of a connection to the server, and (c) a measurement of a reliability of a connection to the server.
-
-
22. A method as in claim 18 wherein the particular data file is a compound data file comprising various component data files, the method further comprising:
-
for at least one component data file;
(a) determining a data identifier for the component data file, the data identifier determined using a given function of the data, wherein said data used by the given function comprises the contents of the component data file; and
(b) providing the component data file from a given one of the servers of the network of servers.
-
-
23. A content delivery method, comprising:
-
distributing a set of data files across a network of servers, at least some of the data files being cached versions of data files from another server, distinct from the network of servers;
determining a data identifier for a particular data file, the data identifier determined using a given function of the data, wherein said data used by the given function comprises the contents of the particular data file; and
in response to a request for the particular data file, the request including at least the data identifier of the particular data file, providing the particular data file from a given one of the servers of the network of servers.
-
-
24. A content delivery method, comprising:
-
causing a set of data files to be distributed across a network of servers, at least some of the data files being cached versions of data files from another server distinct from the network of servers;
determining a data identifier for a particular data file, the data identifier determined using a given function of the data, wherein said data used by the given function comprises the contents of the particular data file; and
in response to a request for the particular data file, the request including at least the data identifier of the particular data file, causing the particular data file to be provided from a given one of the servers of the network of servers.
-
-
25. A content delivery method, comprising:
-
distributing a set of data files across a network of servers, the network of servers being organized into a set of regions;
determining a data identifier for a particular data file, the data identifier determined using a given function of the data, wherein said data used by the given function comprises the contents of the data file;
in response to a client request for the particular data file, the request including at least the data identifier of the particular data file, providing the client with the particular data file from a given one of the servers of the network of servers within the region.
-
-
26. In a system in which a set of data files are distributed across a network of servers, at least some of the data files being cached versions of data files from a source server distinct from the network of servers, a content delivery method comprising:
-
responsive to a request for a particular data file, the request including at least a data identifier of the particular data file, wherein the data identifier is determined by applying a message digest function MD5 to the data, wherein said data used by the MD5 function to determine the data identifier is the contents of the particular data file, providing the particular data file from a given one of the servers of the network of servers, wherein a data file may be a file, a portion of a file, a page in memory, a digital message, a digital image, a video signal or an audio signal.
-
-
27. A content delivery method, comprising:
-
distributing a set of data files across a network of servers, at least some of the data files being cached versions of data files from another server distinct from the network of servers;
determining a data identifier for a particular data file, the data identifier determined using a given function of the data, wherein said data used by the given function comprises the contents of the particular data file, and wherein the given function randomly distributes its outputs; and
in response to a request for the particular data file, the request including at least the data identifier of the particular data file, providing the particular data file from a given one of the servers of the network of servers, said providing being based on the data identifier of the particular data item. - View Dependent Claims (28, 29, 30)
maintaining accounting information relating to the data files; and
using the accounting information as a basis for a value-based accounting system in which charges are based on an identity of the data files.
-
-
29. A method as in claim 28 wherein the maintaining of accounting information includes at least some of:
-
(a) tracking which data files have been stored on a system; and
(b) tracking which data files have been transmitted from a server.
-
-
30. A method as in claim 28 further comprising:
ensuring that a data file is not used by an unauthorized party.
-
31. A content delivery method, comprising:
-
distributing a set of data files across a network of servers;
determining an MD5 hash of the contents of a particular data file; and
in response to a request for the particular data file, the request including at least the MD5 hash of the particular data file, providing the particular data file from a given one of the servers of the network of servers, said providing being based on the MD5 hash of the particular data file. - View Dependent Claims (32, 33)
resolving the request for the particular data file based on a measure of availability of at least one of the servers.
-
-
33. A method as in claim 32 wherein the measure of availability for a server is based on one or more of:
-
(a) a measurement of bandwidth to the server;
(b) a measurement of a cost of a connection to the server, and (c) a measurement of reliability of a connection to the server.
-
-
34. A content delivery method, comprising:
-
distributing a set of data files across a network of servers;
for a particular data file having a particular data identifier specifying a location in the network at which the particular data file may be located, determining another data identifier for the particular data file, the other data identifier including a data identifier determined using a message digest function of the contents of the particular data file;
in response to a request for the particular data file, the request including the other data identifier of the particular data file, providing the particular data file from a given one of the servers of the network of servers, said providing being based on the other data identifier which was determined using the message digest function.
-
-
35. A content delivery method, comprising:
-
distributing a set of data files across a network of servers, at least some of the data files being cached versions of data files from another server, said other server being distinct from the network of servers;
determining a data identifier for a particular data file, the data identifier including a hash of the contents of the particular data file; and
in response to a request for the particular data file, the request including at least the data identifier of the particular data file, providing the particular data file from a given one of the servers of the network of servers.
-
-
36. A method of delivering a data file in a network comprising a plurality of processors, some of the processors being servers and some of the processors being clients, the method comprising:
-
storing the data file is on a first server in the network and storing copies of the data file on a set of servers in the network distinct from the first server; and
responsive to a client request for the data file, the request including a hash of the contents of the data file, causing the data file to be provided to the client. - View Dependent Claims (37)
associating the contextual name of the data file with the hash of the contents of the data file.
-
-
38. A method of delivering a data file in a network comprising a plurality of processors, some of the processors being servers and some of the processors being clients, the method comprising:
-
storing the data file is on a first server and storing copies of the data file on a set of servers distinct from the first server; and
responsive to a client request for the data file, the request including a value determined as a given function of the contents of the data file, providing the data file to the client. - View Dependent Claims (39)
associating the contextual name of the data file with the value determined as the given function of the data in the data file.
-
-
40. A method of delivering a data file in a network comprising a plurality of processors, some of the processors being servers and some of the processors being clients, wherein some processors in the network communicate with each other using a TCP/IP communication protocol, wherein a key is required to identify a data file on the network and wherein ordinarily the key is a name or address for the data file, the method comprising:
-
storing some data files on a first server in the network and storing copies of some of the data files on a set of cache servers distinct from the first server;
determining a different cache key from the ordinarily used cache key, the different cache key being a function of the contents of the data it represents; and
responsive to a client request for the data file, the request including the different cache key for the data file, providing the data file to the client. - View Dependent Claims (41, 42, 43)
-
-
44. A framework operative in a computer network in which users of client processors connect to a content server, the framework comprising:
-
a set of content servers, distinct from the content provider server, for hosting at least some of the data files that are normally hosted by the content provider server;
a mechanism constructed and adapted to determine an identifier for a data file as a given function of the contents of a data file in the network;
wherein, in response to requests for a data file, generated by one of the client machines the request including an identifier based on the given function of the contents of the particular data file, the particular data file is served from one of the content servers. - View Dependent Claims (45, 46, 47, 48, 49, 50, 51)
a mechanism constructed and adapted to associate the contextual name of the data file with the identifier for the data file.
-
-
50. A framework as in claim 49 wherein the contextual name of the data file comprises a pathname including a processor name and a file name.
-
51. A framework as in claim 44 wherein a data file may be a file, a portion of a file, a page in memory, a digital message, a digital image, a video signal or an audio signal.
-
52. In a network comprising a plurality of processors, some of the processors functioning as servers and some of the processors functioning as clients, wherein some processors in the network communicate with each other using a TCP/IP communication protocol, wherein a key is required to identify a data file on the network and wherein ordinarily the key is a name or address for the data file, a method of delivering a data file:
-
storing some data files on a first server in the network and storing copies of some of the data files from the first server on a set of cache servers distinct from the first server;
for a particular data file, determining a different cache key from the ordinarily used cache key for the data file, the different cache key being determined using a message digest function MD5 of the data, wherein said data used by the MD5 function comprises the contents of the particular data file; and
responsive to a client request for the particular data file, the request including the different cache key for the data file, causing the particular data file to be provided to the client, wherein the data file may be a file, a portion of a file, a page in memory, a digital message, a digital image, a video signal or an audio signal.
-
-
53. A framework operative in a computer network in which users of client processors connect to a content server, wherein processors in the network communicate with each other using a TCP/IP communication protocol, the framework comprising:
-
a mechanism constructed and adapted to determine a given function of a data file in the network, the given function being a message digest function or a hash function;
a set of content servers, distinct from the content provider server, for hosting at least some of the data files that are normally hosted by the content provider server;
wherein, in response to requests for a data file, generated by one of the client machines the request including an identifier based on the given function of the contents of the particular data file, the particular data file is served from one of the content servers.
-
-
54. A content delivery method in a network in which at least some processors in the network communicate with each other using a TCP/IP communication protocol, the method comprising:
-
for a particular data file having a particular name specifying a location in the network at which the data file may be located, determining another name for the particular data file, the other name including a data identifier determined using message digest function MD5 of the data, wherein said data used by the MD5 function comprises the contents of the particular data file; and
in response to a request for the particular data file, the request including the other name of the particular data file, causing the particular data file to be provided from a given one of the servers of the network of servers, wherein the data file may be a file, a portion of a file, a page in memory, a digital message, a digital image, a video signal or an audio signal.
-
-
55. A method, in a network comprising a plurality of processors, some of the processors functioning as servers and some of the processors functioning as clients, wherein some processors in the network communicate with each other using a TCP/IP communication protocol, wherein a key is required to identify a file on the network and wherein ordinarily the key is a name or address for the file, the method comprising:
-
storing some files on a first server in the network and storing copies of some of the files from the first server on a set of cache servers distinct from the first server;
for a particular file, determining a different cache key from the ordinarily used cache key for the file, the different cache key being determined using a message function MD5 of the data, wherein said data used by the MD5 function comprises the contents of the particular file; and
responsive to a client request for the particular file, the request including the different cache key for the file, causing the particular file to be provided to the client, wherein the data in the file may represent a digital message, a digital image, a video signal or an audio signal.
-
Specification