IP Library Granted Patent US 11,442,849
Granted Patent B1
US 11,442,849 · App. 17/183,193 · Granted Sep 13, 2022

System for assisting in assessment and mitigation of data network operations

Inventors: Brien Colwell (Redwood City, CA); Manish Lachwani (Los Altos, CA); Marius Nita (San Mateo, CA); Benjamin Lichtner (San Francisco, CA); Shawn Weiland (Berkeley, CA)
Assignee: HEADSPIN, INC.
G06F11/3692
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 11,442,849
App. No.
17/183,193
Granted
Sep 13, 2022
Kind
B1
Abstract

Mobile devices executing applications utilize data services worldwide, with issues involving the transfer of data on the network impacting the operation and user experience of those applications. Network data is acquired from a mobile computing device during communication and processed to determine occurrence of a burst which is representative of elements in the network data that are determined to be causally related. Bursts are analyzed, and those associated with poor performance are presented in a user interface. The user interface provides impact information about the effect the burst had on operation of the application. The user interface may provide suggestions to mitigate the poor performance. If no problem is determined by the system, but the user believes a problem to have occurred, user input is collected and used to trigger a workflow to analyze the burst. Subsequent results of this analysis are returned to the user via the user interface.

Claims (99)

1. A device comprising:

one or more memories storing computer-executable instructions; and

one or more hardware processors to execute the computer-executable instructions to:

access first data comprising information about one or more activities associated with an application under test (AUT);

determine second data indicative of a burst comprising the one or more activities in the first data that are deemed to be associated with one another;

access third data comprising images generated during execution of the application during at least a portion of the test;

synchronize the third data with the first data; and

generate fourth data based on the first data associated with the second data and the synchronization of the third data with the first data, wherein the fourth data is indicative of one or more issues occurring during the test.

2. The device of claim 1 , the determination of the second data further comprising computer-executable instructions to:

determine a first activity occurring in the first data with a frequency that is less than a first threshold value;

determine a second activity occurring in the first data with a frequency that is less than a second threshold value;

determine one or more of:

a first timestamp of the first activity is within a threshold time window of a second timestamp of the second activity, or

a first overall time of the first activity overlaps with a second overall time of the second activity; and

generate the second data including the first activity and the second activity.

3. The device of claim 2 , further comprising the one or more hardware processors to execute the computer-executable instructions to:

determine a round-trip time between the device and a proxy, wherein the first data is obtained at least in part by the proxy; and

determine the threshold time window based at least in part on the round-trip time, wherein the threshold time window is indicative of a time interval that is greater than or equal to the round-trip time.

4. The device of claim 1 , wherein the fourth data comprises one or more of:

fifth data indicative of a variance between one or more metrics of an activity and analysis threshold data, or

sixth data indicative of how to reduce the variance.

5. The device of claim 1 , further comprising the one or more hardware processors to execute the computer-executable instructions to:

generate user interface data comprising at least a portion of one or more of: the second data or the fourth data; and

send the user interface data to a second device.

6. The device of claim 1 , further comprising the one or more hardware processors to execute the computer-executable instructions to:

receive fifth data associated with a particular portion of the first data;

generate user interface data presenting at least the particular portion of the first data;

send the user interface data to one or more devices; and

determine sixth data indicative of one or more thresholds associated with one or more analysis rules.

7. The device of claim 1 , wherein the one or more activities comprise communication between the AUT and one or more devices during a test; and

further comprising the one or more hardware processors to execute the computer-executable instructions to:

obtain fifth data indicative of video of the AUT during the test; and

associate the fifth data with the first data.

8. A method comprising:

accessing first data comprising information about one or more activities associated with an application obtained during a test;

determining second data indicative of a burst comprising the one or more activities in the first data that are deemed to be associated with one another;

accessing third data comprising images generated during execution of the application during at least a portion of the test;

synchronizing the third data with the first data;

generating fourth data based on the first data associated with the second data and the synchronization of the third data with the first data, wherein the fourth data is indicative of one or more issues occurring during the test; and

generating user interface data to present information based at least in part on the second data indicative of the burst and the fourth data indicative of the one or more issues.

9. The method of claim 8 , further comprising:

