Method and system for downloading updates
First Claim
1. A method for updating a first computing device in a network comprising the first computing device and a host, the first computing device having a cache for storing at least one update, the method comprising:
- (A) receiving at the first computing device, from the host, a list of update options for obtaining an available update, the list comprising information identifying a partial update, a full update, and an expected hash value of a component updatable by way of the partial update;
(B) determining at the first computing device, in response to (A), an update option from the list of available update options, wherein (B) comprises;
determining whether the first computing device comprises a component for which a hash value matches the expected hash value,when the first computing device comprises the component for which a hash value matches the expected hash value, selecting the partial update as the update option, andwhen the first computing device does not comprise the component for which a hash value matches the expected hash value, selecting the full update as the update option, wherein the selected update option is segmented into a plurality of pieces;
(C) receiving at the first computing device, from the host, a list of computing devices in the network, wherein the list of computing devices identifies, for each piece of the plurality of pieces, at least one computing device that makes that piece available for download;
(D) downloading to the first computing device, each of the plurality of pieces from the at least one computing device on the list of computing devices, wherein at least two of the plurality of pieces are downloaded from different computing devices; and
—
(E) updating the software of the first computing device utilizing the downloaded plurality of pieces, wherein (E) includes;
assembling the downloaded pieces into a patch, andinstalling the patch,wherein each downloaded piece is confirmed based on a hash of the piece prior to the assembling of the downloaded pieces into the patch.
2 Assignments
0 Petitions
Accused Products
Abstract
Embodiments of the present invention provide the ability for a software provider to distribute software updates to several different recipients utilizing a peer-to-peer environment. The invention described herein may be used to update any type of software, including, but not limited to, operating software, programming software, anti-virus software, database software, etc. The use of a peer-to-peer environment with added security provides the ability to minimize download time for each peer and also reduce the amount of egress bandwidth that must be provided by the software provider to enable recipients (peers) to obtain the update.
314 Citations
28 Claims
-
1. A method for updating a first computing device in a network comprising the first computing device and a host, the first computing device having a cache for storing at least one update, the method comprising:
-
(A) receiving at the first computing device, from the host, a list of update options for obtaining an available update, the list comprising information identifying a partial update, a full update, and an expected hash value of a component updatable by way of the partial update; (B) determining at the first computing device, in response to (A), an update option from the list of available update options, wherein (B) comprises; determining whether the first computing device comprises a component for which a hash value matches the expected hash value, when the first computing device comprises the component for which a hash value matches the expected hash value, selecting the partial update as the update option, and when the first computing device does not comprise the component for which a hash value matches the expected hash value, selecting the full update as the update option, wherein the selected update option is segmented into a plurality of pieces; (C) receiving at the first computing device, from the host, a list of computing devices in the network, wherein the list of computing devices identifies, for each piece of the plurality of pieces, at least one computing device that makes that piece available for download; (D) downloading to the first computing device, each of the plurality of pieces from the at least one computing device on the list of computing devices, wherein at least two of the plurality of pieces are downloaded from different computing devices; and
—(E) updating the software of the first computing device utilizing the downloaded plurality of pieces, wherein (E) includes; assembling the downloaded pieces into a patch, and installing the patch, wherein each downloaded piece is confirmed based on a hash of the piece prior to the assembling of the downloaded pieces into the patch. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for providing a peer list to a client for downloading software updates in a network comprising the client and a host, the method comprising:
-
transmitting by the host, to the client, a list identifying options for an available update, the list comprising information identifying a partial update, a full update, and an indicator of an expected state of a component that is updatable by way of the partial update, the indicator indicating to a client whether a component of the client having a state matching the expected state is updatable by way of the partial update, such that the client receives information to make a selection between at least the partial update and the full update based at least in part on the indicator; receiving at the host, from the client, a request for a peer list corresponding to an update option in the list, the peer list identifying peers from which to request the update option from the list; generating by the host, the peer list identifying a plurality of peers and a plurality of pieces, the plurality of pieces collectively defining the requested update option; and transmitting by the host, to the client, the peer list, wherein the peer list identifies at least one peer for each of the plurality of pieces. - View Dependent Claims (10, 11, 12, 13, 14, 25, 26)
-
-
15. A computer system having a computer-readable medium including a computer-executable program therein for performing a method of obtaining an update in a network comprising the computer system and a host, the method comprising:
-
(A) receiving at the computer system, from the host, a list of update options for obtaining an available update, the list comprising information identifying a partial update, a full update, and an indicator of an expected state of a component that is updatable by way of the partial update; (B) identifying at the computer system, an update option from the list of update options, wherein (B) comprises; determining whether the computer system comprises a component that is in the expected state indicated by the indicator and is updatable by way of the partial update, when the computer system comprises a component in the expected state, selecting the partial update the update option, and when the computer system does not comprise a component in the expected state, selecting the full update as the update option; (C) requesting by the computer system, from the host, a peer list for the selected update option; (D) receiving at the computer system, from the host, a peer list for the selected update option, wherein the peer list identifies a plurality of pieces of the selected update option, and identifies for each piece, a computing device in the network that makes that piece available for download; and (E) downloading to the computer system, each of the pieces from the identified computing devices. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 27, 28)
-
Specification