IP Library › Granted Patent US 12,314,705
Granted Patent B2
US 12,314,705 · App. 18/444,188 · Granted May 27, 2025

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 12,314,705
App. No.
18/444,188
Granted
May 27, 2025
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 (43)

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

performing a primary deployment phase by:

transmitting a software update to selected devices of a 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;

in response to an update promotion condition being 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 , further comprising determining that the update promotion condition has been satisfied by:

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:

perform a primary deployment to:

transmit a 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;

in response to an update promotion condition being satisfied, perform a secondary deployment phase to:

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 8 , 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 8 , 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 8 , 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:

perform a primary deployment to:

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;

in response to an update promotion condition being satisfied, perform a secondary deployment phase to:

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 Feb 27, 2024
From: BROCK, RYAN E.; RINGHOLM, MICHAEL J.; KENLEY, CHRIS; JOHNSON, CORBIN P.
To: ZEBRA TECHNOLOGIES CORPORATION
Reel/Frame 066578/0398 →
Continuity (2)
Continuation 17694840 · Mar 15, 2022
Related Publication 20240192947A1 · Jun 13, 2024
References Cited (7)
US 9055385B1 · Singh · 2015 [cited by examiner]
US 9229902B1 · Leis · 2016 [cited by examiner]
US 10747520B2 · Shepard · 2020 [cited by examiner]
US 20200326919A1 · Kaler et al. · 2020 [cited by applicant]
US 20200379744A1 · Bhupati et al. · 2020 [cited by applicant]
US 20210397436A1 · Le et al. · 2021 [cited by applicant]
International Search Report and Written Opinion for International Application No. PCT/US2023/14972 mailed on Jun. 22, 2023. [cited by applicant]