determining a union of time associated with each of the one or more activities of the second data;

determining a sum of data transferred by the one or more activities of the second data; and

wherein the user interface data is further configured to present a graphical representation of the second data comprising a rectangle having a width based on the union of time and a height based on the sum of data transferred.

10. The method of claim 9 , further comprising:

determining a variance between one or more metrics associated with one of the one or more activities and an analysis threshold; and

wherein the user interface data further comprises instructions to generate a graphical representation of the variance.

11. The method of claim 8 , the determining the second data comprising:

determining a first activity occurring in the first data with a frequency that is less than a first threshold value;

determining a second activity occurring in the first data with a frequency that is less than a second threshold value;

determining one or more of:

a first timestamp of the first activity is within a threshold time window of a second timestamp of the second activity, or

a first overall time of the first activity overlaps with a second overall time of the second activity; and

generating the second data to include at least the first activity and the second activity.

12. The method of claim 8 , further comprising:

establishing a connection between a proxy and a proxy host device at a first geolocation;

establishing communication between the proxy and a device at a second geolocation that is executing the application;

sending, via the connection, communications between the application and a server using the proxy host device; and

receiving at least a portion of the first data from the proxy.

13. The method of claim 8 , wherein the first data comprises one or more of:

video capture of images generated by the application during testing,

hardware metrics obtained from a computing device executing the application,

operating system metrics obtained from the computing device executing the application, or

data exchanged between the application and one or more destination devices.

14. The method of claim 8 , further comprising:

receiving fifth data indicative of user input from a user interface; and

generating second user interface data indicative of the third data.

15. A method comprising:

accessing first data comprising information about one or more activities associated with an application obtained during a test that is executing on a first device;

accessing second data comprising images generated during execution of the application during at least a portion of the test;

determining third data indicative of a burst comprising the one or more activities in the first data that are deemed to be associated with one another;

synchronizing the first data with the second data;

generating fourth data based on the synchronization of the first data and the second data, wherein the fourth data is indicative of one or more issues occurring during the test; and

generating user interface data to present information based at least in part on the third data indicative of the burst and the fourth data indicative of the one or more issues.

16. The method of claim 15 , further comprising:

establishing a connection between the application executing on the first device and a second device via proxy;

receiving the first data from the proxy;

determining a round-trip time between the first device and the proxy;

determining a threshold time window based at least in part on the round-trip time, wherein the threshold time window is indicative of a time interval that is greater than or equal to the round-trip time; and

wherein determining the third data comprises:

determining a first timestamp of a first activity is within the threshold time window of a second timestamp of a second activity; and

generating the third data including the first activity and the second activity.

17. The method of claim 15 , further comprising:

determining a union of time spent performing each of the one or more activities of the third data;

determining a sum of fifth data transferred by the one or more activities of the third data; and

the user interface data further configured to present a graphical representation of the third data, the graphical representation comprising a rectangle having a width based on the union of time and a height based on the sum of the fifth data transferred.

18. The method of claim 15 , further comprising:

determining a metric value of one or more of the one or more activities;

comparing the metric value with threshold data; and

the user interface data further configured to present an issue indicator based on the comparison.

19. The method of claim 15 , further comprising:

accessing source code of the application;

determining a correspondence between a portion of the source code and at least a portion of the first data; and

presenting the portion of the source code contemporaneously with presenting the fourth data.

20. The method of claim 15 , further comprising:

establishing a connection between a proxy and a proxy host device at a first geolocation;

establishing communication between the proxy and a device at a second geolocation that is executing the application;

sending, via the connection, communications between the application and a server using the proxy host device; and

receiving at least a portion of the first data from the proxy.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 3, 2024
From: HEADSPIN INC.
To: PARTNER ONE ACQUISITIONS INC.
Reel/Frame 068466/0240 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2021
From: COLWELL, BRIEN; LACHWANI, MANISH; NITA, MARIUS; LICHTNER, BENJAMIN; WEILAND, SHAWN
To: HEADSPIN, INC.
Reel/Frame 055378/0141 →
Continuity (2)
Continuation 15619181 · Jun 9, 2017
Provisional Application 62357008 · Jun 30, 2016