IP Library Granted Patent US 11,770,458
Granted Patent B1
US 11,770,458 · App. 18/065,453 · Granted Sep 26, 2023

Systems for exchanging data using intermediate devices

Inventors: Simo Antti Kalervo Kinnunen (Shibuya-ku, JP); James Riley Wilburn (Arlington, VA); Brien Colwell (Redwood City, CA)
Assignee: HEADSPIN, INC.
H04L67/60G06F11/3664G06F11/3668
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,770,458
App. No.
18/065,453
Granted
Sep 26, 2023
Kind
B1
Abstract

When significant latency exists between a test device executing an application and a remote device used to debug the application, an intermediate device is used to receive requests from the remote device. When a first request is received, the intermediate device determines other requests that are related to the first request, sequentially sends the other requests to the test device, and receives a response after each request, using a wired connection or a wireless network having lower latency than wireless communication between the remote device and the test device. The intermediate device then sends each of the responses to the remote device. The remote device stores the responses. The remote device is then able to use the stored data to determine responses for subsequent requests.

Claims (104)

1. A system comprising:

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

receive a first request from a first computing device, wherein the first request is indicative of one or more of a second computing device or an application associated with the second computing device;

send one or more of the first request or data indicative of the first request to the second computing device;

receive a first response from the second computing device;

determine a second request based on one or more of the first request or the first response;

send the second request to the second computing device;

receive a second response from the second computing device;

send one or more of the second response or data indicative of the second response to the first computing device; and

send one or more of the first response or data indicative of the first response to the first computing device.

2. The system of claim 1 , further comprising:

a wired communication interface; and

a wireless communication interface;

wherein one or more of the wired communication interface or the wireless communication interface is used to:

receive the first request,

send the one or more of the second response or the data indicative of the second response, and

send the one or more of the first response or the data indicative of the first response; and

wherein the wired communication interface is used to:

send the one or more of the first request or the data indicative of the first request;

send the second request; and

receive the second response.

3. The system of claim 1 , wherein:

the one or more first hardware processors are associated with a third computing device,

the third computing device communicates with the second computing device using a first communication method associated with a first latency,

the first computing device is in communication with the second computing device using a wireless network associated with a second latency, and

the second latency is greater than the first latency.

4. The system of claim 1 , wherein:

the one or more first hardware processors are associated with a third computing device,

the third computing device is within a threshold distance of the second computing device, and

the first computing device is at a distance greater than the threshold distance from the second computing device.

5. The system of claim 1 , wherein the one or more of the second response or the data indicative of the second response is sent to the first computing device before the one or more of the first response or the data indicative of the first response is sent to the first computing device.

6. The system of claim 1 , further comprising first computer-executable instructions to:

determine a third request based on one or more of: the first request, the first response, the second request, or the second response;

send the third request to the second computing device;

receive a third response from the second computing device; and

send one or more of the third response or data indicative of the third response to the first computing device.

7. The system of claim 6 , wherein:

the one or more of the second response or the data indicative of the second response is sent to the first computing device before the one or more of the first response or the data indicative of the first response is sent to the first computing device, and

the one or more of the third response or the data indicative of the third response is sent to the first computing device before the one or more of the first response or the data indicative of the first response is sent to the first computing device.

8. The system of claim 6 , wherein the one or more of the second response or the data indicative of the second response and the one or more of the third response or the data indicative of the third response are sent to the first computing device as a single transmission.

9. The system of claim 1 , wherein the first response includes an indication of one or more first memory regions associated with the second computing device, the system further comprising first computer-executable instructions to:

include an indication of one or more second memory regions in the second request, wherein the one or more second memory regions includes at least one memory region not included in the one or more first memory regions, and the second response includes data associated with the at least one memory region.

10. A system comprising:

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

send a first request to a first computing device, wherein the first request indicates one or more of a second computing device or an application associated with the second computing device;

receive a second response from the first computing device, wherein the second response is associated with a second request;

store at least a portion of the second response as stored data;

receive a first response from the first computing device, wherein the first response is associated with the first request;

