IP Library › Granted Patent US 11,907,703
Granted Patent B2
US 11,907,703 · App. 17/694,840 · Granted Feb 20, 2024

System and method for phased software update deployment

Inventors: Ryan E. Brock (Cary, IL); Michael J. Ringholm (Coplay, PA); Chris Kenley (Gurnee, IL); Corbin P. Johnson (Arlington Heights, IL)
Assignee: Zebra Technologies Corporation
G06F8/65H04L67/34
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 11,907,703
App. No.
17/694,840
Granted
Feb 20, 2024
Kind
B2
Abstract

A software deployment method in a server includes: obtaining a software update for deployment to a plurality of media processing devices; performing a primary deployment phase by: (i) transmitting the software update to selected media processing devices according to a primary deployment rate; (ii) responsive to the transmission, for each selected media processing device, updating a status indicator representing whether deployment of the software update succeeded; and (iii) determining, based on the status indicators, whether an update promotion condition has been satisfied; in response to determining that the update promotion condition has been satisfied, performing a secondary deployment phase by: transmitting the software update to further selected media processing devices according to a secondary deployment rate exceeding the primary deployment rate.

Claims (52)

1. A software deployment method in a server, the method comprising:

obtaining a software update for deployment to a plurality of devices;

performing a primary deployment phase by:

(i) transmitting the software update to selected devices of the plurality of devices according to a primary deployment rate for each of a sequence of time windows by selecting a subset of the plurality of devices based on stored activity data and transmitting the updated software to each device in the subset, a number of devices in the subset is limited by a primary subset limit;

(ii) responsive to the transmission, for each selected device, updating a status indicator representing whether deployment of the software update succeeded; and

(iii) determining, based on the status indicators, whether an update promotion condition has been satisfied;

in response to determining that the update promotion condition has been satisfied, performing a secondary deployment phase by:

transmitting the software update to further selected devices of the plurality of devices according to a secondary deployment rate exceeding the primary deployment rate for each of a sequence of further time windows by selecting the further subset of the devices based on stored activity data and transmitting the updated software to each device in the further subset, a number of devices in the further subset is limited by a secondary subset limit greater than the primary subset limit.

2. The method of claim 1 , wherein the stored activity data indicates historical activity for the plurality of devices; and

wherein selecting the subset includes selecting the plurality of devices with historical activity below a threshold during a current time window.

3. The method of claim 1 , wherein selecting the subset includes determining, based on the activity data, at least one of:

(i) that each device in the subset is not currently active, and

(ii) that each device in the subset has not been active within a configurable period preceding a current time.

4. The method of claim 1 , wherein determining whether the update promotion condition has been satisfied includes:

determining whether a threshold portion of the plurality of devices in the subset have status indicators corresponding to successful deployment of the updated software.

5. The method of claim 1 , further comprising, prior to performing the primary deployment phase, performing a testing deployment phase by:

transmitting, to a testing subset of the plurality of devices, the software update and an output command; and

receiving a threshold number of update confirmations.

6. The method of claim 5 , further comprising, prior to performing the testing deployment phase, performing a monitored deployment phase by:

transmitting the software update to a monitored subset of the plurality of devices; and

receiving a command to proceed to the testing deployment phase.

7. A computing device, comprising:

a communications interface; and

a processor configured to:

obtain a software update for deployment to a plurality of devices;

perform a primary deployment:

(i) transmit the software update to selected devices of the plurality of devices according to a primary deployment rate for each of a sequence of time windows based on selection a subset of the plurality of devices based on stored activity data and transmission of the updated software to each device in the subset, a number of devices in the subset is limited by a primary subset limit;

(ii) responsive to the transmission, for each selected device, update a status indicator representing whether deployment of the software update succeeded; and

(iii) determine, based on the status indicators, whether an update promotion condition has been satisfied;

in response to determining that the update promotion condition has been satisfied, to perform a secondary deployment phase:

transmit the software update to further selected devices of the plurality of devices according to a secondary deployment rate exceeding the primary deployment rate for each of a sequence of further time windows based on selection of a further subset of the devices based on stored activity data and transmission of the updated software to each device in the further subset, a number of devices in the further subset is limited by a secondary subset limit greater than the primary subset limit.

8. The computing device of claim 7 , wherein the stored activity data indicates historical activity for the plurality of devices; and

wherein the processor is configured, to select the subset, to select the plurality of devices with historical activity below a threshold during a current time window.

9. The computing device of claim 7 , wherein the processor is configured, to select the subset, to determine, based on the activity data, at least one of:

(i) that each device in the subset is not currently active, and

(ii) that each device in the subset has not been active within a configurable period preceding a current time.

10. The computing device of claim 7 , wherein the processor is configured, to determine whether the update promotion condition has been satisfied, to:

determine whether a threshold portion of the devices in the subset have status indicators corresponding to successful deployment of the updated software.

11. The computing device of claim 7 , wherein the processor is further configured, to perform a testing deployment phase prior to the primary deployment phase, to:

transmit, to a testing subset of the plurality of devices, the software update and an output command; and

receive a threshold number of update confirmations.

12. The computing device of claim 11 , wherein the processor is further configured, to perform a monitored deployment phase prior to the testing deployment phase, to:

transmit the software update to a monitored subset of the plurality of devices; and

receive a command to proceed to the testing deployment phase.

13. A non-transitory computer-readable medium storing instructions executable by a processor to:

obtain a software update for deployment to a plurality of devices;

to perform a primary deployment:

(i) transmit the software update to selected devices of the plurality of devices according to a primary deployment rate for each of a sequence of time windows based on selection a subset of the plurality of devices based on stored activity data and transmission of the updated software to each device in the subset, a number of devices in the subset is limited by a primary subset limit;

(ii) responsive to the transmission, for each selected device, update a status indicator representing whether deployment of the software update; and

(iii) determine, based on the status indicators, whether an update promotion condition has been satisfied;

in response to determining that the update promotion condition has been satisfied, to perform a secondary deployment phase:

transmit the software update to further selected devices of the plurality of devices according to a secondary deployment rate exceeding the primary deployment rate for each of a sequence of further time windows based on selection of a further subset of the devices based on stored activity data and transmission of the updated software to each device in the further subset, a number of devices in the further subset is limited by a secondary subset limit greater than the primary subset limit.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 20, 2022
From: BROCK, RYAN E.; RINGHOLM, MICHAEL J.; KENLEY, CHRIS; JOHNSON, CORBIN P.
To: ZEBRA TECHNOLOGIES CORPORATION
Reel/Frame 059653/0204 →
Continuity (1)
Related Publication 20230297359A1 · Sep 21, 2023