IP Library Granted Patent US 11,210,113
Granted Patent B2
US 11,210,113 · App. 16/790,980 · Granted Dec 28, 2021

Instant virtual application launch

Inventors: Georgy Momchilov (Parkland, FL); Mukund Ingale (Pompano Beach, FL); Bala Swaminathan (Parkland, FL)
Assignee: Citrix Systems, Inc.
G06F9/452G06F9/455G06F9/48G06F16/955H04L9/3213H04L63/08H04L67/141H04L67/148
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 11,210,113
App. No.
16/790,980
Granted
Dec 28, 2021
Kind
B2
Abstract

Methods and systems for persisting a protocol state from a first instance of a virtual desktop application to a second instance of the virtual desktop application are described herein. In some embodiments, a computing platform may establish, by a first virtual desktop instance, a secure session with a virtual delivery agent (VDA), resulting in a protocol state of the first virtual desktop instance. Further, the computing platform may persist, using the first virtual desktop instance, the protocol state. Next, the computing platform may transmit, from the first virtual desktop instance to a second virtual desktop instance, the protocol state. Additionally, the computing platform may authenticate, using authentication tokens comprising the protocol state, a connection between the second virtual desktop instance and a gateway device. Subsequently, the computing platform may re-establish, after the authenticating, the secure session, wherein the secure session comprises a connection between the VDA and the second virtual desktop instance.

Claims (56)

1. A method comprising:

establishing, by a first virtual desktop instance, a secure session with a virtual delivery agent (VDA), resulting in a protocol state of the first virtual desktop instance;

persisting, using the first virtual desktop instance, the protocol state;

transmitting, from the first virtual desktop instance to a second virtual desktop instance, the protocol state;

authenticating, using authentication tokens comprising the protocol state, a connection between the second virtual desktop instance and a gateway device;

re-establishing, after the authenticating, the secure session, wherein the secure session comprises a connection between the VDA and the second virtual desktop instance; and

launching, via the second virtual desktop instance and during the secure session, one or more additional session features, wherein the launching is responsive to:

transmitting, by the VDA, a session reconnect indication to a plurality of virtual channel (VC) modules associated with the VDA;

launching, by the VDA, a plurality of virtual channels associated with the VC modules; and

determining, by the VDA, capabilities of a user device.

2. The method of claim 1 , further comprising:

causing display, during the secure session and via the user device, of a user interface; and

transmitting, to the VDA, a list of virtual channels and the capabilities of the user device.

3. The method of claim 1 , further comprising launching, via the first virtual desktop instance, at least one of a web link, a published application with content, or a new published application.

4. The method of claim 3 , further comprising launching, by the VDA and responsive to the launching at least one of the web link, the published application with content, or the new published application via the first virtual desktop instance, at least one of the web link, the published application with content, or the new published application.

5. The method of claim 4 , wherein the launching at least one of the web link, the published application with content or the new published application via the first virtual desktop instance comprises launching, while the first virtual desktop instance and the VDA are re-establishing the secure session, the at least one of the web link, the published application with content or the new published application via the first virtual desktop instance.

6. The method of claim 1 , further comprising:

performing, prior to the authenticating and by the second virtual desktop instance, a transport reconnect;

suspending, by the second virtual desktop instance and for a predetermined period of time, network activity; and

generating, offline, by the second virtual desktop instance, and based on the protocol state of the first virtual desktop instance, a protocol state for the second virtual desktop instance.

7. The method of claim 1 , wherein the persisting the protocol state of the first virtual desktop instance comprises:

recording, to a stored file, a network conversation between the first virtual desktop instance and the VDA, wherein the second virtual desktop instance has access to the stored file.

8. A computing platform, comprising:

at least one processor;

a communication interface communicatively coupled to the at least one processor; and

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

establish, by a first virtual desktop instance, a secure session with a virtual delivery agent (VDA), resulting in a protocol state of the first virtual desktop instance;

persist, using the first virtual desktop instance, the protocol state;

transmit, from the first virtual desktop instance to a second virtual desktop instance, the protocol state;

authenticate, using authentication tokens comprising the protocol state, a connection between the second virtual desktop instance and a gateway device;

re-establish, after the authenticating, the secure session, wherein the secure session comprises a connection between the VDA and the second virtual desktop instance; and

launch, via the second virtual desktop instance and during the secure session, one or more additional session features, wherein the launch is responsive to:

