US2005050227A1PendingUtilityA1

Method and system for peer-to-peer directory services

Assignee: CASCADE BASIC RES CORPPriority: Jul 3, 2003Filed: Jul 6, 2004Published: Mar 3, 2005
Est. expiryJul 3, 2023(expired)· nominal 20-yr term from priority
H04L 61/45H04L 61/00H04L 67/104H04L 69/329H04L 67/1068
45
PatentIndex Score
0
Cited by
0
References
0
Claims

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.

Claims

exact text as granted — not AI-modified
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.    
     
     
         2 . The method of  claim 1 , further comprising receiving a request for a current network address of the target direct correspondent computer system;  
     
     
         3 . The method of  claim 1  performed without using an intermediate directory server with a static network address.  
     
     
         4 . The method  claim 1  performed in conjunction with using an intermediate directory server with a static network address.  
     
     
         5 . The method of  claim 1  wherein the communicating with the at least one indirect correspondent computer system to automatically determine the current network address for the target direct correspondent computer system is performed when it is determined that the target direct correspondent computer system is not accessible using a most recent stored network address for the target direct correspondent computer system.  
     
     
         6 . The method of  claim 1 , further comprising: 
 successfully establishing contact with the target direct correspondent computer system using the automatically determined current network address.    
     
     
         7 . The method of  claim 1  wherein the indirect correspondent computer system is greater than two levels of correspondents away from the computer system.  
     
     
         8 . The method of  claim 1 , the community of correspondent computer systems having a plurality of correspondent computer systems associated with the target direct correspondent computer system, the at least one indirect correspondent computer system being one of the plurality of correspondent computer systems, wherein the communicating with the at least one indirect correspondent computer system using the retrieved network address information to automatically determine the current network address for the target direct correspondent computer system comprises: 
 successively attempting to communicate with the plurality of correspondent computer systems associated with the target direct computer system using stored network address information associated with each correspondent computer system until a current network address of the at least one indirect computer system is determined; and    communicating with the at least one indirect correspondent computer system using the determined current network address of the at least one indirect computer system to automatically determine the current network address for the target direct correspondent computer system.    
     
     
         9 . The method of  claim 8  wherein the successively attempting to communicate with the plurality of correspondent computer systems associated with the target direct computer system recursively attempts to communicate with the plurality of correspondent computer systems associated with the target direct computer system until a current network address of the at least one indirect computer system is determined.  
     
     
         10 . The method of  claim 8  wherein the plurality of correspondent computer systems comprises at least one direct correspondent of the target direct correspondent computer system and at least one indirect correspondent of the target direct correspondent.  
     
     
         11 . The method of  claim 8  wherein the successively attempting to communicate with the plurality of correspondent computer systems attempts to communicate with at least two levels of indirect correspondent computer systems before the current network address of the at least one indirect computer system is determined.  
     
     
         12 . The method of  claim 8  wherein the at least one indirect correspondent computer system is a direct correspondent of the target direct correspondent computer system.  
     
     
         13 . The method of  claim 8  wherein the at least one indirect correspondent computer system is an indirect correspondent of the target direct correspondent computer system.  
     
     
         14 . The method of  claim 1  wherein the network address information stored with each computer system is a network address.  
     
     
         15 . The method of  claim 1  wherein the network address information comprises additional information to the network address.  
     
     
         16 . The method of  claim 15  wherein the additional information comprises correspondent information.  
     
     
         17 . The method of  claim 15  wherein the additional information comprises an effective time period associated with the network address.  
     
     
         18 . The method of  claim 1  wherein the stored network address information includes Internet Protocol (“IP”) network addresses.  
     
     
         19 . The method of  claim 1  wherein the stored network address information includes heterogeneous types of network addresses.  
     
     
         20 . The method of  claim 19  wherein one of the heterogeneous types of stored the network addresses includes a private LAN address.  
     
     
         21 . The method of  claim 1  wherein the all of the network addresses stored as network address information are a homogeneous type of network address.  
     
     
         22 . The method of  claim 1  wherein the receiving and storing network address information associated with the plurality of the computer systems in the community of correspondent computer systems comprises: 
 receiving an indication of a network address for a direct correspondent computer system; and    receiving an indication of a network address of and a relationship path to a correspondent of the direct correspondent computer system.    
     
     
         23 . The method of  claim 22  wherein the receiving the indication of the network address for the direct correspondent and receiving the indication of the network address of and the relationship path to the correspondent of the direct correspond occur at different times.  
     
     
         24 . The method of  claim 22  wherein each indicated relationship path indicates an association between a plurality of correspondent computer systems.  
     
     
         25 . The method of  claim 22  wherein the receiving the indication of the network address for the direct correspondent computer system and the indication of the network address of and the relationship path to the correspondent of the direct correspondent computer system is performed for each of a plurality of direct correspondent computer systems of the computer system.  
     
     
         26 . The method of  claim 22  wherein the direct correspondent computer system has a direct relationship path to a third correspondent computer system and has an indirect relationship path to a fourth correspondent computer system through the third correspondent computer system, the fourth correspondent computer system being an indirect correspondent of the direct correspondent computer and being a direct correspondent of the third correspondent computer system.  
     
     
         27 . The method of  claim 22  wherein the receiving is performed on a periodic basis.  
     
     
         28 . The method of  claim 22  wherein the receiving the indication of the network address for the direct correspondent computer system is performed when the network address of the direct correspondent computer system has been updated.  
     
     
         29 . The method of  claim 22 , further comprising: 
 forwarding the received indications to direct correspondent computer systems of the computer system.    
     
     
         30 . The method of  claim 1 , further comprising: 
 determining that the computer system has an updated network address; and    forwarding the updated network address to direct correspondent computer systems of the computer system.    
     
     
         31 . The method of  claim 1 , further comprising: 
 receiving an indication that a correspondent computer system is to be no longer accessible; and    removing access to the stored network address information associated with the indicated correspondent computer system.    
     
     
         32 . The method of  claim 31  wherein the stored network address information that is removed comprises network address information associated with indirect correspondents of the indicated correspondent computer system.  
     
     
         33 . The method of  claim 31 , further comprising: 
 forwarding the indication that the correspondent computer system is to be no longer accessible to a direct correspondent computer system of the computer system.    
     
     
         34 . The method of  claim 1 , the receiving and storing network address information associated with each computer system in the community comprising: 
 initially receiving network address information for a direct correspondent computer system from at least one of an indication from a user, a notification from an application, data associated with an application, stored network information associated with a different correspondent computer system, or a network address received in response to an email inquiry to the direct correspondent computer system.    
     
     
         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.    
     
     
         36 . The memory medium of  claim 35 , wherein the instructions further comprise receiving a request for a current network address of the target direct correspondent computer system.  
     
     
         37 . The memory medium of  claim 35  wherein the instructions are executed without using an intermediate directory server with a static network address.  
     
     
         38 . The memory medium of  claim 35  wherein the instructions are executed in conjunction with using an intermediate directory server with a static network address.  
     
     
         39 . The memory medium of  claim 35  wherein the communicating with the at least one indirect correspondent computer system to automatically determine the current network address for the target direct correspondent computer system is performed when it is determined that the target direct correspondent computer system is not accessible using the most recent stored network address for the target direct correspondent computer system.  
     
     
         40 . The memory medium of  claim 35 , further comprising: 
 successfully establishing contact with the target direct correspondent computer system using the automatically determined current network address.    
     
     
         41 . The memory medium of  claim 35  wherein the indirect correspondent computer system is greater than two levels of correspondents from the computer system.  
     
     
         42 . The memory medium of  claim 35 , the community of correspondent computer systems having a plurality of correspondent computer systems associated with the target direct correspondent computer system, further containing instructions to control the computer processor by: 
 successively attempting to communicate with the plurality of correspondent computer systems associated with the target direct correspondent computer system using stored network address information associated with each correspondent computer system until a current network address of the at least one indirect computer system is determined; and    communicating with the at least one indirect correspondent computer system using the determined current network address of the at least one indirect computer system to automatically determine the current network address for the target direct correspondent computer system.    
     
     
         43 . The memory medium of  claim 42  wherein the successively attempting to communicate with the plurality of correspondent computer systems associated with the target direct computer system recursively attempts to communicate with the plurality of correspondent computer systems associated with the target direct computer system until a current network address of the at least one indirect computer system is determined.  
     
     
         44 . The memory medium of  claim 42  wherein the at least one indirect correspondent computer system is a direct correspondent of the target direct correspondent computer system.  
     
     
         45 . The memory medium of  claim 42  wherein the at least one indirect correspondent computer system is an indirect correspondent of the target direct correspondent computer system.  
     
     
         46 . The memory medium of  claim 35  wherein the network address information stored with each computer system is a network address.  
     
     
         47 . The memory medium of  claim 35  wherein the network address information comprises correspondent information.  
     
     
         48 . The memory medium of  claim 35  wherein the stored network address information includes Internet Protocol (“IP”) network addresses.  
     
     
         49 . The memory medium of  claim 35  wherein the stored network address information includes a private LAN address.  
     
     
         50 . The memory medium of  claim 35  wherein the receiving and storing network address information associated with each computer system in the community of correspondent computer systems comprises: 
 receiving an indication of a network address for a direct correspondent computer system; and    receiving an indication of a network address of and a relationship path to a correspondent of the direct correspondent computer system.    
     
     
         51 . The memory medium of  claim 50  wherein the receiving the indication of the network address for the direct correspondent and receiving the indication of the network address of and the relationship path to the correspondent of the direct correspond occur at different times.  
     
     
         52 . The memory medium of  claim 50  wherein each indicated relationship path indicates an association between a plurality of correspondent computer systems.  
     
     
         53 . The memory medium of  claim 50  wherein the receiving is performed on a periodic basis.  
     
     
         54 . The memory medium of  claim 50  wherein the receiving the indication of the network address for the direct correspondent computer system is performed when the network address of a direct correspondent computer system has been updated.  
     
     
         55 . The memory medium of  claim 50  wherein the receiving the indication of the network address of and the relationship path to a correspondent of the direct correspondent computer system is performed when the network address of the correspondent of the direct correspondent computer system has been updated.  
     
     
         56 . The memory medium of  claim 50 , further containing instructions to control the computer processor by: 
 transmitting the received indications to direct correspondent computer systems of the computer system.    
     
     
         57 . The memory medium of  claim 35 , further containing instructions to control the computer processor by: 
 determining that the computer system has an updated network address; and    transmitting the updated network address to direct correspondent computer systems of the computer system.    
     
     
         58 . The memory medium of  claim 35 , further containing instructions to control the computer processor by: 
 receiving an indication that a correspondent computer system is to be no longer accessible; and    removing access to the stored network address information associated with the indicated correspondent computer system.    
     
     
         59 . The memory medium of  claim 58 , further comprising: 
 transmitting the indication that the correspondent computer system is to be no longer accessible to a direct correspondent computer system of the computer system.    
     
     
         60 . The memory medium of  claim 35 , further containing instructions to control the computer processor by: 
 initially receiving network address information for a direct correspondent computer system from at least one of an indication from a user, a notification from an application, data associated with an application, stored network information associated with a different correspondent computer system, or a network address received in a message.    
     
     
         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.    
     
     
         62 . The system of  claim 61  wherein the tracking agent is structured to forward the received network address information associated with correspondents of the direct correspondent to other direct correspondents of the computer system.  
     
     
         63 . The system of  claim 61  wherein the locating service component is structured to successively query direct and indirect correspondents of the direct correspondent, recursively searching for correspondents of the direct correspondent to respond until a current address for the direct correspondent is found.  
     
     
         64 . The system of  claim 61  wherein the network addresses include at least one of an IP address or a private LAN address.  
     
     
         65 . The system of  claim 61  wherein network address for the direct correspondent is received when the network address of the direct correspondent is modified.  
     
     
         66 . The system of  claim 61  wherein the tracking agent is further structured to determine when the network address of the computer system changes, and to forward the changed network address of the computer system to the direct correspondent of the computer system.  
     
     
         67 . The system of  claim 61  wherein the tracking agent is further structured to receive an indication that one of the correspondent computer systems is no longer accessible, and to remove network address information associated with the indicated correspondent computer system.  
     
     
         68 . The system of  claim 61  wherein the initial address for the direct correspondent of the computer system is received from at least one of an indication from a user, a notification from an application, data associated with an application, stored network information associated with a different correspondent computer system, or a network address received in a message.  
     
     
         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.  
   
     
     
         70 . The directory service of  claim 69 , wherein the third computer system is structured to determine the operational network address of the second computer system without using an intermediary directory service having a static network address.  
     
     
         71 . The directory service of  claim 69  wherein the indirect correspondent computer systems of the second computer system include at least the direct correspondent computer systems of the first computer system and wherein the third computer system retrieves and uses network address information for the indirect correspondent computer systems of the second computer system to locate the current network address of the second computer system.  
     
     
         72 . The directory service of  claim 69  wherein at least one of the dynamic network addresses is an IP address.  
     
     
         73 . The directory service of  claim 69  wherein at least one of the dynamic network addresses is a private LAN address.  
     
     
         74 . The directory service of  claim 69  wherein the updates to the network address received at a computer system are forwarded to the other computer systems in the network.  
     
     
         75 . The directory service of  claim 69  wherein a computer system receives an indication of an initial network address for an associated direct correspondent computer system from at least one of an indication from a user, a notification from an application, data associated with an application, stored network information associated with a different correspondent computer system, or a network address received in response to an email inquiry to the desired direct correspondent computer system.  
     
     
         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.  
   
     
     
         77 . The method of  claim 76 , further comprising: 
 using the stored indication of the network address and the relationship path for the at least one correspondent of the first level correspondent to search for a current network address for communicating with the first level correspondent computer system.    
     
     
         78 . The method of  claim 76 , the forwarding the updated network address of the member computer system comprising: 
 forwarding the updated network address of the member computer system to each correspondent of the first level correspondent until a determined threshold level of indirection is reached.    
     
     
         79 . The method of  claim 76 , the storing the network address information received from the first level correspondent comprising: 
 storing the network address information for each correspondent of the first level correspondent until a determined threshold level of indirection is reached.    
     
     
         80 . The method of  claim 76 , further comprising: 
 in each member computer system, 
 forwarding at least a portion of the network address information received from the first level correspondent computer system of the member computer system to other correspondent computer systems of the member computer system.  
   
     
     
         81 . The method of  claim 80 , the forwarding the at least the portion of the network address information received from the first level correspondent computer system comprising: 
 forwarding at least the portion of the network address information received from the first level correspondent computer system consistent with a determined number of levels of correspondent computer systems.    
     
     
         82 . The method of  claim 76 , further comprising: 
 receiving network address information for an indirect correspondent computer system of the member computer system that is related to the member computer system through at least a first level correspondent computer system of the member computer system, the network address information received for the indirect correspondent computer system including an indication of a network address of the indirect correspondent computer system and an indication of a network address and a relationship path to each direct correspondent and to each indirect correspondent of the indirect correspondent computer system.    
     
     
         83 . The method of  claim 82 , further comprising: 
 forwarding the network address information received for the indirect correspondent computer system and for each direct correspondent and for each indirect correspondent of the indirect correspondent computer system consistent with a determined threshold level of indirection.    
     
     
         84 . The method of  claim 76 , further comprising: 
 in each member computer system, 
 when indication of a new first level correspondent computer system is received, forwarding network address information, including at least an indication of a network address of the new first level correspondent, to the other first level correspondent computer systems of the member computer system.  
   
     
     
         85 . The method of  claim 84 , further comprising: 
 in each member computer system, 
 when indication of a new first level correspondent is received, forwarding network address information for the member computer system to the new first level correspondent computer system.  
   
     
     
         86 . The method of  claim 76 , further comprising: 
 in each member computer system, 
 when an update occurs to the network address of the member computer system, forwarding the updated network address of the member computer system to the direct and indirect correspondent computer systems of the member computer system.  
   
     
     
         87 . The method of  claim 76 , further comprising: 
 forwarding with the updated network address of the member computer system, an effective time associated with the updated network address of the member computer system.    
     
     
         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.    
     
     
         89 . The memory medium of  claim 88 , further comprising instructions that control the computer processor by: 
 using the stored indication of the network address and the relationship path for the at least one correspondent of the first level correspondent to search for a current network address for communicating with the first level correspondent computer system.    
     
     
         90 . The memory medium of  claim 88 , the forwarding the updated network address of the one of the member computer systems, comprising: 
 forwarding the updated network address of the one of the member computer systems to each correspondent of the first level correspondent until a determined threshold level of indirection is reached.    
     
     
         91 . The memory medium of  claim 88 , the storing the network address information received from the first level correspondent comprising: 
 storing the network address information for each correspondent of the first level correspondent until a determined threshold level of indirection is reached.    
     
     
         92 . The memory medium of  claim 88 , further comprising instructions that control the computer processor by: 
 forwarding at least a portion of the network address information received from the first level correspondent computer system of the one of the member computer systems to other correspondent computer systems of the one of the member computer systems.    
     
     
         93 . The memory medium of  claim 92 , wherein the forwarding is performed consistent with a determined number of levels of correspondent computer systems.  
     
     
         94 . The memory medium of  claim 88 , further comprising instructions that control the computer processor by: 
 receiving network address information for an indirect correspondent computer system of the one of the member computer systems that is related to the one of the member computer systems through at least a first level correspondent computer system of the one of the member computer systems, the network address information received for the indirect correspondent computer system including an indication of a network address of the indirect correspondent computer system and an indication of a network address and a relationship path to each direct correspondent and to each indirect correspondent of the indirect correspondent computer system.    
     
     
         95 . The memory medium of  claim 88 , further comprising instructions that control the computer processor by: 
 when indication of a new first level correspondent computer system is received, forwarding network address information, including at least an indication of a network address of the new correspondent, to first level correspondent computer systems of the one of the member computer systems.    
     
     
         96 . The memory medium of  claim 95 , further comprising instructions that control the computer processor by: 
 when indication of a new first level correspondent is received, forwarding network address information for the one of the member computer systems to the new first level correspondent computer system.    
     
     
         97 . The method of  claim 88 , further comprising instructions that control the computer processor by: 
 when an update occurs to the network address of the one of the member computer systems, forwarding the updated network address to the direct and indirect correspondent computer systems of the one of the member computer systems.    
     
     
         98 . The method of  claim 88 , further comprising instructions that control the computer processor by: 
 forwarding with the updated network address of the one of the member computer system, an effective time associated with the updated network address.    
     
     
         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.    
     
     
         100 . The system of  claim 99 , further comprising: 
 means for using the stored indication of the network address and the relationship path for the at least one correspondent of the first level correspondent to search for a current network address for communicating with the first level correspondent computer system.    
     
     
         101 . The system of  claim 99 , the means for using comprising: 
 means for forwarding the updated network address of the member computer system to each correspondent of the first level correspondent until a determined threshold level of indirection is reached.    
     
     
         102 . The system of  claim 99 , further comprising: 
 means for forwarding at least a portion of the network address information received from the first level correspondent computer system of the member computer system to other correspondent computer systems of the member computer system.    
     
     
         103 . The system of  claim 99 , further comprising: 
 means for forwarding a portion of the network address information when indication of a new first level correspondent computer system is received, including at least an indication of a network address of the new correspondent, to the other first level correspondent computer systems of the member computer system.    
     
     
         104 . The system of  claim 99 , further comprising: 
 means for forwarding a network address of the member computer system to the new first level correspondent computer system.    
     
     
         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.  
   
     
     
         106 . The software interface of  claim 105  wherein the directory service portion is executed by the computer processor in response to a request from a peer-to-peer application for a network address of the second correspondent computer system.  
     
     
         107 . The software interface of  claim 105  wherein the tracking portion further is expressed as instructions that, when executed by the computer processor, transmit to the at least the third correspondent computer system the network address information for the at least one other correspondent computer systems.  
     
     
         108 . The software interface of  claim 105  wherein the directory service portion, when executed by the computer processor, uses the stored network address information for the at least one other correspondent computer system to automatically determine the current network address of the second correspondent computer system.  
     
     
         109 . The method of  claim 30 , further comprising: 
 forwarding the updated network address to indirect correspondent computer systems of the computer system.    
     
     
         110 . The memory medium of  claim 57 , further comprising instructions to control the computer processor by: 
 forwarding the updated network address to indirect correspondent computer systems of the computer system.    
     
     
         111 . The system of  claim 61  wherein the locating service component is further structured to successively query for a current network address of the direct correspondent by contacting the direct and indirect correspondents of the computer system in a determined order, using the retrieved network address information associated with the at least one correspondent of the computer system until the operational network address is determined.  
     
     
         112 . The system of  claim 111  wherein the determined order is at least one of correspondent level, a ranking, or a weighting of probable success.  
     
     
         113 . The system of  claim 63  wherein the locating service component is further structured to recursively query the direct and indirect correspondents of the direct correspondent in a determined order.  
     
     
         114 . The system of  claim 113  wherein the determined order is at least one of correspondent level, a ranking, or a weighting of probable success.  
     
     
         115 . The method of  claim 76 , further comprising receiving and storing an indication of a network address and a relationship path to an indirect correspondent of the first level correspondent.  
     
     
         116 . The method of  claim 115 , further comprising using the stored indication of the network address and the relationship path to the indirect correspondent of the first level correspondent to search for a current network address for communicating with the first level correspondent computer system.  
     
     
         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.  
   
     
     
         118 . The method of  claim 117  wherein communication with one or more of the rest of the correspondent computer systems is performed according to a determined order until the current network address of the target correspondent computer system is found or until all of the rest of the correspondent computer systems have been queried.  
     
     
         119 . The method of  claim 117  wherein the determined order is at least one of correspondent level, a ranking, or a weighting of probable success.  
     
     
         120 . The method of  claim 117 , the network address information including a network address for each direct correspondent of the computer system and a network address and a relationship path for each correspondent of each direct correspondent of the computer system.  
     
     
         121 . The method of  claim 117  performed without using an intermediate directory server with a static network address.  
     
     
         122 . The method of  claim 117  performed in conjunction with using an intermediate directory server with a static network address.  
     
     
         123 . The method of  claim 117  wherein the mutually tracked correspondent computer systems include at least one indirect correspondent of the computer system, and wherein the network address of the at least one indirect correspondent of the computer system is used to automatically determine the current network address of the target computer system.  
     
     
         124 . The method of  claim 123  wherein the at least one indirect correspondent of the computer system is greater than two levels of correspondents away from the computer system.  
     
     
         125 . The method of  claim 117  wherein the stored network address information includes Internet Protocol (“IP”) network addresses.  
     
     
         126 . The method of  claim 117  wherein the stored network address information includes a private local area network (“LAN”) address.  
     
     
         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.  
   
     
     
         128 . The memory medium of  claim 127  wherein communication with each of the rest of the correspondent computer systems is performed according to a determined order until the current network address of the target correspondent computer system is found or until all of the rest of the correspondent computer systems have been queried.  
     
     
         129 . The memory medium of  claim 127  wherein the determined order is at least one of correspondent level, a ranking, or a weighting of probable success.  
     
     
         130 . The memory medium of  claim 127 , the network address information including a network address for each direct correspondent of the computer system and a network address and a relationship path for each correspondent of each direct correspondent of the computer system.  
     
     
         131 . The memory medium of  claim 127  wherein the instructions performed without using an intermediate directory server with a static network address.  
     
     
         132 . The memory medium of  claim 127  wherein the instructions are performed in conjunction with using an intermediate directory server with a static network address.  
     
     
         133 . The memory medium of  claim 127  wherein the mutually tracked correspondent computer systems include at least one indirect correspondent of the computer system, and wherein the network address of the at least one indirect correspondent of the computer system is used to automatically determine the current network address of the target computer system.  
     
     
         134 . The memory medium of  claim 133  wherein the at least one indirect correspondent of the computer system is greater than two levels of correspondents away from the computer system.  
     
     
         135 . The memory medium of  claim 127  wherein the stored network address information includes Internet Protocol (“IP”) network addresses.  
     
     
         136 . The memory medium of  claim 127  wherein the stored network address information includes a private local area network (“LAN”) address.  
     
     
         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.  
   
     
     
         138 . The system of  claim 137 , the directory service structured to communicate with each of the rest of the correspondent computer systems according to a determined order until the current network address of the target correspondent computer system is found or until all of the rest of the correspondent computer systems have been queried.  
     
     
         139 . The system of  claim 137  wherein the determined order is at least one of correspondent level, a ranking, or a weighting of probable success.  
     
     
         140 . The system of  claim 137 , the network address information including a network address for each direct correspondent of the computer system and a network address and a relationship path for each correspondent of each direct correspondent of the computer system.  
     
     
         141 . The system of  claim 137  wherein the correspondent computer systems include at least one indirect correspondent of the computer system, and wherein the network address of the at least one indirect correspondent of the computer system is used to automatically determine the current network address of the target computer system.  
     
     
         142 . The system of  claim 141  wherein the at least one indirect correspondent of the computer system is greater than two levels of correspondents away from the computer system.  
     
     
         143 . The system of  claim 137  wherein the stored network address information includes Internet Protocol (“IP”) network addresses.  
     
     
         144 . The system of  claim 137  wherein the stored network address information includes a private local area network (“LAN”) address.  
     
     
         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.    
     
     
         146 . The method of  claim 145  wherein the stored network address information includes Internet Protocol (“IP”) network addresses.  
     
     
         147 . The method of  claim 145  wherein the stored network address information includes a private local area network (“LAN”) address.  
     
     
         148 . The method of  claim 145  wherein the sending the updated network address information is sent to direct and indirect correspondents of the plurality of first level correspondents until a determined threshold level of indirection is reached.  
     
     
         149 . The method of  claim 145  wherein the sending the updated network address information is sent according to a determined order of correspondents.  
     
     
         150 . The method of  claim 149  wherein the determined order is at least one of correspondent level, a ranking, or a weighting of probable success.  
     
     
         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.    
     
     
         152 . The memory medium of  claim 151  wherein the stored network address information includes Internet Protocol (“IP”) network addresses.  
     
     
         153 . The memory medium of  claim 151  wherein the stored network address information includes a private local area network (“LAN”) address.  
     
     
         154 . The memory medium of  claim 151  wherein the sending the updated network address information is sent to direct and indirect correspondents of the plurality of first level correspondents until a determined threshold level of indirection is reached.  
     
     
         155 . The memory medium of  claim 151  wherein the sending the updated network address information is sent according to a determined order of correspondents.  
     
     
         156 . The memory medium of  claim 155  wherein the determined order is at least one of correspondent level, a ranking, or a weighting of probable success.  
     
     
         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.  
   
     
     
         158 . The system of  claim 157  wherein the stored network address information includes Internet Protocol (“IP”) network addresses.  
     
     
         159 . The system of  claim 157  wherein the stored network address information includes a private local area network (“LAN”) address.  
     
     
         160 . The system of  claim 157  wherein the sending the updated network address information is sent to direct and indirect correspondents of the plurality of first level correspondents until a determined threshold level of indirection is reached.  
     
     
         161 . The system of  claim 157  wherein the sending the updated network address information is sent according to a determined order of correspondents.  
     
     
         162 . The system of  claim 161  wherein the determined order is at least one of correspondent level, a ranking, or a weighting of probable success.

Join the waitlist — get patent alerts

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

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