IP Library Granted Patent US 10,904,143
Granted Patent B2
US 10,904,143 · App. 16/420,808 · Granted Jan 26, 2021

User experience oriented path selection

Inventors: Xiaolu Chu (Nanjing, CN); Jinren Zhang (Nanjing, CN); Jie Zhuang (Nanjing, CN); Tao Zhan (Nanjing, CN)
Assignee: Citrix Systems, Inc.
H04L45/70G06F9/45558H04L43/0817H04L43/0852H04L67/22G06F2009/45595
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 10,904,143
App. No.
16/420,808
Granted
Jan 26, 2021
Kind
B2
Abstract

Methods and systems for path selection involving remote access protocols and/or user behavior are described herein. A request, from a first computing device, for content hosted on a second computing device may be received. Based on network state metrics, remote access protocol metrics, and/or user experience metrics, a path of a plurality of paths between the first computing device and the second computing device may be selected. The path need not be the most direct path between the first computing device and the second computing device, and may comprise remote access to a computing device on an intermediary server. Based on user behavior analysis performed with respect to user input data, a path may be re-selected, and/or the network state metrics, remote access protocol metrics, and/or user experience metrics may be weighted.

Claims (58)

1. A method comprising:

receiving, from a first computing device, a request for content stored on a second computing device;

determining a first state of a first connection between the first computing device and the second computing device, wherein the first connection is configured to transfer the content from the second computing device to the first computing device via a first protocol;

determining a second state of a second connection between the first computing device and the second computing device, wherein the second connection is different from the first connection, and wherein the second connection comprises at least one intermediary device configured to transfer the content from the second computing device to the first computing device via a remote access protocol, different from the first protocol, that provides a remote access environment capable of displaying the content;

selecting, based on a comparison of the first state and the second state, one of the first connection and second connection via which to transfer the content from the second computing device to the first computing device; and

providing the content from the second computing device to the first computing device via the selected connection so as to improve transmission of the content from the second computing device to the first computing device.

2. The method of claim 1 , further comprising:

receiving, from the first computing device, user input data; and

determining, based on the user input data, an indication of user behavior associated with the content.

3. The method of claim 2 , further comprising:

causing, based on determining that the user behavior indicates unsatisfactory network conditions, the first computing device to retrieve, via a third connection, the content.

4. The method of claim 2 , further comprising:

providing, based on determining that the user behavior indicates unsatisfactory network conditions, the content via the first connection.

5. The method of claim 1 , wherein determining the second state comprises:

determining a plurality of latency values associated with a plurality of communications paths between the first computing device, the at least one intermediary computing device, and the second computing device; and

determining, based on the plurality of latency values, a projected latency of the second connection.

6. The method of claim 5 , wherein the plurality of latency values are weighted based on a history of user experience metrics.

7. The method of claim 1 , wherein providing the content comprises:

providing, to the first computing device and via the at least one intermediary computing device, images corresponding to an application, executing in the remote access environment, comprising the content.

8. The method of claim 7 , wherein the images are delivered via the remote access protocol.

9. The method of claim 1 , wherein comparing the first state and the second state comprises:

determining that a second user experience metric associated with the second state is greater than a first user experience metric associated with the first state.

10. A method comprising:

determining a first plurality of latencies associated with communications over a network, wherein the first plurality of latencies are associated with a first protocol;

determining a second plurality of latencies associated with communications over the network, wherein the second plurality of latencies are associated with one or more remote access protocols different from the first protocol, wherein the one or more remote access protocols provide a remote access environment capable of displaying content stored by a second computing device;

receiving, from a first computing device, a request for the content;

determining a plurality of communications paths over the network between the first computing device and the second computing device;

selecting, based on the first plurality of latencies and the second plurality of latencies, a first communications path within the network to provide the content of to the first computing device;

causing the first computing device to establish, using the first communications path, a connection to retrieve the content of the second computing device; and

providing the content from the second computing device to the first computing device via the connection so as to improve transmission of the content from the second computing device to the first computing device.

11. The method of claim 10 , wherein selecting the first communications path comprises:

determining, based on the first plurality of latencies and the second plurality of latencies, a plurality of user experience metrics, wherein the first communications path is selected based on the plurality of user experience metrics.

12. The method of claim 10 , further comprising:

receiving, from the first computing device, user input data; and

determining, based on the user input data, an indication of user behavior associated with the content.

13. The method of claim 12 , further comprising:

causing, based on determining that the user behavior indicates unsatisfactory network conditions, the first computing device to retrieve the content via a second communications path, wherein the second communications path comprises an intermediary computing device configured to transmit video, corresponding to the content, to the first computing device.

14. The method of claim 12 , further comprising:

causing, based on determining that the user behavior indicates unsatisfactory network conditions, the first computing device to retrieve, via the first protocol, the content.

15. A computing device comprising:

one or more processors; and

memory storing instructions that, when executed by the one or more processors, cause the computing device to:

receive, from a mobile computing device, a request for content stored on the computing device;

determine a first state of a first connection between the computing device and the mobile computing device, wherein the first connection is configured to transfer the content from the computing device to the mobile computing device via a first protocol;

determine a second state of a second connection between the mobile computing device and the computing device, wherein the second connection is different from the first connection, and wherein the second connection comprises at least one intermediary device configured to transfer the content from the computing device to the mobile computing device via a remote access protocol, different from the first protocol, that provides a remote access environment capable of displaying the content;

select, based on a comparison of the first state and the second state, one of the first connection and second connection via which to transfer the content from the computing device to the mobile computing device; and

provide the content from the computing device to the mobile computing device via the selected connection so as to improve transmission of the content from the computing device to the mobile computing device.

16. The computing device of claim 15 , wherein the instructions, when executed by the one or more processors, further cause the computing device to:

receive, from the mobile computing device, user input data; and

determine, based on the user input data, an indication of user behavior associated with the content.

17. The computing device of claim 16 , wherein the instructions, when executed by the one or more processors, further cause the computing device to:

cause, based on determining that the user behavior indicates unsatisfactory network conditions, the mobile computing device to retrieve, via a third connection, the content.

18. The computing device of claim 16 , wherein the instructions, when executed by the one or more processors, further cause the computing device to:

provide, based on determining that the user behavior indicates unsatisfactory network conditions, the content via the non-selected connection.

19. The computing device of claim 16 , wherein the instructions, when executed by the one or more processors, further cause the computing device to:

determine a plurality of latency values associated with a plurality of communications paths between the mobile computing device, the at least one intermediary computing device, and the computing device; and

determine, based on the plurality of latency values, a projected latency of the second connection, wherein determining the second state is based on the projected latency of the second connection.

20. The computing device of claim 19 , wherein the plurality of latency values are weighted based on a history of user experience metrics.

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 →
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 →
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 →
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 →
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: 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 May 23, 2019
From: CHU, XIAOLU; ZHANG, JINREN; ZHUANG, JIE; ZHAN, TAO
To: CITRIX SYSTEMS, INC.
Reel/Frame 049270/0697 →
Continuity (2)
Continuation PCTCN2019077609 · Mar 11, 2019
Related Publication 20200296036A1 · Sep 17, 2020