IP Library Granted Patent US 9,201,709
Granted Patent B2
US 9,201,709 · App. 13/474,238 · Granted Dec 1, 2015

Shell integration for an application executing remotely on a server

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 9,201,709
App. No.
13/474,238
Granted
Dec 1, 2015
Kind
B2
Abstract

The methods and systems described herein are directed to providing shell integration for an application executing remotely on a server. By providing shell integration for the application executing on the server, the system provides a seamless user experience, in which a user perceives minor or no differences between applications executing locally and those executing remotely. New usability enhancements in operating systems, such as Destination Lists (a.k.a. Jump Lists), Thumbnail Toolbars, Overlay Icons, Progress Bars, and integration of web sites with the Shell (IE9), may work only in a local OS environment and fail to integrate at all in a remote environment. One of the goals of the invention is to integrate these Shell capabilities and achieve a unified desktop experience for the user.

Claims (47)

1. A method comprising:

receiving at a local computing device, a destination list from a remote computing device, said destination list corresponding to an application executing on the remote computing device;

instantiating, at the local computing device, a stub executable program based on the application executing on the remote computing device;

associating the destination list with the stub executable program;

outputting for display a user interface comprising the destination list of items corresponding to the application;

intercepting, at the local computing device, user input selecting an item on the destination list displayed on the user interface, corresponding to an item in the destination list received from the remote computing device;

sending the intercepted user input to the application executing on the remote computing device;

generating a local destination list corresponding to the received destination list, wherein said local destination list comprises at least one user selectable item not in the received destination list; and

outputting for display a combined destination list based on the received destination list and the local destination list.

2. The method of claim 1 wherein outputting for display the combined destination list comprises displaying predetermined indicia on all list elements associated with the received destination list that are not also on the local destination list.

3. The method of claim 1 , wherein the associating is based on an application identifier.

4. The method of claim 3 , further comprising assigning, at the local computing device, a same application identifier as the application to the stub executable program.

5. The method of claim 1 , further comprising:

receiving an updated destination list from the remote computing device; and

updating the output destination list based on the received updated destination list.

6. One or more non-transitory computer readable media storing computer executable instructions that, when executed by a hardware processor, cause a local computing device to perform:

receiving at the local computing device, a destination list from a remote computing device, said destination list corresponding to an application executing on the remote computing device;

instantiating, at the local computing device, a stub executable program based on the application executing on the remote computing device;

associating the destination list with the stub executable program;

outputting for display a user interface comprising the destination list of items corresponding to the application;

intercepting, at the local computing device, user input selecting an item on the destination list displayed on the user interface, corresponding to an item in the destination list received from the remote computing device;

sending the intercepted user input to the application executing on the remote computing device;

generating a local destination list corresponding to the received destination list, wherein said local destination list comprises at least one user selectable item not in the received destination list; and

outputting for display a combined destination list based on the received destination list and the local destination list.

7. The non-transitory computer readable media of claim 6 , wherein the associating is based on an application identifier.

8. The non-transitory computer readable media of claim 7 , said media further comprising instructions for assigning, at the local computing device, a same application identifier as the application to the stub executable program.

9. The non-transitory computer readable media of claim 6 , wherein the application is a web browser, and wherein said received destination list corresponds to a web site received by the web browser.

10. An apparatus comprising:

at least one processor;

a network interface configured to communicate, via a network, with a remote computing device; and

a memory storing computer-readable instructions that, when executed by the at least one processor, cause the apparatus to:

receive a destination list from the remote computing device, said destination list corresponding to an application executing on the remote computing device;

instantiate a stub executable program based on the application executing on the remote computing device;

associate the destination list with the stub executable program;

output for display a user interface comprising the destination list of items corresponding to the application;

intercept user input selecting an item on the destination list displayed on the user interface, corresponding to an item in the destination list received from the remote computing device;

send the intercepted user input to the application executing on the remote computing device;

generate a local destination list corresponding to the received destination list, wherein said local destination list comprises at least one user selectable item not in the received destination list; and

output for display a combined destination list based on the received destination list and the local destination list.

11. The apparatus of claim 10 , wherein outputting for display the combined destination list comprises displaying predetermined indicia on all list elements associated with the received destination list that are not also on the local destination list.

12. The apparatus of claim 10 , wherein the associating is based on an application identifier.

13. The apparatus of claim 12 , wherein the instructions, when executed by the at least one processor, further cause the apparatus to:

assign a same application identifier as the application to the stub executable program.

14. The apparatus of claim 10 , wherein the instructions, when executed by the at least one processor, further cause the apparatus to:

receive an updated destination list from the remote computing device; and

update the output destination list based on the received updated destination list.

15. The apparatus of claim 10 , wherein the application is a web browser, and wherein said received destination list corresponds to a web site received by the web browser.

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 18, 2012
From: MOMCHILOV, GEORGY; MIR, ABRAHAM
To: CITRIX SYSTEMS, INC.
Reel/Frame 028230/0555 →