IP Library Granted Patent US 11,461,086
Granted Patent B2
US 11,461,086 · App. 16/542,501 · Granted Oct 4, 2022

Methods and apparatus for safe and smart distribution of software patches

Inventors: Eran Livne (Sandy, UT); Sébastien Baron (Siffres, FR)
Assignee: Ivanti, Inc.
G06F8/65G06F8/433G06K9/6267
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,461,086
App. No.
16/542,501
Granted
Oct 4, 2022
Kind
B2
Abstract

Systems, devices, and methods are disclosed to send a signal to deploy a software patch at a compute device, to identify, based on a dependency map, a set of system components on the compute device that are likely to be impacted by the software patch, to monitor a set of parameters for a set of applications on the compute device that interact with a set of system components, to compare values for the set of parameters to one or more predefined criteria and to determine a compatibility classification for the software patch. Systems, devices, and methods are disclosed to update the dependency map based on the compatibility classification to define an updated dependency map, and based on the updated dependency map send a signal to deploy the software patch at a set of compute devices.

Claims (51)

1. A non-transitory processor-readable medium storing code representing instructions to be executed by a processor, the instructions comprising code to cause the processor to:

receive, from a first compute device, software crash or unexpected termination data from a recently installed software patch, the software crash or unexpected termination data being associated with a first set of software applications installed on the first compute device and a first set of system components of the first compute device;

identify, based on the software crash or unexpected termination data, dependencies between the first set of software applications and the first set of system components, wherein each of the dependencies indicates that a change to one or more of the first set of software applications results in a modification to one or more of the first set of system components;

update a dependency map associated with the first compute device to include the identified dependencies;

receive information related to potential deployment of an uninstalled software patch that is configured for deployment on a second set of software applications installed on a second compute device;

receive information related to a second set of system components and the second set of software applications of the second compute device via a data collection agent of the second compute device;

predict, based on the information and the dependency map, a group of the second set of system components and of the second set of software applications likely incompatible with deployment of the uninstalled software patch;

build a prospective effect map configured to indicate relationships between the uninstalled software patch and the group at the second compute device;

based on the prospective effect map and the dependency map, determine that deploying the uninstalled software patch to a subset of the second set of software applications at the second compute device is unlikely to interact with the group; and

send a signal to deploy the uninstalled software patch at the second compute device to the subset of the second set of software applications in response to the determination.

2. The non-transitory processor-readable medium of claim 1 , wherein the first set of system components include one or more or a combination of:

a dynamic link library (DLL),

an executable system component file, and

a registry key.

3. The non-transitory processor-readable medium of claim 1 , wherein:

the information related to the potential deployment of the uninstalled software patch includes an indication of the second subset of the software applications affected by the software patch; and

the instructions further comprising code to cause the processor to update the dependency map based on the indication.

4. The non-transitory processor-readable medium of claim 1 , the instructions further comprising code to cause the processor to:

receive, from the second compute device, feedback associated with at least one of processor use, memory use, input/output use, or bandwidth use; and

identify a compatibility classification for the uninstalled software patch based on the feedback.

5. The non-transitory processor-readable medium of claim 1 , the instructions further comprising code to cause the processor to:

receive, from the second compute device, feedback associated with deployment of the uninstalled software patch; and

identify a compatibility classification for the uninstalled software patch based on the feedback.

6. The non-transitory processor-readable medium of claim 1 , wherein the software crash or unexpected termination data is received from a second agent executing on the first compute device.

7. The non-transitory processor-readable medium of claim 1 , the instructions further comprising code to cause the processor to:

monitor a set of parameters that interacts with at least one system component from the group,

compare values for the set of parameters to one or more predefined criteria to determine a compatibility classification for the uninstalled software patch after the uninstalled software patch is deployed, and

update the dependency map based on the compatibility classification to define an updated dependency map.

8. The non-transitory processor-readable medium of claim 7 , wherein the set of parameters includes at least one of processor use, memory use, input/output use, or bandwidth use.

9. The non-transitory processor-readable medium of claim 7 , the instructions further comprising code to cause the processor to monitor the set of parameters by receiving data from the data collection agent executing on the second compute device.

10. The non-transitory processor-readable medium of claim 7 , the instructions further comprising code to cause the processor to select to deploy the software patch on the second compute device based on a classification of the uninstalled software patch and the second set of system components on the second compute device.

11. A method, comprising:

receiving, from a first compute device, software crash or unexpected termination data associated with a first set of software applications installed on the first compute device and a first set of system components of the first compute device;

identifying, based on the received software crash or unexpected termination data, dependencies between the first set of software applications and the first set of system components;

defining a dependency map associated with the first compute device based on the identified dependencies;

