IP Library Granted Patent US 7,730,178
Granted Patent B2
US 7,730,178 · App. 11/445,080 · Granted Jun 1, 2010

System and method for searching peer-to-peer computer networks

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,730,178
App. No.
11/445,080
Granted
Jun 1, 2010
Kind
B2
Abstract

A method and system for intelligently directing a search of a peer-to-peer network, in which a user performing a search is assisted in choosing a host which is likely to return fast, favorable results to the user. A host monitor monitors the peer-to-peer network and collects data on various characteristics of the hosts which make up the network. Thereafter, a host selector ranks the hosts using the data, and passes this information to the user. The user then selects one or more of the highly-ranked hosts as an entry point into the network. Additionally, a cache may collect a list of hosts based on the content on the hosts. In this way, a user may choose to connect to a host which is known to contain information relevant to the user's search. The host selector may be used to select from among the hosts listed in the cache.

Claims (73)

1. A method for searching a peer-to-peer computer network, comprising:

collecting data about a plurality of computers within the peer-to-peer network, wherein the collected data includes a network location of each of the plurality of computers and information on content that is available for searching on each of the plurality of computers, wherein the information on content that is available for searching on each of the plurality of computers is collected by one or more of:

monitoring data exchanges among the plurality of computers; and

utilizing results returned from a periodic common query to one or more of the plurality of computers within the peer-to-peer network;

selecting at least one of the plurality of computers, based on the collected network location and information on content; and

routing a search query from a computer to the selected at least one of the plurality of computers via the network location of the at least one of the plurality of computers, the search query including types of files being searched.

2. The method of claim 1 , wherein collecting the data about the plurality of computers within the peer-to-peer network includes:

sending a signal to the at least one of the plurality of computers; and

receiving the signal upon its return from the at least one of the plurality of computers;

forming a profile including status data characterizing the at least one of the plurality of computers, based on information provided by the signal.

3. The method of claim 2 , wherein the status data includes one or more of:

a round trip time measure taken by the signal during its travel to and from the at least one of the plurality of computers;

information on an amount of content available to the network on the at least one of the plurality of computers;

information on the at least one of the plurality of computer's capability to process the search query;

information on a number of connected computers encountered by the signal during its travel to and from the at least one of the plurality of computers;

information on a number of additional computers connected to the at least one of the plurality of computers;

information on a frequency with which of the plurality of computers is connected to the network; and

information on which of the plurality of computers are currently connected to the peer-to-peer network.

4. The method of claim 2 , further including storing the status data in a database.

5. The method of claim 2 , further including monitoring the connectivity status of each of the plurality of computers.

6. The method of claim 5 , further including:

collecting a plurality of statistical measures that characterize each of the plurality of computers;

assigning a weighted score to each statistical measure of each of the plurality of computers;

combining the weighted scores to obtain a rank for each of the plurality of computers;

ranking the plurality of computers according to the weighted scores; and

selecting the at least one of the plurality of computers based on the status data, the current connectivity status of each of the plurality of computers, and the ranking of each of the plurality of computers.

7. The method of claim 1 , wherein collecting the data about the plurality of computers within the peer-to-peer network includes distributing the collection of the data across a plurality of geographical locations, wherein each of the plurality of geographical locations is selected based on a respective proximity to the computer.

8. The method of claim 1 , wherein collecting the data about the plurality of computers within the peer-to-peer network includes periodically collecting the data about the plurality of computers.

9. The method of claim 1 , wherein collecting the information on content that is available for searching on each of the plurality of computers includes monitoring a current connectivity status of each of the plurality of computers, and wherein monitoring data exchanges among the plurality of computers includes one or more of:

utilizing results returned from a previous search query; and

intercepting queries among the plurality of computers.

10. The method of claim 1 , further comprising storing the information on content that is available for searching on each of the plurality of computers in a memory.

