Patent ID: 9628559
Date: 2017-04-18
CPC Classifications: G06F,H04L

Claim:
1. A computer system for improving resource downloads, the computer system comprising: one or more computer processors; one or more computer readable storage devices; program instructions stored on the one or more computer readable storage devices for execution by at least one of the one or more computer processors, the stored program instructions comprising: program instructions to detect a request to download a resource from an original source to a user's computing device; responsive to detecting a request to download a resource from an original source to a user's computing device, program instructions to determine whether the requested resource has been downloaded to the user's computing device in the past; responsive to determining the requested resource has not been downloaded to the user's computing device in the past, program instructions to determine whether social information associated with the user is available on the user's computing device; responsive to determining the social information associated with the user is not available on the user's computing device, program instructions to request social information from the user, wherein social information includes at least: a social network identification, a contact information, an organization email address, or a corporate chat identification; program instructions to determine a cost of the download of the requested resource from the original source, wherein the cost of the download of the requested resource includes at least one of: a measurement of bandwidth or a measurement of time; program instructions to determine whether the cost of the download of the requested resource from the original source exceeds a predefined threshold; responsive to determining the cost of the download of the requested resource from the original source exceeds a predefined threshold, program instructions to determine a group of trusted network connected endpoints; program instructions to determine whether the requested resource exists in the group of trusted network connected endpoints, wherein program instructions to determine whether the requested resource exists in the group of trusted network connected endpoints includes program instructions to propagate a query to a pre-configured depth across a social network of trusted network connected endpoints; responsive to determining the requested resource exists in the group of trusted network connected endpoints, program instructions to determine whether a peer-to-peer communication path can be established with at least one of the trusted network connected endpoints; responsive to determining a peer-to-peer communication path can be established with at least one of the trusted network connected endpoints, program instructions to determine one or more endpoints from which the requested resource can be downloaded for a lowest cost; and program instructions to download the requested resource from at least one of the trusted network connected endpoints.