IP Library Granted Patent US 11,588,707
Granted Patent B2
US 11,588,707 · App. 17/087,247 · Granted Feb 21, 2023

Updating electronic devices using a push model

Inventors: Timothy F. Lloyd (Austin, TX); Mindy C. Preston (Chicago, IL); Margo A. Baxter (Austin, TX); Brett B. Stewart (Austin, TX)
Assignee: Acumera, Inc.
H04L41/22G06F8/65H04L41/082H04L41/0886H04L67/12H04L67/34H04L67/55H04W4/50G06F3/048H04W4/70
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,588,707
App. No.
17/087,247
Granted
Feb 21, 2023
Kind
B2
Abstract

Automatically updating electronic devices using a push model. A set of electronic devices may be selected for an update. A first plurality of devices of the set of devices for which the update is valid may be determined in accordance with a set of rules, e.g., safety check rules or business rules, where the determining is based on stored configuration information for each of the devices. Current configuration information and accessibility information may be received for each of the first plurality of devices, and based on the received current configuration information and accessibility information and the stored configuration information, a second plurality of devices of the set of devices for which the update is valid may be determined, where the second plurality is a subset of the first plurality. The update may be applied automatically to at least some of the second plurality of devices.

Claims (104)

1. A non-transitory computer accessible memory medium that stores program instructions executable to cause a computing device to:

receive an indication of a plurality of target devices for which an update has been determined to be valid according to a set of rules;

concurrently update the plurality of target devices, wherein, in concurrently updating the plurality of target devices, the program instructions are executable to cause the computing device to:

initiate concurrent updating of a first portion of the plurality of target devices using a first level of concurrency, wherein initiating concurrent updating comprises pushing the update to the first portion of the plurality of target devices;

monitor the concurrent updating, thereby generating first results;

in response to the first results meeting first criteria, initiate concurrent updating of a second portion of the plurality of target devices at a second level of concurrency, wherein the second level of concurrency is greater than the first level of concurrency; and

repeat said monitoring and said initiating concurrent updating one or more times for further subsequent portions of the plurality of target devices at respective subsequent levels of concurrency, wherein the subsequent levels of concurrency for the subsequent portions are greater than levels of concurrency of previous portions, wherein the subsequent levels of concurrency are applied as warranted by subsequent results of repeating said monitoring;

wherein the program instructions are further executable to implement a graphical user interface (GUI), wherein the first results comprise an indication of at least one target device for which the update is valid, and wherein the program instructions are further executable to cause the computing device to:

receive, to the GUI, user input manually overriding the first results for the at least one target device; and

exclude the at least one target device from said concurrently updating in response to said receiving user input.

2. The non-transitory computer accessible memory medium of claim 1 , wherein the update being valid for a first target device of the plurality of target devices comprises the update being compatible with one or more of:

hardware of the first target device;

software of the first target device; or

configuration information of the first target device.

3. The non-transitory computer accessible memory medium of claim 2 , wherein the compatibility of the update is based at least partly on one or more of:

version of software for the first target device; or

version of configuration information for the first target device.

4. The non-transitory computer accessible memory medium of claim 1 , wherein the set of rules applies to multiple different device types or models.

5. The non-transitory computer accessible memory medium of claim 1 , wherein the first results comprise an indication of at least one first target device for which the update was not successful, and wherein the program instructions are further executable to cause the computing device to:

determine the update was not successful because the at least one first target device was not accessible;

determine subsequently that the at least one first target device is accessible; and

update of the at least one first target device in response to said subsequently determining that the at least one first target device is accessible.

6. The non-transitory computer accessible memory medium of claim 1 , wherein the update comprises one or more of:

firmware modification;

firmware configuration modification;

software modification;

software configuration modification;

at least one parameter modification; or

at least one parameter configuration modification.

7. The non-transitory computer accessible memory medium of claim 1 , wherein the GUI is further configured to:

receive user input modifying the set of rules.

8. The non-transitory computer accessible memory medium of claim 1 , wherein the program instructions are executable to further cause the GUI to:

receive user input specifying:

sizes of the at least a successive portion and the further successive portions of the plurality of target devices; or

rules for automatically specifying the sizes of the at least a successive portion and the further successive portions of the plurality of target devices.

9. A computer implemented method, comprising:

by a computing device:

receiving an indication of a plurality of target devices for which an update has been determined to be valid according to a set of rules; and

concurrently updating the plurality of target devices, wherein said concurrently updating the plurality of target devices comprises:

initiating concurrent updating of a first portion of the plurality of target devices using a first level of concurrency, wherein initiating concurrent updating comprises pushing the update to the first portion of the plurality of target devices;

monitoring the concurrent updating, thereby generating first results;

in response to the first results meeting first criteria, initiating concurrent updating of at a second portion of the plurality of target devices at a second level of concurrency, wherein the second level of concurrency is greater than the first level of concurrency; and

repeating said monitoring and said initiating concurrent updating one or more times for further subsequent portions of the plurality of target devices at respective subsequent levels of concurrency, wherein the subsequent levels of concurrency for the subsequent portions are greater than levels of concurrency of previous portions, wherein the subsequent levels of concurrency are applied as warranted by subsequent results of repeating said monitoring;

implementing a graphical user interface (GUI), wherein the first results comprise an indication of at least one target device for which the update is valid, and wherein the method further comprises:

receiving, to the GUI, user input manually overriding the first results for the at least one target device; and

excluding the at least one target device from said concurrently updating in response to said receiving user input.

10. The computer implemented method of claim 9 , wherein the update being valid for a first target device of the plurality of target devices comprises the update being compatible with one or more of:

hardware of the first target device;

software of the first target device; or