11. The method of claim 10 , further comprising accepting a search query of the memory from the computer, wherein a response to the search query of the memory provides the information on content that is available for searching on each of the plurality of computers for each of the plurality of computers that is connected to the peer-to-peer network at a time of the search query of the memory.

12. The method of claim 1 , wherein the information on content that is available for searching on each of the plurality of computers includes one or more of:

a file type; and

a topic.

13. The method of claim 1 , wherein collecting the data about the plurality of computers is independent of the search query.

14. The method of claim 1 , further comprising selecting a second computer from the plurality of computers based on the collected data and routing the search query to the second computer after a predetermined period of time.

15. The method of claim 1 , wherein collecting the data about the plurality of computers within the peer-to-peer network includes:

collecting data about a predetermined number of the plurality of computers at a first predetermined time interval;

ranking the predetermined number of the plurality of computers based on the collected data;

retaining a set of hub computers which make up a predetermined percentage of the plurality of computers that are most highly ranked; and

collecting data about only the set of hub computers at a second predetermined time interval, wherein the second predetermined time interval is smaller than the first predetermined time interval.

16. A system for establishing an optimal connection between a computer and a peer-to-peer network, the system comprising:

a monitor for measuring data about a plurality computers within the peer-to-peer network, wherein the measured data includes information on an amount of content available to the network on one or more of the plurality of computers;

a memory for collecting information on content available for searching on the plurality of computers, wherein the memory is configured to collect the content information available for searching on the plurality of computers by one or more of monitoring data exchanges among the plurality of computers, and utilizing results returned from a periodic common query to the one or more of the plurality of computers within the peer-to-peer network; and

a selector for selecting at least one of the plurality of computers based on the amount of the content available and types of files being searched, wherein the selector provides a network location of the selected at least one of the plurality of computers to the computer to allow the computer to connect to the at least one of the plurality of computers.

17. The system as recited in claim 16 , wherein the monitor includes:

a profiler that periodically collects the measured data by sending a signal to one or more of the plurality of computers and receives the signal to the one or more of the plurality of computers, to form a profile of the one or more of the plurality of computers; and

a database that stores the measured data collected by the profiler.

18. The system as recited in claim 17 , wherein the profile includes information on one or more of:

a round trip time measure taken by the signal during its travel to and from the at least one of the plurality of computers;

information on an amount of content available to the network on the at least one of the plurality of computers;

information on the at least one of the plurality of computer's capability to process the search query;

information on a number of connected computers encountered by the signal during its travel to and from the at least one of the plurality of computers;

information on a number of additional computers connected to the at least one of the plurality of computers;

information on a frequency with which of the plurality of computers is connected to the network; and

information on which of the plurality of computers are currently connected to the peer-to-peer network.

19. The system as recited in claim 17 , wherein a plurality of profilers associated with a corresponding plurality of geographical locations collect the measured data about the plurality of computers within the peer-to-peer network by distributing the collection of the measured data across the plurality of geographical locations, and wherein each of the plurality of geographical locations is selected based on a respective proximity to the computer.

20. The system as recited in claim 17 , wherein collecting the measured data includes:

collecting data about a predetermined number of the plurality of computers at a first predetermined time interval;

ranking the predetermined number of the plurality of computers based on the collected measured data;

retaining a set of hub computers which make up a predetermined percentage of the plurality of computers that are most highly ranked; and

collecting data about only the set of hub computers at a second predetermined time interval, wherein the second predetermined time interval is smaller than the first predetermined time interval.

21. The system as recited in claim 16 , wherein the memory removes the content information after a predetermined period of time, and wherein the memory send common search queries into the peer-to-peer network on a period basis and stores the results returned from the periodic common query in the memory.

22. The system as recited in claim 21 , wherein a portion of the removed content information identifies a type of file available for searching on the plurality computers, the portion being separately stored, and wherein the at least one of the plurality of computers is selected based at least on the type of file.

23. The system as recited in claim 16 , wherein the monitor determines a current connectivity status for each of the plurality of computers, and wherein the at least one of the plurality of computers is selected based on the content information and the current connectivity status.

