IP Library Granted Patent US 9,990,214
Granted Patent B2
US 9,990,214 · App. 15/396,668 · Granted Jun 5, 2018

Dynamic agent delivery

Inventors: Vinay Srinivasaiah (San Carlos, CA); Bradley Winslow (San Francisco, CA)
Assignee: Cisco Technology, Inc.
G06F9/45504G06F8/315G06F8/33G06F9/4406G06F9/44521G06F9/45533
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,990,214
App. No.
15/396,668
Granted
Jun 5, 2018
Kind
B2
Abstract

The present technology utilizes agents to monitor and report data from Java virtual machines (JVM) to a controller as part of application performance monitoring. When a JVM is loaded, code defining an interface for agents is loaded as well. A determination may be made as to whether the loaded agent implements the interface defined at the JVM. If the loaded agent does not implement the interface, for example if it is missing one or more methods defined by the interface, the agent class may be modified to define the missing methods. The modification to the agent class may be made after compilation but before the class is loaded into the JVM.

Claims (36)

1. A method for configuring agent classes to implement an interface comprising:

analyzing, by an agent executing on a virtual machine, an interface definition for the interface to be implemented by the agent, the agent monitoring distributed business transactions;

analyzing, by the agent, an agent class intended to implement the interface, to determine methods that are defined in the interface but not included in the agent class;

modifying, by the agent, the agent class to comply with the interface definition by dynamically adding methods determined to be missing based on the analysis of the agent class; and

loading, by the agent, the modified agent class from the agent to the virtual machine to implement the interface.

2. The method of claim 1 , wherein, prior to analyzing the agent class intended to implement the interface, loading the agent class from the agent to the virtual machine prior to analysis.

3. The method of claim 1 , wherein the agent class is analyzed in byte code form after compilation on the virtual machine.

4. The method of claim 1 , wherein the agent class is modified by byte code injection.

5. The method of claim 1 , wherein the interface definition is analyzed to determine methods required to implement the definition.

6. The method of claim 1 , wherein the interface definition is bootstrap loaded into the virtual machine at start up.

7. The method of claim 1 , wherein the virtual machine is a java virtual machine.

8. An apparatus comprising:

a processor;

a memory; and

one or more modules stored in memory and executable by a processor to perform operations, including:

executing one or more agents configured to:

analyze an interface definition for an interface to be implemented by the agent executing on a virtual machine, the agent monitoring distributed business transactions;

analyze an agent class intended to implement the interface, to determine methods that are defined in the interface but not included in the agent class;

modify the agent class to comply with the interface definition by dynamically adding methods determined to be missing based on the analysis of the agent class; and

load the modified agent class from the agent to the virtual machine to implement the interface.

9. The apparatus of claim 8 , wherein, prior to analyzing the agent class intended to implement the interface, the agent class is loaded from the agent to the virtual machine prior to analysis.

10. The apparatus of claim 8 , wherein the agent class is analyzed in byte code form after compilation on the virtual machine.

11. The apparatus of claim 8 , wherein the agent class is modified by byte code injection.

12. The apparatus of claim 8 , wherein the interface definition is analyzed to determine methods required to implement the definition.

13. The apparatus of claim 8 , wherein the interface definition is bootstrap loaded on the virtual machine at start up.

14. The apparatus of claim 8 , wherein the virtual machine is a java virtual machine.

15. A non-transitory computer-readable storage medium having embedded thereon a program, the program being executable by a processor to perform a method for configuring agent classes to implement an interface on a machine, the method comprising:

analyzing, by an agent executing on a virtual machine, an interface definition for the interface to be implemented by the agent, the agent monitoring distributed business transactions;

analyzing, by the agent, an agent class intended to implement the interface, to determine methods that are defined in the interface but not included in the agent class;

modifying, by the agent, the agent class to comply with the interface definition by dynamically adding methods determined to be missing based on the analysis of the agent class;

loading, by the agent, the modified agent class from the agent to the virtual machine to implement the interface.

16. The non-transitory computer-readable storage medium of claim 15 , wherein, prior to analyzing the agent class intended to implement the interface, the agent class is loaded from the agent to the virtual machine prior to analysis.

17. The non-transitory computer-readable storage medium of claim 15 , wherein the agent class is analyzed in byte code form after compilation on the virtual machine.

18. The non-transitory computer-readable storage medium of claim 15 , wherein the agent class is modified by byte code injection.

19. The non-transitory computer-readable storage medium of claim 15 , wherein the interface definition is analyzed to determine methods required to implement the definition.

20. The non-transitory computer-readable storage medium of claim 15 , wherein the interface definition is bootstrap loaded on the virtual machine at start up.

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 Feb 10, 2017
From: SRINIVASAIAH, VINAY; WINSLOW, BRAD
To: APPDYNAMICS, INC.
Reel/Frame 041685/0494 →
Continuity (2)
Continuation 14609298 · Jan 29, 2015
Related Publication 20170147368A1 · May 25, 2017