US 7512943 Distributed caching of files in a network

ABSTRACT – Distributed caching and download of file. A method is described that includes building a peer list comprising a listing of potential peer servers from among one or more networked computers. The peer list includes no more than a predetermined number of potential peer servers. Potential peer servers in the peer list are queried for a file or portion of a file. A message from a peer server in the peer list is received indicating that the peer server has the file or portion of a file available for download. The computer system downloads the file or portion of a file from the peer server.

BACKGROUND

Network computing allows computers to request and receive software and file content from servers for installation and/or storage on the computers. File content may include, for example, text files, video files, data files, image files, etc. The software can be requested and downloaded for several purposes including updating system software, updating application software, and updating data files. For example, security patches may be downloaded for updating an operating system to prevent or counteract attacks on a computer system. Additionally, software can be downloaded for installing new applications on a computer. In one exemplary system, software can be downloaded in the background such that the software may be downloaded while a computer and computer user perform other tasks. One exemplary service with this functionality is the Background Intelligent Transfer Service (BITS).

Often, when software is published and available for download from a server, there are many computers on the network that attempt to obtain the software simultaneously or within a very short period of time. For example, when the software is a security patch, there is a desire to deliver the software to as many computers as possible in as short of time as possible to prevent malicious attacks on the computers or the network. When the software is a new application intended for system wide distribution in a corporate campus, there may be a desire to deploy the software system wide in a short period of time. When the software is a highly anticipated release, a large number of users may attempt to download the software in an effort to be among the first to use the software. To distribute the software on a large scale may require large amounts of server and network capacity. Such large scale downloads may be especially troublesome in a network environment where a number of branch offices connect to an enterprise hub at corporate headquarters. In this example, when software is distributed from the enterprise hub, the network connection between the enterprise hub and a branch office may limit the number of computers that can be updated at a particular time even when a server at the enterprise hub has sufficient capabilities for providing software to many or all of the computers at the branch office.

There are several methods that have been used to distribute the workload for large scale downloads. For example, in a corporate environment, deploying new software may be accomplished by only deploying the software to a limited number of computers on the network at a given time. Alternatively, caching proxies may be placed within the network to distribute the software to a subset of the computers on the network. Both of these solutions require careful planning to be implemented. In addition, in the case of caching proxies, additional computer hardware is added to the network increasing the cost of the network.

While various issues have been identified in this background, the subject matter claimed below does not necessarily address any or all of the identified issues. This background serves simply to provide background on one exemplary environment where the embodiments described herein may be practiced.

SUMMARY

One embodiment described herein includes a method of caching and sharing files. The method may be practiced for example at a computer system in a computer network including one or more networked computers. The method includes building a peer list including a listing of potential peer servers from among the one or more networked computers. The peer list includes no more than a predetermined number of potential peer servers. Potential peer servers in the peer list are queried for a file or portion of a file. A message from a peer server in the peer list is received indicating that the peer server has the file or portion of a file available for download. The computer system downloads the file or portion of a file from the peer server.

Another embodiment described herein includes a method of caching and sharing files. The method may be practiced for example at a computer system in a computer network including one or more networked computers. The method includes sending a message that the computer system is available as a peer. The computer system receives a request to discover if the computer system has a file or portion of a file. The computer system sends a message that the computer system has the file or portion of a file. Sending the message that the computer system has the file or portion of a file is performed based on dynamic opt-in/opt-out rules. The computer system receives a request to download the file. The computer system sends the file to a requesting system.

Another embodiment described herein includes a method of caching and sharing files. The method may be practiced for example at a computer system in a computer network including one or more networked computers. The computer system sends a broadcast signal to computer systems on a subnet to discover potential peers. The computer system receives a unicast, or alternatively a multicast signal from one of the computer systems on the subnet. The computer system adds the one of the computer systems on the subnet to a peer list. The peer list includes no more than a predetermined number of peers. The computer system sends a unicast signal to the one of the computer systems on the subnet to discover if the one of the system has a file or portion of a file available for download. The computer system receives a unicast signal from the one of the computer systems on the subnet indicating that the one of the computer systems on the subnet has the file or portion of a file available for download. The computer system downloads the file or portion of a file from the one of the computer systems on the subnet.

This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.

Related Posts