IP Library Granted Patent US 9,210,213
Granted Patent B2
US 9,210,213 · App. 13/600,331 · Granted Dec 8, 2015

Reverse seamless integration between local and remote computing environments

Inventors: Georgy Momchilov (Coconut Creek, FL); Ning Ye (Santa Clara, CA); Modesto Tabares (Miramar, FL)
Assignee: Citrix Systems, Inc.
H04L67/10G06F3/01G06F3/0481G06F3/14G06F3/1454G06F9/54G09G5/14H04L67/08H04L67/42G06F2209/545G09G2340/0407
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,210,213
App. No.
13/600,331
Granted
Dec 8, 2015
Kind
B2
Abstract

Methods and systems for transparent user interface integration between remote (“published”) applications and their local counterparts are described, providing a seamless, unified user experience, and allowing integration of a start menu, dock, taskbar, desktop shortcuts, windows, window and application switching, system tray elements, client-to-host and host-to-client file type association, URL redirection, browser cookie redirection, token redirection, status message interception and redirection, and other elements. These methods and systems further enhance theme-integration between a client and remote desktop or virtual machine by remoting all UI elements to a recipient for generation, including text controls, buttons, progress bars, radio buttons, list boxes, or other elements; presenting them with the receiver's product and OS-specific UI; and returning status back to the sender. This may achieve a more unified and transparent UI integration. Furthermore, international text may be correctly received in cross-language environments, or translated into the language of the presenting environment.

Claims (69)

1. One or more non-transitory computer readable media storing computer executable instructions that, when executed by a local client device, cause the local client device to act in accordance with the instructions, said instructions comprising:

identifying a local real window corresponding to an application executing on the client device;

creating, by a virtual desktop receiver application executing on the client device, a shadow window on the client device, said shadow window corresponding to the local real window, wherein the shadow window includes a replication of content from the local real window;

receiving input via the shadow window; and

proxying the input to the local real window.

2. The computer readable media of claim 1 , wherein the replication of content comprises a scaled version of the content from the local real window.

3. The computer readable media of claim 2 , wherein the scaled version complies with a scaling factor of the virtual desktop receiver application.

4. The computer readable media of claim 1 , wherein the identifying comprises:

tracking window alteration of the local application window relative to a remote desktop window of the virtual desktop receiver application; and

detecting the local application window intersecting a boundary of the remote desktop window,

and said instructions further comprising:

storing a position and size of the local application window;

hiding the local application window;

handling window changes to the shadow window as the shadow window is moved or resized;

presenting a first portion of the shadow window within the boundaries of the remote desktop window; and

hiding a second portion of the shadow window not within the boundaries of the remote desktop window.

5. The computer readable media of claim 4 , said instructions further comprising:

detecting when the shadow window position is entirely within boundaries of the remote desktop window;

restoring the local application window to a current position of the shadow window; and

destroying the shadow window.

6. The computer readable media of claim 4 , wherein said hiding the local application window comprises one of: changing a transparency property of the local application window, changing a Z-order of the local application window to be behind the remote desktop window, and changing a position of the local application window to be off-screen.

7. The computer readable media of claim 1 , wherein the local real window corresponds to a local application prevented from executing multiple instances on the local client device;

wherein identifying comprises determining when the virtual desktop receiver application requests a second instance of the local application;

wherein said instructions further comprising:

displaying the shadow window on a remote desktop presented by the virtual desktop receiver application.

8. The computer readable media of claim 7 , wherein the local real window is presented on a second remote desktop.

9. The computer readable media of claim 7 , wherein the local real window is presented on a local desktop of the local client device.

10. A method, comprising:

identifying, by a client device, a local real window corresponding to an application executing on the client device;

creating, by a virtual desktop receiver application executing on the client device, a shadow window corresponding to the local real window, wherein the shadow window includes a replication of content from the local real window;

receiving input via the shadow window; and

proxying the input to the local real window.

11. The method of claim 10 , wherein the replication of content comprises a scaled version of the content from the local real window.

12. The method of claim 11 , wherein the scaled version complies with a scaling factor of the virtual desktop receiver application.

13. The method of claim 10 , wherein the identifying comprises:

tracking window alteration of the local application window relative to a remote desktop window of the virtual desktop receiver application; and

detecting the local application window intersecting a boundary of the remote desktop window,

and the method further comprises:

storing a position and size of the local application window;

hiding the local application window;

handling window changes to the shadow window as the shadow window is moved or resized;

presenting a first portion of the shadow window within the boundaries of the remote desktop window; and

hiding a second portion of the shadow window not within the boundaries of the remote desktop window.

14. The method of claim 13 , further comprising:

detecting when the shadow window position is entirely within boundaries of the remote desktop window;

restoring the local application window to a current position of the shadow window; and

destroying the shadow window.

15. The method of claim 13 , wherein said hiding the local application window comprises one of: changing a transparency property of the local application window, changing a Z-order of the local application window to be behind the remote desktop window, and changing a position of the local application window to be off-screen.

16. The method of claim 10 , wherein the local real window corresponds to a local application prevented from executing multiple instances on the local client device;

wherein identifying comprises determining when the virtual desktop receiver application requests a second instance of the local application; and

wherein the method further comprises displaying the shadow window on a remote desktop presented by the virtual desktop receiver application.

17. The method of claim 16 , wherein the local real window is presented on a second remote desktop.

18. The method of claim 16 , wherein the local real window is presented on a local desktop of the local client device.

19. A client device, comprising:

a processor; and

one or more memories storing computer executable instructions that, when executed by the processor, cause the client device to perform:

identifying a local real window corresponding to an application executing on the client device;

creating, by a virtual desktop receiver application executing on the client device, a shadow window corresponding to the local real window, wherein the shadow window includes a replication of content from the local real window;

receiving input via the shadow window; and

proxying the input to the local real window.

20. The client device of claim 19 , wherein the identifying comprises:

tracking window alteration of the local application window relative to a remote desktop window of the virtual desktop receiver application; and

detecting the local application window intersecting a boundary of the remote desktop window,

and wherein the instructions further cause the client device to perform:

storing a position and size of the local application window;

hiding the local application window;

handling window changes to the shadow window as the shadow window is moved or resized;

presenting a first portion of the shadow window within the boundaries of the remote desktop window; and

hiding a second portion of the shadow window not within the boundaries of the remote desktop window.

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 Aug 31, 2012
From: MOMCHILOV, GEORGY; YE, NING; TABARES, MODESTO
To: CITRIX SYSTEMS, INC.
Reel/Frame 028881/0761 →
Continuity (3)
Continuation In Part 13410659 · Mar 2, 2012
Provisional Application 61448716 · Mar 3, 2011
Related Publication 20120324365A1 · Dec 20, 2012