throbber
Case 5:18-md-02834-BLF Document 406-13 Filed 04/12/19 Page 1 of 12
`Case 5:18-md-02834-BLF Document 406-13 Filed 04/12/19 Page 1 of 12
`
`EXHIBIT 12
`EXHIBIT 12
`
`

`

`Case 5:18-md-02834-BLF Document 406-13 Filed 04/12/19 Page 2 of 12
`
`(12) United States Patent
`Farher et al.
`
`I 1111111111111111 11111 11111111111111111111111111111111111111111111111111111
`US006928442H2
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 6,928,442 B2
`Aug. 9, 2005
`
`(54) ENFORCEMENT AND POLICING OF
`LICENSED CONTENT USING
`CONTENT-BASEU IUENTIFIERS
`
`(7S)
`
`Inventors: Dnvid A. Forber, Ojai, CA (US);
`ltonnld U. L11chm1m, Northbrook, IL
`(US)
`
`(73) A'iSignees: Kinetech, Inc., Northbrook, IL (US);
`Snvvls, Jnc., 'lhwn & Counlry, MO
`(US)
`
`( *) Nolice:
`
`Subject to any disclaimer, the term of this
`patenl is extended or adjusted under 35
`U.SC. 154(b) by O clays.
`
`(21) Appl. No.: 09/987,723
`Nov. 15, 2001
`rt·ior Puhlicntion Data
`
`(22) Filed:
`
`(6S)
`
`(63)
`
`(51)
`(52)
`
`(58)
`
`(56)
`
`US 2002/0052884 A 1 May 2, 2002
`
`Relntcd U.S. Appllcntlon Dato
`
`Cantinunlion of application No. 09/283,160, filed on Apr. 1,
`11 <;<, now Pat. No. 6,41. .280, which is a divi$ion of
`application No. 08/960 079, lilcu on Od. 24, 11 97, now Pal.
`No. 5,97S.7CJ1, which i.~ 11 conlinua{ion of applil-alion No.
`08/425,160, filed on Apr. 11 , 1995, now abandoned.
`Int. Cl. 7
`• ••• ... ....... . ....... . .... .. ............ ...... . G06F 17/30
`U.S. Cl . .... ......................... 707/10; 707i3; 707/ 101;
`707/200; 709/203; 709/219; 709/229
`Field of Search ........................ ...... 707/3, 6, 9, 10,
`707/101, 200; 709/203, 219, 229
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`3,668,647 A
`4,215,402 A
`4,290,105 A
`4,376,299 A
`4,405,829 A.
`4,412,285 A
`
`6/1972 Evangelisli
`7/1980 Mitchell
`9/1981 Cichelli
`3/1983 Rivesl
`9/1983 Rivest
`10/1983 Neches
`
`(Continued)
`
`FOREIGN PATENT DOCUMENTS
`
`EP
`
`0592045
`
`411994
`
`OTHER PUBLICATIONS
`
`Gwerlzrnan, James, et al. "111e Case for Geographical Push(cid:173)
`Caching." Technical Report HU TR 34-94 (excerpt), Har(cid:173)
`vard University, DAS, Cambridge, MA 02138, 1994, 2 pgs.
`Grigni, Michelangelo, el al. "Tight Bounds on Minimum
`Broadcasts Networks." SIAM Journal of Discrete Math(cid:173)
`ematics, vol. 4, No. 2, May 1991, pp. 207- 222.
`Devine, Robert. "Design and Implcmentalion of DDH: A
`Distributed Dynamic Hashing Algorithm." In Proceedings
`of 4th Inlernatiotrnl Conference on Foundations of Data
`Organizations and Algorithms, 1993, pp. 101-114.
`Deering, Stephen, el al. "Mullicast Routing in Datagram
`Inlernelworks and Extended LANs." ACM Transactions on
`Computer Systems, vol. 8, No. 2, May 1990, pp. 85-110.
`
`(Continued)
`
`Primary Examiner-Luke S Wossum
`Assistafll Examiner-Khanh Pham
`(74) Attorne_)\ Agent, or Firm-Davidson llerquist Jackson
`& (,owdey, LLP
`
`(57)
`
`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-lo-peer network. 1be network may
`operate as a TCP/IP network such as the lnlernel. Data files
`may represent may represent digital messages, images,
`videos or audio signals. For contenl--data items or files in
`tbe system-a name is obtained (or determined), where the
`name is based, at least in parl, on a given function of the data
`in a dala 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. Contcnl
`is served based on a measure of availability of servers.
`
`56 Claims, 31 Drawing Sheets
`
`DATAFTl!M
`
`COMPUTI! MD FUNCTION ON
`DATA ITEM
`
`APPl:>ID LENGTH MOOULD 32 OF
`DATA ITEM
`
`...................... . ··-···-----···
`
`TRUENAMe t
`
`

`

`Case 5:18-md-02834-BLF Document 406-13 Filed 04/12/19 Page 3 of 12
`
`US 6,928,442 B2
`
`1
`ENFORCEMENT AND POLICING OF
`LICENSED CONTENT USING CONTENT(cid:173)
`RASRD IDRNTIFIRRS
`
`This is a continuation of application Ser. No. 09/283,160,
`filed Apr. 1, 1999, now U.S. Pat. No. 6,415,280, which is a
`division of application Ser. No. 08/960,079, filed Oct. 24,
`1997, now U.S. Pal. No. 5,978,791 filed Oct. 24, 2001 which
`is a continuation of Ser. No. 08/425,160, filed Apr. 11, 1995,
`now abandoned.
`
`BACKGROUND OF THE INVENTION
`
`5
`
`2
`being tiles, directories, records in the database, objects in
`object-oriented programming, locations in memory or on a
`physical device, or the like) are always defined relative lo a
`specific context. For instance, the file identified by a par-
`ticular file name can only be determined when the directory
`containing the file (iht: context) is known. The file identified
`by a pathname can be determined only when the file system
`(context) is known. Similarly, the addresses in a process
`address space, the keys in a database table, or domain names
`10 011 a global computer network such as the Internet are
`meaningful only because they are spccilied relative to a
`context.
`In prior art systems for identifying data items there is no
`direct relationship between the data names and the data item.
`15 The same data name in two different contexts may refer to
`different data items, and two different data names in the
`same context may refer to the same data item.
`In addition, because there is no correlation between a data
`name and the data it refers to, there is no a priori way to
`20 confirm that a given data item is ia fact the one named by a
`data name. For instance, in a DP system, if one proccs.<;or
`requests that another processor deliver a data item with a
`given ch1ta name, the requesting processor cannot, in
`general, verify that the data delivered is the correct data
`(given only the name). Therefore it may require further
`processing, typically on the part of the requester, lo veri[y
`that the data item it has obtained is, in fact, the item it
`requested.
`/\ common operation in a 1)1' system is adding a new data
`item to the system. When a new data item is added lo the
`system, a name can be assigned to it only by updating the
`context in which names are defined . Thus such systems
`require a centralized mechanism for the management of
`names. Such a mechanism is required even in a multi-
`processing system when data items arc created and identified
`at separate processors in distinct locations, and in which
`there is no other need for communication when data items
`arc added.
`I □ many data processing systems or environments, data
`items are transferred between different locations in the
`system . These locations may be processors in the data
`processing system, storage devices, memory, or the like. For
`example, one processor may obtain a data item from another
`45 processor or from an external storage device, such as a
`floppy disk, and may incorporate that data item into its
`syslem (using the name provided wilh that data item).
`However, when a processor (or some location) obtains a
`data item from another location in the DP system , it is
`50 possible that this obtained data item is already present in the
`system (either at the location of the processor or at some
`other location accessible by the processor) and therefore a
`duplicate of the data item is created. This situation is
`common in a network data processing environment where
`55 proprietary software products a re installed from floppy disks
`onto several processors sharing a common file server. In
`these systems, it is often the case that the same product will
`be installed on several systems, so that several copies of
`each Ille will rnside on the common lile server.
`In some data processing systems in which several pro-
`cessors are connected in a network, one system is designated
`as a cache server to maintain master copies of data items,
`and other systems are designated as cache clients to copy
`local copies of the master data items into a local cache on an
`65 as-needed basis. Before using a cached item, a cache client
`must either reload the cached item, he informed of changes
`to the cached item, or confirm that the master item corre-
`
`J. Field of the Invention
`This invention relates to data prc\cessing systems anti,
`more particularly, to data processing systems wherein data
`items are identified by substantially unique identifiers which
`depend on all of the clata in the data items and only on the
`dala in the data items.
`2. Background of the Invention
`Data processing (DP) systems, computers, networks of
`computers, or the like, typically offer users and programs
`various ways lo idenlify the data in the systems.
`Users typically identify data in the data processing system
`by giving the data some form of name. Por example, a 25
`typical operating system (OS) on a computer provides a file
`system in which data items are named by alphanumeric
`identifiers. Programs typically identify data in the data
`processing system using a location or address. For example,
`a program may identify a record in a file or database by using 30
`a record number which serves to locate that record.
`In all but the most primitive operating systems, users and
`programs are able to creale and use collections of named
`data items, these collections tl1cmsclvcs being named by
`identifiers. These named collections can then, themselves, 35
`be made part of other named collections. Por example, an
`OS may provide mechanisms to group Jiles (data items) into
`directories ( collections). These directories can then, them(cid:173)
`selvc. be made part of other directories. A data item may
`thus be identified relative to these nested di rectories using a
`sequence of names, or a so-called pathname, which defines
`a path through the directories to a particular data item (file
`or directory).
`As another example, a database management system may
`group data rewrds (data items) into tables and then group
`these tables into database files (collections). The complete
`address of any data record can then be specified using the
`database file name, the table name, and the record number of
`that data record.
`Other examples of identifying data items include: identi(cid:173)
`fying files in a network file system, identifying objects in an
`object-oriented database, identifying images in an image
`database, and identifying articles in a text database.
`In general, the terms ''data" and "data item" as used herein
`refer to sequences of bits. Thus a data item may be the
`contents of a file, a portion of a file, a page in memory, an
`object in an object-oriented program, a digital message, a
`digital scanned image, a part or a video or audio signal, or
`any other entity which can be represented hy a sequence of r,n
`bits. The term "data processing'' herein refers to the pro(cid:173)
`cessing of data items, and is sometimes dependent on the
`type of data item being processed . For example, a data
`prm;essor for a digital imagt: may differ from a data pro(cid:173)
`cessor for an audio signal.
`In all or the prior data processing systems the names or
`identifiers provided to identify data items (the data items
`
`40
`
`

`