24. The system as recited in claim 16 , wherein the selector selects a second computer from the plurality of computers based on the measured data, and wherein the selector outputs a network location of the second computer to the computer after a predetermined period of time and a response to computer request.

25. A computer program embedded in a computer readable non-transitory storage medium, when executed by one or more processors, for directing a computer system to optimally connect to a peer-to-peer network, the computer program comprising:

instructions for collecting data about a plurality of computers within the peer-to-peer network, wherein the collected data includes a network location of each of the plurality of computers and information on content that is available for searching on each of the plurality of computers, wherein the information on content that is available for searching on each of the plurality of computers is collected by one or more of:

monitoring data exchanges among the plurality of computers; and utilizing results returned from a periodic common query to one or more of the plurality of computers with the peer-to-peer network;

instructions for selecting at least one of the plurality of computers, based on the collected network location and information on content; and

instructions for routing a search query from a computer to the selected at least one of the plurality of computers via the network location of the at least one of the plurality of computers, the search query including the types of files being searched.

Assignments (17)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (REEL 062079, FRAME 0677) Recorded Mar 3, 2026
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: X CORP. (F/K/A TWITTER, INC.)
Reel/Frame 075015/0574 →
RELEASE OF SECURITY INTEREST Recorded Apr 30, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: X CORP. (F/K/A TWITTER, INC.)
Reel/Frame 071127/0240 →
RELEASE OF SECURITY INTEREST Recorded Mar 27, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: X CORP. (F/K/A TWITTER, INC.)
Reel/Frame 070670/0857 →
SECURITY INTEREST Recorded Oct 28, 2022
From: TWITTER, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 061804/0086 →
SECURITY INTEREST Recorded Oct 28, 2022
From: TWITTER, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 062079/0677 →
SECURITY INTEREST Recorded Oct 28, 2022
From: TWITTER, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 061804/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 11, 2017
From: HORIZON TECHNOLOGY FINANCE CORPORATION
To: RHAPSODY INTERNATIONAL, INC.
Reel/Frame 044786/0507 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2017
From: RHAPSODY INTERNATIONAL INC.
To: MOON GLOW, SERIES 82 OF ALLIED SECURITY TRUST I
Reel/Frame 044078/0158 →
RELEASE OF SECURITY INTEREST Recorded Oct 20, 2017
From: WESTERN ALLIANCE BANK
To: RHAPSODY INTERNATIONAL, INC.
Reel/Frame 043917/0613 →
RELEASE OF SECURITY INTEREST Recorded Oct 19, 2017
From: HORIZON TECHNOLOGY FINANCE CORPORATION
To: RHAPSODY INTERNATIONAL INC.
Reel/Frame 044512/0447 →
SECURITY INTEREST Recorded Oct 1, 2015
From: RHAPSODY INTERNATIONAL INC.
To: HORIZON TECHNOLOGY FINANCE CORPORATION
Reel/Frame 036700/0962 →
SECURITY INTEREST Recorded Sep 25, 2015
From: RHAPSODY INTERNATIONAL INC.
To: WESTERN ALLIANCE BANK
Reel/Frame 036652/0155 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 25, 2012
From: ROXIO, INC.
To: NAPSTER, LLC
Reel/Frame 028271/0150 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 16, 2012
From: LABIO, WILBURT JUAN; NGUYEN, GIAO THANH; LIU, WINSTON WENCHENG; MANKU, GURMEET SINGH
To: GIGABEAT, INC.
Reel/Frame 028217/0760 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 16, 2012
From: NAPSTER, INC.
To: ROXIO, INC.
Reel/Frame 028218/0326 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 16, 2012
From: GIGABEAT, INC.
To: NAPSTER, INC.
Reel/Frame 028217/0553 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 28, 2012
From: NAPSTER, INC.; NAPSTER, LLC
To: RHAPSODY INTERNATIONAL INC.
Reel/Frame 027776/0980 →