Method and system for peer-to-peer directory services
First Claim
1. A method in a computer system for determining a current network address of a target direct correspondent computer system in a community of correspondent computer systems, the community comprising at least the target direct correspondent computer system and at least one indirect correspondent computer system that is a correspondent of the target direct correspondent computer system, comprising:
- receiving and storing network address information associated with a plurality of computer systems in the community of correspondent computer systems, at least one of the computer systems in the community having a dynamically changing network address;
retrieving a stored most recent network address information associated with the at least one indirect correspondent computer system; and
communicating with the at least one indirect correspondent computer system using the retrieved most recent network address information to automatically determine the current network address for the target direct correspondent computer system.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and systems for providing directory services for peer-to-peer systems and applications are provided. Example embodiments provide a Peer-to-Peer Directory System (“PPDS”), which enables applications, especially those using peer-to-peer technology that desire to communicate directly with one another on different peer computer systems, to automatically discover working (current) network addresses for each other even when the network addresses of their respective computer systems change dynamically. The PPDS provides a community-based tracking system, a portion of which is implemented on each computer system that is a member of the community, to mutually track and store the network addresses of the other computer systems to which it has an associated relationship. The PPDS also provides a query mechanism that takes advantage of the relationship paths between the various computer systems to search for a current network address of a designated computer system.
133 Citations
162 Claims
-
1. A method in a computer system for determining a current network address of a target direct correspondent computer system in a community of correspondent computer systems, the community comprising at least the target direct correspondent computer system and at least one indirect correspondent computer system that is a correspondent of the target direct correspondent computer system, comprising:
-
receiving and storing network address information associated with a plurality of computer systems in the community of correspondent computer systems, at least one of the computer systems in the community having a dynamically changing network address;
retrieving a stored most recent network address information associated with the at least one indirect correspondent computer system; and
communicating with the at least one indirect correspondent computer system using the retrieved most recent network address information to automatically determine the current network address for the target direct correspondent computer system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 109)
-
-
35. A computer-readable memory medium containing instructions that control a computer processor to determine a current network address of a target direct correspondent computer system in a community of correspondent computer systems, the community comprising at least the target direct correspondent computer system and at least one indirect correspondent computer system associated with the target direct correspondent computer system by:
-
receiving and storing network address information associated with a plurality of computer systems in the community of correspondent computer systems, at least one of the computer systems in the community having a dynamic network address;
retrieving a stored most recent network address information associated with the at least one indirect correspondent computer system; and
communicating with the at least one indirect correspondent computer system using the retrieved most recent network address information to automatically determine the current network address for the target direct correspondent computer system. - View Dependent Claims (36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 110)
-
-
61. A computer system connected to a plurality of correspondent computer systems that communicate over a network, at least one of the correspondent computer systems having a dynamic network address, comprising:
-
a tracking agent that is structured to receive and store a network address for the direct correspondent;
receive and store network address information associated with correspondents of the direct correspondent; and
forward the received network address for the direct correspondent to other direct correspondents of the computer system; and
a locating service component that is structured to receive a request for an operational network address of the direct correspondent of the computer system;
retrieve a stored most recent network address for the direct correspondent along with network address information associated with at least one other correspondent of the computer system; and
when it is determined that the retrieved most recent network address for the direct correspondent is no longer operational, successively query for a current network address of the direct correspondent by contacting the correspondents of the computer system using the retrieved network address information until the operational network address is determined. - View Dependent Claims (62, 63, 64, 65, 66, 67, 68, 111, 112, 113, 114)
-
-
69. A peer-to-peer directory service in a network of computer systems, each computer system having a dynamic network address, comprising:
-
a first one of the computer systems having a network address;
a second one of the computer systems having a dynamic network address and that is structured to receive and store a network address of the first computer system and network address information for direct and indirect correspondent computer systems of the first computer system;
a third one of the computer systems having a network address and that is structured to, receive and store the network address of the second computer system and network address information for direct and indirect correspondent computer systems of the second computer system, wherein the direct correspondent computer systems of the second computer system include at least the first computer system; and
use the stored network address information of the third computer system to automatically determine an operational network address of the second computer system by querying at least one of the direct and indirect correspondent computer systems of the second computer system for a current network address of the second computer system. - View Dependent Claims (70, 71, 72, 73, 74, 75)
-
-
76. A method for automatically tracking network addresses in a community of member computer systems that communicate with each other using peer-to-peer technology, comprising:
in each member computer system, receiving network address information from a first level correspondent computer system of the member computer system including at least an indication of a network address of the first level correspondent and an indication of a network address and a relationship path to at least one correspondent of the first level correspondent;
storing the network address information received from the first level correspondent computer system; and
when an update occurs to a network address of the member computer system, using the received network address information from the first level correspondent computer system to forward the updated network address of the member computer system to the first level correspondent computer system and to correspondent computer systems of the first correspondent computer system so that the network address information is mutually shared among member computer systems of the community. - View Dependent Claims (77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 115, 116)
-
88. A computer-readable memory medium containing instructions that control a computer processor to automatically track network addresses in a community of member computer systems that communicate with each other using peer-to-peer technology, the computer processor residing in one of the member computer systems, by:
-
receiving network address information from a first level correspondent computer system of the one of the member computer systems including at least an indication of a network address of the first level correspondent and an indication of a network address and a relationship path to at least one correspondent of the first level correspondent;
storing the network address information received from the first level correspondent computer system; and
when an update occurs to a network address of the one of the member computer systems using the received network address information from the first level correspondent computer system to forward the updated network address of the one of the member computer systems to the first level correspondent computer system and to correspondent computer systems of the first correspondent computer system so that the network address information is mutually shared among member computer systems of the community. - View Dependent Claims (89, 90, 91, 92, 93, 94, 95, 96, 97, 98)
-
-
99. A network address tracking system in each of a community of member computer systems that communicate with each other using peer-to-peer technology, comprising:
-
means for receiving network address information from a first level correspondent computer system of the member computer system including at least an indication of a network address of the first level correspondent and an indication of a network address and a relationship path to at least one correspondent of the first level correspondent;
means for storing the network address information received from the first level correspondent computer system; and
means for using the received network address information from the first level correspondent computer system to forward an updated network address of the member computer system to the first level correspondent computer system and to correspondent computer system of the first correspondent computer system so that the network address information is mutually shared among member computer systems of the community. - View Dependent Claims (100, 101, 102, 103, 104)
-
-
105. A software interface expressed as instructions stored in a computer-readable memory medium of a first correspondent computer system for providing a peer-to-peer directory service in a network of correspondent computer systems, comprising:
-
a tracking portion that, when executed by a computer processor, receives network address information for at least a second correspondent computer system in the network and network address information for at least one correspondent computer system in the network that communicates with the second correspondent computer system;
stores the received network address information for the at least the second correspondent computer system and the network address information for the at least one other correspondent computer system; and
transmits to at least a third correspondent computer system the received network address information for the at least second correspondent computer system; and
a directory service portion that, when executed by a computer processor, uses the stored network address information to automatically determine a current network address of the second correspondent computer system. - View Dependent Claims (106, 107, 108)
-
-
117. A method in a computer system for determining a current network address of a target correspondent computer system in a community of correspondent computer systems, comprising:
-
mutually tracking, communicating, storing, and updating network address information associated with each of the correspondent computer systems in the community, at least one of the computer systems in the community having a dynamically changing network address that is propagated between the correspondent computer systems in the community; and
upon receiving a request for the current network address of the target correspondent computer system, retrieving from the stored network address information a most recent address of the target correspondent computer system and determining whether the retrieved most recent address is current; and
when it is determined that the retrieved most recent address of the target correspondent computer system is not current, using the stored network address information associated with the rest of the correspondent computer systems in the community to directly communicate with one or more of the rest of the correspondent computer systems to automatically determine the current network address of the target correspondent computer system. - View Dependent Claims (118, 119, 120, 121, 122, 123, 124, 125, 126)
-
-
127. A computer-readable memory medium containing instructions that control a computer processor to determine a current network address of a target correspondent computer system in a community of correspondent computer systems, by:
-
mutually tracking, communicating, storing, and updating network address information associated with each of the correspondent computer systems in the community, at least one of the computer systems in the community having a dynamically changing network address that is propagated between the correspondent computer systems in the community; and
upon receiving a request for the current network address of the target correspondent computer system, retrieving from the stored network address information a most recent address of the target correspondent computer system and determining whether the retrieved most recent address is current; and
when it is determined that the retrieved most recent address of the target correspondent computer system is not current, using the stored network address information associated with the rest of the correspondent computer systems in the community to directly communicate with one or more of the rest of the correspondent computer systems to automatically determine the current network address of the target correspondent computer system. - View Dependent Claims (128, 129, 130, 131, 132, 133, 134, 135, 136)
-
-
137. A computer system connected over a network to a community of correspondent computer systems, at least one of the computer systems in the community having a dynamically changing network address, comprising:
-
a tracking agent that is structured to mutually receive, communicate, store, and update network address information associated with each of the correspondent computer systems in the community; and
a directory service component that is structured to upon receiving a request for a current network address of a target correspondent computer system in the community, retrieve from the stored network address information a most recent address of the target correspondent computer system and determine whether the retrieved most recent address is current; and
when it is determined that the retrieved most recent address of the target correspondent computer system is not current, use the stored network address information associated with the rest of the correspondent computer systems in the community to communicate with one or more of the rest of the correspondent computer systems to automatically determine the current network address of the target correspondent computer system. - View Dependent Claims (138, 139, 140, 141, 142, 143, 144)
-
-
145. A method in a computer system for mutually tracking network addresses in a community of member computer systems that communicate with each other, the computer system having a network address, comprising:
-
receiving and storing network address information from a plurality of first level correspondents of the computer system, the received network address information of at least one of the plurality of first level correspondents including an indication of a network address of the one of the first level correspondents and an indication of a network address and a relationship path to at least one direct correspondent of the one of the first level correspondents and at least one indirect correspondent of the one of the first level correspondents;
determining that the network address of the computer system has changed; and
sending updated network address information that includes an updated network address of the computer system to direct and indirect correspondents of the plurality of first level correspondents using the stored network address information. - View Dependent Claims (146, 147, 148, 149, 150)
-
-
151. A computer-readable memory medium containing instructions that control a computer process to mutually tracking network addresses in a community of member computer systems that communicate with each other, the computer processor residing in each one of the member computer systems, by:
-
receiving and storing network address information from a plurality of first level correspondents of the member computer system, the received network address information of at least one of the plurality of first level correspondents including an indication of a network address of the one of the first level correspondents and an indication of a network address and a relationship path to at least one direct correspondent of the one of the first level correspondents and at least one indirect correspondent of the one of the first level correspondents;
determining that the network address of the member omputer system has changed; and
sending updated network address information that includes an updated network address of the member computer system to direct and indirect correspondents of the plurality of first level correspondents using the stored network address information. - View Dependent Claims (152, 153, 154, 155, 156)
-
-
157. A tracking system for mutually tracking network addresses in each of a community of member computer systems that communicate with each other, each computer system having a network address, comprising:
-
a tracking agent that is structured to receive and store network address information from a plurality of first level correspondents of the member computer system, the received network address information of at least one of the plurality of first level correspondents including an indication of a network address of the one of the first level correspondents and an indication of a network address and a relationship path to at least one direct correspondent of the one of the first level correspondents and at least one indirect correspondent of the one of the first level correspondents; and
a network address update mechanism that is structured to determine that the network address of the member computer system has changed; and
send updated network address information that includes an updated network address of the member computer system to direct and indirect correspondents of the plurality of first level correspondents using the stored network address information. - View Dependent Claims (158, 159, 160, 161, 162)
-
Specification