IP Library Granted Patent US 8,866,701
Granted Patent B2
US 8,866,701 · App. 13/410,659 · Granted Oct 21, 2014

Transparent user interface integration between local and remote computing environments

Inventors: Georgy Momchilov (Coconut Creek, FL); Abraham Mir (Pembroke Pines, FL)
Assignee: Citrix Systems, Inc.
G06F3/0481G09G2354/00G06F3/1454
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,866,701
App. No.
13/410,659
Granted
Oct 21, 2014
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 (41)

1. A method, comprising:

establishing a connection between a client device and a remote host, said remote host providing access to one or more applications executing remotely within a virtual machine executing on the remote host;

receiving, at the client device, first information from the remote host about a first application executing within the virtual machine executing on the remote host; and

rendering, within a user interface associated with the client device and with a graphical appearance based on at least one user interface component of said user interface associated with the client device, a first user interface component based on a corresponding user interface component of the first application executing within the virtual machine executing on the remote host.

2. The method of claim 1 , wherein the first user interface component comprises an application window rendered directly within the user interface associated with the client device without an intervening application window associated with the remote host.

3. The method of claim 1 , further comprising hiding a corresponding user interface element generated by the remote host, and rendering the locally generated first user interface component in its place.

4. The method of claim 1 , wherein the first user interface component comprises an icon specific to the first application, and said method further comprises rendering said icon in the user interface associated with the client device.

5. The method of claim 1 , wherein the remote host has a first plurality of user interface components, and the client device has a second plurality of user interface components, each of the first plurality of user interface components corresponding to a different one of the second plurality of user interface components, said method further comprising:

substituting, by the client device, one of the second plurality of user interface components for a corresponding one of the first plurality of user interface components received from the remote host; and

sending user input to the remote host responsive to the corresponding one of the first plurality of user interface components based on user input received via the corresponding one of the second plurality of user interface components.

6. The method of claim 5 , wherein substituting the one of the second plurality of user interface components comprises altering a language of content within the corresponding one of the first plurality of user interface components to a language associated with the client device.

7. The method of claim 5 , wherein the first user interface component comprises status information about the first application, said status information intended for presentation in a dialog box, and said method further comprises intercepting the status information and presenting the status information in a dialog box rendered in a style of the user interface associated with the client device.

8. The method of claim 7 , wherein said status information comprises login status information, and said rendering comprises redirecting text comprising the login status information to a dialog box originating from the user interface associated with the client device.

9. One or more non-transitory computer readable media comprising computer-readable instructions that, when executed by one or more computers, cause the one or more computers to:

establish a connection between a client device and a remote host, said remote host providing access to one or more applications executing remotely within a virtual machine executing on the remote host;

receive, at the client device, first information from the remote host about a first application executing within the virtual machine executing on the remote host; and

render, within a user interface associated with the client device and with a graphical appearance based on at least one user interface component of said user interface associated with the client device, a first user interface component based on a corresponding user interface component of the first application executing within the virtual machine executing on the remote host.

10. The one or more non-transitory computer-readable media of claim 9 , wherein the first user interface component comprises an application window rendered directly within the user interface associated with the client device without an intervening application window associated with the remote host.

11. The one or more non-transitory computer-readable media of claim 9 , wherein said instructions, when executed by the one or more computers, further cause the one or more computers to hide a corresponding user interface element generated by the remote host, and to render the locally generated first user interface component in its place.

12. The one or more non-transitory computer-readable media of claim 9 , wherein the first user interface component comprises an icon specific to the first application, and wherein said instructions, when executed by the one or more computers, further cause the one or more computers to render said icon in the user interface associated with the client device.

13. The one or more non-transitory computer-readable media of claim 9 , wherein the remote host has a first plurality of user interface components, and the client device has a second plurality of user interface components, each of the first plurality of user interface components corresponding to a different one of the second plurality of user interface components, and wherein said instructions, when executed by the one or more computers, further cause the one or more computers to:

substitute, by the client device, one of the second plurality of user interface components for a corresponding one of the first plurality of user interface components received from the remote host; and

send user input to the remote host responsive to the corresponding one of the first plurality of user interface components based on user input received via the corresponding one of the second plurality of user interface components.

14. The one or more non-transitory computer-readable media of claim 13 , wherein said instructions, when executed by the one or more computers, cause the one or more computers to alter a language of content within the corresponding one of the first plurality of user interface components to a language associated with the client device.

15. The one or more non-transitory computer-readable media of claim 13 , wherein the first user interface component comprises status information about the first application, said status information intended for presentation in a dialog box, and wherein said instructions, when executed by the one or more computers, further cause the one or more computers to intercept the status information and present the status information in a dialog box rendered in a style of the user interface associated with the client device.

16. The one or more non-transitory computer-readable media of claim 15 , wherein said status information comprises login status information, and wherein said instructions, when executed by the one or more computers, cause the one or more computers to redirect text comprising the login status information to a dialog box originating from the user interface associated with the client device.

17. A client device, comprising:

at least one processor; and

memory storing computer readable instructions that, when executed by the at least one processor, configure the client device to:

establish a connection between the client device and a remote host, said remote host providing access to one or more applications executing remotely within a virtual machine executing on the remote host;

receive, at the client device, first information from the remote host about a first application executing within the virtual machine executing on the remote host; and

render, within a user interface associated with the client device and with a graphical appearance based on at least one user interface component of said user interface associated with the client device, a first user interface component based on a corresponding user interface component of the first application executing within the virtual machine executing on the remote host.

18. The client device of claim 17 , wherein the first user interface component comprises an application window rendered directly within the user interface associated with the client device without an intervening application window associated with the remote host.

19. The client device of claim 17 , wherein the instructions, when executed by the at least one processor, configure the client device to hide a corresponding user interface element generated by the remote host, and render the locally generated first user interface component in its place.

20. The client device of claim 17 , wherein the first user interface component comprises an icon specific to the first application, and wherein the instructions, when executed by the at least one processor, configure the client device to render said icon in the user interface associated with the client device.

21. The client device of claim 17 , wherein the remote host has a first plurality of user interface components, and the client device has a second plurality of user interface components, each of the first plurality of user interface components corresponding to a different one of the second plurality of user interface components, and wherein the instructions, when executed by the at least one processor, configure the client device to:

substitute one of the second plurality of user interface components for a corresponding one of the first plurality of user interface components received from the remote host; and

send user input to the remote host responsive to the corresponding one of the first plurality of user interface components based on user input received via the corresponding one of the second plurality of user interface components.

22. The client device of claim 21 , wherein the instructions, when executed by the at least one processor, configure the client device to alter a language of content within the corresponding one of the first plurality of user interface components to a language associated with the client device.

23. The client device of claim 21 , wherein the first user interface component comprises status information about the first application, said status information intended for presentation in a dialog box, and wherein the instructions, when executed by the at least one processor, configure the client device to intercept the status information and present the status information in a dialog box rendered in a style of the user interface associated with the client device.

24. The client device of claim 23 , wherein said status information comprises login status information, and wherein the instructions, when executed by the at least one processor, configure the client device to redirect text comprising the login status information to a dialog box originating from the user interface associated with the client device.

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 Mar 13, 2012
From: MOMCHILOV, GEORGY; MIR, ABRAHAM
To: CITRIX SYSTEMS, INC.
Reel/Frame 027849/0466 →
Continuity (2)
Provisional Application 61448716 · Mar 3, 2011
Related Publication 20120226742A1 · Sep 6, 2012