USRE42051EExpiredUtility

Peer-to-peer automated anonymous asynchronous file sharing

Individually held — no corporate assignee on recordPriority: Oct 14, 1999Filed: Apr 17, 2008Granted: Jan 18, 2011
Est. expiryOct 14, 2019(expired)· nominal 20-yr term from priority
G06F 16/152G06F 16/1834
46
PatentIndex Score
0
Cited by
37
References
40
Claims

Abstract

A service on a computer network that performs centralized searches based on index information transmitted by peer systems to a central site using an agent program running on each peer. Peer systems are directed to each other for the purpose of retrieving files. If none of the peers systems known to contain the files is online (and the file is therefore not available), the request is placed in a queue of file requests maintained by the central site. When a system containing the requested file connects to the service, the requested file is retrieved from that system and then distributed to the other systems which had requested the file.

Claims

exact text as granted — not AI-modified
1. A computer system for peer-to-peer file sharing comprising:
 a server computer having an index of information about files that reside on a plurality of peer computers, the server computer selectively coupled to the plurality of peer computers by a network;  
 a plurality of agent programs running on at least two of the plurality of peer computers and operable to transmit index information to the server computer and operable to transmit a requested file; and  
 a file sharing program running on the server computer and operable to perform centralized searches based on the index information transmitted to it across the network by the agent programs, to store peer computer file requests identifying a requested file transmitted across the network by a requesting peer computer of the plurality of peer computers, the requested file being referenced in the index information, and to direct a peer-to-peer computer connection for the purpose of exchanging files between the requesting peer computer and a storing peer computer storing the requested file upon detection of connection of the storing peer computer to the server.  
 
     
     
       2. The computer system of  claim 1 , wherein the server computer is also a peer computer. 
     
     
       3. The computer system of  claim 1 , wherein the contents of at least some of the files stored on a peer computer comprise nontextual data having meta data that comprises one or more vectors extracted from the files. 
     
     
       4. The computer system of  claim 1 , wherein each agent program creates the index information for selected files on each corresponding peer computer, the selected files selected by user input. 
     
     
       5. The computer system of  claim 1 , wherein each agent program creates the index information for selected files on each corresponding peer computer, the selected files selected by a computer algorithm. 
     
     
       6. The computer system of  claim 1 , wherein the agent program comprises a utility program that is resident in an operating system on the corresponding peer computer. 
     
     
       7. The computer system of  claim 1 , wherein the file sharing program comprises a utility program that is resident in an operating system on the corresponding server computer. 
     
     
       8. The computer system of  claim 1 , wherein the file sharing program is further operable to direct transfer of the requested file from the storing peer computer to the server upon detection of connection of the storing computer to the server when the requesting peer computer is not connected to the server, the file sharing program operable to transmit the requested file from the server to the requesting peer computer upon detection of connection of the requesting peer computer to the server. 
     
     
       9. A computer system for peer- to - peer file sharing comprising:      a server computer storing an index of information about files that reside on a plurality of peer computers, the server computer selectively coupled to the plurality of peer computers by a network;        wherein the server computer stores a file sharing program that is operable to:      perform centralized searches based on index information transmitted to it across the network by agent programs running on two or more of the plurality of peer computers, each agent program operable to transmit index information regarding one or more files to the server computer and further operable to transmit one of the one or more files to a peer computer in response to a request from that peer computer;        store file requests that identify a requested file and that are transmitted across the network by a requesting peer computer of the plurality of peer computers, the requested file being referenced in the index of information; and        direct a peer - to - peer computer connection for the purpose of exchanging files between the requesting peer computer and a storing peer computer storing the requested file, wherein said peer - to - peer computer connection is directed upon detection of connection of the storing peer computer to the server.       
     
     
       10. A system, comprising:
   a server system storing a central index of information for files that reside on a plurality of peer computers and that are available for peer - to - peer file sharing, wherein the server system is selectively coupled to the plurality of peer computers by one or more networks, wherein at least two of the plurality of peer computers have an agent program running on them that is operable to:      transmit index information to the server system to update the central index; and        transmit a requested file to a peer computer system to facilitate peer - to - peer file sharing;          wherein the server system is configured to execute a file sharing program that is operable to:      in response to queries, perform searches for files based on the central index;        store file requests from requesting peer computers of the plurality of peer computers, wherein the requested files are referenced in the central index, and wherein the stored file requests include a first request from a first of the plurality of peer computers for a first file stored by a second of the plurality of peer computers; and        upon detecting that the second peer computer is connected to the server computer, direct a peer - to - peer connection between the first and second peer computers to exchange the first file.       
     
     
       11. The system of  claim 10 , further comprising the plurality of peer computers. 
     
     
       12. The system of  claim 10 , wherein the server system is one of the plurality of peer computers. 
     
     
       13. The system of  claim 10 , wherein the second peer computer is located behind a firewall, and wherein the peer- to - peer connection includes the second peer computer sending a message to the first peer computer with the requested first file as an attachment to the message.   
     
     
       14. The system of  claim 10 , wherein the first file is exchanged anonymously between the first and second peer computers. 
     
     
       15. The system of  claim 10 , wherein the one or more networks include the Internet. 
     
     
       16. The system of  claim 10 , wherein the one or more networks include an intranet. 
     
     
       17. The system of  claim 10 , wherein the server system includes one or more computer systems. 
     
     
       18. The system of  10 , including a secondary DNS system configured to map names of the plurality of peer computers to IP addresses of the plurality of peer computers. 
     
     
       19. The system of  claim 10 , wherein the plurality of peer computers includes mobile devices. 
     
     
       20. The system of  claim 10 , wherein the file sharing program is operable to:
   receive the first file at the server system from the second peer computer when, upon the second peer computer being detected as connected to the server system, the first peer computer is detected as not being connected to the server system; and        upon the first peer computer subsequently re - connecting to the server system, transmit the first file from the server system to the first peer computer.     
     
     
       21. A server system selectively coupled to a plurality of peer computers via one or more networks, wherein the server system stores program instructions executable to:
   maintain a central index of files stored on various ones of the plurality of peer computers and that are available for peer - to - peer file sharing;        receive, from peer computers within the plurality of peer computers, requests for files referenced in the central index and stored on various ones of the plurality of peer computers;        store one or more of the received requests that are for files stored on peer computers that are not currently connected to the server system;        detect that a first peer computer has connected to the server system, the first peer computer storing a first file that is the subject of a stored file request from a second peer computer;        in response to said detecting, direct an anonymous peer - to - peer connection between the first and second peer computers to share the first file.     
     
     
       22. The server system of  claim 21 , wherein the server system stores program instructions executable to:
   after detecting that the first peer computer has connected to the server system, determine that the second peer computer is not currently connected to the server system;        in response to determining that the second peer computer is not currently connected to the server system, store the first file at the server system until detecting that the second peer computer has re - connected to the server system; and        transfer the first file to the second peer computer upon said detecting that the second peer computer has re - connected to the server system.     
     
     
       23. The server system of  claim 21 , wherein the first peer computer is located behind a firewall, and wherein the peer- to - peer connection includes the first peer computer sending an email message to the second peer computer, wherein the email message includes the first file as an attachment.   
     
     
       24. The server system of  claim 21 , wherein the server system is coupled to a system of computers configured to map names of the plurality of peer computers to addresses of the plurality of peer computers. 
     
     
       25. The server system of  claim 21 , wherein the server system is a distributed system. 
     
     
       26. The server system of  claim 21 , wherein the server system stores a plurality of files available for peer- to - peer file sharing with the plurality of peer computers.   
     
     
       27. A method, comprising:
   maintaining, at a server system, a central index of files stored on a plurality of peer computers coupled to the server system via one or more networks;        the server system receiving, from a first of the plurality of peer computers, a request for a first file referenced by the central index, wherein the first file is stored by a second of the plurality of peer computers that is currently not connected to the server system;        upon detecting that the second peer computer has connected to the server system, the server system directing a peer - to - peer connection between the first and second peer computers to share the first file.     
     
     
       28. The method of  claim 27 , wherein the peer- to - peer connection is anonymous and made via the Internet.   
     
     
       29. The method of  claim 27 , further comprising accessing a secondary domain system configured to map names of the plurality of peer computers to their corresponding addresses. 
     
     
       30. The method of  claim 27 , further comprising:
   upon determining that the first peer computer is not currently connected to the server system:      directing the second peer computer to transmit the first file to the server system; and        transmitting the first file from the server system to the first peer computer when the first peer computer re - connects to the server system.       
     
     
       31. A computer- readable memory medium storing program instructions executable by a server system to:      maintain a central index of files stored on a plurality of peer computers;        receive, from a first of the plurality of peer computers, a request for a first file referenced by the central index, wherein the first file is stored by a second of the plurality of peer computers that is currently not connected to the server system;        upon detecting that the second peer computer has connected to the server system, direct a peer - to - peer connection between the first and second peer computers to share the first file.     
     
     
       32. The computer- readable memory medium of    claim 31   , further storing program instructions executable by the computer system to:      upon detecting that the second peer computer has connected to the server system and detecting that the first peer computer is not connected to the server system:      direct the second peer computer to transmit the first file to the server system;        when the first peer computer re - connects to the server system, transmit the first file from the server system to the first peer computer.       
     
     
       33. The computer- readable memory medium of    claim 32   , wherein the peer - to - peer connection is anonymous and made via a public network.   
     
     
       34. A method, comprising:
   a first of a plurality of peer computers connecting to a server system, the first peer computer storing a first file that has been requested by a second of the plurality of peer computers while the first peer computer was not connected to the server system, wherein the first file is referenced by a central index stored by the server system;        upon the first peer computer connecting to the server system, the first peer computer receiving a request for the first file from the server system;        responsive to the request from the server system, the first peer computer sharing the requested first file with the second peer computer over a public network.     
     
     
       35. The method of  claim 34 , wherein said sharing includes the server system transmitting the request first file to the second peer computer if the second peer computer is not connected to the server system when the first peer computer connects to the server system. 
     
     
       36. The method of  claim 34 , wherein said sharing is anonymous. 
     
     
       37. The method of  claim 34 , wherein the first and/or second peer computers are mobile devices. 
     
     
       38. A method, comprising:
   a first of a plurality of peer computer systems requesting a first file from a server system, wherein the server system stores a central index of files residing on various ones of the plurality of peer computer system, wherein the first file resides on a second of the plurality of peer computer systems that is not currently connected to the server system, and wherein the request for the first file is stored by the server system in response to the second peer computer system not currently being connected;        upon the second peer computer system connecting to the server system and receiving direction from the server system to share the first file, the first peer computer system receiving the first file.     
     
     
       39. The method of  claim 38 , wherein when the first peer computer system is not connected to the server system when the second peer computer system connects, said receiving occurs upon the first peer computer system re- connecting.   
     
     
       40. The method of  claim 38 , wherein the first and second peer computers are each connected to the server system via a respective communication path that includes a public network.

Join the waitlist — get patent alerts

Track USRE42051E — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.