IP Library Granted Patent US 9,535,811
Granted Patent B2
US 9,535,811 · App. 14/530,436 · Granted Jan 3, 2017

Agent dynamic service

Inventors: Brad Winslow (San Francisco, CA); Anthony Kilman (San Francisco, CA)
Assignee: AppDynamics, Inc.
G06F11/3003G06F8/30G06F9/54G06F11/3093G06F11/3466G06F2201/815G06F2201/865
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,535,811
App. No.
14/530,436
Granted
Jan 3, 2017
Kind
B2
Abstract

A dynamic service module is embedded in an agent and able to add functionality to the agent. The service module may manage .jar files for execution by the agent. The service module may receive the .jar files, provide them to an agent for execution, and may perform other functions. The agent may perform obfuscation in order to translate the .jar files into a modified version which may be more compatible with a particular agent. Once execution of the .jar file is complete, the agent may remove the .jar file as well as all trace of the .jar file. For example, the agent may remove byte code instrumentation that was installed as a result of the .jar file.

Claims (50)

1. A method for monitoring an application, comprising:

receiving, by a service module embedded in an agent installed on a server for monitoring an application, a .jar file;

creating a new .jar file by modifying references to agent elements found in the received .jar file and including modified references to agent elements obtained through the modifying in the new .jar file;

executing the new .jar file with the modified references to agent elements;

detecting the executed new .jar file based on a time stamp indicative of the executing of the new jar file; and

removing the executed new .jar file detected based on the time stamp and traces of the executed new .jar file;

wherein using an obfuscation adaptor includes using the obfuscation adaptor to perform the modifying of the references to agent elements found in the received .jar file including references to agent classes, methods and fields.

2. The method of claim 1 , wherein creating the new .jar file includes using an obfuscation adaptor.

3. The method of claim 1 , wherein using the obfuscation adaptor includes using one or more keys that indicate the modifying of the references to agent elements found in the received .jar file including modifying references to agent classes, methods and fields found in the received .jar to what is used in the agent.

4. The method of claim 1 , wherein executing the new .jar file includes placing the new .jar file in a .jar file directory.

5. The method of claim 4 , wherein removing the executed new .jar file includes removing the executed new .jar file from the .jar file directory; and

wherein removing the traces of the new .jar file includes removing byte instrumented code generated as a result of executing the new .jar file.

6. The method of claim 1 , including:

performs, by the agent, a functionality responsive to the executing the new .jar file.

7. The method of claim 6 , the received .jar file is indicative of the functionality to be performed by the agent.

8. The method of claim 7 , wherein the functionality to be performed by the agent include generic interceptor insertion, specifying match conditions, tracing I/O activity over network sockets, scanning threads for activity, or locating and examining class loaders.

9. The method of claim 1 , wherein receiving the .jar file includes receiving the .jar file from a remote server.

10. A non-transitory computer readable storage medium having embodied thereon a program, the program being executable by a processor to perform a method for monitoring an application, the method comprising:

receiving, by a service module embedded in an agent installed on a server for monitoring an application, a .jar file;

creating a new .jar file by modifying references to agent elements found in the received .jar file and including modified references to agent elements obtained through the modifying in the new .jar file;

executing the new .jar file with the modified references to agent elements;

detecting the executed new .jar file based on a time stamp indicative of the executing of the new jar file; and

removing the executed new .jar file detected based on the time stamp and traces of the executed new .jar file;

wherein using the obfuscation adaptor includes using the obfuscation adaptor to perform the modifying of the references to agent elements found in the received .jar file including references to agent classes, methods and fields.

11. The non-transitory computer readable storage medium of claim 10 , wherein creating the new .jar file includes using an obfuscation adaptor.

12. The non-transitory computer readable storage medium of claim 10 , wherein using the obfuscation adaptor includes using one or more keys that indicate the modifying of the references to agent elements found in the received .jar file including modifying references to agent classes, methods and fields found in the received .jar to what is used in the agent.

13. The non-transitory computer readable storage medium of claim 10 , wherein executing the new .jar file includes placing the new .jar file in a .jar file directory.

14. The non-transitory computer readable storage medium of claim 10 , wherein removing the executed new .jar file includes removing the executed new .jar file from the .jar file directory; and

wherein removing the traces of the new .jar file includes removing byte instrumented code generated as a result of executing the new .jar file.

15. The non-transitory computer readable storage medium of claim 10 , including:

performing, by the agent, a functionality responsive to the executing the new .jar file.

16. The non-transitory computer readable storage medium of claim 15 , wherein the functionality to be performed by the agent include generic interceptor insertion, specifying match conditions, tracing I/O activity over network sockets, scanning threads for activity, or locating and examining class loaders.

17. The non-transitory computer readable storage medium of claim 10 , wherein receiving the .jar file includes receiving the .jar file from a remote server.

18. A system for monitoring an application, including:

a processor;

a memory; and

one or more modules stored in the memory and executable by the processor to cause operations including:

a service module embedded in an agent installed on a server for monitoring an application to receive a .jar file;

the service module to create a new .jar file by modifying references to agent elements found in the received .jar file and include modified references to agent elements obtained through the modifying in the new .jar file;

the agent to execute the new .jar file with the modified references to agent elements;

the agent to detect the executed new .jar file based on a time stamp indicative of the executed new .jar file; and

the agent to remove the executed new .jar file detected based on the time stamp and traces of the executed new .jar file;

wherein using the obfuscation adaptor includes using the obfuscation adaptor to perform the modifying of the references to agent elements found in the received .jar file including references to agent classes, methods and fields.

19. The system of claim 18 , wherein the agent includes an obfuscation adaptor to create the new .jar file.

20. The system of claim 18 , wherein the references to agent include references to agent classes, methods and fields.

21. The system of claim 18 , wherein the new .jar file is in a .jar file directory.

22. The system of claim 21 , wherein the new .jar file in the .jar file directory has a unique name.

23. The system of claim 18 , wherein the traces of the new .jar file include instrumented code generated as a result of executing the new .jar file.

24. The system of claim 18 , wherein the agent is configured to perform a functionality responsive to the new .jar file being executed.

25. The system of claim 24 , wherein the functionality to be performed by the agent include generic interceptor insertion, specifying match conditions, tracing I/O activity over network sockets, scanning threads for activity, or locating and examining class loaders.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 10, 2017
From: APPDYNAMICS LLC
To: CISCO TECHNOLOGY, INC.
Reel/Frame 044173/0050 →
CHANGE OF NAME Recorded Jun 23, 2017
From: APPDYNAMICS, INC.
To: APPDYNAMICS LLC
Reel/Frame 042964/0229 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2015
From: WINSLOW, BRAD; KILMAN, ANTHONY
To: APPDYNAMICS, INC.
Reel/Frame 035702/0899 →
Continuity (1)
Related Publication 20160124829A1 · May 5, 2016