IP Library Granted Patent US 11,675,601
Granted Patent B2
US 11,675,601 · App. 17/328,583 · Granted Jun 13, 2023

Systems and methods to control software version when deploying OS application software from the boot firmware

Inventors: Dongli Wu (Allen, TX); James D. Testerman (McKinney, TX); Kristopher Slocum (Sachse, TX)
Assignee: Dell Products L.P.
G06F9/4406G06F8/61G06F8/71G06F9/445H04L67/06
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,675,601
App. No.
17/328,583
Granted
Jun 13, 2023
Kind
B2
Abstract

Embodiments of systems and computer implemented methods are disclosed to automatically restore operating system (OS) application software to an information handling systems (IHS) when the OS application software is removed from a computer readable storage device of the IHS. The disclosed embodiments control the version of the OS application software being deployed to an IHS when deploying the software from the boot firmware. For example, the disclosed embodiments utilize a version identifier to specify which version of the OS application software should be restored, a Content Deliver Network (CDN) server to store multiple versions of the OS application software, and a registration web server to map a device identifier corresponding to the IHS and the version identifier corresponding to the specified version of the OS application software to a universal resource locator (URL) link identifying where the specified version of the OS application software is stored within the CDN server.

Claims (73)

1. A system, comprising:

an information handling system (IHS); and

a first remote system and a second remote system communicatively coupled to the IHS over a network;

wherein the IHS includes:

at least one computer readable non-volatile memory configured to store boot firmware and Advanced Configuration and Power Interface (ACPI) firmware;

a computer readable storage device configured to store an operating system (OS) for the IHS, at least one OS application, a device identifier corresponding to the IHS, and a version identifier corresponding to a specified version of the at least one OS application; and

at least one processing device, wherein when the at least one OS application is removed from the computer readable storage device, the at least one processing device executes program instructions within the boot firmware and the ACPI firmware to:

retrieve a universal resource locator (URL) link corresponding to the device identifier and the version identifier from the second remote system, wherein the URL link identifies where the specified version of the at least one OS application and a corresponding deployment agent installer are stored within the first remote system; and

use the URL link to automatically restore the specified version of the at least one OS application to the computer readable storage device.

2. A system, comprising:

an information handling system (IHS), comprising:

at least one computer readable non-volatile memory configured to store boot firmware and Advanced Configuration and Power Interface (ACPI) firmware;

a computer readable storage device configured to store an operating system (OS) for the IHS, at least one OS application, a device identifier corresponding to the IHS, and a version identifier corresponding to a specified version of the at least one OS application; and

at least one processing device configured to execute program instructions within the boot firmware and the ACPI firmware to automatically restore the specified version of the at least one OS application to the computer readable storage device if the at least one OS application is removed from the computer readable storage device; and

a plurality of remote systems communicatively coupled to the IHS via a network, wherein the plurality of remote systems comprise:

a first remote system configured to store:

multiple versions of the at least one OS application; and

a deployment agent installer for each version of the at least one OS application stored within the first remote system;

wherein each version of the at least one OS application and corresponding deployment agent installer are stored within the first remote system at a location identified by a universal resource locator (URL) link; and

a second remote system configured to map the device identifier and the version identifier to a URL link identifying where the specified version of the at least one OS application and corresponding deployment agent installer are stored within the first remote system.

3. The system as recited in claim 2 , wherein the first remote system is a Content Deliver Network (CDN) server and the second remote system is a registration web server.

4. The system as recited in claim 2 , wherein the second remote system is configured to save the device identifier, the version identifier and the URL link within a map record stored within the second remote system.

5. The system as recited in claim 2 , wherein a deployment agent installer is provided to the IHS before the at least one OS application is removed from the computer readable storage device, and wherein the version identifier corresponding to the specified version of the at least one OS application is attached to the deployment agent installer to specify which version of the at least one OS application to restore.

6. The system as recited in claim 5 , wherein the at least one processing device is configured to execute program instructions within the deployment agent installer to:

store the version identifier attached to the deployment agent installer within an OS-accessible memory of the IHS, the device identifier is also stored within the OS-accessible memory;

store a deployment agent service within the computer readable storage device; and

extract a platform binary service from the boot firmware and store the platform binary service within the computer readable storage device.

7. The system as recited in claim 6 , wherein the at least one processing device is configured to execute program instructions within the platform binary service to:

read the version identifier and the device identifier from the OS-accessible memory; and

send a provisioning request to the second remote system via the network, wherein the provisioning request includes the device identifier and the version identifier read from the OS-accessible memory.

8. The system as recited in claim 7 , wherein the second remote system is configured to:

save the device identifier, the version identifier and the URL link within a map record stored within the second remote system upon receiving the provisioning request; and

send the URL link to the platform binary service via the network.

9. The system as recited in claim 8 , wherein the at least one processing device is configured to execute program instructions within the platform binary service to:

enable a Windows Platform Binary Table (WPBT) in the boot firmware, wherein the WPBT includes a platform binary, which is executed after the at least one OS application is removed from the computer readable storage device when the IHS is rebooted to install the platform binary service.

