IP Library Granted Patent US 10,824,409
Granted Patent B2
US 10,824,409 · App. 16/122,446 · Granted Nov 3, 2020

Auto discovery and configuration of services in a load balancing appliance

Inventors: Mahesh Arumugam (Santa Clara, CA); Sergey Verzunov (Santa Clara, CA); Sandeep Kamath (Santa Clara, CA); Josephine Suganthi (Santa Clara, CA); Anil Shetty (Union City, CA); Abhishek Chauhan (Santa Clara, CA)
Assignee: Citrix Systems, Inc.
G06F8/60G06F8/61G06F8/71
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 10,824,409
App. No.
16/122,446
Granted
Nov 3, 2020
Kind
B2
Abstract

The present disclosure is directed towards systems and methods for managing application delivery in a network. A device intermediary to a client and one or more servers that provide a plurality of applications, receives a request from the client to access a first application of the plurality of applications. The device holds the request and retrieves, while holding the request, configuration information for an instance of the first application from a configuration repository. The device configures a virtual internet protocol (“VIP”) server using the configuration information for the instance of the first application. The device processes the request via the VIP server.

Claims (37)

1. A method comprising:

receiving, by an intermediary device comprising one or more processors and memory that is intermediary to one or more client devices and one or more servers, a request from a client device of the one or more client devices to access an application;

identifying, by the intermediary device, a report of an instance of the application, the report received from a configuration repository and comprising information identifying an internet protocol address, a communication port, and a location on a server of the one or more servers of the instance of the application, wherein the internet protocol address is different from the communication port and the location on the server, and the configuration repository communicates the report responsive to receiving information from the instance of the application;

holding, by the intermediary device, the request until at least one virtual internet protocol (VIP) server is configured on the intermediary device for managing network traffic to the instance of the application;

configuring, by the intermediary device responsive to and while holding the request, the at least one VIP server with the internet protocol address, the communication port and the location on the server of the one or more servers from the information received in the report to manage network traffic to the instance of the application; and

providing, by the intermediary device based on the configuring of the at least one VIP server, the request to the at least one VIP server for the client device to access the instance of the application.

2. The method of claim 1 , further comprising receiving the report from the configuration repository responsive to the application being established on the server.

3. The method of claim 1 , further comprising receiving the report from the configuration repository responsive to a change in configuration of the application.

4. The method of claim 1 , further comprising receiving the report from the configuration repository responsive to an update by the application to the configuration repository.

5. The method of claim 1 , further comprising determining that the intermediary device lacks any VIP servers configured for the application.

6. The method of claim 1 , further comprising configuring, by the intermediary device responsive to both receipt of the request and receipt of the report, the at least one VIP server for the application.

7. The method of claim 1 , further comprising receiving, by the intermediary device, a second report from the configuration repository with updated configuration information of the application and modifying configuration of the at least one VIP server with the updated configuration information.

8. A method comprising:

(a) receiving, by an intermediary device comprising one or more processors and memory that is intermediary to one or more client devices and one or more servers, from a client device of the one or more client devices, a request for a first time to access a first application, wherein the intermediary device is configured with one or more virtual internet protocol (VIP) servers for one or more applications other than the first application;

(b) holding, by the intermediary device, the request until at least one virtual internet protocol (VIP) server is configured on the intermediary device for managing network traffic to the first application;

(c) communicating, by the intermediary device responsive to the request, a query to a configuration repository to discover one or more instances of the first application on the one or more servers;

(d) receiving, by the intermediary device responsive to the query, from the configuration repository, a report of an instance of the first application, the report comprising information identifying an internet protocol address, a communication port and a location on a server of the one or more servers of the instance of the first application, wherein the internet protocol address is different from the communication port and the location on the server;

(e) configuring, by the intermediary device responsive to and while holding the request, the at least one VIP server with the internet protocol address, the communication port and the location on the server of the one or more servers from the information received in the report to manage network traffic to the instance of the first application; and

(f) releasing, by the intermediary device based on the configuring of the at least one VIP server, the request to the at least one VIP server for the client device to access the first application.

9. The method of claim 8 , further comprising holding the request while discovering on-demand the instance of the first application on the server.

10. The method of claim 8 , wherein (d) further comprises receiving the report from the configuration repository responsive to the first application being established on the server.

11. The method of claim 8 , wherein (d) further comprises receiving the report from the configuration repository responsive to a change in configuration of the first application.

12. The method of claim 8 , wherein (d) further comprises receiving the report from the configuration repository responsive to the first application providing an update to the configuration repository.

13. A system comprising:

an intermediary device comprising one or more processors and memory that is intermediary to one or more client devices and one or more servers and configured to:

receive from a client device of the one or more client devices a request to access an application;

receive from a configuration repository a report of an instance of the application, the report comprising information identifying an internet protocol address, a communication port and a location on a server of the one or more servers of the instance of the application, wherein the internet protocol address is different from the communication port and the location on the server, wherein the configuration repository communicates the report to the intermediary device responsive to receipt of information from the instance of the application;

hold the request until at least one virtual internet protocol (VIP) server is configured on the intermediary device for managing network traffic to the instance of the application;

configure, responsive to and while holding the request, the at least one VIP server with the internet protocol address, the communication port and the location on the server of the one or more servers from the information received in the report to manage network traffic to the instance of the application; and

release, based on the configuration of the at least one VIP server, the request to the at least one VIP server for the client device to access the instance of the application.

14. The system of claim 13 , wherein the intermediary device is further configured to communicate, by the intermediary device responsive to the request, a query to the configuration repository to discover one or more instances of the application on the one or more servers.

15. The system of claim 14 , wherein the intermediary device is further configured to receive, responsive to the query, the report of the instance of the application.

16. The system of claim 13 , wherein the intermediary device is further configured to receive the report from the configuration repository responsive to the instance of the application being established on the server.

17. The system of claim 13 , wherein the intermediary device is further configured to receive the report from the configuration repository responsive to a change in configuration of the application.

18. The system of claim 13 , wherein the intermediary device is further configured to receive the report from the configuration repository responsive to an update by the application to the configuration repository.

19. The system of claim 13 , wherein prior to the configuration of the at least one VIP server, the intermediary device lacked any VIP servers configured for the application.

20. The system of claim 13 , wherein the intermediary device is further configured to hold the request while configured to discover on-demand the instance of the application on the server.

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 →
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 →
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 →
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: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
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 Sep 7, 2018
From: ARUMUGAM, MAHESH; VERZUNOV, SERGEY; KAMATH, SANDEEP; SUGANTHI, JOSEPHINE; SHETTY, ANIL; CHAUHAN, ABHISHEK
To: CITRIX SYSTEMS, INC.
Reel/Frame 046818/0630 →
Continuity (2)
Continuation 14707653 · May 8, 2015
Related Publication 20190004780A1 · Jan 3, 2019
Cited By (4)
US 12,197,529 US 12,289,205 US 12,348,378 US 12,489,670