IP Library Granted Patent US 9,055,064
Granted Patent B2
US 9,055,064 · App. 12/977,725 · Granted Jun 9, 2015

Systems and methods for a VPN ICA proxy on a multi-core system

Inventors: Arkesh Kumar (Santa Clara, CA); Pratap Ramachandra (Bangalore, IN)
Assignee: CITRIX SYSTEMS, INC.
H04L63/10G06F21/10G06F21/105G06F21/604G06F2221/2141H04L63/0272H04L63/0823H04L63/166
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,055,064
App. No.
12/977,725
Granted
Jun 9, 2015
Kind
B2
Abstract

The present invention is directed towards systems and methods for sharing licenses across resources via a multi-core intermediary device. A device intermediary to a plurality of clients and a server may grant a license for a virtual private network (VPN) session established by a first core of a plurality of cores of the device with a client. A second core of the plurality of cores may receive a first request from the client to establish an application connection between an application and a server via the VPN session. The second core may send a second request to the first core to share the license of the VPN session responsive to determining that the first core owns the VPN session. The second core may establish the application connection responsive to receiving from the first core a response accepting the second request to share the license of the VPN session.

Claims (29)

1. A method for sharing licenses across resources via a multi-core intermediary device, the method comprising:

(a) granting, by a device intermediary to a plurality of clients and a server, a license for a virtual private network (VPN) session established by a first processor core of a plurality of processor cores of the device with a client, the license configured for use in granting permission to access a resource of the server via the VPN session;

(b) receiving, by a second processor core of the plurality of processor cores, from the client a first request to establish an application connection between an application and the server via the VPN session;

(c) sending, by the second processor core to the first processor core, a second request to share the license of the VPN session responsive to determining that the first processor core owns the VPN session, wherein determining comprises

identifying via a provisioning list that the license for the VPN session is granted to the first processor core;

(d) establishing, by the second processor core, the application connection responsive to receiving from the first processor core a response accepting the second request to share the license of the VPN session, wherein sharing comprises

allowing the first processor core and the second processor core to use the license to access the resource via the VPN session, and

updating, by the first processor core, the provisioning list to indicate the sharing of the license between the VPN session and the application connection.

2. The method of claim 1 , wherein step (a) further comprises granting the license from a pool of licenses managed via the device.

3. The method of claim 1 , wherein step (a) further comprises establishing the VPN session for a user of a plurality of users for access to a domain.

4. The method of claim 3 , wherein step (b) further comprises receiving the first request from the user to access a resource of the domain.

5. The method of claim 1 , wherein step (c) further comprises determining, by the second processor core, from the provisioning list that the first processor core owns the VPN session.

6. The method of claim 1 , wherein step (d) further comprises determining, by the first processor core, that the first request is for access to the same domain as the VPN session.

7. The method of claim 1 , further comprising disestablishing, by the second processor core, the application connection and sending a message to the first processor core to update the first processor core's provisioning list.

8. The method of claim 1 , further comprising maintaining, by the device, a single VPN session for each user in connection with a domain.

9. The method of claim 1 , further comprising, receiving by a third processor core of the plurality of processor core, a third request to establish a second application connection and establishing, by the third processor core, the second application connection responsive to receiving from the first processor core a second response accepting a fourth request to share the license of the VPN session.

10. A system for sharing licenses across resources via a multi-core intermediary device, the system comprising:

a device intermediary to a plurality of clients and a server, the device comprising at least one processor at least partially implemented in hardware and configured to grant a license for a virtual private network (VPN) session established by a first processor core of a plurality of processor cores of the device with a client, the license configured for use in granting permission to access a resource of the server via the VPN session;

a second processor core of the plurality of processor cores of the device configured for receiving from the client a first request to establish an application connection between an application and the server via the VPN session and configured for sending to the first processor core a second request to share the license of the VPN session responsive to determining that the first processor core owns the VPN session, wherein determining comprises identifying via a provisioning list that the license for the VPN session is granted to the first processor core; and wherein

the second processor core is configured to establish the application connection responsive to receiving from the first processor core a response accepting the second request to share the license of the VPN session, wherein sharing comprises allowing the first processor core and the second processor core to use the license to access the resource via the VPN session, and

the first processor core is further configured to update the provisioning list to indicate the sharing of the license between the VPN session and the application connection.

11. The system of claim 10 , wherein the at least one processor is configured to manage a pool of licenses for resources accessed via the device.

12. The system of claim 10 , wherein the device establishes the VPN session for a user of a plurality of users for access to a domain.

13. The system of claim 12 , wherein the device receives the first request from the user to access a resource of the domain.

14. The system of claim 10 , wherein the second processor core determines from the provisioning list that the first processor core owns the VPN session.

15. The system of claim 10 , wherein the first processor core determines that the first request is for access to the same domain as the VPN session.

16. The system of claim 10 , wherein the second processor core disestablishes the application connection and sends a message to the first processor core to update the first processor core's provisioning list.

17. The system of claim 10 , wherein the device maintains a single VPN session for each user in connection with a domain.

18. The system of claim 10 , wherein a third processor core of the plurality of processor cores receives a third request to establish a second application connection and establishes the second application connection responsive to receiving from the first processor core, a second response accepting a fourth request to share the license of the VPN session.

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 Mar 14, 2011
From: KUMAR, ARKESH; RAMACHANDRA, PRATAP
To: CITRIX SYSTEMS, INC.
Reel/Frame 025947/0352 →
Continuity (2)
Provisional Application 61290375 · Dec 28, 2009
Related Publication 20110162062A1 · Jun 30, 2011