IP Library Granted Patent US 10,101,981
Granted Patent B2
US 10,101,981 · App. 14/707,653 · Granted Oct 16, 2018

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,101,981
App. No.
14/707,653
Granted
Oct 16, 2018
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 (83)

1. A method of managing application delivery in a network, comprising:

receiving, by a device intermediary to a client and one or more servers that provide a plurality of applications, a request from the client to access a first application of the plurality of applications;

holding, by the device, the request received from the client;

retrieving, by the device while holding the request, configuration information for an instance of the first application from a configuration repository, wherein the configuration information comprises a location on the one or more servers of the instance of the first application from a plurality of locations of instances of the first application on the one or more servers;

initiating, by the device responsive to the request and while holding the request, a virtual internet protocol (“VIP”) server using the configuration information for the instance of the first application to initiate the VIP server to connect using the location information to the instance of the first application and manage network traffic from the client to the instance of the first application via the VIP server configured on the device; and

processing, by the device via the VIP server, the request,

wherein the configuration repository:

receives, from the instance of the first application and responsive to initiation of the instance of the first application, a report comprising an internet protocol, a communication port, and the location on the one or more servers of the instance of the first application;

updates the configuration information for the first application based on the received report; and

transmits, responsive to receiving the report, the updated configuration information to a plurality of devices intermediary to a plurality of clients and the one or more servers.

2. The method of claim 1 , further comprising:

intercepting, by the device, a second request from the first application of the plurality of applications to access a second application of the plurality of applications;

holding, by the device, the second request from the first application;

retrieving, by the device while holding the second request, second configuration information for an instance of the second application from the configuration repository, the configuration repository registering the instance of the second application;

configuring, by the device responsive to the second request and while holding the second request, a second VIP server using the second configuration information; and

processing, by the device via the second VIP server, the second request.

3. The method of claim 1 , further comprising:

receiving, by the configuration repository, a parameter for the first application;

receiving, by the configuration repository, a report from each of a plurality of instances of the first application responsive to initiation of each of the plurality of instances of the first application;

registering, by the configuration repository, the configuration information in an entry in the configuration repository, the configuration information based on the parameter for the first application and the report received from each of the plurality of instances of the first application.

4. The method of claim 1 , further comprising:

receiving, by the configuration repository, an indication that the first application is discontinued; and

transmitting, by the configuration repository responsive to the indication, a notification to the device to remove the configuration information for the first application stored on the device.

5. The method of claim 1 , further comprising:

receiving, by the configuration repository, a change to a parameter of the first application, the parameter comprising at least one of a persistence type, a load balancing type, a timeout value, or a content switching attribute;

creating, by the configuration repository, a second updated configuration information for the first application with the change; and

transmitting, by the configuration repository, the second updated configuration information to the plurality of devices, wherein the plurality of devices are configured with the configuration information.

6. The method of claim 1 , further comprising:

determining, by the device, a load balancing policy for the first application based on the configuration information; and

selecting, by the device based on the load balancing policy, from a plurality of instances of the first application identified by the configuration information, the instance of the first application.

7. The method of claim 1 , further comprising:

providing, by the device to the configuration repository, first historical information about delivery of data to the instance of the first application;

providing, by a second device intermediary to a plurality of clients and the one or more of servers, to the configuration repository, second historical information about delivery of data to a second plurality of instances of the first application; and

aggregating, by the configuration repository, the first historical information with the second historical information to generate statistical information for the first application.

8. The method of claim 1 , further comprising:

providing, by the device, an interface to a developer of the first application, the interface configured for input of parameters of the first application;

receiving, by the device via the interface, the parameters of the first application;

translating, by the device, the parameters into commands using a protocol of the device; and

transmitting, by the device, the commands to the configuration repository.

9. The method of claim 1 , further comprising:

transmitting, by the configuration repository, the configuration information to the plurality devices, wherein the plurality of devices are geographically dispersed, the plurality of devices comprising the device.

