IP Library Granted Patent US 9,021,505
Granted Patent B2
US 9,021,505 · App. 11/952,825 · Granted Apr 28, 2015

Monitoring multi-platform transactions

Inventors: Kartik Shankaranarayanan (Framingham, MA); Aditya Pandit (Northborough, MA); Mark Mogayzel (Storrs, CT); Sushmita Sengupta (Framingham, MA)
Assignee: CA, Inc.
G06F9/466G06F9/5055G06F9/54G06F11/3404G06F11/3495G06F2209/542G06F2209/509
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,021,505
App. No.
11/952,825
Granted
Apr 28, 2015
Kind
B2
Abstract

A monitoring system monitors and provides performance data for a transaction performed by multiple applications over different platforms. A request for a multi-platform transaction such as an SAP transaction is received by a first application, such as a JAVA application, on a first platform. Processing of the transaction triggers the first application to invoke a second application, such as an ABAP application, on a second platform. Code inserted into the first application intercepts the invocation of the second application, remotely executes a function on the second platform while providing a transaction identifier to an application server providing the second platform, and returns control back to the first application, which proceeds to invoke the second application to complete the multi-platform transaction. Performance data for the first application and the second application is accessed and correlated based on the transaction identifier to enable reporting of transaction performance over the two platforms.

Claims (64)

1. A method for reporting data, comprising:

providing a dynamic function name comprising a unique identifier at a first platform;

storing the dynamic function name in a variable at the first platform;

transmitting a request from the first platform to a second application at a second platform, the request comprises a request for the second application to generate a function whose name is the dynamic function name;

receiving, at a first application on the first platform, a request to perform a transaction, the request to perform the transaction is for a multi-platform transaction involving the second application;

in response to the request to perform the transaction, generating a call at the first application to a function which processes the request to perform the transaction, the function which processes the request to perform the transaction is at the second application;

intercepting the call;

obtaining the dynamic function name from the variable in response to the intercepting;

in response to the obtaining the dynamic function name from the variable, remotely executing the function whose name is the dynamic function name, causing the second application to generate a first record comprising the dynamic function name and associated performance data in a set of records;

after the remotely executing the function whose name is the dynamic function name, resuming the call to the function which processes the request to perform the transaction and thereby executing the function which processes the request to perform the transaction, causing the second application to generate, in the set of records, a second record comprising a name of the function which processes the request to perform the transaction and associated performance data, the second record does not comprise the unique identifier, and the second record is identifiable as corresponding to the transaction by the second record being immediately after the first record in the set of records; and

generating performance data of the first application during the transaction and associating the unique identifier with the performance data of the first application.

2. The method of claim 1 , wherein:

the function which processes the request to perform the transaction is specified in the request to perform the transaction.

3. The method of claim 1 , wherein:

the intercepting the call occurs by code inserted into the first application.

4. The method of claim 1 , wherein:

the request to generate the function whose name is the dynamic function name comprises the dynamic function name and a name of a copy function to be executed; and

the copy function is a function which copies itself into another specified function.

5. The method of claim 4 , wherein:

the function whose name is the dynamic function name comprises a functionality of the copy function.

6. The method of claim 1 , wherein the transmitting the request to generate a function whose name is the dynamic function name, from the first platform to the second application, occurs in an initialization process before the first application receives the request to perform the transaction.

7. The method of claim 1 , wherein:

in response to the request to perform the transaction, determining that the second application is required to complete the transaction, the intercepting occurs in response to the determining that the second application is required to complete the transaction.

8. The method of claim 1 , further comprising:

determining that the second application is required to complete the transaction responsive to the intercepting, the remotely executing the function whose name is the dynamic function name occurs in response to the determining that the second application is required to complete the transaction.

9. The method of claim 1 , further comprising:

in response to the request to perform the transaction, generating a second call at the first application, the second call is to a second function which processes the request to perform the transaction, the second function is at the second application; and

without again remotely executing the function whose name is the dynamic function name, remotely executing the second function, causing the second application to generate, in the set of records, a third record comprising a name of the second function and associated performance data, the third record does not comprise the unique identifier, and the third record is identifiable as corresponding to the transaction by the third record being after the first record in the set of records.

10. The method of claim 1 , wherein:

the dynamic function name comprises a fixed string and a random identifier; and