determine one or more of the second request or a third request based on one or more of the first request or the first response; and

determine, based on the stored data, one or more of the second response or a third response to the third request.

11. The system of claim 10 , further comprising first computer-executable instructions to:

determine a fourth request based on one or more of the first request, the first response, the second request, the second response, the third request, or the third response;

determine a lack of correspondence between the fourth request and the stored data;

in response to the lack of correspondence, send the fourth request to the first computing device; and

receive a fourth response from the first computing device.

12. The system of claim 10 , further comprising first computer-executable instructions to:

determine a fourth request based on one or more of the first request, the first response, the second request, the second response, the third request, or the third response;

determine that the fourth request is associated with a modification to the stored data;

in response to the fourth request being associated with the modification to the stored data, send the fourth request to the first computing device; and

receive a fourth response from the first computing device.

13. The system of claim 10 , further comprising first computer-executable instructions to:

determine a fourth request based on one or more of the first request, the first response, the second request, the second response, the third request, or the third response;

determine that the fourth request is associated with a modification to a portion of the stored data;

in response to the fourth request being associated with the modification to the portion of the stored data, delete the portion of the stored data;

after deleting the portion of the stored data, determine a lack of correspondence between the fourth request and the stored data;

in response to the lack of correspondence, send the fourth request to the first computing device; and

receive a fourth response from the first computing device.

14. A system comprising:

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

send a first request to a first computing device, wherein the first request indicates one or more of a second computing device or an application associated with the second computing device;

receive a second response from the first computing device, wherein the second response is associated with a second request;

store at least a portion of the second response as stored data;

receive a first response from the first computing device, wherein the first response is associated with the first request; and

determine one or more of the second request or a third request based on one or more of the first request or the first response; and

determine correspondence between the stored data and the one or more of the second request or the third request.

15. The system of claim 14 , further comprising first computer-executable instructions to:

based on the correspondence between the stored data and the one or more of the second request or the third request, use the stored data to determine one or more of the second response or a third response associated with the third request.

16. The system of claim 14 , further comprising first computer-executable instructions to:

based on the correspondence between the stored data and the one or more of the second request or the third request, determine insufficient stored data for determination of one or more of the second response or a third response associated with the third request;

in response to the insufficient stored data, send the one or more of the second request or the third request to the first computing device; and

receive the one or more of the second response or the third response from the first computing device.

17. The system of claim 14 , further comprising first computer-executable instructions to:

determine that the one or more of the second request or the third request is associated with a modification to a portion of the stored data;

delete the portion of the stored data;

send the one or more of the second request or the third request to the first computing device; and

receive one or more of the second response or a third response associated with the third request from the first computing device.

18. The system of claim 14 , further comprising first computer-executable instructions to:

determine that the one or more of the second request or the third request is associated with a modification to at least a portion of the stored data;

send the one or more of the second request or the third request to the first computing device; and

receive one or more of the second response or a third response associated with the third request from the first computing device.

19. The system of claim 14 , wherein the one or more first hardware processors are associated with a third computing device, the system further comprising one or more second hardware processors associated with the first computing device to execute second computer-executable instruction to:

receive the first request from the third computing device;

send one or more of the first request or data indicative of the first request to the second computing device;

receive the first response from the second computing device;

determine the second request based on one or more of the first response or the first request;

send the second request to the second computing device;

receive the second response from the second computing device;

send the second response to the third computing device; and

send the first response to the third computing device.

20. The system of claim 19 , further comprising second computer-executable instructions to:

determine a fourth request based on one or more of: the first request, the first response, the second request, or the second response;

send the fourth request to the second computing device;

receive a fourth response from the second computing device; and

before sending the first response to the third computing device, send the second response and the fourth response to the third computing device as a single transmission.

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 Dec 13, 2022
From: KINNUNEN, SIMO ANTTI KALERVO; WILBURN, JAMES RILEY; COLWELL, BRIEN
To: HEADSPIN, INC.
Reel/Frame 062118/0520 →
Continuity (2)
Continuation 17447722 · Sep 15, 2021
Continuation In Part 17179136 · Feb 18, 2021