# US 2010/0169285 A1 · Automated grouping of messages provided to an application using string similarity analysis

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2010/0169285 A1
- Document ID: US20100169285A1
- Status: Published application
- Kind: A1
- Application number: 12/723,186
- Filed: 2010-03-12
- Published: 2010-07-01
- Earliest claimed: 2006-12-01
- Assignees: Computer Associates Think, Inc.
- Inventors: Jyoti Kumar Bansal; David Isaiah Seidman; Mark J. Addleman
- Web page: https://patentgrep.com/patent/US20100169285A1

## CPC

- G06F 11/3612: {by runtime analysis (performance monitoring G06F11/3466)}
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L 67/56: Provisioning of proxy services (store-and-forward switching systems in data switching networks H04L12/54)
- H04L 67/566: Grouping or aggregating service requests, e.g. for unified processing
- Y10S 707/99936: Pattern matching access
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- Y10S: TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS

## Abstract

Messages which are provided to an application are monitored. Similarities between the messages are determined based on a distance algorithm, in one approach, and messages which are similar are assigned to a common group. For example, the messages may be HTTP messages which include a URL, HTTP header parameters and/or HTTP post parameters. The messages are parsed to derive a string which is used in the distance calculations. Additionally, application runtime data such as response times is obtained and aggregated for the group. Further, a representative message can be determined for each group for comparison to subsequent messages. Results can be reported which include a group identifier, representative message, count and aggregated runtime data.

## Claims

### Claim 1

A computer-implemented method for classifying messages, comprising:
obtaining a particular string from a particular message sent to an application, the particular message includes a request for the application to perform a transaction, and the application executes in response to the request;
obtaining runtime data regarding execution of the application based on the request, and associating the runtime data with the particular string;
calculating a distance between the particular string and a representative string of each group of a plurality of groups using a message distance algorithm, one of the distances is a minimum distance;
in response to determining that the minimum distance exceeds a threshold, creating a new group and grouping the particular string into the new group as a sole member of the new group initially;
subsequently obtaining an additional string from an additional message sent to the application, the additional message includes an additional request for the application to perform a transaction, and the application executes in response to the additional request;
obtaining additional runtime data, regarding execution of the application based on the additional request, and associating the additional runtime data with the additional string;
calculating an additional distance, using the message distance algorithm, between the additional string and: (a) the representative string of each group of the plurality of groups, and (b) the particular string in the new group as the sole member of the new group, one of the additional distances is a minimum additional distance; and
grouping the additional string into one group of the plurality of groups and the new group which is associated with the minimum additional distance.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein:
the particular message is sent to the application from a particular web browser and includes a particular URL as a request for a particular web page, the particular URL comprising a host name, file path and at least one parameter, and the application executes in response to the particular URL, including providing the particular web page to the particular web browser; and
the additional message is sent to the application from an additional web browser and includes an additional URL as a request for an additional web page, the additional URL comprising a host name, file path and at least one parameter, and the application executes in response to the additional URL, including providing the additional web page to the additional web browser.

### Claim 3 (depends on 2)

The computer-implemented method of claim 2, wherein:
the obtaining a particular string comprises parsing the particular URL; and
the obtaining the additional string comprises parsing the additional URL.

### Claim 4 (depends on 2)

The computer-implemented method of claim 2, wherein:
the at least one parameter of the particular URL comprises different header portions, each different header portion comprising at least one of an HTTP query parameter and an HTTP cookie parameter;
the distance between the particular string and the representative string of each group of the plurality of groups is calculated based on a distance between each different header portion of the particular string and the representative string of each group of the plurality of groups;
the at least one parameter of the additional URL comprises different header portions, each different header portion comprising at least one of an HTTP query parameter and an HTTP cookie parameter;
the distance between the additional string and the representative string of each group of the plurality of groups is calculated based on a distance between each different header portion of the additional string and the representative string of each group of the plurality of groups; and
the distance between the additional string and the particular string in the new group is calculated based on a distance between each different header portion of the additional string and the particular string.

### Claim 5 (depends on 4)

The computer-implemented method of claim 4, wherein:
the particular string is obtained by a concatenation of header parameters in the particular URL; and
the additional string is obtained by a concatenation of header parameters in the additional URL.

### Claim 6 (depends on 4)

The computer-implemented method of claim 4, wherein:
each different header portion of the particular URL comprises an HTTP post parameter; and
each different header portion of the additional URL comprises an HTTP post parameter.

### Claim 7 (depends on 2)

The computer-implemented method of claim 2, wherein:
the host name and file path are the same for each of the particular message and the additional message.

### Claim 8

