Patent ID: 7624179

Claim:
A method performed by a server providing locating service in a peer-to-peer networking environment in which peers publish resources, peers cache resources obtained from other peers, and peers obtain resources cached by other peers, where peers determine locations of resources via a locator service comprised of servers that track names of resources and respective peers storing the named resources, where resources both within and outside the peer-to-peer networking environment are looked up by passing the names of a resource to the locator service, the method comprising: receiving an assignment of a peer within the peer-to-peer networking environment and in response tracking the network address of the peer; receiving a plurality resource requests from the peer and through the peer-to-peer networking environment, the resource requests being addressed to the server based on the peer having been assigned to the server, and each resource request containing a resource identifier identifying a resource, where some of the resource requests are for non-peer resources outside the peer-to-peer networking environment, and some of the resource requests are for peer resources available from peers of the peer-to-peer networking environment; responsive to receiving a resource request from the peer, determining if the resource request is a request for a peer resource or if the resource request is a request for a non-peer resource; forwarding the resource request to a network source outside the peer-to-peer network if it was determined that the resource request is a request for a non-peer resource; accessing a locator service indicated by the resource request if it was determined that the resource request is a request for a peer resource, and receiving from said locator service a list of network locations of peers in peer-to-peer networking environment where the peer resource is expected to be available, the list of network locations not including the server, the locator service comprising a plurality of servers to which various peers are assigned, where when a server does not have a peer location for a requested resource such server refers to another server to obtain the peer location; and sending at least a portion of the list of network locations of peers to the peer to allow the peer to access the peer resource at one or more of the listed network locations.