Automated grouping of messages provided to an application using execution path similarity analysis
First Claim
1. At least one non-transitory processor-readable storage device having processor-readable code embodied thereon for programming at least one processor to perform a method, the method comprising:
- receiving, at a starting component of an application, a plurality of incoming messages, each incoming message is received from a respective user, and comprises a request to perform a business transaction, thereby invoking the starting component as a first component in a respective sequence of components, where each component corresponds to a respective business logic step of the business transaction;
in response to each incoming message, the starting component initiates a respective process at the application to perform the business transaction, the business transaction is performed by invoking other components of the respective sequence to carry out the business logic steps, after which a program control is returned back to the starting component, and the starting component provides a respective response message to the respective user;
storing data in at least one log which identifies respective execution paths of the application, each respective execution path identifies one of the respective sequences of components;
responsive to the storing of data in the at least one log, calculating metrics which represent distances between the execution paths, the calculating metrics includes, for the respective sequences of components of the respective execution paths, assigning higher weights to at least one of;
(a) a first n components and (b) a last m components;
grouping the execution paths according to the metrics into a plurality of groups of execution paths; and
responsive to the grouping of the execution paths, grouping the messages into a plurality of groups of messages.
2 Assignments
0 Petitions
Accused Products
Abstract
An application is monitored to identify different execution paths, e.g., sequences of invoked components, which occur due to the receipt of messages by the application. Similarities between the execution paths are determined based on a distance algorithm, in one approach, and execution paths which are similar are assigned to a common group. Additionally, application runtime data such as response times is obtained for the execution paths and aggregated for the group. The messages can also be grouped based on the grouping of the execution paths. Further, a representative execution path can be determined for each execution path group for comparison to subsequent execution paths. A representative message can similarly be determined for each message group. Results can be reported which include a group identifier, representative message, representative execution path, count, and aggregated runtime data.
84 Citations
37 Claims
-
1. At least one non-transitory processor-readable storage device having processor-readable code embodied thereon for programming at least one processor to perform a method, the method comprising:
-
receiving, at a starting component of an application, a plurality of incoming messages, each incoming message is received from a respective user, and comprises a request to perform a business transaction, thereby invoking the starting component as a first component in a respective sequence of components, where each component corresponds to a respective business logic step of the business transaction; in response to each incoming message, the starting component initiates a respective process at the application to perform the business transaction, the business transaction is performed by invoking other components of the respective sequence to carry out the business logic steps, after which a program control is returned back to the starting component, and the starting component provides a respective response message to the respective user; storing data in at least one log which identifies respective execution paths of the application, each respective execution path identifies one of the respective sequences of components; responsive to the storing of data in the at least one log, calculating metrics which represent distances between the execution paths, the calculating metrics includes, for the respective sequences of components of the respective execution paths, assigning higher weights to at least one of;
(a) a first n components and (b) a last m components;grouping the execution paths according to the metrics into a plurality of groups of execution paths; and responsive to the grouping of the execution paths, grouping the messages into a plurality of groups of messages. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. At least one non-transitory processor-readable storage device having processor-readable code embodied thereon for programming at least one processor to perform a method, the method comprising:
-
storing data in at least one log which identifies respective execution paths of at least one application, each respective execution path is responsive to receipt by the at least one application of a respective message, where each respective message is a request to perform a business transaction, and each respective execution path includes;
(a) a starting component which is invoked responsive to receipt of the respective message and (b) a second component which is called by the starting component, (c) and a third component which is called by the second component, where each component represents a business logic step of the business transaction;responsive to the storing of data in the at least one log, calculating metrics which represent distances between the execution paths; grouping the execution paths according to the metrics into a plurality of groups of execution paths; and responsive to the grouping of the execution paths, grouping the messages into a plurality of groups of messages; wherein at least one of the execution paths extends over multiple applications, the distances are obtained separately for the components of each application, and the calculating metrics accords higher weights to distance metrics of a specified one of the multiple applications. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33)
-
-
34. At least one non-transitory processor-readable storage device having processor-readable code embodied thereon for programming at least one processor to perform a method, the method comprising:
-
receiving, at a starting component of an application, a plurality of incoming messages, each incoming message is received from a respective user, and comprises a request to perform a business transaction, thereby invoking the starting component as a first component in a respective sequence of components, where each component corresponds to a respective business logic step of the business transaction; in response to each incoming message, the starting component initiates a respective process at the application to perform the business transaction, the business transaction is performed by invoking other components of the respective sequence to carry out the business logic steps, after which a program control is returned back to the starting component, and the starting component provides a respective response message to the respective user; storing data in at least one log which identifies respective execution paths of the application, each respective execution path identifies one of the respective sequences of components; responsive to the storing of data in the at least one log, calculating metrics which represent distances between the execution paths; grouping the execution paths according to the metrics into a plurality of groups of execution paths; and responsive to the grouping of the execution paths, grouping the messages into a plurality of groups of messages; wherein at least one of the execution paths extends over multiple applications, the distances are obtained separately for the components of each application, and the calculating metrics accords higher weights to distance metrics of a specified one of the multiple applications. - View Dependent Claims (35)
-
-
36. At least one non-transitory processor-readable storage device having processor-readable code embodied thereon for programming at least one processor to perform a method, the method comprising:
-
storing data in at least one log which identifies respective execution paths of at least one application, each respective execution path is responsive to receipt by the at least one application of a respective message, where each respective message is a request to perform a business transaction, and each respective execution path includes;
(a) a starting component which is invoked responsive to receipt of the respective message and (b) a second component which is called by the starting component, (c) and a third component which is called by the second component, where each component represents a business logic step of the business transaction;responsive to the storing of data in the at least one log, calculating metrics which represent distances between the execution paths, the calculating metrics includes, for the execution paths, assigning higher weights to at least one of;
(a) a first n components and (b) a last m components;grouping the execution paths according to the metrics into a plurality of groups of execution paths; and responsive to the grouping of the execution paths, grouping the messages into a plurality of groups of messages. - View Dependent Claims (37)
-
Specification