IP Library Granted Patent US 9,811,353
Granted Patent B1
US 9,811,353 · App. 12/980,861 · Granted Nov 7, 2017

Remotely invoking dynamic classes on a computing device

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 9,811,353
App. No.
12/980,861
Granted
Nov 7, 2017
Kind
B1
Abstract

A computing device that is configured for remotely invoking dynamic classes is described. The computing device includes a processor, memory in electronic communication with the processor and instructions stored in the memory. The computing device deploys one or more assemblies, which are used by an unreferenced derived class. A byte array that includes the unreferenced derived class is received from a remote node. The unreferenced derived class includes an implementation of a common base class. The computing device further receives a class name and one or more assembly names from the remote node. The computing device decodes the byte array to reconstitute the unreferenced derived class and calls the implementation of the common base class. One or more operations may be performed with the unreferenced derived class.

Claims (51)

1. A computing device that is configured for remotely invoking dynamic classes on a computing device using a .NET framework, comprising:

a processor;

memory in electronic communication with the processor;

instructions stored in the memory, the instructions being executable to:

deploy one or more assemblies that comprise a library of shared functions, wherein the one or more assemblies are used by an unreferenced derived class, wherein deploying the one or more assemblies comprises updating a database table listing all assemblies corresponding to a common base class and all implemented classes that derive from the common base class, wherein the computing device does not allow remote instantiation of derived classes without one or more assembly references and a description of the derived classes at a build time of a web service;

receive a byte array from a remote node, wherein:

the byte array comprises a serialized version of the unreferenced derived class; and

the unreferenced derived class comprises an implementation of the common base class;

receive a class name from the remote node;

receive one or more assembly names from the remote node;

decode the byte array during deserialization of the unreferenced derived class to reconstitute the unreferenced derived class, wherein the web service uses the class name and the one or more assembly names, where each assembly comprises a dynamic link library (DLL) file, to dynamically deserialize the byte array;

call the implementation of the common base class, wherein calling the implementation of the common base class instantiates the unreferenced derived class, wherein the computing device does not include a description of the unreferenced derived class and does not include a reference to the one or more assemblies used by the unreferenced derived class at the build time of the web service on the computing device; and

perform one or more operations with the unreferenced derived class;

wherein the computing device manages a plurality of managed nodes, and sends commands to the plurality of managed nodes to download and install software and to scan for security threats.

2. The computing device of claim 1 , wherein the common base class includes a decoder used to decode the byte array to reconstitute the unreferenced derived class.

3. The computing device of claim 1 , wherein the unreferenced derived class comprises one or more records in a database on the computing device.

4. The computing device of claim 3 , wherein fields and properties of the unreferenced derived class are saved to a single row in the database.

5. The computing device of claim 1 , wherein the unreferenced derived class comprises one or more files in a file system on the computing device.

6. The computing device of claim 1 , wherein the unreferenced derived class is used to modify how the computing device manages the plurality of managed nodes on a network.

7. The computing device of claim 1 , wherein the common base class includes one or more methods.

8. The computing device of claim 7 , wherein the unreferenced derived class implements the one or more methods included in the common base class.

9. The computing device of claim 8 , wherein the one or more methods comprise a save method and a load method.

10. The computing device of claim 1 , wherein the byte array is a stream of UTF-8 (Universal Character Set Transformation Format—8-bit) characters or another character set that allows the stream to be saved as a file and browsed with an Extensible Markup Language (XML) editor.

11. A method for remotely invoking dynamic classes on a computing device using a .NET framework, comprising:

deploying one or more assemblies that comprise a library of shared functions on the computing device, wherein the one or more assemblies are used by an unreferenced derived class, wherein deploying the one or more assemblies comprises updating a database table listing all assemblies corresponding to a common base class and all implemented classes that derive from the common base class, wherein the computing device does not allow remote instantiation of derived classes without one or more assembly references and a description of the derived classes at a build time of a web service;

receiving a byte array from a remote node, wherein:

the byte array comprises a serialized version of the unreferenced derived class; and

the unreferenced derived class comprises an implementation of the common base class;

receiving a class name from the remote node;

receiving one or more assembly names from the remote node;

decoding, on the computing device, the byte array during deserialization of the unreferenced derived class to reconstitute the unreferenced derived class, wherein the web service uses the class name and the one or more assembly names, where each assembly comprises a dynamic link library (DLL) file, to dynamically deserialize the byte array;

calling, on the computing device, the implementation of the common base class, wherein calling the implementation of the common base class instantiates the unreferenced derived class, wherein the computing device does not include a description of the unreferenced derived class and does not include a reference to the one or more assemblies used by the unreferenced derived class at the build time of the web service on the computing device; and

performing one or more operations with the unreferenced derived class on the computing device;

wherein the computing device manages a plurality of managed nodes, and sends commands to the plurality of managed nodes to download and install software and to scan for security threats.

12. The method of claim 11 , wherein the common base class includes a decoder used to decode the byte array to reconstitute the unreferenced derived class.

13. The method of claim 11 , wherein the unreferenced derived class comprises one or more records in a database on the computing device.

14. The method of claim 11 , wherein the unreferenced derived class comprises one or more files in a file system on the computing device.

15. The method of claim 11 , wherein the unreferenced derived class is used to modify how the computing device manages the plurality of managed nodes on a network.

16. The method of claim 11 , wherein the common base class includes one or more methods.

