Patent ID: 7562112

Claim:
A method comprising: maintaining a directory at a server, the directory having a list of a plurality of devices, the directory further having a prioritized list of the plurality of devices having files; receiving a request at the server from a first device for a file, the first device of the plurality of device, the first device including a client coupled with the server; seeking a second device having the requested file by referencing the prioritized list of the plurality of devices, the second device being closest in proximity to the first device, the requested file having a first version, wherein the seeking of the second device is performed by the server; communicating a location of the second device to the first device via the server; directing the first device to directly obtain the requested file from the second device, wherein the directing of the first device is performed by the server; transferring the requested file from the second device to the first device via the server; and updating the requested file from the first version to a second version via the server, wherein the second version being newer than the first version and residing at a third device of the plurality of devices, the server redirecting the first device to directly obtain the second version of the requested file from the third device, and transferring the second version of the requested file from the third device to the first device via the server.