IP Library Granted Patent US 9,075,693
Granted Patent B2
US 9,075,693 · App. 13/647,097 · Granted Jul 7, 2015

Methods for updating applications

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,075,693
App. No.
13/647,097
Granted
Jul 7, 2015
Kind
B2
Abstract

A method includes receiving, from a remote computing device, an update request, the update request including a first signature corresponding to a client-side application package that is stored at the remote computing device. The method also includes identifying a first server-side application package using the first signature. The method also includes generating a differential update package using the first server-side application package and a second server-side application package as inputs, wherein the differential update package, when applied to the client side application package, is operable to modify to the client-side application package such that it is functionally equivalent to the second server-side application package.

Claims (38)

1. A method, comprising:

receiving, by a server-side application repository, from a remote computing device, an update request, the update request including a first signature that uniquely identifies a client-side application package, consisting essentially of components of a single software application, and including information identifying an updated version of the client-side application package;

identifying a number of requests to download a differential update package associated with the client-side application package;

identifying a size of the differential update package;

identifying, in response to receiving the update request, and based on one or both of the number of requests to download the differential update package exceeding a threshold value and the size of the differential update package exceeding a certain percentage of a size of the updated version of the client-side application package, whether to generate a differential update package, wherein generating the differential update package comprises:

comparing, via the server-side application repository, the first signature to a second signature that identifies a first server-side application package that is identical to the client-side application package; and

using the first server-side application package and a second server-side application package as inputs to create the differential update package, wherein the second server-side application package is identified based on the information identifying an updated version of the client-side application package, and

wherein the differential update package, when applied to the client-side application package, is operable to modify the client-side application package such that it is functionally equivalent to the second server-side application package.

2. The method of claim 1 , further comprising:

transmitting the differential update package to the remote computing device subsequent to generating the differential update package.

3. The method of claim 1 , wherein the update request includes one or more system characteristics describing the remote computing device.

4. The method of claim 1 , wherein the first signature is a hash code.

5. A non-transitory storage device including program instructions executable by one or more processors that, when executed, cause the one or more processors to perform operations, the operations comprising:

receiving, by a server-side application repository, from a remote computing device, an update request, the update request including a first signature that uniquely identifies a client-side application package, consisting essentially of components of a single software application, and including information identifying an updated version of the client-side application package;

identifying a number of requests to download a differential update package associated with the client-side application package;

identifying a size of the differential update package;

identifying, in response to receiving the update request, and based on one or both of the number of requests to download the differential update package exceeding a threshold value and the size of the differential update package exceeding a certain percentage of a size of the updated version of the client-side application package, whether to generate a differential update package, wherein generating the differential update package comprises:

comparing, via the server-side application repository, the first signature to a second signature that identifies a first server-side application package that is identical to the client-side application package; and

using the first server-side application package and a second server-side application package as inputs to create the differential update package, wherein the second server-side application package is identified based on the information identifying an updated version of the client-side application package, and

wherein the differential update package, when applied to the client-side application package, is operable to modify the client-side application package such that it is functionally equivalent to the second server-side application package.

6. The non-transitory storage device of claim 5 , the operations further comprising:

transmitting the differential update package to the remote computing device subsequent to generating the differential update package.

7. The non-transitory storage device of claim 5 , wherein the update request includes one or more system characteristics describing the remote computing device.

8. The non-transitory storage device of claim 5 , wherein the first signature is a hash code.

9. An apparatus, comprising:

one or more processors; and

one or more memory devices for storing program instructions used by the one or more processors, wherein the program instructions, when executed by the one or more processors, cause the one or more processors to:

receive, by a server-side application repository, from a remote computing device, an update request, the update request including a first signature that uniquely identifies a client-side application package, consisting essentially of components of a single software application, and including information identifying an updated version of the client-side application package;

identify a number of requests to download a differential update package associated with the client-side application package;

identify a size of the differential update package;

identify, in response to receiving the update request, and based on one or both of the number of requests to download the differential update package exceeding a threshold value and the size of the differential update package exceeding a certain percentage of a size of the updated version of the client-side application package, whether to generate a differential update package, wherein when the one or more processors are to generate the differential update package, the one or more processors are to:

compare the first signature to a second signature that identifies a first server-side application package that is identical to the client-side application package; and

use the first server-side application package and a second server-side application package as inputs to create the differential update package, wherein the second server-side application package is identified based on the information identifying an updated version of the client-side application package, and

wherein the differential update package, when applied to the client-side application package, is operable to modify the client-side application package such that it is functionally equivalent to the second server-side application package.

10. The apparatus of claim 9 , wherein the program instructions further cause the one or more processors to:

transmit the differential update package to the remote computing device subsequent to generating the differential update package.

11. The apparatus of claim 9 , wherein the update request includes one or more system characteristics describing the remote computing device and the one or more predetermined criteria include the one or more system characteristics.

12. The apparatus of claim 9 , wherein the first signature is a hash code.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044334/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 15, 2012
From: SPORKERT, TILMAN; STADLER, ANDREW DEVRON; KIRKPATRICK, FICUS; FIRMAN, ILYA; SONNTAG, CHRISTIAN
To: GOOGLE INC.
Reel/Frame 029127/0264 →