Highly Reliable Cross-Session Web Application Instrumentation
Abstract
A reliable caching mechanism is provided for client-side caching of data that captures user interaction with a remote service, where users interact with the remote service through a computing device. Such instrumentation items are cached in a client-side offline queue. Within the client-side queue, the gathered instrumentation items survive between user sessions with the remote service. Because the client-side does not lose the instrumentation items that were gathered in a session when the session ends, those instrumentation items do not all need to be transferred to the server-side at or prior to the termination of the session in which the instrumentation items are collected. Instead, the instrumentation items may be sent to the server-side at times that will have less impact on the user experience, such as when the computing device is otherwise idle.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A computer-implemented method comprising:
in response to detecting user interactions with an interface displayed at a client, storing instrumentation items in an ordered list at the client; wherein the instrumentation items comprise information about said user interactions; wherein each instrumentation item, of the instrumentation items, is associated with a particular plurality of variables; receiving a control parameter that assigns a particular degree of priority to a particular variable of the particular plurality of variables; in response to receiving the control parameter, re-ordering the ordered list based on:
the particular degree of priority of the particular variable, and
values of the particular variable for each of the instrumentation items; and
transmitting said instrumentation items from said client to a server-side entity in a sequence that is based on the order of the ordered list; wherein the method is performed by one or more computing devices.
2 . The computer-implemented method of claim 1 , wherein:
the control parameter assigns a high degree of priority to the particular variable; and after re-ordering the ordered list, the instrumentation items are ordered, in the ordered list, based, at least in part, on the respective values of the particular variable for the instrumentation items.
3 . The computer-implemented method of claim 1 , wherein:
the control parameter assigns a low degree of priority to the particular variable; one or more other variables, of the particular plurality of variables, have a higher degree of priority than the particular variable; and after re-ordering the ordered list, the instrumentation items are ordered, in the ordered list, based, at least in part, on the respective values of the one or more other variables for the instrumentation items.
4 . The method of claim 1 , wherein:
the interface is an interface of a particular web application; and values for one or more of the particular plurality of variables are provided by the particular web application.
5 . The method of claim 1 , wherein the particular variable represents at least one of:
user idle time; time elapsed in the ordered list; network connection speed; number of instrumentation items in the ordered list; or data size of a client-side offline storage mechanism that stores the ordered list.
6 . The method of claim 1 , further comprising:
creating a token mapping for one or more portions of one or more instrumentation items in the ordered list; transmitting an item representing said created token mapping to said server-side entity; and tokenizing one or more other instrumentation items in said ordered list based on the token mapping.
7 . A computer-implemented method comprising:
in response to detecting user interactions with an interface displayed at a client, storing one or more instrumentation items at the client; wherein the one or more instrumentation items comprise information about said user interactions; determining that the value of a particular variable associated with the client is below a previously-established threshold associated with the particular variable; in response to determining that the value of the particular variable is below the previously-established threshold, transmitting said one or more instrumentation items from said client to a server-side entity at a first transmission frequency; after transmitting said one or more instrumentation items from said client to the server-side entity at the first transmission frequency, determining that the value of the particular variable is above the previously-established threshold; and in response to determining that the value of the particular variable is above the previously-established threshold, transmitting said one or more instrumentation items from said client to said server-side entity at a second transmission frequency; wherein the first transmission frequency is slower than the second transmission frequency; wherein the method is performed by one or more computing devices.
8 . The method of claim 7 , wherein the particular variable is network connection speed.
9 . The method of claim 8 , wherein the previously-established threshold is a first previously-established threshold, the method further comprising:
determining that the network connection speed of the client is below a second previously-established threshold; wherein the second previously-established threshold is lower than the first previously-established threshold; and determining that the network connection speed of the client is below the second previously-established threshold, ceasing transmission of said one or more instrumentation items from said client to said server-side entity.
10 . The method of claim 7 , further comprising:
detecting that some application or network condition has changed; and in response to detecting that some application or network condition has changed, adjusting the previously-established threshold.
11 . One or more non-transitory computer-readable media storing instructions which, when executed by one or more processors, cause performance of the method recited in claim 1 .
12 . One or more non-transitory computer-readable media storing instructions which, when executed by one or more processors, cause performance of the method recited in claim 2 .
13 . One or more non-transitory computer-readable media storing instructions which, when executed by one or more processors, cause performance of the method recited in claim 3 .
14 . One or more non-transitory computer-readable media storing instructions which, when executed by one or more processors, cause performance of the method recited in claim 4 .
15 . One or more non-transitory computer-readable media storing instructions which, when executed by one or more processors, cause performance of the method recited in claim 5 .
16 . One or more non-transitory computer-readable media storing instructions which, when executed by one or more processors, cause performance of the method recited in claim 6 .
17 . One or more non-transitory computer-readable media storing instructions which, when executed by one or more processors, cause performance of the method recited in claim 7 .
18 . One or more non-transitory computer-readable media storing instructions which, when executed by one or more processors, cause performance of the method recited in claim 8 .
19 . One or more non-transitory computer-readable media storing instructions which, when executed by one or more processors, cause performance of the method recited in claim 9 .
20 . One or more non-transitory computer-readable media storing instructions which, when executed by one or more processors, cause performance of the method recited in claim 10 .Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.