At least one processor readable storage device having processor readable code embodied thereon for programming at least one processor to perform a method for classifying messages, the method comprising:
obtaining a particular string from a particular message sent to an application, the particular message includes a request for the application to perform a transaction, and the application executes in response to the request;
obtaining runtime data regarding execution of the application based on the request, and associating the runtime data with the particular string;
calculating a distance between the particular string and a representative string of each group of a plurality of groups using a message distance algorithm, one of the distances is a minimum distance;
in response to determining that the minimum distance exceeds a threshold, creating a new group and grouping the particular string into the new group as a sole member of the new group initially;
subsequently obtaining an additional string from an additional message sent to the application, the additional message includes an additional request for the application to perform a transaction, and the application executes in response to the additional request;
obtaining additional runtime data, regarding execution of the application based on the additional request, and associating the additional runtime data with the additional string;
calculating an additional distance, using the message distance algorithm, between the
additional string and: (a) the representative string of each group of the plurality of groups, and (b) the particular string in the new group as the sole member of the new group, one of the additional distances is a minimum additional distance; and
grouping the additional string into one group of the plurality of groups and the new group which is associated with the minimum additional distance.

### Claim 9 (depends on 8)

The at least one processor readable storage device of claim 8, wherein:
the particular message is sent to the application from a particular web browser and includes a particular URL as a request for a particular web page, the particular URL comprising a host name, file path and at least one parameter, and the application executes in response to the particular URL, including providing the particular web page to the particular web browser; and
the additional message is sent to the application from an additional web browser and includes an additional URL as a request for an additional web page, the additional URL comprising a host name, file path and at least one parameter, and the application executes in response to the additional URL, including providing the additional web page to the additional web browser.

### Claim 10 (depends on 9)

The at least one processor readable storage device of claim 9, wherein:
the obtaining a particular string comprises parsing the particular URL; and
the obtaining the additional string comprises parsing the additional URL.

### Claim 11 (depends on 9)

The at least one processor readable storage device of claim 9, wherein:
the at least one parameter of the particular URL comprises different header portions, each different header portion comprising at least one of an HTTP query parameter and an HTTP cookie parameter;
the distance between the particular string and the representative string of each group of the plurality of groups is calculated based on a distance between each different header portion of the particular string and the representative string of each group of the plurality of groups;
the at least one parameter of the additional URL comprises different header portions, each different header portion comprising at least one of an HTTP query parameter and an HTTP cookie parameter;
the distance between the additional string and the representative string of each group of the plurality of groups is calculated based on a distance between each different header portion of the additional string and the representative string of each group of the plurality of groups; and
the distance between the additional string and the particular string in the new group is calculated based on a distance between each different header portion of the additional string and the particular string.

### Claim 12 (depends on 11)

The at least one processor readable storage device of claim 11, wherein:
the particular string is obtained by a concatenation of header parameters in the particular URL; and
the additional string is obtained by a concatenation of header parameters in the additional URL.

### Claim 13 (depends on 11)

The at least one processor readable storage device of claim 11, wherein:
each different header portion of the particular URL comprises an HTTP post parameter; and
each different header portion of the additional URL comprises an HTTP post parameter.

### Claim 14 (depends on 9)

The at least one processor readable storage device of claim 9, wherein:
the host name and file path are the same for each of the particular message and the additional message.

### Claim 15

At least one processor readable storage device having processor readable code embodied thereon for programming at least one processor to perform a method for classifying messages, the method comprising:
monitoring a plurality of messages which are sent to an application from web browsers, each message includes a URL comprising a host name, file path and at least one parameter, at least one message of the plurality of messages is a request from an associated web browser for a web page, and the application executes in response to each URL, including providing the web page to the associated web browser based on the at least one message;
parsing each URL to obtain a string from each URL;
for each URL, obtaining runtime data regarding execution of the application, and associating the runtime data with the string of the URL;
calculating a distance between the URL of each message and the URL of each other message of the plurality of messages by comparing the string of each URL and the strings of each other URL of the plurality of messages using a message distance algorithm;
grouping the strings according to the distances into a plurality of groups; and
for each group, aggregating the runtime data which is associated with the strings which are associated with the group, so that aggregated runtime data is provided for each group of the plurality of groups.

### Claim 16 (depends on 15)

The at least one processor readable storage device of claim 15, wherein:
the host name and file path are the same for each of the plurality of messages.

### Claim 17 (depends on 15)

The at least one processor readable storage device of claim 15, wherein:
for at least one of the URLs, the string is obtained by a concatenation of header parameters.

### Claim 18 (depends on 15)

The at least one processor readable storage device of claim 15, wherein:
the comparing the string of each URL and the strings of each other URL of the plurality of messages comprises comparing the at least one header parameter of each URL to the at least one header parameter of each other URL of the plurality of messages.

### Claim 19 (depends on 15)

The at least one processor readable storage device of claim 15, wherein:
the at least one header parameter which is compared comprises at least one of a query parameter and a cookie parameter.

### Claim 20 (depends on 15)

The at least one processor readable storage device of claim 15, wherein:
the at least one header parameter which is compared comprises a query parameter and a cookie parameter.
