IP Library Granted Patent US 9,706,004
Granted Patent B2
US 9,706,004 · App. 13/858,010 · Granted Jul 11, 2017

Systems and methods for exporting client and server timing information for webpage and embedded object access

Inventors: Mahesh Mylarappa (Bangalore, IN); Meghashree Iyengar (Bangalore, IN); Saravana Annamalaisami (Bangalore, IN); Rajesh Joshi (Bangalore, IN)
Assignee: Citrix Systems, Inc.
H04L67/2819G06F11/3006H04L43/06H04L67/2804
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,706,004
App. No.
13/858,010
Granted
Jul 11, 2017
Kind
B2
Abstract

The present disclosure is directed towards systems and methods for application performance measurement. A device may receive a first document for transmission to a client, comprising instructions for the client to transmit a request for an embedded object. A flow monitor executed the device may generate a unique identification associated with the first document, the unique identification identifying a first access of the first document, and transmit the first document and unique identification to the client. The device may receive, from the client, a request for the embedded object comprising the unique identification, and transmit, to a server, the request for the embedded object at a transmit time. The device may receive, from the server, the embedded object at a receipt time, and may transmit a performance record comprising an identification of the object, the server, the transmit time, the receipt time, and the unique identification to a data collector.

Claims (53)

1. A method for application performance measurement, comprising:

receiving, by a device intermediary to a client and a server, a first document for transmission to the client, the first document comprising instructions for the client to execute to transmit from the client to the server a request for an embedded object;

generating, by a flow monitor executed by a processor of the device, a unique identification associated with the first document, the unique identification identifying a first access of the first document;

transmitting, by the device, the first document and unique identification to the client;

receiving, by the device from the client, the request for the embedded object transmitted by the client responsive to executing the instructions within the first document, the request comprising the unique identification generated by the device;

transmitting, by the device to the server, the request for the embedded object at a transmit time from the device, the device modifying the request to remove the unique identification generated by the device and recording the transmit time from the device responsive to detecting the unique identification;

receiving, by the device from the server, the embedded object at a receipt time of the device; and

transmitting, by the flow monitor to a data collector, a performance record comprising each of an identification of the object, the server, the transmit time, the receipt time, and the unique identification generated by the device.

2. The method of claim 1 , further comprising:

receiving, by the device from the client, a second request for the embedded object, the second request not comprising the unique identification; and

identifying, by the flow monitor responsive to the absence of the unique identification, that the second request is not associated with the first access of the first document.

3. The method of claim 1 , further comprising:

receiving, by the device from the client, a second request comprising the unique identification and a second receipt time, the second request transmitted by the client responsive to receipt of the additional object transmitted by the device to the client; and

transmitting, to the data collector, the second transmit time and second receipt time for aggregation with the performance record.

4. The method of claim 3 , wherein the second request comprises an identification of load time of the first document on the client.

5. The method of claim 3 , wherein the second request comprises an identification of render time of the first document on the client.

6. The method of claim 1 , further comprising:

initiating a timer, by the flow monitor, on transmission of the first document and unique identification to the client; and

transmitting the timer value to the data collector in the performance record.

7. The method of claim 1 , further comprising:

receiving, by the device from the client, a second performance record comprising a load time of the first document, a render time of the first document, a time spent on the first document, and the unique identification; and

transmitting, by the device to the data collector, the second performance record for aggregation with the first performance record.

8. The method of claim 7 , wherein transmitting the second performance record for aggregation with the first performance record comprises transmitting the second performance record for combination with the first performance record to generate a single application performance record comprising a timeline of receipt and processing of the first document and the embedded object of the first document.

9. The method of claim 1 , further comprising maintaining a state machine for requests of the client.

10. The method of claim 9 , further comprising receiving a second performance record from the client; and disabling the state machine, responsive to receipt of the second performance record.

11. A system for application performance measurement, comprising:

a device, in communication with a client, a server, and a data collector, comprising a processor executing a packet processing engine configured for:

receiving a first document for transmission to a client, the first document comprising instructions to execute to transmit from the client to the server a request for an embedded object,

generating a unique identification associated with the first document, the unique identification identifying a first access of the first document,

transmitting the first document and unique identification to the client,

receiving, from the client, the request for the embedded object transmitted by the client responsive to executing the instructions within the first document, the request comprising the unique identification generated by the device,

transmitting, to the server, the request for the embedded object at a transmit time from the device the device modifying the request to remove the unique identification generated by the device and recording the transmit time from the device responsive to detecting the unique identification,

receiving, from the server, the embedded object at a receipt time of the device and

transmitting, to the data collector, a performance record comprising each of an identification of the object, the server, the transmit time, the receipt time, and the unique identification generated by the device.

12. The system of claim 11 , wherein the packet processing engine is further configured for:

receiving, from the client, a second request for the embedded object, the second request not comprising the unique identification, and

identifying, responsive to the absence of the unique identification, that the second request is not associated with the first access of the first document.

13. The system of claim 11 , wherein the packet processing engine is further configured for:

receiving, from the client, a second request comprising the unique identification and a second receipt time, the second request transmitted by the client responsive to receipt of the additional object transmitted by the device to the client, and

transmitting, to the data collector, the second transmit time and second receipt time for aggregation with the performance record.

14. The system of claim 13 , wherein the second request comprises an identification of load time of the first document on the client.

15. The system of claim 13 , wherein the second request comprises an identification of render time of the first document on the client.

16. The system of claim 11 , wherein the packet processing engine is further configured for:

initiating a timer on transmission of the first document and unique identification to the client, and

transmitting the timer value to the data collector in the performance record.

17. The system of claim 11 , wherein the packet processing engine is further configured for:

receiving, from the client, a second performance record comprising a load time of the first document, a render time of the first document, a time spent on the first document, and the unique identification, and

transmitting, to the data collector, the second performance record for aggregation with the first performance record.

18. The system of claim 17 , wherein transmitting the second performance record for aggregation with the first performance record comprises transmitting the second performance record for combination with the first performance record to generate a single application performance record comprising a timeline of receipt and processing of the first document and the embedded object of the first document.

19. The system of claim 11 , wherein the packet processing engine is further configured for maintaining a state machine for requests of the client.

20. The system of claim 19 , wherein the packet processing engine is further configured for:

receiving a second performance record from the client; and

disabling the state machine, responsive to receipt of the second performance record.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 22, 2013
From: MYLARAPPA, MAHESH; IYENGAR, MEGHASHREE; ANNAMALAISAMI, SARAVANA; JOSHI, RAJESH
To: CITRIX SYSTEMS, INC.
Reel/Frame 031450/0421 →
Continuity (1)
Related Publication 20140303934A1 · Oct 9, 2014