IP Library Granted Patent US 11,470,149
Granted Patent B2
US 11,470,149 · App. 17/221,858 · Granted Oct 11, 2022

State management for device-driven management workflows

Inventors: Jonathon Deriso (Atlanta, GA); Saransh Bhatnagar (Bangalore, IN); Rahul Parwani (Atlanta, GA); Brian Link (Atlanta, GA); Mohan Guttikonda (Bangalore, IN); Satish Venkatakrishnan (Bangalore, IN)
Assignee: VMWARE, INC.
H04L67/1078H04L41/0627H04L67/01H04L67/1044H04L67/306
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,470,149
App. No.
17/221,858
Granted
Oct 11, 2022
Kind
B2
Abstract

Disclosed are various embodiments for managing the state of client devices using device-driven management workflows. A computing device can be evaluated to determine the current state of the computing device. Then, the current state of the computing device is compared to an expected state of the computing device. The expected state of the computing device may be based at least in part on a result of execution of at least one device-driven management workflow by the computing device. In response to a determination that the current state of the computing device fails to match the expected state of the computing device, the device-driven management workflow can be executed to resolve the discrepancy between the expected state and the current state.

Claims (71)

1. A system comprising:

a computing device comprising a processor and a memory; and

machine-readable instructions stored in the memory that, when executed by the processor, cause the computing device to at least:

perform a first execution of a device-driven management workflow, wherein the device-driven management workflow comprises one or more branch sequences that are configured to be executed based at least in part on a state of the computing device and wherein the first execution of the device-driven management workflow executes at least a first branch sequence of the one or more branch sequences;

evaluate the computing device to determine a current state of the computing device;

compare the current state of the computing device to an expected state of the computing device, wherein the expected state of the computing device is based at least in part on a result of the first execution of the device-driven management workflow by the computing device; and

in response to a determination that the current state of the computing device fails to match the expected state of the computing device, perform a second execution of the device-driven management workflow, wherein the second execution of the device-driven management workflow executes at least a second branch sequence of the one or more branch sequences based at least in part on the current state of the computing device.

2. The system of claim 1 , wherein the machine-readable instructions, when executed by the processor, further cause the computing device to at least:

determine that the second execution of the device-driven management workflow failed; and

send an error message to a management service, the error message comprising an indication that the second execution of the device-driven management workflow failed.

3. The system of claim 2 , wherein the machine-readable instructions that, when executed by the processor, cause the computing device to at least determine that the second execution of the device-driven management workflow failed, further cause the computing device to at least:

reevaluate the computing device to determine the current state of the computing device;

compare the current state of the computing device to the expected state of the computing device; and

determine, based at least in part on a comparison of the current state of the computing device to the expected state of the computing device, that the second execution of the device-driven management workflow failed.

4. The system of claim 1 , wherein the machine-readable instructions that, when executed by the processor, cause the computing device to determine that the current state of the computing device fails to match the expected state of the computing device, further cause the computing device to at least:

identify a current version of a resource installed on the computing device;

compare the current version of the resource to a version of the resource specified by the device-driven management workflow; and

determine that the current version of the resource is less than the version of the resource specified by the device-driven management workflow.

5. The system of claim 1 , wherein the machine-readable instructions that, when executed by the processor, cause the computing device to determine that the current state of the computing device fails to match the expected state of the computing device, further causes the computing device to at least determine that the device-driven management workflow has failed to previously successfully execute to completion.

6. The system of claim 1 , wherein the machine-readable instructions, when executed by the processor, further cause the computing device to at least:

monitor execution of individual tasks of the device-driven management workflow; and

report the execution of the individual tasks of the device-driven management workflow to a management service.

7. The system of claim 1 , wherein the machine-readable instructions, when executed by the processor, further cause the computing device, prior to performing the first execution of the device-driven management workflow, to at least:

obtain the device-driven management workflow from a command queue associated with a management service; and

store the device-driven management workflow in the memory.

8. A computer-implemented method, comprising:

performing a first execution of a device-driven management workflow, wherein the device-driven management workflow comprises one or more branch sequences that are configured to be executed based at least in part on a state of a computing device and wherein the first execution of the device-driven management workflow executes at least a first branch sequence of the one or more branch sequences;

evaluating the computing device to determine a current state of the computing device;

comparing the current state of the computing device to an expected state of the computing device, wherein the expected state of the computing device is based at least in part on a result of the first execution of the device-driven management workflow by the computing device; and

in response to a determination that the current state of the computing device fails to match the expected state of the computing device, performing a second execution of the device-driven management workflow, wherein the second execution of the device-driven management workflow executes at least a second branch sequence of the one or more branch sequences based at least in part on the current state of the computing device.

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