10. The system as recited in claim 9 , wherein after the at least one OS application is removed from the computer readable storage device and the IHS is rebooted, the at least processing device is configured to execute program instructions within the operating system to:

read the WPBT and load the platform binary included within the WPBT into system memory;

execute the platform binary loaded into system memory to install the platform binary service; and

execute the platform binary service to access the second remote system and retrieve the URL link that identifies where the specified version of the at least one OS application and the corresponding deployment agent installer are stored within the first remote system.

11. The system as recited in claim 10 , wherein the at least one processing device is configured to execute program instructions within the platform binary service to:

read the device identifier from the OS-accessible memory; and

send a discovery request to the second remote system via the network, wherein the discovery request includes the device identifier read from the OS-accessible memory.

12. The system as recited in claim 11 , wherein the second remote system is configured to:

use the device identifier included within the discovery request to obtain the map record corresponding to the device identifier;

retrieve the URL link corresponding to the version identifier from the map record; and

send the URL link to the platform binary service via the network.

13. The system as recited in claim 12 , wherein the at least one processing device is configured to execute program instructions within the platform binary service to:

download the deployment agent installer identified by the URL link from the first remote system; and

execute the deployment agent installer to install and start the deployment agent service.

14. The system as recited in claim 13 , wherein the at least one processing device is configured to execute program instructions within the deployment agent service to:

use a URL link previously provided to the deployment agent service to access the first remote system and retrieve the specified version of the at least one OS application; and

store the specified version of the at least one OS application retrieved from the first remote system within the computer readable storage device.

15. A computer implemented method performed by an information handling system (IHS) to automatically restore at least one operating system (OS) application to the IHS when the at least one OS application is removed from a computer readable storage device of the IHS, the computer implemented method comprising:

reading a device identifier and a version identifier from an OS-accessible memory of the IHS, wherein the device identifier corresponds to the IHS and the version identifier corresponds to a specified version of the at least one OS application;

sending a provisioning request over a first network to a remote registration server communicatively coupled to the IHS via the first network, wherein the provisioning request includes the device identifier and the version identifier, and wherein the remote registration server maps the device identifier and the version identifier to a universal resource locator (URL) link identifying where the specified version of the at least one OS application and a corresponding deployment agent installer are stored within a Content Deliver Network (CDN) server;

rebooting the IHS when the at least one OS application is removed from the computer readable storage device of the IHS;

using the device identifier to access the remote registration server and retrieve the URL link corresponding to the device identifier and the version identifier; and

using the URL link to restore the specified version of the at least one OS application to the computer readable storage device.

16. The computer implemented method as recited in claim 15 , wherein said using the device identifier to access the remote registration server and retrieve the URL link comprises:

reading the device identifier from the OS-accessible memory;

sending a discovery request over the first network to the remote registration server, wherein the discovery request includes the device identifier read from the OS-accessible memory; and

receiving the URL link from the remote registration server via the first network.

17. The computer implemented method as recited in claim 15 , wherein said using the URL link to restore the specified version of the at least one OS application to the computer readable storage device comprises:

using the URL link retrieved from the remote registration server to access the CDN server and retrieve the deployment agent installer corresponding to the specified version of the at least one OS application;

receiving the deployment agent installer from the CDN server via the first network;

executing the deployment agent installer to install and start the deployment agent service, which uses a URL link previously provided to the deployment agent service to access the remote registration server and retrieve the specified version of the at least one OS application from the CDN server;

receiving the specified version of the at least one OS application from the CDN server via the first network; and

storing the specified version of the at least one OS application received from the CDN server within the computer readable storage device.

18. The computer implemented method as recited in claim 15 , wherein prior to said reading a device identifier and a version identifier from an OS-accessible memory of the IHS, the computer implemented method further comprises:

receiving the version identifier corresponding to the specified version of the at least one OS application from an administrator IHS communicatively coupled to the IHS via a second network; and

storing the version identifier within the OS-accessible memory.

19. The computer implemented method as recited in claim 18 , wherein the specified version of the at least one OS application corresponds to a version of the at least one OS application, which is selected by an information technology (IT) administrator to control the version of the at least one OS application restored to the IHS.

20. The computer implemented method as recited in claim 18 , wherein the specified version of the at least one OS application corresponds to a version of the at least one OS application, which is selected by a software developer to control the version of the at least one OS application restored to the IHS.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (058014/0560) Recorded Jun 10, 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 062022/0473 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057931/0392) Recorded Jun 10, 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 062022/0382 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057758/0286) Recorded Jun 10, 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 061654/0064 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 058014/0560 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 057758/0286 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 057931/0392 →
SECURITY AGREEMENT Recorded Oct 1, 2021
From: DELL PRODUCTS, L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 057682/0830 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 24, 2021
From: WU, DONGLI; TESTERMAN, JAMES D.; SLOCUM, KRISTOPHER
To: DELL PRODUCTS L.P.
Reel/Frame 056332/0203 →
Continuity (1)
Related Publication 20220374244A1 · Nov 24, 2022