configuration information of the first target device.

11. The computer implemented method of claim 10 , wherein the compatibility of the update is based at least partly on one or more of:

version of software for the first target device; or

version of configuration information for the first target device.

12. The computer implemented method of claim 9 , wherein the set of rules applies to multiple different device types or models.

13. The computer implemented method of claim 9 , wherein the first results comprise an indication of at least one first target device for which the update was not successful, the method further comprising:

determining the update was not successful because the at least one first target device was not accessible;

determining subsequently that the at least one first target device is accessible; and

updating of the at least one first target device in response to said subsequently determining that the at least one first target device is accessible.

14. The computer implemented method of claim 9 , wherein said concurrently updating of the plurality of target devices further comprises:

generate further results based on monitoring the concurrent updating; and

in response to the further results failing to meet further criteria, initiating sequential updating of at least a second successive portion of the plurality of target devices.

15. The computer implemented method of claim 9 , wherein the program instructions are further executable to perform:

rolling back the update for at least one first target device of the plurality of target devices.

16. The computer-implemented method of claim 9 , the method further comprising:

by the computing device:

receiving user input through the GUI specifying:

sizes of the at least a successive portion and the further successive portions of the plurality of target devices; or

rules for automatically specifying the sizes of the at least a successive portion and the further successive portions of the plurality of target devices.

17. A system for updating devices using a push model, the system comprising:

a processor; and

a memory medium coupled to the processor, wherein the memory medium stores program instructions executable by the processor to cause the system to:

receive an indication of a plurality of target devices for which an update has been determined to be valid according to a set of rules; and

concurrently update the plurality of target devices, wherein, in concurrently the plurality of target devices, the program instructions are executable to cause the system to:

initiate concurrent updating of a first portion of the plurality of target devices using a first level of concurrency, wherein initiating concurrent updating comprises pushing the update to the first portion of the plurality of target devices;

monitor the concurrent updating, thereby generating first results;

in response to the first results meeting first criteria, initiate concurrent updating of a second portion of the plurality of target devices at a second level of concurrency, wherein the second level of concurrency is greater than the first level of concurrency; and

repeat said monitoring and said initiating concurrent updating one or more times for subsequent portions of the plurality of target devices at respective subsequent levels of concurrency, wherein the subsequent levels of concurrency for the subsequent portions are greater than levels of concurrency of previous portions, wherein the subsequent levels of concurrency are applied as warranted by subsequent results of repeating said monitoring;

wherein the program instructions are further executable to cause the system to implement a graphical user interface (GUI), wherein the first results comprise an indication of at least one target device for which the update is valid, and wherein the program instructions are further executable to cause the system to:

receive, to the GUI, user input manually overriding the first results for the at least one target device; and

exclude the at least one target device from said concurrently updating in response to said receiving user input.

18. The system of claim 17 , wherein the update being valid for a first target device of the plurality of target devices comprises the update being compatible with one or more of:

hardware of the first target device;

software of the first target device; or

configuration information of the first target device.

19. The system of claim 18 , wherein the compatibility of the update is based at least partly on one or more of:

version of software for the first target device; or

version of configuration information for the first target device.

20. The system of claim 17 , wherein the set of rules applies to multiple different device types or models.

21. The system of claim 17 , wherein the first results comprise an indication of at least one first target device for which the update was not successful, and wherein the program instructions are further executable to cause the computing device to:

determine the update was not successful because the at least one first target device was not accessible;

determine subsequently that the at least one first target device is accessible; and

update the at least one first target device in response to said subsequently determining that the at least one first target device is accessible.

22. The system of claim 17 , wherein the first results meeting first criteria comprises confirmation that, for each respective target device of at least a subset of the plurality of target devices:

a current state of the respective target device matches an expected state of the respective target device.

23. The system of claim 22 , wherein the current state of the respective target device is received from one or more of:

the respective target device;

cloud storage; or

a storage device.

24. The system of claim 17 , wherein said concurrently updating comprises:

deploying an update to a first target device; and

requesting reboot of the first target device.

25. The system of claim 17 , wherein the set of rules comprises at least one of:

a set of safety check rules; or

a set of business rules.

Assignments (7)
SECURITY INTEREST Recorded Jan 29, 2026
From: SCALE COMPUTING, LLC
To: TORONTO DOMINION (TEXAS) LLC
Reel/Frame 073633/0710 →
CHANGE OF NAME Recorded Sep 9, 2025
From: ACUMERA, INC.
To: SCALE COMPUTING, INC.
Reel/Frame 073133/0138 →
RELEASE OF SECURITY INTEREST Recorded Jul 2, 2024
From: ALTER DOMUS (US) LLC
To: ACUMERA, INC.
Reel/Frame 067896/0535 →
SECURITY INTEREST Recorded Jun 9, 2023
From: ACUMERA, INC.
To: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
Reel/Frame 063912/0619 →
RELEASE OF SECURITY INTEREST Recorded Jun 9, 2023
From: CAPITAL FINANCE ADMINISTRATION, LLC
To: ACUMERA, INC.
Reel/Frame 063909/0794 →
SECURITY INTEREST Recorded Oct 5, 2021
From: ACUMERA, INC.
To: CAPITAL FINANCE ADMINISTRATION, LLC
Reel/Frame 057705/0083 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2020
From: LLOYD, TIMOTHY F.; PRESTON, MINDY C.; BAXTER, MARGO A.; STEWART, BRETT B.
To: ACUMERA, INC.
Reel/Frame 054245/0878 →
Continuity (3)
Continuation 16137334 · Sep 20, 2018
Continuation 14941350 · Nov 13, 2015
Related Publication 20210075695A1 · Mar 11, 2021