determining that the second execution of the device-driven management workflow failed; and

sending an error message to a management service, the error message comprising an indication that the second execution of the device-driven management workflow failed.

10. The computer-implemented method of claim 9 , wherein determining that the second execution of the device-driven management workflow failed, further comprises:

reevaluating the computing device to determine the current state of the computing device;

comparing the current state of the computing device to the expected state of the computing device; and

determining, based at least in part on a comparison of the current state of the computing device to the expected state of the computing device, that the second execution of the device-driven management workflow failed.

11. The computer-implemented method of claim 8 , further comprising:

determining that the current state of the computing device fails to match the expected state of the computing device further causes the computing device to at least:

identifying a current version of a resource installed on the computing device;

comparing the current version of the resource to a version of the resource specified by the device-driven management workflow; and

determining that the current version of the resource is less than the version of the resource specified by the device-driven management workflow.

12. The computer-implemented method of claim 8 , wherein determining that the current state of the computing device fails to match the expected state of the computing device further comprises determining that the device-driven management workflow has failed to previously successfully execute to completion.

13. The computer-implemented method of claim 8 , further comprising:

monitoring execution of individual tasks of the device-driven management workflow; and

reporting the execution of the individual tasks of the device-driven management workflow to a management service.

14. The computer-implemented method of claim 8 , further comprising:

obtaining the device-driven management workflow from a command queue associated with a management service; and

storing the device-driven management workflow in a memory of the computing device.

15. A non-transitory, computer-readable medium comprising machine-readable instructions that, when executed by a processor of a computing device, cause the computing device to at least:

perform a first execution of a device-driven management workflow, wherein the device-driven management workflow comprises one or more branch sequences that are configured to be executed based at least in part on a state of the computing device and wherein the first execution of the device-driven management workflow executes at least a first branch sequence of the one or more branch sequences;

evaluate the computing device to determine a current state of the computing device;

compare the current state of the computing device to an expected state of the computing device, wherein the expected state of the computing device is based at least in part on a result of the first execution of the device-driven management workflow by the computing device; and

in response to a determination that the current state of the computing device fails to match the expected state of the computing device, perform a second execution of the device-driven management workflow, wherein the second execution of the device-driven management workflow executes at least a second branch sequence of the one or more branch sequences based at least in part on the current state of the computing device.

16. The non-transitory, computer-readable medium of claim 15 , wherein the machine-readable instructions, when executed by the processor, further cause the computing device to at least:

determine that the second execution of the device-driven management workflow failed; and

send an error message to a management service, the error message comprising an indication that the second execution of the device-driven management workflow failed.

17. The non-transitory, computer-readable medium of claim 16 , wherein the machine-readable instructions that, when executed by the processor, cause the computing device to at least determine that the second execution of the device-driven management workflow failed, further cause the computing device to at least:

reevaluate the computing device to determine the current state of the computing device;

compare the current state of the computing device to the expected state of the computing device; and

determine, based at least in part on a comparison of the current state of the computing device to the expected state of the computing device, that the second execution of the device-driven management workflow failed.

18. The non-transitory, computer-readable medium of claim 15 , wherein the machine-readable instructions that, when executed by the processor, cause the computing device to determine that the current state of the computing device fails to match the expected state of the computing device, further cause the computing device to at least:

identify a current version of a resource installed on the computing device;

compare the current version of the resource to a version of the resource specified by the device-driven management workflow; and

determine that the current version of the resource is less than the version of the resource specified by the device-driven management workflow.

19. The non-transitory, computer-readable medium of claim 15 , wherein the machine-readable instructions, when executed by the processor, further cause the computing device to at least:

monitor execution of individual tasks of the device-driven management workflow; and

report the execution of the individual tasks of the device-driven management workflow to a management service.

20. The non-transitory, computer-readable medium of claim 15 , wherein the machine-readable instructions, when executed by the processor, further cause the computing device, prior to performing the first execution of the device-driven management workflow, to at least:

obtain the device-driven management workflow from a command queue associated with a management service; and

store the device-driven management workflow in a memory of the computing device.

Assignments (4)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: VMWARE LLC
To: OMNISSA, LLC
Reel/Frame 068327/0365 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 5, 2021
From: DERISO, JONATHON; BHATNAGAR, SARANSH; PARWANI, RAHUL; LINK, BRIAN; GUTTIKONDA, MOHAN; VENKATAKRISHNAN, SATISH
To: VMWARE, INC.
Reel/Frame 055816/0256 →
Priority Claims (1)
IN 202141003450 · Jan 25, 2021 · national
Continuity (1)
Related Publication 20220239735A1 · Jul 28, 2022