Enforcement and policing of licensed content using content-based identifiers
DC CAFCFirst Claim
1. In a system in which a plurality of files are distributed across a plurality of computers, a method comprising:
- obtaining a name for a data file, the name being based at least in part on a given function of the data, wherein the data used by the given function to determine the name comprises the contents of the data file; and
in response to a request for the a data file, the request including at least the name of the particular file, causing a copy of the file to be provided from a given one of the plurality of computers, wherein a copy of the requested file is only provided to licensed parties.
10 Assignments
Litigations
3 Petitions
Reexaminations
Accused Products
Abstract
Data files are distributed across a plurality of computers. The computers may form a network such as a content delivery network (CDN) or a peer-to-peer network. The network may operate as a TCP/IP network such as the Internet. Data files may represent may represent digital messages, images, videos or audio signals. For content—data items or files in the system—a name is obtained (or determined), where the name is based, at least in part, on a given function of the data in a data item or file. The given function may be a message digest or hash function, and it may be MD4, MD5, and SHA. A cony of a requested file is only provided to licensed (or authorized) parties. The system may check one or more computers for unauthorized or unlicensed content. Content is served based on a measure of availability of servers.
278 Citations
56 Claims
-
1. In a system in which a plurality of files are distributed across a plurality of computers, a method comprising:
-
obtaining a name for a data file, the name being based at least in part on a given function of the data, wherein the data used by the given function to determine the name comprises the contents of the data file; and
in response to a request for the a data file, the request including at least the name of the particular file, causing a copy of the file to be provided from a given one of the plurality of computers, wherein a copy of the requested file is only provided to licensed parties. - View Dependent Claims (2, 3, 4, 5, 52)
-
-
6. A method, in a system in which a plurality of files are distributed across a plurality of computers, wherein data in a file in the system may represent a digital message, a digital image, a video signal or an audio signal, the method comprising:
-
obtaining a name for a data file, the name having been determined using an MD5 function of the data, wherein the data used by the MD5 function comprises the contents of the data file; and
in response to a request for the data file, the request including at least the name of the data file, providing a copy of the data file from a given one of the plurality of computers, said providing being based at least in part on the obtained name, and wherein a copy of the requested file is only provided to licensed parties.
-
-
7. A method, in a system in which a plurality of files are distributed across a plurality of computers, wherein some of the computers communicate with each other using a TCP/IP communication protocol, the method comprising:
-
obtaining a name for a data file, the contents of said data file representing a digital image, the name having been determined using at least a given function of the data in the data file, wherein the data used by the given function to determine the name comprises the contents of the data file; and
in response to a request for the data file, the request including at least the name of the data file, providing a copy of the file from a given one of the plurality of computers, wherein a copy of the requested file is not provided to unlicensed parties or to unauthorized parties.
-
-
8. A method, in a network comprising a plurality of computers, some of the computers functioning as servers and some of the computers functioning as clients, wherein some computers 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, the method comprising:
-
storing some files on a first computer in the network and storing copies of some of the files from the first computer on a set of computers distinct from the first computer;
for a particular file, determining a different cache key from an ordinarily used key for the file, the different key being determined at least in part using a message function MD5 of the data, wherein the data used by the function to determine the name comprises the contents of the particular file; and
responsive to a request for the particular file, the request including the different key for the file, causing a copy of the particular file to be provided to the requester, wherein the requested file is not provided to unlicensed parties, and wherein the contents of the file may represent;
a page in memory, a digital message, a digital image, a video signal or an audio signal.
-
-
9. A content delivery method, comprising:
-
distributing files across a network of servers;
for a particular file having a contextual name specifying locations in the network at which the file may be located, determining another name for the particular file, the other name including at least a data identifier determined using a given function of the data, where said data used by the given function to determine the other name comprises the contents of the particular file;
obtaining a request for the particular file, the request including the contextual name and the other name of the particular file; and
responsive to the request, providing a copy of the particular file from one of the servers of the network of servers, said providing being based, at least in part, on the other name of the particular item, wherein the requested file is not provided to unlicensed parties.
-
-
10. A method, in a system in which a plurality of files are distributed across a plurality of computers, the method comprising:
-
obtaining a name for a data file, the name being based at least in part on a given function of the data, wherein the data used by the function comprises the contents of the particular file;
determining, using at least the name, whether a copy of the data file is present on at least one of said computers; and
determining whether a copy of the data file that is present on a at least one of said computers is an unauthorized copy or an unlicensed copy of the data file. - View Dependent Claims (11, 12)
-
-
13. A method, in a system in which a plurality of files are distributed across a plurality of computers which form a peer-to-peer network, the method comprising:
-
obtaining a True Name for a data file, the True Name being based at least in part on a given function of the data, wherein the data used by the given function comprises the contents of the particular file; and
determining, using at least the name, whether an unlicensed or unauthorized copy of the data file is present on a particular computer.
-
-
14. A method comprising:
-
obtaining a name for a data file, the name being based at least in part on a function of the data, wherein the data used by the function comprise at least the contents of the file; and
in response to a request for the data file, the request including at least the obtained name of the data file, causing the contents of the data file to be provided from a computer having a licensed copy of the data file. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21)
-
-
22. A method, in a system in which a plurality of files are distributed across a plurality of computers, the method comprising:
-
obtaining a name for a data file, the name being based at least in part on an MD5 function of the data which comprises the contents of the particular file; and
determining, using at least the obtained name, whether an unauthorized or unlicensed copy of the data file is present on a at least one of said computers.
-
-
23. A method comprising:
-
obtaining a list of file names, at least one file name for each of a plurality of files, each of said file names having been determined, at least in part, by applying a function to the contents of the corresponding file; and
using at least said list to determine whether unauthorized or unlicensed copies of some of the plurality of data files are present on a particular computer. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30)
-
-
31. A method comprising:
-
obtaining a list of True Names, one for each of a plurality of files, wherein, for each of the files, the True Name for that file is determined using a function of the contents of the file;
for at least some computers that make up part of a peer-to-peer network of computers, comparing at least some of the contents of the computers to the list of True Names to determine whether unauthorized or unlicensed copies of some of the plurality of data files are present on those computers; and
based at least in part on said comparing, if a computer is found to have content that it is not authorized or licensed to have, recording information about the computer and about the unauthorized or unlicensed content. - View Dependent Claims (32, 33, 34)
-
-
35. A method comprising:
-
obtaining a list of True Names, one for each of a plurality of files, wherein, for each of the files, the True Name for that file is determined using an MD5 function of the contents of the file;
comparing the True Names of at least some of the contents of a computer to the list of True Names to determine whether unauthorized or unlicensed copies of some of the plurality of data files are present on that computer; and
based at least in part on said comparing, if a computer is found to have content that it is not authorized or licensed to have, recording information about the computer and about the unauthorized or unlicensed content.
-
-
36. In a system in which a data file is distributed across a plurality of computers, a method comprising:
-
obtaining a name for the data file, the name being based at least in part on a given function of the data, wherein the data used by the function which comprise the contents of the data file; and
determining, using at least the name, whether an unauthorized or unlicensed copy of the data file is present on a particular one of said computers.
-
-
37. Computer-readable media tangibly embodying a program of instructions executable by at least one computer, the program comprising code to:
-
obtain a name for a data file, the name being based at least in part on a given function of the data, wherein the data used by the function comprises the contents of the data file; and
in response to a request for the a data file, the request including at least the name of the particular file, cause a copy of the file to be provided from a given one of the plurality of computers, wherein the copy is only provided to licensed parties.
-
-
38. Computer-readable media tangibly embodying a program of instructions executable by at least one computer, the program comprising code to:
-
obtain a True Name for a data file, the True Name being based at least in part on a given function of the data, wherein the data used by the function comprises the contents of the particular file; and
determine, using at least the name, whether an unauthorized or unlicensed copy of the data file is present on a particular computer.
-
-
39. Computer-readable media tangibly embodying a program of instructions executable by at least one computer, the program comprising code to:
-
obtain a list of file names, one for each of a plurality of files, each of said file names having been determined, at least in part, by applying a function to the contents of the corresponding file; and
determine, using at least said list, whether unauthorized or unlicensed copies of some of the plurality of data files are present on a particular computer.
-
-
40. Computer-readable media tangibly embodying a program of instructions executable by at least one computer, the program comprising code to:
-
obtain a name for the data file, the name being based at least in part on a given function of the data which comprise the contents of the data file; and
determine, using at least the name, whether an unauthorized or unlicensed copy of the data file is present on a particular one of said computers. - View Dependent Claims (41)
-
-
42. A computer system programmed to:
-
obtain a list of file names for a plurality of files, each of said file names having been determined, at least in part, by applying a function to the contents of the corresponding file; and
determine, using at least said list, whether unauthorized or unlicensed copies of some of the plurality of data files are present on a particular computer. - View Dependent Claims (43, 44)
-
-
45. In a system in which a plurality of files are distributed across a plurality of computers, at least some of the computers forming a peer-to-peer network, a method comprising:
-
obtaining a name for a data file, the name being based at least in part on a given function of the data, wherein the data used by the given function comprises the contents of the data file; and
in response to a request for the a data file, the request including at least the name of the particular file, attempting to cause a copy of the file to be provided from a given one of the plurality of computers, wherein the requested file is only provided to authorized or licensed parties.
-
-
46. A method, in a system in which a plurality of files are distributed across a plurality of computers, at least some of the computers forming a peer-to-peer network, the method comprising:
-
obtaining a name for a data file, the name being based at least in part on a given function of the data, wherein the data used by the function comprises the contents of the data file;
determining whether a copy of the data file is present on a at least one of said computers; and
determining, using at least the name, whether a copy of the data file that is present on a at least one of said computers is an unlicensed copy of the file.
-
-
47. A method, in a system in which a plurality of files are distributed across a plurality of computers, the method comprising:
-
determining whether a copy of a data file is present on a at least one of said computers;
obtaining a name for a data file, the name being based at least in part on a given function of the data which comprises the contents of the data file; and
,using at least the name, attempting to determine whether a copy of the data file that is present on the at least one of said computers is an unlicensed copy of the file. - View Dependent Claims (48, 49, 50, 51, 53)
-
-
54. A method, in network in which a plurality of files are distributed across a plurality of computers of the network, the method comprising:
-
determining whether a copy of a data file is present on a at least one of said computers, said data file representing one or more of a digital image, a video signal or an audio signal;
obtaining a name for the data file, the name being based at least in part on an MD5 function of the data which comprises the contents of the data file; and
,when a copy of the data file is found to be present on one of the computers, determining, using at least the name, whether the copy of the data file is an authorized or licensed copy of the data file; and
if a computer is found to have a file that it is not authorized or licensed to have, recording information about the computer or the data file.
-
-
55. In network in which a plurality of files arc distributed across a plurality of computers of the network, a method comprising:
for each file of a plurality of data files, (a) determining whether a copy of the file data file is present on a at least one of said computers;
(b) obtaining a name for the data file, the name being based at least in part on an MD5 function of the data which comprises the contents of the data file;
(c) when a copy of the data file is found to be present on one of the computers, determining, using at least the name, whether the copy of the data file-is an authorized or licensed copy of the data file; and
,(d) if a computer is found to have a file that it is not authorized or licensed to have, recording information about the computer or the data file.
-
56. A method, in a system in which a plurality of files are distributed across a plurality of computers, the method comprising:
-
obtaining a name for a data file, the name being based at least in part on a given function of the data, wherein the data used by the given function comprises the contents of the data file; and
determining, based at least in part on the obtained name, whether a copy of the data file that is present on a at least one of said computers is an unauthorized or unlicensed copy of the file.
-
Specification