IP Library Granted Patent US 8,949,719
Granted Patent B2
US 8,949,719 · App. 12/471,192 · Granted Feb 3, 2015

Methods and systems for user interface event snooping and prefetching

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 8,949,719
App. No.
12/471,192
Granted
Feb 3, 2015
Kind
B2
Abstract

The present invention relates to systems, apparatus, and methods for utilizing user interface (UI) snooping to optimize network connections. The method includes accessing, by a client proxy running on a client system, a UI events queue. The UI events queue is stored on the client system. The method further includes identifying events within the UI events queue. The identifying includes filtering the events for events to be optimized. The method further includes, based on the identified events, determining at least one command, and optimizing the at least one command, and executing the optimized command.

Claims (37)

1. A method for optimizing network connections, the method comprising:

accessing, by a proxy client running on a client system, a UI events queue, wherein the UI events queue is stored on the client system and functions with an operating system of the client system, such that events within the UI event queue are accessed and executed by the operating system;

identifying events within the UI events queue, wherein the identifying includes filtering the events for events to be optimized;

based on the identified events, determining at least one command;

optimizing the at least one command; and

executing the optimized command,

wherein identifying events within the UI events queue comprises interpreting mouse inputs as one or more of the following: a directory move, a file move, a directory delete, a file delete, a file open, an application open, an application close, and a file transfer, in order to determine the at least one command, and

wherein optimizing the at least one command comprises accelerating the at least one command using the proxy client.

2. A method for optimizing network connections as in claim 1 , further comprising parsing the events within the UI events queue.

3. A method optimizing network connections as in claim 2 , further comprising comparing the parsed events to a commands dictionary to determine a type of command.

4. A method for optimizing network connections as in claim 3 , wherein the commands dictionary is configured to provide translation of events into commands.

5. A method for optimizing network connections as in claim 1 , wherein the optimizing of the at least one command includes at least one or more of the following: reducing network traffic associated with executing the at least one command, reducing sub-commands associated with the at least one command, and reducing round trip time (RTT) associated with the at least one command.

6. A method for optimizing network connections as in claim 1 , further comprising filtering information included in the UI event queue in order to capture information used for network acceleration.

7. A method for optimizing network connections as in claim 6 , wherein the events within the UI events queue comprises a log of user mouse clicks.

8. The method of claim 1 wherein identifying events within the UI events queue comprises identifying the events prior to execution of the events by the operating system.

9. The method of claim 1 wherein the events within the UI events queue comprise presentation layer events and wherein the at least one command comprises an application layer command or a network layer command.

10. The method of claim 1 wherein the events within the UI events queue comprises a mouse click associated with a hyperlink; and

wherein optimizing the at least one command comprises prefetching an object associated with the hyperlink using the proxy client.

11. A system for optimizing network connections, the system comprising:

a client system including a proxy client configured to: access a UI events queue stored on the client system, to identify events within the UI events queue which are optimizable, based on the identified events, to determine at least one command, to optimize the at least one command, and to execute the optimized command, wherein the UI events queue functions with an operating system of the client system, such that events within the UI event queue are accessed and executed by the operating system;

a proxy server in communication with the client system configured to receive the optimized command and transmit the optimized command; and

a content server in communication with the proxy server, the content server configured to process the optimized command and transmit the requested content to the client system,

wherein the client system is further configured to identify events within the UI events queue by interpreting mouse inputs as one or more of the following: a directory move, a file move, a directory delete, a file delete, a file open, an application open, an application close, and a file transfer, in order to determine the at least one command, and

wherein the client system is configured to optimize the at least one command by accelerating the at least one command using the proxy client.

12. A system for optimizing network connections as in claim 11 , wherein the content server comprises one or more of the following: a file server, a web server, a mail server, and a FTP server.

13. A system for optimizing network connections as in claim 11 , wherein the client system and the proxy server are in communication via a high latency link.

14. A non-transitory machine-readable medium for optimizing network connections, including sets of instructions stored thereon which, when executed by a machine, cause the machine to:

access, by a proxy client running on a client system, a UI events queue, wherein the UI events queue is stored on the client system and functions with an operating system of the client system, such that events within the UI event queue are accessed and executed by the operating system;

identify events within the UI events queue, wherein the identifying includes filtering the events for events to be optimized;

based on the identified events, determine at least one command;

optimize the at least one command; and

execute the optimized command,

wherein the sets of instructions when executed cause the machine to identifying events within the UI events queue by interpreting mouse inputs as one or more of the following: a directory move, a file move, a directory delete, a file delete, a file open, an application open, an application close, and a file transfer, in order to determine the at least one command, and

wherein the sets of instructions when executed cause the machine to optimize the at least one command by accelerating the at least one command using the proxy client.

15. A machine-readable medium for optimizing network connections as in claim 14 , wherein the sets of instructions which, when further executed by the machine, cause the machine to parse the events within the events queue.

16. A machine-readable medium for optimizing network connections as in claim 15 , wherein the sets of instructions which, when further executed by the machine, cause the machine to compare the parsed events to a commands dictionary to determine a type of command.

17. A machine-readable medium for optimizing network connections as in claim 16 , wherein the commands dictionary is configured to provide translation of events into commands.

Assignments (11)
PARTIAL RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 48715/0589 Recorded Jun 6, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL TRUSTEE
To: VIASAT, INC.
Reel/Frame 071638/0083 →
PARTIAL RELEASE OF SECURITY INTEREST AT REEL/FRAME 063822/0446 Recorded Jun 4, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VIASAT, INC.
Reel/Frame 071495/0223 →
RELEASE OF SECURITY INTEREST Recorded Jun 4, 2025
From: MUFG BANK, LTD. (AS SUCCESSOR-IN-INTEREST TO MUFG UNION BANK, N.A. (F/K/A UNION BANK, N.A.)), AS AGENT
To: VIASAT, INC.
Reel/Frame 071321/0026 →
RELEASE OF SECURITY INTEREST Recorded Jun 4, 2025
From: MUFG BANK, LTD. (AS SUCCESSOR-IN-INTEREST TO MUFG UNION BANK, N.A. (F/K/A UNION BANK, N.A.)), AS AGENT
To: VIASAT, INC.
Reel/Frame 071321/0036 →
PARTIAL RELEASE OF SECURITY INTEREST AT REEL/FRAME 059332/0558 Recorded Jun 4, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VIASAT, INC.
Reel/Frame 071495/0152 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 21, 2025
From: VIASAT, INC.
To: SNAPPI HOLDCO, INC.
Reel/Frame 070293/0483 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 21, 2025
From: SNAPPI HOLDCO, INC.
To: SNAPPI, INC.
Reel/Frame 070293/0879 →
SECURITY AGREEMENT Recorded Jun 1, 2023
From: VIASAT, INC.
To: BANK OF AMERICA, N.A., AS AGENT
Reel/Frame 063822/0446 →
SECURITY AGREEMENT Recorded Mar 7, 2022
From: VIASAT, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 059332/0558 →
SECURITY INTEREST Recorded Mar 27, 2019
From: VIASAT, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL TRUSTEE
Reel/Frame 048715/0589 →
SECURITY AGREEMENT Recorded May 9, 2012
From: VIASAT, INC.
To: UNION BANK, N.A.
Reel/Frame 028184/0152 →