`Case 5:18-md-02834-BLF Document 406-13 Filed 04/12/19 Page 4 of 12
`
`US 6,928,442 B2
`
`10
`
`39
`True Names in Relational and Object-Oriented Databases
`Although the preferred embodiment of this invention has
`been presented in the context of a file system, the invention
`of True Names would be equally valuable in a relational or
`object-oriented database. A relational or object-oriented 5
`database system using True Names would have similar
`benefits lo those of the file system employing the invention.
`For instance, such a database would permit efficient elimi(cid:173)
`nation of duplicate records, support a cache for records,
`simplify the proce&<; of maintaining cache consistency, pro-
`vitle localion-imkpendenl access lo records, maintain
`archives and histories of records, and synchronize with
`distant or disconnected systems or databases.
`The mechanisms described above can be easily modified
`to serve in such a database 1;11vironment. 'll1e True N,rnte 15
`registry would be used as a reposito ry of dntnbasc records.
`All references to records would be via the True Name of the
`record. (The Local Directory Extensions table is an example
`of a primary index that uses the True Name as the unique
`identifier of the desired records.)
`In such a database, the operations of inserting, updating,
`and deleting records would be implemented by first assimi(cid:173)
`lating records into the registry, and lhen updating a primary
`key index lo map the key of the record lo its contents hy
`using the True Name as a pointer to the contents.
`The mechanisms described in the preferred embodiment,
`or similar mechanisms, would be employed in such a
`system. These mechanisms could include, for example, the
`mechanisms for calculating true names, assimilaiing,
`locating, realizing, deleting, copying, and moving True 30
`Piles, for mirroring True riles, for maintaining a cache of
`True Files, for grooming True Files, and other mechanisms
`basi:d on lhe use or substantially unique identilii:rs.
`While the invention has been described in connection
`with what is presently considered to be tbc most practical 35
`and preferred embodiments, it is to be understood that the
`invention is not to be limited lo the disclosed embodiment,
`but on the contrary, is intended to cover various modifll:a(cid:173)
`tions and equivalent arrangements included within the spirit
`and scope of the appended claims .
`What is claimed is:
`1. Io a system in which a plurality of files arc distributed
`across a plurality of computers, a method comprising:
`oblaining a name for a data file, tbe name being based at
`least in part on a given fonetion of the data, wherein the 45
`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 fl!e, the request
`including at least lht: name of the particular lile, causing
`a copy of the file to be provided from a given one of the 50
`plurality of computers, wherein a copy of the requested
`file is only provided lo licensed parties.
`2. A method as in claim 1 further comprising:
`determ ining, using al lcust the name, whelher a copy of
`the data file is present on a particular one of said
`computers.
`3. A method as in claim 1 further comprising:
`determining, using at least the name, whether an unau(cid:173)
`thorized or uulicensed copy of tile data file is present on 60
`a particular one of said computers.
`4. A method as in claim 1, further comprising:
`maintaining accounting information relating to the data
`files.
`5. A method as in claim 4, wherein the maintaining of 65
`accounting information includes al kasl some of activities
`selected from:
`
`40
`(a) tracking which files have been stored on a computer;
`and
`(b) tracking which files have been transmitted from a
`computer.
`6. A method, in a system in which a plurality of files are
`distributed ucross a plurality or 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 com(cid:173)
`prising:
`obtaining a name for a data file, tbe name having been
`dekrmim:d using an M 1)5 !'unction or tin: data, wherein
`the data used by the MOS function comprises the
`contents of the data file; and
`in response to a request for tbe data file, the request
`int:luding at least lhe name of the data li lc, providing a
`copy of the data fil e from a given o ne 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 lo licon~ed parties.
`7. A method, in as •stem in which a 1>l11r:11ity of files are
`distributed across a plurality of computers, wherein some of
`the computers communicate with each olher using a TCP/IP
`communication protocol, the method comprising:
`obtaining a name for a data lile, 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 conlents
`of the data file; and
`in response to a request for the data file, the request
`including at least the name of tbe data file, providing a
`copy of the file from a given one of the plurality of
`computers, wherein a copy of the re4uesled Ille is nol
`provided to unlicensed parties or to unauthorized par(cid:173)
`ties.
`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
`40 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 tbe network, the method
`comprising:
`storing some files on a first computer in the network and
`storing copies of some of the files from
`the firs!
`computer on a set of computers distinct from the first
`computer;
`for a partirnlar 111c, 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 MOS of the data, wherein th e data used by the
`function to determine the name comprises the contents
`of lht: partirnlar file; and
`n:sponsivc to a rct111e~t for the particular file, lhi; request
`including the dilicrcnt key for the tile, causing a copy
`of the parlicu Jar file lo 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 i n
`memory, a digital message, a digital image, a video
`signal or an audio signal.
`9. I\ cnnlcnt delivery method, comprising:
`distributing files across a network or servi:rs;
`for a particular file having a contextual name specifying
`locations in the network al which the lile may be
`located, determining another name for the particular
`
`20
`
`25
`
`55
`
`