17. The method of claim 16 , wherein the unreferenced derived class implements the one or more methods included in the common base class.

18. The method of claim 17 , wherein the one or more methods comprise a save method and a load method.

19. A non-transitory tangible computer-readable medium for remotely invoking dynamic classes on a computing device using a .NET framework comprising executable instructions for:

deploying one or more assemblies that comprise a library of shared functions, wherein the one or more assemblies are used by an unreferenced derived class, wherein deploying the one or more assemblies comprises updating a database table listing all assemblies corresponding to a common base class and all implemented classes that derive from the common base class, wherein the computing device does not allow remote instantiation of derived classes without one or more assembly references and a description of the derived classes at a build time of a web service;

receiving a byte array from a remote node, wherein:

the byte array comprises a serialized version of the unreferenced derived class; and

the unreferenced derived class comprises an implementation of the common base class;

receiving a class name from the remote node;

receiving one or more assembly names from the remote node;

decoding the byte array during deserialization of the unreferenced derived class to reconstitute the unreferenced derived class, wherein the web service uses the class name and the one or more assembly names, where each assembly comprises a dynamic link library (DLL) file, to dynamically deserialize the byte array; and

calling the implementation of the common base class, wherein calling the implementation of the common base class instantiates the unreferenced derived class, wherein the computing device does not include a description of the unreferenced derived class and does not include a reference to the one or more assemblies used by the unreferenced derived class at the build time of the web service on the computing device;

wherein the computing device manages a plurality of managed nodes, and sends commands to the plurality of managed nodes to download and install software and to scan for security threats.

Assignments (24)
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; 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 →
RELEASE OF SECURITY INTEREST : RECORDED AT REEL/FRAME - 41052/0762 Recorded Dec 1, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: CRIMSON CORPORATION
Reel/Frame 054560/0857 →
RELEASE OF SECURITY INTEREST : RECORDED AT REEL/FRAME - 41459/0387 Recorded Dec 1, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: CRIMSON CORPORATION
Reel/Frame 054637/0161 →
MERGER Recorded Apr 19, 2018
From: CRIMSON CORPORATION
To: IVANTI, INC.
Reel/Frame 045983/0075 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 40183/0506 Recorded Jan 23, 2017
From: JEFFERIES FINANCE LLC
To: CRIMSON CORPORATION
Reel/Frame 041463/0457 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 40182/0345 Recorded Jan 23, 2017
From: JEFFERIES FINANCE LLC
To: CRIMSON CORPORATION
Reel/Frame 041463/0581 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jan 20, 2017
From: CRIMSON CORPORATION
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 041459/0387 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jan 20, 2017
From: CRIMSON CORPORATION
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 041052/0762 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Sep 29, 2016
From: CRIMSON CORPORATION
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 040183/0506 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Sep 29, 2016
From: CRIMSON CORPORATION
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 040182/0345 →
RELEASE OF SECURITY INTEREST IN PATENTS RECORDED AT R/F 031029/0849 Recorded Sep 28, 2016
From: JEFFERIES FINANCE LLC
To: CRIMSON CORPORATION
Reel/Frame 040171/0307 →
RELEASE OF SECURITY INTEREST IN PATENTS RECORDED AT R/F 032333/0637 Recorded Sep 28, 2016
From: JEFFERIES FINANCE LLC
To: CRIMSON CORPORATION
Reel/Frame 040171/0037 →
SECURITY AGREEMENT Recorded Feb 25, 2014
From: LANDESK SOFTWARE, INC.; CRIMSON CORPORATION
To: JEFFERIES FINANCE LLC
Reel/Frame 032333/0637 →
SECURITY AGREEMENT Recorded Aug 16, 2013
From: LANDESK GROUP, INC.; LANDSLIDE HOLDINGS, INC.; CRIMSON ACQUISITION CORP.; LANDESKSOFTWARE, INC.; CRIMSON CORPORATION
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 031029/0849 →
RELEASE OF SECURITY INTEREST Recorded Aug 12, 2013
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: LANDESK SOFTWARE, INC.
Reel/Frame 030993/0622 →
PATENT SECURITY AGREEMENT Recorded Jul 13, 2012
From: LANDESK SOFTWARE, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
Reel/Frame 028541/0782 →
RELEASE OF SECURITY INTEREST Recorded Jun 20, 2012
From: WELLS FARGO CAPITAL FINANCE, LLC
To: LANDESK GROUP, INC.; LANDSLIDE HOLDINGS, INC.; LANDESK SOFTWARE, INC.; CRIMSON ACQUISITION CORP.; CRIMSON CORPORATION
Reel/Frame 028413/0913 →
AMENDMENT NUMBER ONE TO PATENT SECURITY AGREEMENT Recorded Mar 17, 2011
From: LANDESK SOFTWARE, INC.; CRIMSON CORPORATION
To: D.E. SHAW DIRECT CAPITAL PORTFOLIOS, L.L.C.
Reel/Frame 025970/0262 →
AMENDMENT NUMBER ONE TO PATENT SECURITY AGREEMENT Recorded Mar 15, 2011
From: LANDESK GROUP, INC.; LANDSLIDE HOLDINGS, INC.; LANDESK SOFTWARE, INC.; CRIMSON ACQUISITION CORP.; CRIMSON CORPORATION
To: WELLS FARGO CAPITAL FINANCE, LLC, AS AGENT
Reel/Frame 025957/0284 →