IP Library › Granted Patent US 8,275,871
Granted Patent B2
US 8,275,871 · App. 12/609,184 · Granted Sep 25, 2012

Systems and methods for providing dynamic spillover of virtual servers based on bandwidth

Assignee: Citrix Systems, Inc.
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,275,871
App. No.
12/609,184
Filed
Oct 30, 2009
Granted
Sep 25, 2012
Kind
B2
Art Unit
2441
USPC
709/200
Abstract

The present solution provides a spillover management technique for virtual servers of an appliance based on bandwidth. A network administrator may configure a bandwidth threshold for one or more virtual servers, such as virtual servers providing acceleration or load balancing for one or more services. The bandwidth threshold may be specified as a number of bytes transferred via the virtual server. The bandwidth threshold may also be specified as a round trip time or derivative thereof. A user may specify the bandwidth threshold via a configuration interface. Otherwise, the appliance may establish the bandwidth threshold. The appliance monitors the bandwidth used by a first virtual server. In response to detecting the bandwidth reaching or exceeding the bandwidth threshold, the appliance dynamically directs client requests to a second virtual server.

Claims (25)

1. A method for performing bandwidth management of a virtual server on an object basis, the method comprising:

(a) establishing, on an appliance, a first virtual server for directing requests received by the appliance to a second virtual server executing on the appliance based on requests corresponding to an object type;

(b) establishing, via the appliance, a bandwidth threshold for the object type on the second virtual server;

(c) directing, by the first virtual server, to the second virtual server client requests corresponding to the object type; and

(d) monitoring, by the appliance, bandwidth used by the second virtual server to determine if the bandwidth used by requests corresponding to the object type exceeds the bandwidth threshold.

2. The method of claim 1 , comprising determining, by the appliance, the monitored bandwidth of the second virtual server exceeds the bandwidth threshold.

3. The method of claim 2 , comprising directing, by the appliance in response to the determination, a request of the client to a third virtual server.

4. The method of claim 3 , comprising handling, by the third virtual server, requests corresponding to the object type.

5. The method of claim 1 , comprising determining, by the first virtual server, a request of a client corresponds to the object type by comparing the request to a pattern for at least a portion of a uniform resource locator.

6. The method of claim 1 , comprising determining, by the first virtual server, a request of a client has a predetermined file extension corresponding to the object type.

7. The method of claim 1 , comprising determining, by the first virtual server, a request of a client corresponds to the object type responsive to a policy of a policy engine.

8. The method of claim 1 , comprising determining, by the first virtual server, a request of a client corresponds to the object type by applying a content switching policy to content of the request.

9. The method of claim 1 , wherein step (d) comprises determining, by the appliance, a number of bytes per second transferred between the second virtual server and a plurality of services.

10. The method of claim 1 , wherein step (d) comprises determining, by the appliance, a number of bytes per second transferred between the second virtual server and a plurality of clients.

11. The method of claim 1 , wherein step (d) comprises determining, by the appliance, a number of bytes one of received or transmitted by the second virtual server for a predetermined time period.

12. The method of claim 1 , comprising transmitting, by the second virtual server, requests to a plurality of services.

13. The method of claim 1 , comprising determining, by the appliance via monitoring, the bandwidth used by the second virtual server falls below the bandwidth threshold.

14. The method of claim 13 , comprising redirecting, by the first virtual server in response to the determination, requests to the second virtual server instead of a third virtual server.

15. The method of claim 14 , comprising receiving, by the first virtual server a request from a client via a connection established via the third virtual server, and providing the request to the third virtual server.

16. The method of claim 2 , comprising receiving, by the first virtual server, a request from a client via a connection established via the second virtual server, and providing the request to the second virtual server.

17. The method of claim 1 , comprising determining, by the first virtual server, the bandwidth used by the second virtual server exceeds the bandwidth threshold, and redirecting client requests to one of the following: a second appliance, a server or a service.

18. The method of claim 1 , wherein step (e) comprises identifying, by the appliance, the bandwidth used by the second virtual server is within a second bandwidth threshold.

19. The method of claim 1 , comprising determining, by the appliance, bandwidth used by the second virtual server exceeds the bandwidth threshold, and redirecting a request of the client to one of a second appliance, a server or a service.

20. The method of claim 19 , wherein the appliance uses a redirect uniform resource locator configured for one of the first virtual server or the second virtual server to redirect the request of the client.

21. The method of claim 1 , comprising determining, by the appliance, bandwidth used by the second virtual server exceeds the bandwidth threshold, and providing the client with a redirect uniform resource locator to one of a second appliance, a server or a service.

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 →
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 →
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 1, 2010
From: RAM, MARUTHI; SUGANTHI, JOSEPHINE; VERZUNOV, SERGEY; KAMATH, SANDEEP
To: CITRIX SYSTEMS, INC.
Reel/Frame 024009/0364 →
Continuity (3)
Division 11685186 · Mar 12, 2007
Continuation In Part 11466238 · Aug 22, 2006
Related Publication 20100046546A1 · Feb 25, 2010