IP Library Granted Patent US 11,327,876
Granted Patent B2
US 11,327,876 · App. 16/856,145 · Granted May 10, 2022

Verifying a software or firmware update using a container before deploying to a client

Inventors: Parminder Singh Sethi (Ludhiana, IN); Sharmad Shashir Naik (Bangalore, IN); Akshita Das (Vadodara, IN)
Assignee: EMC IP Holding Company LLC
G06F11/3688G06F8/65G06F9/4406G06F9/4411G06F9/4418G06F11/3692G06N20/00
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,327,876
App. No.
16/856,145
Granted
May 10, 2022
Kind
B2
Abstract

In some examples, a server receives configuration data from a device. The server receives a software or firmware update from a vendor and determines, based on the configuration data, that the update is installable on the device. The server creates and configures a container, based on the configuration data, to create a replica of the device. The server installs the update in the replica and performs multiple tests that generate logs. If the logs indicate that the update caused no issues, the server sends the update to the device. If the logs indicate that the update caused an issue, the server sends the update to the vendor. In response, the server receives, from the vendor, a modified update that addresses the issue, installs the modified update in the replica, performs the tests, determines that the modified update causes no issues, and sends the modified update to the device.

Claims (130)

1. A method comprising:

receiving, by one or more processors, a vendor update from a vendor;

determining, by the one or more processors and based on configuration data associated with a client device, that the vendor update is installable in the client device;

creating, by the one or more processors, a container;

configuring the container, by the one or more processors and based on the configuration data associated with the client device, to replicate a configuration of the client device to create a replica container;

installing, by the one or more processors, the vendor update in the replica container;

performing, by the one or more processors, a plurality of tests to the replica container with the vendor update installed to generate a set of logs, the plurality of tests including (1) performing a normal boot, (2) performing a fast boot, (3) performing a hibernate followed by a boot from hibernate, (4) performing a set of file handling tests including creating a file, opening the file, writing to the file, reading from the file, and deleting the file, and (5) determining a memory footprint of at least one software application executing on the client device;

performing, by the one or more processors, an analysis of the set of logs;

determining, by the one or more processors and based on the analysis, that the vendor update caused no issues; and

sending the vendor update to the client device.

2. The method of claim 1 , further comprising:

determining, by a machine learning algorithm, a test category associated with individual tests of the plurality of tests;

determining, by the machine learning algorithm and based on multiple sets of logs generated by performing the plurality of tests to multiple vendor updates, a frequency of failure of individual test categories; and

determining, by the machine learning algorithm and based on the frequency of failure of the individual test categories, an order in which to perform the tests.

3. The method of claim 1 , further comprising:

receiving a second vendor update from the vendor;

uninstalling the vendor update from the replica container;

installing the second vendor update in the replica container;

performing the plurality of tests to the replica container with the second vendor update installed to generate a second set of logs;

performing a second analysis of the second set of logs;

determining, based on the second analysis, that the second vendor update caused at least one issue; and

sending the second vendor update and the second set of logs to the vendor.

4. The method of claim 3 , further comprising:

receiving a modified update from the vendor;

uninstalling the second vendor update from the replica container;

installing the modified update in the replica container;

performing the plurality of tests to the replica container with the modified update installed to generate a third set of logs;

performing a third analysis of the third set of logs;

determining, based on the third analysis, that the modified update causes no issues; and

sending the modified update to the client device.

5. The method of claim 1 , wherein the vendor update comprises at least one of:

an operating system update to an operating system that is installed on the client device;

a software application update to a software application that is installed on the client device;

a driver update to a driver that is installed on the client device;

a basic input output system (BIOS) update to a BIOS of the client device; and

a firmware update to a firmware of a hardware component of the client device.

6. The method of claim 1 , further comprising:

receiving the configuration data from the client device, the configuration data comprising:

an operating system version that is installed on the client device;

a software application version that is installed on the client device;

a driver version that is installed on the client device;

a basic input output system (BIOS) version of the client device; or

a firmware version installed in a hardware component included in the client device.

7. A computing device comprising:

one or more processors; and

one or more non-transitory computer-readable media storing instructions that are executable by the one or more processors to perform operations comprising:

receiving a vendor update from a vendor;

determining, based on configuration data associated with a client device, that the vendor update is associated with the client device;

creating a container;

configuring the container, based on the configuration data associated with the client device, to replicate a configuration of the client device to create a replica container;

installing the vendor update in the replica container;

performing a plurality of tests to the replica container with the vendor update installed to generate a set of logs, the plurality of tests including (1) performing a normal boot, (2) performing a fast boot, (3) performing a hibernate followed by a boot from hibernate, (4) performing a set of file handling tests including creating a file, opening the file, writing to the file, reading from the file, and deleting the file, and (5) determining a memory footprint of at least one software application executing on the client device;

performing an analysis of the set of logs;

determining, based on the analysis, that the vendor update caused no issues; and

sending the vendor update to the client device.

8. The computing device of claim 7 , the operations further comprising:

determining, by a machine learning algorithm, a test category associated with individual tests of the plurality of tests;

