IP Library Granted Patent US 9,420,065
Granted Patent B2
US 9,420,065 · App. 13/745,709 · Granted Aug 16, 2016

Peer-to-peer software updates

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,420,065
App. No.
13/745,709
Granted
Aug 16, 2016
Kind
B2
Abstract

Various aspects of the subject technology relate to systems, methods, and machine-readable media for providing a software update. A system is configured to receive, from an update server, an update patch for a computer program installed on a memory of a first computing machine, execute the update patch on a first computing machine to update the computer program, receive a request for the updated computer program from a second computing machine, and transmit the updated computer program installed on the memory of the first computing machine to the second computing machine without transmitting the update patch.

Claims (52)

1. A computer-implemented method for providing a software update, the method comprising:

determining, by a first computing machine having a first version of a computer program, whether at least one peer machine has a second version of the computer program available for retrieval;

receiving, at the first computing machine, in response to determining that the at least one peer machine does not have the second version of the computer program available for retrieval, an update patch from an update server, the update patch comprising a difference between the first version and the second version of the computer program;

executing the update patch on the first computing machine, to update the computer program from the first version to the second version;

receiving, at the first computing machine, a request for the second version of the computer program from a second computing machine; and

transmitting the second version of the computer program from the first computing machine to the second computing machine.

2. The computer-implemented method of claim 1 , further comprising:

contacting, prior to the determining whether at least one peer machine has the second version of the computer program available for retrieval, the update server to determine whether the first version of the computer program is up to date.

3. The computer-implemented method of claim 1 , wherein, in response to determining that the at least one peer machine has the second version of the computer program available for retrieval, the method further comprises:

requesting the second version of the computer program from the at least one peer machine.

4. The computer-implemented method of claim 3 , wherein the transmitting of the second version of the computer program to the second computing machine comprises transmitting, without transmitting the update patch, the entire content of a hard drive partition that has the second version of the computer program.

5. The computer-implemented method of claim 1 , wherein the computer program is installed on a memory of the first computing machine and the memory of the first computing machine is a hard drive partition.

6. The computer-implemented method of claim 1 , further comprising:

indicating, subsequent to the executing of the update patch on the first computing machine, to the second computing machine that the second version of the computer program is available for transmission.

7. The computer-implemented method of claim 1 , wherein the computer program is an operating system.

8. The computer-implemented method of claim 1 , wherein the second version of the computer program transmitted to the second computing machine is stored on a memory of the second computing machine and used by the second computing machine without an execution of an update patch.

9. The computer-implemented method of claim 1 , wherein the update patch is received via a first network and wherein the second version of the computer program is transmitted to the second computing machine via a second network.

10. A system for providing a software update, the system comprising:

one or more processors; and

memory comprising instructions stored therein, which when executed by the one or more processors, cause the one or more processors to perform operations comprising:

determining whether at least one peer machine has a second version of a computer program available for retrieval, wherein the system has a first version of the computer program;

receiving, in response to determining that the at least one peer machine does not have the second version of the computer program available for retrieval, from an update server, an update patch comprising a difference between the first version and the second version of the computer program;

executing the update patch to update the computer program from the first version to the second version;

receiving a request for the second version of the computer program from a peer computing machine; and

transmitting the second version of the computer program to the peer computing machine, wherein the second version of the computer program transmitted to the peer computing machine is stored on a memory of the peer computing machine and configured to be used by the peer computing machine without an execution of the update patch.

11. The system of claim 10 , wherein the operations further comprise:

contacting, prior to the determining whether at least one peer machine has the second version of the computer program available for retrieval, the update server to determine whether the first version of the computer program is up to date; and

second version of the computer program from the at least one peer machine in response to determining that the at least one peer machine has the second version of the computer program available for retrieval.

12. The system of claim 10 , wherein the computer program is installed on a memory of the system and the memory is a hard drive partition and wherein the transmitting of the second version of computer program to the peer computing machine comprises transmitting the entire content of a hard drive partition that the-second version of the computer program is installed on.

13. The system of claim 10 , wherein the operations further comprise:

indicating, subsequent to the executing of the update patch on the first computing machine, to the peer computing machine that the second version of computer program is available for transmission.

14. A non-transitory machine-readable medium comprising instructions stored therein, which when executed by a machine, cause the machine to perform operations comprising:

determining whether at least one peer machine has a second version of a computer program available for retrieval, wherein the machine has a first version of the computer program;

receiving, in response to determining that the at least one peer machine does not have the second version of the computer program available for retrieval, from an update server, an update patch comprising a difference between the first version and the second version of the computer program;

executing the update patch to update the computer program from the first version to the second version;

receiving, a request for the second version of the computer program from a peer computing machine on a local area network; and

transmitting the second version of the computer program to the peer computing machine, wherein the second version of the computer program transmitted to the peer computing machine is stored on a memory of the peer computing machine and configured to be used by the peer computing machine without an execution of the update patch.

15. The non-transitory machine-readable medium of claim 14 ,

wherein the operations further comprise:

contacting the update server to determine whether the first version of the computer program is up to date; and

determining, if the first version of the computer program is not up to date, whether at least one peer machine has at least one portion of the second version of the computer program available for retrieval.

16. The non-transitory machine-readable medium of claim 15 , wherein the operations further comprise:

requesting, if at least one peer machine has the second version of the computer program available for retrieval, the second version of the computer program from the at least one peer machine.

17. A computer-implemented method for updating a computer program, the method comprising:

contacting, by a first computing device, an update server to determine whether a first version of a computer program installed on the first computing device is up to date;

determining, by the first computing device, if the first version of the computer program installed on the first computing device is not up to date, whether at least one peer machine has a second version of the computer program available for retrieval;

retrieving, by the first computing device, if the at least one peer machine has the second version of the computer program available for retrieval, the second version of the computer program from the at least one peer machine; and

storing the second version of the computer program on the first computing device.

18. The computer-implemented method of claim 17 , wherein the second version of the computer program is configured to be used without an execution of an update patch.

19. The computer-implemented method of claim 17 ,

receiving, if no peer machines have the second version of the computer program available for retrieval, an update patch for updating the computer program from the first version to the second version on the first computing device from an update server; and

executing the update patch, wherein the update patch is configured to update the computer program from the first version to the second version on the first computing device.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044566/0657 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2013
From: MAYO, PETER BRIAN GEORGE; GARRETT, DONALD ALFRED
To: GOOGLE INC.
Reel/Frame 029697/0308 →