10. The method of claim 1 , wherein the request comprises a uniform resource locator corresponding to the first application.

11. A system for management of application delivery in a network, comprising:

a device intermediary to a client and one or more servers that provide a plurality of applications;

a configuration repository in memory accessible to the device, the configuration repository storing configuration information for an instance of a first application of the plurality of applications;

wherein the device comprises one or more processors, coupled to memory, configured to:

receive a request from the client to access the first application of the plurality of applications;

hold the request received from the client;

retrieve, while holding the request, configuration information for the instance of the first application from the configuration repository, wherein the configuration information comprises a location on the one or more servers of the instance of the first application from a plurality of locations of instances of the first application on the one or more servers;

initiate, responsive to the request and while holding the request, a virtual internet protocol (“VIP”) server using the configuration information for the instance of the first application to initiate the VIP server to connect using the location information to the instance of the first application and manage network traffic from the client to the instance of the first application via the VIP server configured on the device;

process, via the VIP server, the request;

wherein the configuration repository is configured to:

receive, from the instance of the first application and responsive to initiation of the instance of the first application, a report comprising an internet protocol, a communication port, and the location on the one or more servers of the instance of the first application;

update the configuration information for the first application based on the received report; and

transmit, responsive to receiving the report, the updated configuration information to a plurality of devices intermediary to a plurality of clients and the one or more servers.

12. The system of claim 11 , wherein the device is further configured to:

intercept a second request from the first application of the plurality of applications to access a second application of the plurality of applications;

hold the second request from the first application;

retrieve, while holding the second request, second configuration information for an instance of the second application from the configuration repository, the configuration repository registering the instance of the second application;

configure, responsive to the second request and while holding the second request, a second VIP server using the second configuration information; and

process, via the second VIP server, the second request.

13. The system of claim 11 , wherein the configuration repository is further configured to:

receive a parameter for the first application;

receive a report from each of a plurality of instances of the first application responsive to initiation of each of the plurality of instances of the first application;

register the configuration information in an entry in the configuration repository, the configuration information based on the parameter for the first application and the report received from each of the plurality of instances of the first application.

14. The system of claim 11 , wherein the configuration repository is further configured to:

receive an indication that the first application is discontinued; and

transmit, responsive to the indication, a notification to the device to remove the configuration information for the first application stored on the device.

15. The system of claim 11 , wherein the configuration repository is further configured to:

receive a change to a parameter of the first application, the parameter comprising at least one of a persistence type, a load balancing type, a timeout value, or a content switching attribute;

create a second updated configuration information for the first application with the change; and

transmit the second updated configuration information to the plurality of devices, wherein the plurality of devices are configured with the configuration information.

16. The system of claim 11 , wherein the device is further configured to:

determine a load balancing policy for the first application based on the configuration information; and

select, based on the load balancing policy, from a plurality of instances of the first application identified by the configuration information, the instance of the first application.

17. The system of claim 11 , further comprising:

a second device intermediary to a plurality of clients and the one or more servers,

wherein:

the device is further configured to provide, to the configuration repository, first historical information about delivery of data to the instance of the first application;

the second device is configured to provide, to the configuration repository, second historical information about delivery of data to a second plurality of instances of the first application; and

the configuration repository is configured to aggregate the first historical information with the second historical information to generate statistical information for the first application.

18. The system of claim 11 , wherein the configuration repository is further configured to:

transmit the configuration information to the plurality devices, wherein the plurality of devices are geographically dispersed, the plurality of devices comprising the 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 Oct 8, 2015
From: ARUMUGAM, MAHESH; VERZUNOV, SERGEY; KAMATH, SANDEEP; SUGANTHI, JOSEPHINE; SHETTY, ANIL; CHAUHAN, ABHISHEK
To: CITRIX SYSTEMS, INC.
Reel/Frame 036754/0694 →
Continuity (1)
Related Publication 20160328222A1 · Nov 10, 2016
Cited By (1)
US 12,289,205