different dynamic function names are provided for different transactions using a combination of the fixed string and different random identifiers.

11. A computer program product, comprising:

a processor readable storage device having processor readable program code embodied therewith, the processor readable program code comprising:

processor readable program code configured to provide a dynamic function name comprising a unique identifier at a first platform;

processor readable program code configured to store the dynamic function name in a variable at the first platform;

processor readable program code configured to transmit a request from the first platform to a second application at a second platform, the request comprises a request for the second application to generate a function whose name is the dynamic function name;

processor readable program code configured to receive, at a first application on the first platform, a request to perform a transaction, the request to perform the transaction is for a multi-platform transaction involving the second application;

processor readable program code configured to, in response to the request to perform the transaction, generate a call at the first application to a function which processes the request to perform the transaction, the function which processes the request to perform the transaction is at the second application;

processor readable program code configured to intercept the call;

processor readable program code configured to obtain the dynamic function name from the variable in response to the intercepting;

processor readable program code configured to, in response to the obtaining the dynamic function name from the variable, remotely execute the function whose name is the dynamic function name, causing the second application to generate a first record comprising the dynamic function name and associated performance data in a set of records;

processor readable program code configured to, after the remotely executing the function whose name is the dynamic function name, resume the call to the function which processes the request to perform the transaction and thereby executing the function which processes the request to perform the transaction, causing the second application to generate, in the set of records, a second record comprising a name of the function which processes the request to perform the transaction and associated performance data, the second record does not comprise the unique identifier, and the second record is identifiable as corresponding to the transaction by the second record being immediately after the first record in the set of records; and

processor readable program code configured to generate performance data of the first application during the transaction and associate the unique identifier with the performance data of the first application.

12. The computer program product of claim 11 , wherein:

the function which processes the request to perform the transaction is specified in the request to perform the transaction.

13. The computer program product of claim 11 , wherein:

the intercepting the call occurs by code inserted into the first application.

14. The computer program product of claim 11 , wherein:

the request to generate the function whose name is the dynamic function name comprises the dynamic function name and a name of a copy function to be executed; and

the copy function is a function which copies itself into another specified function.

15. The computer program product of claim 14 , wherein:

the function whose name is the dynamic function name comprises a functionality of the copy function.

16. The computer program product of claim 11 , wherein:

the transmitting the request to generate a function whose name is the dynamic function name, from the first platform to the second application, occurs in an initialization process before the first application receives the request to perform the transaction.

17. The computer program product of claim 11 , wherein the processor readable program code embodied on the processor readable storage device further comprises:

processor readable program code configured to, in response to the request to perform the transaction, determine that the second application is required to complete the transaction, the intercepting occurs in response to the determining that the second application is required to complete the transaction.

18. The computer program product of claim 11 , wherein the processor readable program code embodied on the processor readable storage device further comprises:

processor readable program code configured to determine that the second application is required to complete the transaction responsive to the intercepting, the remotely executing the function whose name is the dynamic function name occurs in response to the determining that the second application is required to complete the transaction.

19. The computer program product of claim 11 , wherein the processor readable program code embodied on the processor readable storage device further comprises:

processor readable program code configured to, in response to the request to perform the transaction, generating a second call at the first application, the second call is to a second function which processes the request to perform the transaction, the second function is at the second application; and

processor readable program code configured to, without again remotely executing the function whose name is the dynamic function name, remotely execute the second function, causing the second application to generate, in the set of records, a third record comprising a name of the second function and associated performance data, the third record does not comprise the unique identifier, and the third record is identifiable as corresponding to the transaction by the third record being after the first record in the set of records.

20. The computer program product of claim 11 , wherein:

the dynamic function name comprises a fixed string and a random identifier; and

different dynamic function names are provided for different transactions using a combination of the fixed string and different random identifiers.

Assignments (2)
MERGER Recorded Apr 15, 2012
From: COMPUTER ASSOCIATES THINK, INC.
To: CA, INC.
Reel/Frame 028047/0913 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2007
From: SHANKARANARAYANAN, KARTIK; PANDIT, ADITYA; MOGAYZEL, MARK; SENGUPTA, SUSHMITA
To: COMPUTER ASSOCIATES THINK, INC.
Reel/Frame 020233/0523 →
Continuity (1)
Related Publication 20090150908A1 · Jun 11, 2009