IP Library Granted Patent US 10,637,950
Granted Patent B1
US 10,637,950 · App. 15/470,425 · Granted Apr 28, 2020

Forwarding content on a client based on a request

Inventors: Gregory P. Olsen (Lindon, UT); Paul Byron Hillyard (Lindon, UT)
Assignee: Ivanti, Inc.
H04L67/2814
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 10,637,950
App. No.
15/470,425
Granted
Apr 28, 2020
Kind
B1
Abstract

A computing device configured to forward a request is described. The computing device includes a processor and instructions stored in memory that is in electronic communication with the processor. The computing device receives a request. The computing device also identifies an agent module based on the request to obtain an identified agent module. The computing device further determines an administrative service based on the identified agent module. The computing device additionally forwards the request to the administrative service. The computing device also sends a reply to the identified agent module.

Claims (73)

1. A non-transitory processor-readable medium storing code representing instructions to be executed by a processor running a local proxy on a first compute device, the code comprising code to cause the processor to:

detect a first request originating from a first agent application of a plurality of agent applications installed on the first compute device, the first agent application configured to perform a first service;

identify the first agent application based on the first request;

identify, based on an identity of the first agent application, a first administrative service application configured to render a service corresponding to the first service;

determine that the first request is a request to upload data to the first administrative service application;

in response to a determination that the first request is a request to upload data to the first administrative service application:

identify a third compute device having an installed instance of the first administrative service application; and

send, to a second compute device during a first time period, the data and an instruction to send the data to the third compute device such that the second compute device, based on the instruction, sends the data to the third compute device during a second time period that is associated with less network traffic than the first time period;

detect a second request originating from a second agent application of the plurality of agent applications, the second agent application configured to perform a second service, the first service and the second service being different types of services;

identify the second agent application based on the second request;

identify, based on an identity of the second agent application, a second administrative service application configured to render a service corresponding to the second service;

determine that the second request is to request a resource from the second administrative service application by the second agent application; and

in response to determining that the second request is to request the resource, send, to a fourth compute device having an installed instance of the second administrative service application, the second request such that the installed instance of the second administrative service application sends the resource to the second agent application.

2. The non-transitory processor-readable medium of claim 1 , wherein the first request includes a name of a function associated with the first agent application.

3. The non-transitory processor-readable medium of claim 1 , wherein the first request includes a name of an executable file associated with the first agent application.

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

the first agent application is configured to collect inventory data of software components on the first compute device, and

the data includes the inventory data.

5. The non-transitory processor-readable medium of claim 4 , wherein:

the first administrative service application is configured to store on the third compute device the collected inventory data of the software components on the first compute device and to store on the third compute device additional inventory data of software components on a fifth compute device, and

the first compute device and the fifth compute device are connected to the third compute device via a common network.

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

the first compute device is a managed node located on a network,

the third compute device is an administrative core server configured to manage a plurality of managed nodes connected via the network, and

the plurality of managed nodes including the first compute device.

7. The non-transitory processor-readable medium of claim 1 , wherein the second compute device is closer on a network to the first compute device than the third compute device.

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

identify a plurality of compute devices, each compute device from the plurality of compute devices including an installed instance of the first administrative service application; and

select the third compute device from the plurality of compute devices based on information indicating at least one of:

a load capacity of each compute device of the plurality of compute devices, or

available storage space of each compute device of the plurality of compute devices.

9. The non-transitory processor-readable medium of claim 1 , wherein the code further comprises code to cause the processor to:

generate a reply based on the first request; and

send the reply to the first agent application.

10. The non-transitory processor-readable medium of claim 1 , wherein the code further comprises code to cause the processor to:

determine that the data has been sent by the second compute device to the third compute device;

generate, after determining that the data has been sent by the second compute device to the third compute device, a reply indicating that the data has been sent to the third compute device; and

send the reply to the first agent application.

11. The non-transitory processor-readable medium of claim 1 , wherein each of the first request and the second request includes at least one of:

a Universal Resource Locator (URL), or

HyperText Transfer Protocol (HTTP) header information.

12. The non-transitory processor-readable medium of claim 1 , wherein the first service or the second service include:

a remote access service,

an inventory records service, or

a software update service.

13. An apparatus, comprising:

a memory; and

a processor running a local proxy on a first compute device and operatively coupled to the memory, the processor configured to:

receive, from a first agent application from a plurality of agent applications installed on the first compute device, a first request, the first agent application configured to perform a first service;

identify the first agent application based on the first request;

identify, based on an identity of the first agent application, a first administrative service application configured to render a service corresponding to the first service;

send, to a second compute device having an installed instance of the first administrative service application, the first request such that the installed instance of the first administrative service application performs a first action based on the first request;

receive, from a second agent application from the plurality of agent applications, a second request, the second agent application configured to perform a second service, the first service and the second service being different types of services;

identify the second agent application based on the second request;

identify, based on an identity of the second agent application, a second administrative service application configured to render a service corresponding to the second service; and

send, to a third compute device having an installed instance of the second administrative service application, the second request such that the installed instance of the second administrative service application performs a second action based on the second request.

14. The apparatus of claim 13 , wherein the first request includes a name of an executable file associated with the first agent application.

15. The apparatus of claim 13 , wherein the processor is further configured to:

generate, after the first request is sent to the second compute device, a reply based on the first request; and

send the reply to the first agent application.

16. The apparatus of claim 13 , wherein the processor is further configured to:

identify a plurality of compute devices, each compute device from the plurality of compute devices including an installed instance of the first administrative service application; and

select from the plurality of compute devices the second compute device based on information indicating at least one of:

a load capacity of each compute device from the plurality of compute devices, or

an available storage space of each compute device from the plurality of compute devices.

17. The apparatus of claim 16 , wherein the load capacity of the second compute device is greater than the load capacity of at least one remaining compute device from the plurality of compute devices.

18. The apparatus of claim 16 , wherein the first request is to upload data, and the processor is configured to select the second compute device by identifying the second compute device as having an available storage space that is sufficient to store the data.

19. The apparatus of claim 13 , wherein:

the first compute device is a managed node located on a network, and

the second compute device is an administrative core server configured to manage a plurality of managed nodes located on the network and including the first compute device.

20. The apparatus of claim 13 , wherein:

the first request is to upload data, and

the second request is for an update to software installed on the first compute device.

Assignments (8)
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 →
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 2, 2025
From: IVANTI, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071164/0482 →
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; INVANTI, INC.; MOBILEIRON, INC.; INVANTI US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 054665/0873 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 16, 2019
From: OLSEN, GREGORY P.; HILLYARD, PAUL BYRON
To: CRIMSON CORPORATION
Reel/Frame 049199/0102 →
MERGER Recorded Apr 19, 2018
From: CRIMSON CORPORATION
To: IVANTI, INC.
Reel/Frame 045983/0075 →