DETECTING NON-REDUNDANT COMPONENT DEPENDENCIES IN WEB SERVICE INVOCATIONS
First Claim
1. A computer-implemented method for identifying dependencies among components in an application, comprising:
- accessing first information identifying a first dependency comprising at least one component which executes in a first thread of a transaction, and which is called by at least one component which executes in another thread of the transaction;
determining if there is a matching dependency for the first dependency in a store of at least one dependency data structure;
if there is the matching dependency in the store, accessing second information which identifies the at least one component which executes in the another thread, and determining if the matching dependency is associated with the second information;
if the matching dependency is not associated with the second information, adding the second information to a dependency data structure of the matching dependency in the store; and
communicating dependency data structures in the store to the manager for use in providing a graphical user interface which depicts dependencies among components of the application.
2 Assignments
0 Petitions
Accused Products
Abstract
Relationships between components in an application and the services they provide are identified, including redundant caller-callee sequences. Specific components of interest are instrumented to obtain data when they execute. Data structures are created which identify the components and their dependencies on one other. To avoid excessive overhead costs, redundant dependencies are identified. A dependency data structure can be provided for each unique dependency. When repeated instances of a dependency are detected, the associated dependency data structure can be augmented with correlation data of the repeated instances, such as transaction identifiers and sequence identifiers. Sequence identifiers identify an order in which a component is called. A flag can be used to force the creation of a new dependency data structure, and a calling component'"'"'s name can be used instead of a sequence identifier. Agents report the dependency data structures to a manager to provide graph data in a user interface.
-
Citations
20 Claims
-
1. A computer-implemented method for identifying dependencies among components in an application, comprising:
-
accessing first information identifying a first dependency comprising at least one component which executes in a first thread of a transaction, and which is called by at least one component which executes in another thread of the transaction; determining if there is a matching dependency for the first dependency in a store of at least one dependency data structure; if there is the matching dependency in the store, accessing second information which identifies the at least one component which executes in the another thread, and determining if the matching dependency is associated with the second information; if the matching dependency is not associated with the second information, adding the second information to a dependency data structure of the matching dependency in the store; and communicating dependency data structures in the store to the manager for use in providing a graphical user interface which depicts dependencies among components of the application. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer-implemented method for identifying dependencies among components in an application, comprising:
-
accessing first information identifying (a) a first dependency comprising at least one component which executes in a first thread of a transaction, and which is called by at least one component which executes in another thread of the transaction, and (b) a sequence identifier which indicates an order in which the at least one component of the first thread was called by the at least one component of the another thread; determining if there is a matching dependency for the first dependency in a store of at least one dependency data structure; if there is the matching dependency in the store, adding the sequence identifier to a dependency data structure of the matching dependency in the store; if there is not the matching dependency in the store, providing a new dependency data structure in the store which includes the at least one component which executes in the first thread and the sequence identifier; and communicating dependency data structures in the store to a manager for use in providing a graphical user interface which depicts dependencies among components of the application. - View Dependent Claims (8, 9, 10, 11)
-
-
12. A computer-implemented method for identifying dependencies among components in an application, comprising:
-
accessing first information identifying a first dependency comprising at least one component which executes in a first thread of a transaction, and which is called by at least one component which executes in another thread of the transaction; accessing a flag; if the flag is set one way, providing a new dependency data structure in a store which includes the at least one component which executes in the first thread, and the sequence identifier; if the flag is set another way, determining if there is a matching dependency for the first dependency in the store, the store comprises at least one dependency data structure; if the flag is set the another way, and if there is the matching dependency in the store, discarding the first information without storing a new dependency data structure in the store which includes the first information; if the flag is set the another way, and if there is not the matching dependency in the store, providing a new dependency data structure in the store which includes the first information; and communicating dependency data structures in the store to a manager for use in providing a graphical user interface which depicts dependencies among components of the application. - View Dependent Claims (13, 14)
-
-
15. A computer-implemented method for identifying dependencies among instrumented components in an application, comprising:
-
receiving dependency data structures at a manager, the dependency data structures include identifiers of components of the application which execute in different threads of a transaction, and an indication of caller-callee relationships among the components; preparing graph data based on the dependency data structures, the graph data is based on the identifiers of the components and the indication of the caller-callee relationships; receiving a user command via a graphical user interface to access the graph data for at least a portion of the components; accessing the graph data based on the user command; and providing a graphical user interface using the accessed portion of the graph data, the graphical user interface depicts caller-callee relationships among the at least a portion of the components, and names of services of the application which are represented by the at least a portion of the components. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification