Automatic incremental application dependency discovery through code instrumentation
First Claim
1. A computer implemented method for automatically mapping application dependencies in a distributed application, comprising:
- loading an instrumentation configuration file which identifies one or more computer programs which implement methods requiring code instrumentation in order to provide automatic mapping of application dependencies, the configuration file comprising an extraction rule defining how to access an address from an instrumented method;
locating an intermediate language method body from which address information can be extracted from the one or more computer programs, the address information comprising an electronic address of external service providers to the one or more computer programs;
determining an instruction from the extraction rule in the configuration file, the instruction to be inserted into the one or more computer programs for extracting the address information from the one or more computer programs;
inserting the instruction into the one or more computer programs;
extracting the address information from the one or more computer programs by executing the inserted instruction;
inserting analysis code into the one or more computer programs, wherein the analysis code comprises executable computer instructions for comparing an address value extracted by the instruction with a list of address for previously discovered application dependencies;
comparing extracted address information with a list of previously discovered dependencies to determine whether a dependency already exists; and
using the extracted address information to build an application dependency map.
3 Assignments
0 Petitions
Accused Products
Abstract
Disclosed is a method allowing the automatic discovery of application component dependencies by tracing application calls to dependant resources. The call tracing is embedded dynamically in an application at runtime using Common Intermediate Language (“CIL”) code instrumentation at compile time or runtime. Such a method reads an instrumentation configuration file to determine an address extraction code portion that is to be instrumented to an application method code, locates the CIL method body for the application method that is to be instrumented, instruments the application method by inserting the address extraction code portion into the appropriate .NET Application or .NET library at either compile time or at run time, extracts the address of one or more external service providers from the designated .NET library methods responsible for communication during execution of the application method that was instrumented, publishes any newly discovered dependencies to a management system in the form of the discovery event, and causes the management system to build an application dependency map based on the resource address information obtained.
-
Citations
20 Claims
-
1. A computer implemented method for automatically mapping application dependencies in a distributed application, comprising:
-
loading an instrumentation configuration file which identifies one or more computer programs which implement methods requiring code instrumentation in order to provide automatic mapping of application dependencies, the configuration file comprising an extraction rule defining how to access an address from an instrumented method; locating an intermediate language method body from which address information can be extracted from the one or more computer programs, the address information comprising an electronic address of external service providers to the one or more computer programs; determining an instruction from the extraction rule in the configuration file, the instruction to be inserted into the one or more computer programs for extracting the address information from the one or more computer programs; inserting the instruction into the one or more computer programs; extracting the address information from the one or more computer programs by executing the inserted instruction; inserting analysis code into the one or more computer programs, wherein the analysis code comprises executable computer instructions for comparing an address value extracted by the instruction with a list of address for previously discovered application dependencies; comparing extracted address information with a list of previously discovered dependencies to determine whether a dependency already exists; and using the extracted address information to build an application dependency map. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer program product for implementing a computer implemented method for automatically mapping application dependencies in a distributed application, the computer program product comprising one or more computer hardware data storage devices having encoded thereon computer-executable instructions which, when executed on one or more computer processors, performs the method comprising:
-
loading an instrumentation configuration file which identifies one or more computer programs which implement methods requiring code instrumentation in order to provide automatic mapping of application dependencies, the configuration file comprising an extraction rule defining how to access an address from an instrumented method; locating an intermediate language method body from which address information can be extracted from the one or more computer programs, the address information comprising an electronic address of external service providers to the one or more computer programs; determining an instruction from the extraction rule in the configuration file, the instruction to be inserted into the one or more computer programs for extracting the address information from the one or more computer programs; inserting the instruction into the one or more computer programs; extracting the address information from the one or more computer programs by executing the inserted instruction; inserting analysis code into the one or more computer programs, wherein the analysis code comprises executable computer instructions for comparing an address value extracted by the instruction with a list of address for previously discovered application dependencies; comparing extracted address information with a list of previously discovered dependencies to determine whether a dependency already exists; and using the extracted address information to build an application dependency map. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A system for implementing a computer implemented method for automatically mapping application dependencies in a distributed application, the system comprising one or more computer processors and one or more computer storage devices having encoded thereon computer-executable instructions which, when executed on the one or more computer processors, performs the method comprising:
-
loading an instrumentation configuration file which identifies one or more computer programs which implement methods requiring code instrumentation in order to provide automatic mapping of application dependencies, the configuration file comprising an extraction rule defining how to access an address from an instrumented method; locating an intermediate language method body from which address information can be extracted from the one or more computer programs, the address information comprising an electronic address of external service providers to the one or more computer programs; determining an instruction from the extraction rule in the configuration file, the instruction to be inserted into the one or more computer programs for extracting the address information from the one or more computer programs; inserting the instruction into the one or more computer programs; extracting the address information from the one or more computer programs by executing the inserted instruction; inserting analysis code into the one or more computer programs, wherein the analysis code comprises executable computer instructions for comparing an address value extracted by the instruction with a list of address for previously discovered application dependencies; comparing extracted address information with a list of previously discovered dependencies to determine whether a dependency already exists; and
using the extracted address information to build an application dependency map. - View Dependent Claims (17, 18, 19, 20)
-
Specification