determining, by the machine learning algorithm and based on multiple sets of logs generated by performing the plurality of tests to multiple vendor updates, a frequency of failure of individual test categories; and

determining, by the machine learning algorithm and based on the frequency of failure of the individual test categories, an order in which to perform the tests.

9. The computing device of claim 7 , the operations further comprising:

receiving a second vendor update from the vendor;

uninstalling the vendor update from the replica container;

installing the second vendor update in the replica container;

performing the plurality of tests to the replica container with the second vendor update installed to generate a second set of logs;

performing a second analysis of the second set of logs;

determining, based on the second analysis, that the second vendor update caused at least one issue; and

sending the second vendor update and the second set of logs to the vendor.

10. The computing device of claim 9 , the operations further comprising:

receiving a modified update from the vendor;

uninstalling the second vendor update from the replica container;

installing the modified update in the replica container;

performing the plurality of tests to the replica container with the modified update installed to generate a third set of logs;

performing a third analysis of the third set of logs;

determining, based on the third analysis, that the modified update causes no issues; and

sending the modified update to the client device.

11. The computing device of claim 7 , wherein the vendor update comprises at least one of:

an operating system update to an operating system that is installed on the client device;

a software application update to a software application that is installed on the client device;

a driver update to a driver that is installed on the client device;

a basic input output system (BIOS) update to a BIOS of the client device; or

a firmware update to a firmware of a hardware component of the client device.

12. The computing device of claim 7 , the operations further comprising:

receiving the configuration data from the client device, the configuration data comprising:

an operating system version that is installed on the client device;

a software application version that is installed on the client device;

a driver version that is installed on the client device;

a basic input output system (BIOS) version of the client device; and

a firmware version installed in a hardware component included in the client device.

13. One or more non-transitory computer-readable media storing instructions that are executable by one or more processors to perform operations comprising:

receiving a vendor update from a vendor;

determining, based on configuration data associated with a client device, that the vendor update is associated with the client device;

creating a container;

configuring the container, based on the configuration data associated with the client device, to replicate a configuration of the client device to create a replica container;

installing the vendor update in the replica container;

performing a plurality of tests to the replica container with the vendor update installed to generate a set of logs, the plurality of tests including (1) performing a normal boot, (2) performing a fast boot, (3) performing a hibernate followed by a boot from hibernate, (4) performing a set of file handling tests including creating a file, opening the file, writing to the file, reading from the file, and deleting the file, and (5) determining a memory footprint of at least one software application executing on the client device;

performing an analysis of the set of logs;

determining, based on the analysis, that the vendor update caused no issues; and

sending the vendor update to the client device.

14. The one or more non-transitory computer-readable media of claim 13 , the operations further comprising:

determining, by a machine learning algorithm, a test category associated with individual tests of the plurality of tests;

determining, by the machine learning algorithm and based on multiple sets of logs generated by performing the plurality of tests to multiple vendor updates, a frequency of failure of individual test categories; and

determining, by the machine learning algorithm and based on the frequency of failure of the individual test categories, an order in which to perform the tests.

15. The one or more non-transitory computer-readable media of claim 13 , the operations further comprising:

receiving a second vendor update from the vendor;

uninstalling the vendor update from the replica container;

installing the second vendor update in the replica container;

performing the plurality of tests to the replica container with the second vendor update installed to generate a second set of logs;

performing a second analysis of the second set of logs;

determining, based on the second analysis, that the second vendor update caused at least one issue; and

sending the second vendor update and the second set of logs to the vendor.

16. The one or more non-transitory computer-readable media of claim 15 , the operations further comprising:

receiving a modified update from the vendor, wherein the modified update comprises at least one of:

an operating system update to an operating system that is installed on the client device;

a software application update to a software application that is installed on the client device;

a driver update to a driver that is installed on the client device;

a basic input output system (BIOS) update to a BIOS of the client device; or

a firmware update to a hardware component included in the client device;

uninstalling the second vendor update from the replica container;

installing the modified update in the replica container;

performing the plurality of tests to the replica container with the modified update installed to generate a third set of logs;

performing a third analysis of the third set of logs;

determining, based on the third analysis, that the modified update causes no issues; and

sending the modified update to the client device.

17. The one or more non-transitory computer-readable media of claim 13 , the operations further comprising:

receiving the configuration data from the client device, the configuration data comprising:

an operating system version that is installed on the client device;

a software application version that is installed on the client device;

a driver version that is installed on the client device;

a basic input output system (BIOS) version of the client device; and

a firmware version installed in a hardware component included in the client device.

Assignments (10)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0917) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0509 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0081) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0441 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052852/0022) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0582 →
RELEASE OF SECURITY INTEREST AT REEL 052771 FRAME 0906 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0298 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052852/0022 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0081 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0917 →
SECURITY AGREEMENT Recorded May 28, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052771/0906 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 28, 2020
From: NAIK, SHARMAD SHASHIR
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052509/0330 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 23, 2020
From: SETHI, PARMINDER SINGH; DAS, AKSHITA
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052477/0322 →
Continuity (1)
Related Publication 20210334195A1 · Oct 28, 2021