`

`Case 5:18-md-02834-BLF Document 406-13 Filed 04/12/19 Page 5 of 12
`
`US 6,928,442 B2
`
`15
`
`41
`file, the other name including at least a data identifier
`determined using a given fundion or the data, where
`said duta used h y 1he g iven ru11 cl ion lo delerrninc the
`Olh<ir irnme c11n1 pri.~.:.,;; th e 0011lents c,f 1hc particular lilc;
`obtn in ing o req uest for the particufar fil e, the ccq11cst s
`including the conlex tunl 11nme nnd the ot he r name o f
`the par1ic ul11r file; ancl
`rei;p ons ive to the request , provitling a copy of the par(cid:173)
`lieu la r f1lc from o n · of the i;crvers of the network of
`servers, said providing being based, at least in part, on 10
`the othe r 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 arc
`distributed across a plurality of computers, the method
`compr i, ing:
`obtaining a name for a data file, the name being based at
`lea. t in part on a given function of the data, whcrci n !he
`data used by the function comprises the contents of the
`particular file;
`determining, using at least the nnme, whether a copy of
`the c!ntn file is present on at least o ne of said computers; 20
`and
`determining whether a copy of !he data ti le thnl L-; prc.<;eu t
`on a at least one of said computers is an un;iulhori1.cd
`copy or an unlicensed copy of lhe cl11rn file.
`11. A method as in claim 10 further compris.iL1g:
`allowing the file to be provided from one of the com pul.:r:s
`having an aulhorizecl or licensed copy of the 111c.
`12. A method as in claim 10 wherein al lenst stime of lhe
`plurality of computers comprise a peer-to -peer ne two rk.
`13. A method, in a system in which a plu ra lity of 11lc: arc
`distributed across a plurality of computers w h i I, form a
`peer-In-peer nelwork, the method comprising:
`obtaining a True Name for a data file, lhc 'l'rnc Na me
`being based at least in part on a given runcti o n o( Ilic _15
`dala, wherein the dala used by lhc given
`l'nndion
`comprises the contents of the parlicu lar file; Rncl
`determining, using at leas! the name, whether an unl i(cid:173)
`censed or unaulhorized copy of the tlal :1 fil e is present.
`on a particular computer.
`14. A method comprising:
`obtaining a name for a data tile, lbe name being, based al
`least in part on a function of the datn wln:rcin the dnln
`used by the fu□ction comprise al least th e ctrntcnls of
`the file; and
`in response lo a request for the daln fi le, 1he req uest
`including at least lhe obtained nam e of the data Ille,
`causing the conlents of lhe data file to he p.rovided fnim
`a computer having a licensed copy of tho dala lilc.
`15. A method as in claim 14 wherein t.hc f1inctio n i: n 5fJ
`message digest function or a hasl1 function.
`L6. A method :ts in cl nirn 14 wh rein the function is
`selected rrom the l'unclio os: MD4-, MDS, and SHA.
`l7. A method ns .in claim l 4 wherei n the given function
`rando ml y distributes its outpu ts .
`18. A method as in claim 14 whe rein the function pro(cid:173)
`duces a substantially unique value based on the data com(cid:173)
`pris ing the dala lilc.
`L9. A method ~s in c laim 14 wherei n n daln fi le may
`cmnpriw a tile a pu n ion u r a file, 11 pug,e in mctnnry, ;t di gital 60
`nici;.sage, n digit11I irnnge, a vidCtl signa l or nn aud io s ign al.
`20. A me thod as in claim 14 wherein certain processors in
`the nc lwork communic;1le with each other using a TCP/IP
`communication protocol.
`21. A method as in claim 14 wberein said name for said 65
`data nle, as determined using said runclion, will chauge
`when the data tile is modified.
`
`42
`22. Amethocl, in a system in which a pluralily of files are
`distributed across a plurality of computers, the method
`comprising:
`obta ining a na me for a daln li le. th e nnmc being based al
`lea t i11 part 0 11 an MDS l~mcli on of t he d nla which
`comprises the conlenls ol' Ille p11r licul;1r fi k:; and
`determ ini ng, using al least the obtained name, wbclbcr an
`unau thorized or unlicensed copy of the dala fik is
`present on a at least one of said computers.
`23. A method comprising:
`oblaining a list of tile names, al leasl one file name for
`each of a plurality of files, each of said ftle names
`having been determined, al least in part, by applying a
`func tion lo lhe contenls of the corresponding file; and
`us ing ut least said list tu <lclerm'inc whelhc r un;n1 lhor il.ctl
`or unlicensed C(1pios of snmc o f !he plurol ity of dala
`files are present o n a particula r computer.
`24. A method as in claim 23 further comprising:
`in response lo a request l~r n J)Mliculnr dntu lile, nllowing
`the conlellls o r the daln ril e to be prov iclccl
`l'rom a
`C<u11p11 1er de tcm1inecl lo have a licensed o r aut horized
`copy of th e d ata file.
`25 . {\ 111clhcKI as in claim 23 wherein lhe parlicular
`25 cornp111er is parl of a peer-to-peer network of computers.
`2/i. A me thod tti- in claim 23 further comprising:
`if' the comp ute r is found to have a tile that it is nol
`autlmril.cd or licensed lo have, recording information
`aboul rhe computer and about the file.
`27. A me thod as in claim 23 wherein the function is a
`message digosl [u net ion or a hash function.
`28 . A met(K)d as in claim 23 wherein lhe funclinn is
`sldccted from the funclions: MD4, MDS, and SHA.
`29. A mctht,d ns in claim 23 wberein the given function
`mndonll y (listribu1es its outputs.
`30. A method ns in claim 23 wherein the function pro(cid:173)
`lluccs ,t suhstm1!ially unique value based on the dala corn(cid:173)
`p.ri. iog the data file.
`Jl. A mclhod comprising:
`obtaining a list of True Names, one for each of a plurality
`~1r flies, wherein, for each of the files, the True Name for
`llrnl file is de termined using a function of !he contents
`or lhc 111e;
`le,tsl ~nme computers that make up part of a
`[(Ir ill
`pccr-lo-pct! r network of computers, comparing al least
`-'iO lllC ol' thc contents of !he computers lo the list of True
`N11111 e1
`to determine whether unaulhorizecl or unli(cid:173)
`censed copies of some of the plurality of data files are
`prc,,cnl 011 those computers; and
`based at least in part on said comparing, if a computer is
`round lo have conlenl lhal it is not authorized or
`liccnlled 10 lrnve, recording information about the com-
`1m1cr and ubou t the umlll tho rizcd or nnliccn~d t1mlcnt.
`32. A met hod us in claim 31 wbcrcio the True Names arc
`<lclermined using a message clige-~I l'\l!lCI ion or a hash
`runcrion.
`33. A melhnd as in claim 31 wherein the function is
`scleclcd l'rom the functions: MD4, MOS, and SHA.
`34. A method ~s in claim 3 l , l'urlhcr C()mprising:
`in response lo n req ucsi t'or the d ata file. allow ing a copy
`of Ille file 10 be pmvidccl from n given one of the
`pluralily of computers having an authorized or licensed
`copy or the Ille.
`35. A method comprising:
`oblaining a !isl ol'Truc Names, one !'or each nf a ph1rality
`of files, wherein, for each of the files, the True Name for
`
`30
`
`40
`
`55
`
`

`

`Case 5:18-md-02834-BLF Document 406-13 Filed 04/12/19 Page 6 of 12
`
`US 6,928,442 B2
`
`JO
`
`IS
`
`20
`
`43
`that file is determined using an MOS function of the
`contents of !he nle;
`comparing the True Names of al least some of the contents
`of a computer to the list of True Names lo determine
`whether unauthoriz.ecl or unlicensed copies of some of s
`the plurality of data til es are present on that computer;
`and
`based al least in part on said comparing, if a computer is
`found to have content that ii is not authorized or
`licensed to have, recording information about the com-
`putcr and about the un authorized or unlicensed content.
`36. In a system in which a data file is distributed across
`a plurality of computers, a method comrrising:
`obtaining a name for the data file, the name being based
`al least in part on a given function of the data, wherein
`the data used by the function which comprise lhc
`contents of the data file; and
`determining, using at least the name, whether an unau(cid:173)
`thorized or unlicensed copy of the data file is present on
`a particular one of said computers.
`37. Computer-readable media tangibly embodying a pro(cid:173)
`gram of instructions executable by at least one computer, the
`program comprising code to:
`obtain a name for a data 11le, 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 nnmc of lhc p~rlicular file, cause
`a 1.'0py of lhe file lo be provided fmnt a given one of the 30
`plurality of computers, wherein the copy is only pro(cid:173)
`vided to licensed parties.
`38. Computer-readable media tangibly embodying a pro(cid:173)
`gram of inslrm:lions cxccutable by at leasl one computer, lhc
`program comprisi ng code lo:
`obtain a True Name for a data 11le, the True Name being
`based at least in part oo a given function of the data,
`wherein the data used by the runclion comprises lhe
`con1cnls of the particular file; and
`determine. using at least the name, wbether an unautho-
`rized or unlicensed copy of the data file is present on a
`particular computer.
`39. Computer-readable media tangibly embodying a pro(cid:173)
`gram of instruclion: c:--ccutable by al least one computer, the
`program comprising code to:
`obtain a !isl of tile names, one for each of a pluralily 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
`delermine, using at least said list, whether unauthorized or
`unlicensed copies oi' some of the plurality of dala files
`are present on a particular computer.
`40. Computer-readable media tangibly embodying a pro(cid:173)
`gram of instructions executable by at least one computer, the 55
`program comprising code to:
`obtain a name for lhe data tile, the name being based at
`least in part on a given function of the dala which
`comprise the contents of lhe dala lile; and
`delermine, using at least the name, whether an unautho(cid:173)
`rized or unlicensed copy of lhc data file is present on a
`particular one of said computers.
`41. Media as in claim 40 when:in the given l'unclion is a
`message digest function or a hash function.
`42. A computer system programmed lo:
`obtain a lisl of file names for a plurality of liles, each of
`said file names having been determined, at least in part,
`
`44
`by applying a function to the conlenls o[ the corre(cid:173)
`spomling 11le; and
`determine, using al least said list, whether unauthorized or
`unlicensed copies of some of the plurality of data files
`arc present on a particular computer.
`43. A computer system as in claim 42 wherein lhe
`l'unction is a message cligesl function or a hash funclinn .
`44. A computer system as in claim 42 wherein the
`fonction is an MD5 function.
`45. In a system in which a plurality of tiles are distributed
`across a plurality of computers, al least some of the com(cid:173)
`puters forming a peer-to-peer network, a method compris(cid:173)
`ing:
`obtaining a name for a data tile, the name being based al
`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 dala file, the request
`including at lcasl the name of the particular file,
`allempling to cause a copy of the file lo be provided
`from a given one of the plurality of computers, wherein
`the requested file is only provided to authoriz.ed or
`licensed parties.
`46. A method, in a system in which a plurality of files are
`25 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 funclion of the data, wherein the
`data used by the function comprises the contents of the
`data Ille;
`determining whether a copy of \he clala file is present on
`a at least one of said computers; and
`determining, lL5ing al least the name, whether a copy of
`the data 111e lhat is present on a at leasl one of said
`computers is an unlieenscd copy of the file.
`47. A method, in a syslcm in which a plurality of files arc
`distributed across a plurality of computers, the method
`comprising:
`determining whether a copy of a data file is present on a
`al least one of said computers;
`obtaining a name for a data file, lhc name being based al
`least in parl on a given function of the data which
`comprises the contents of the data file; and,
`using al least tbe name, attempting to determine whether
`a copy of the data file that is present on tbc al least one
`of said computers is an unlicensed copy of the file .
`48. A method as in claim 47 wherein the given function
`comprises a mes.-;age digest or a hash function.
`49. A method as in claim 48 wherein the given function
`is selected from tbc functions: MD4, MD5 and SHA
`50. A method as in claim 47 further comprising:
`if a computer is found to have a file that it is nol licensed
`to have, recording information about the corriputer.
`51. A method as in claim 47, further comprising:
`maintaining accounting information relating to data files
`in the system.
`52. A method as in any one of claims 4 and 51, further
`60 comprising:
`using the accounting informalioo as a basis for a system
`in which charges are based on an identity of the data
`liles.
`53. A mclhocl as in claim 47, further comprising, for at
`least one computer in the system:
`(a) tracking which dala lilcs have het:n stored on a
`computer; and
`
`JS
`
`40
`
`45
`
`50
`
`65
`
`

`

`Case 5:18-md-02834-BLF Document 406-13 Filed 04/12/19 Page 7 of 12
`
`US 6,928,442 B2
`
`45
`(b) tracking which data f-iles have been transmitted from
`a computer.
`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 ieast one of said computers, said data file represent(cid:173)
`ing 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 10
`al least in part on an MD5 function or 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

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket