US 9,811,353 B1
Remotely invoking dynamic classes on a computing device
Paul Byron Hillyard, Lindon, UT (US)
Assigned to Crimson Corporation, Dover, DE (US)
Filed by Paul Byron Hillyard, Lindon, UT (US)
Filed on Dec. 29, 2010, as Appl. No. 12/980,861.
Claims priority of provisional application 61/368,971, filed on Jul. 29, 2010.
Int. Cl. G06F 9/445 (2006.01); G06F 9/44 (2006.01); G06F 9/455 (2006.01); G06F 9/54 (2006.01); G06F 17/30 (2006.01)
CPC G06F 9/445 (2013.01) [G06F 9/44521 (2013.01); G06F 9/547 (2013.01); G06F 9/548 (2013.01); G06F 9/443 (2013.01); G06F 9/4428 (2013.01); G06F 9/44526 (2013.01); G06F 9/45504 (2013.01); G06F 17/30607 (2013.01)] 19 Claims
OG exemplary drawing
 
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.