receiving information related to potential deployment of an uninstalled software patch that is configured for deployment on a second set of software applications installed on a second compute device;

receiving information related to a second set of system components and the second set of software applications of the second compute device via a data collection agent of the second compute device;

predicting, based on the information and the dependency map, a group of the second set of system components and of the second set of software applications likely to be altered by deployment of the uninstalled software patch;

building a prospective effect map configured to indicate relationships between the uninstalled software patch and the group at the second compute device;

based on the prospective effect map and the dependency map, determining that deploying the uninstalled software patch to a subset of the second set of software applications at the second compute device is unlikely to interact with the group; and

sending a signal to deploy the uninstalled software patch at the second compute device to the subset of the second set of software applications.

12. The method of claim 11 , wherein the first set of system components includes at least one of a dynamic link library (DLL), an executable system component file, or a registry key.

13. The method of claim 11 , further comprising:

receiving, from the second compute device, an indication of an application affected by the deployed software patch; and

updating a dependency map of a second compute device based on the indication.

14. The method of claim 11 , further comprising:

receiving, from the second compute device, feedback associated with the uninstalled software patch after the uninstalled software patch is deployed; and

identifying a compatibility classification for the uninstalled software patch after the uninstalled software patch is deployed based on the feedback.

15. The method of claim 11 , wherein the software crash or unexpected termination data is received from a second agent executing on the first compute device.

16. The method of claim 11 , further comprising classifying the uninstalled software patch based on the information related to the potential deployment, wherein the predicting the group is based on the classifying.

17. The method of claim 11 , wherein the received software crash or unexpected termination data is associated with at least one of processor use, memory use, input/output use, or bandwidth use.

Assignments (11)
CORRECTIVE ASSIGNMENT TO CORRECT THE PROPERTY 14633493 WHICH WAS ENTERED INCORRECTLY AS 14633793 PREVIOUSLY RECORDED ON REEL 71176 FRAME 315. ASSIGNOR(S) HEREBY CONFIRMS THE FIRST LIEN NEWCO SECURITY AGREEMENT. Recorded Nov 10, 2025
From: PULSE SECURE, LLC; IVANTI, INC.; IVANTI US LLC; IVANTI SECURITY HOLDINGS LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 073818/0515 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 16, 2025
From: IVANTI SECURITY HOLDINGS LLC
To: IVANTI, INC.
Reel/Frame 071958/0203 →
2025-1 SECOND LIEN SECURITY AGREEMENT Recorded May 5, 2025
From: IVANTI SECURITY INTERMEDIATE HOLDINGS LLC; IVANTI SECURITY HOLDINGS LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 071176/0498 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 5, 2025
From: IVANTI, INC.
To: IVANTI SECURITY HOLDINGS LLC
Reel/Frame 071180/0690 →
PARTIAL RELEASE OF SECURITY INTERESTS Recorded May 5, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: PULSE SECURE, LLC; IVANTI, INC.; IVANTI US LLC; CHERWELL SOFTWARE, LLC
Reel/Frame 071176/0289 →
FIRST LIEN NEWCO SECURITY AGREEMENT Recorded May 5, 2025
From: PULSE SECURE, LLC; IVANTI, INC.; IVANTI US LLC; IVANTI SECURITY HOLDINGS LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 071176/0315 →
SECURITY INTEREST Recorded May 3, 2025
From: IVANTI SECURITY HOLDINGS LLC
To: ALTER DOMUS (US) LLC
Reel/Frame 071165/0164 →
RELEASE OF SECURITY INTEREST Recorded May 2, 2025
From: ALTER DOMUS (US) LLC
To: IVANTI SECURITY HOLDINGS LLC
Reel/Frame 071162/0130 →
NOTICE OF SUCCESSION OF AGENCY FOR SECURITY INTEREST AT REEL/FRAME 054665/0873 Recorded Apr 29, 2025
From: BANK OF AMERICA, N.A., AS RESIGNING AGENT
To: ALTER DOMUS (US) LLC, AS SUCCESSOR AGENT
Reel/Frame 071123/0386 →
SECURITY INTEREST Recorded Dec 9, 2020
From: CELLSEC, INC.; PULSE SECURE, LLC; IVANTI, INC.; MOBILEIRON, INC.; IVANTI US LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 054665/0062 →
SECURITY INTEREST Recorded Dec 9, 2020
From: CELLSEC, INC.; PULSE SECURE, LLC; INVANTI, INC.; MOBILEIRON, INC.; INVANTI US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 054665/0873 →
Continuity (2)
Provisional Application 62719155 · Aug 17, 2018
Related Publication 20200057625A1 · Feb 20, 2020
Cited By (2)
US 12,356,198 US 12,578,946