transmitting, by the VDA, a session reconnect indication to a plurality of virtual channel (VC) modules associated with the VDA;

launching, by the VDA, a plurality of virtual channels associated with the VC modules; and

determining, by the VDA, capabilities of the user device.

9. The computing platform of claim 8 , wherein the secure session comprises a high definition experience (HDX) session.

10. The computing platform of claim 8 , wherein the protocol state comprises an independent computing architecture (ICA) protocol state, a secure ticket authority (STA) ticket, and a common gateway protocol (CGP) cookie.

11. The computing platform of claim 8 , wherein the memory stores additional computer-readable instructions, that when executed by the at least one processor, cause the computing platform to:

generate, using the protocol state of the first virtual desktop instance and for the second virtual desktop instance, a protocol state for the second virtual desktop instance, wherein the generating the protocol state for the second virtual desktop instance is performed offline.

12. The computing platform of claim 8 , wherein the protocol state of the first virtual desktop instance is embedded in the first virtual desktop instance.

13. One or more non-transitory computer-readable media storing instructions that, when executed by a computing platform comprising at least one processor, memory, and a communication interface, cause the computing platform to:

establish, by a first virtual desktop instance, a secure session with a virtual delivery agent (VDA), resulting in a protocol state of the first virtual desktop instance;

persist, using the first virtual desktop instance, the protocol state;

transmit, from the first virtual desktop instance to a second virtual desktop instance, the protocol state;

authenticate, using authentication tokens comprising the protocol state, a connection between the second virtual desktop instance and a gateway device;

re-establish, after the authenticating, the secure session, wherein the secure session comprises a connection between the VDA and the second virtual desktop instance; and

launch, via the second virtual desktop instance and during the secure session, one or more additional session features, wherein the launch is responsive to:

transmitting, by the VDA, a session reconnect indication to a plurality of virtual channel (VC) modules associated with the VDA;

launching, by the VDA, a plurality of virtual channels associated with the VC modules; and

determining, by the VDA, capabilities of the user device.

14. The one or more non-transitory computer-readable media of claim 13 , wherein the first virtual desktop instance comprises an HTML5 receiver hosted and managed by a cloud service, and wherein the second virtual desktop instance comprises an HTML5 receiver hosted by a client endpoint and managed by the cloud service.

15. The one or more non-transitory computer-readable media of claim 14 , wherein the memory stores additional computer readable media storing instructions, that when executed by the at least one processor, cause the one or more non-transitory computer-readable media to transmit the protocol state of the first virtual desktop instance by transmitting, from the first virtual desktop instance and to the second virtual desktop instance, an ICA file comprising the protocol state of the first virtual desktop instance.

16. The one or more non-transitory computer-readable media of claim 13 , wherein the first virtual desktop instance comprises a first instance of a high definition experience (HDX) software development kit (SDK)-based mobile application, and wherein the second virtual desktop instance comprises a second instance of the HDX SDK-based mobile application.

17. The one or more non-transitory computer-readable media of claim 16 , wherein the memory stores additional computer readable media storing instructions, that when executed by the at least one processor, cause the one or more non-transitory computer-readable media to transmit the protocol state of the first virtual desktop instance by transmitting, via one of an operating system (OS) key chain or a mobile device experience (MDX) shared secret vault, the protocol state of the first virtual desktop instance from the first virtual desktop instance to the second virtual desktop instance.

18. The one or more non-transitory computer-readable media of claim 13 , wherein the first virtual desktop instance comprises a first instance of HTML5 receiver running in a first browser tab and displaying a first HDX application and wherein the second virtual desktop instance comprises a second instance of HTML5 receiver running in a second browser tab and displaying a second HDX application.

19. The one or more non-transitory computer-readable media of claim 18 , wherein the memory stores additional computer readable media storing instructions, that when executed by the at least one processor, cause the one or more non-transitory computer-readable media to transmit the protocol state of the first instance by storing, by the first virtual desktop instance, the protocol state of the first virtual desktop instance to a local browser storage and accessing, by the second virtual desktop instance and via the local browser storage, the protocol state of the first virtual desktop instance.

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: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
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 →
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 Apr 9, 2020
From: MOMCHILOV, GEORGY; INGALE, MUKUND; SWAMINATHAN, BALA
To: CITRIX SYSTEMS, INC.
Reel/Frame 052352/0004 →