IP Library Granted Patent US 8,122,146
Granted Patent B1
US 8,122,146 · App. 12/759,806 · Granted Feb 21, 2012

Intelligent switching of client packets among a group of servers

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,122,146
App. No.
12/759,806
Granted
Feb 21, 2012
Kind
B1
Abstract

The content-aware application switch and methods thereof intelligently switch client packets to one server among a group of servers in a server farm. The switch uses Layer 7 or application content parsed from a packet to help select the server and to schedule the transmitting of the packet to the server. This enables refined load-balancing and Quality of-Service control tailored to the application being switched. In an exemplary embodiment of the invention, a method includes maintaining a server load metric for each server in a group of servers; parsing application content from a packet; selecting a destination server from the group of servers, wherein selecting the destination server is dependent on the server load metric for each server, assigning a priority to the packet, the priority being dependent on the application content; and dropping the packet if the priority comprises at least one of a predetermined type.

Claims (39)

1. A method comprising:

maintaining a server load metric for each server in a group of servers;

parsing application content from a packet;

selecting a destination server from the group of servers, wherein selecting the destination server is dependent on the server load metric for each server;

assigning a priority to the packet, the priority being dependent on the application content; and

dropping the packet if the priority comprises at least one of a predetermined type.

2. The method of claim 1 , further comprising transmitting the packet to the destination server according to a transmitting schedule, the transmitting schedule being dependent on the priority.

3. The method of claim 1 , further comprising referencing an access control list to enforce security, the access control list being dependent at least in part upon the application content.

4. The method of claim 3 , wherein referencing an access control list further comprises dropping the packet if the application content comprises a first predetermined type.

5. The method of claim 4 , wherein referencing an access control list further comprises redirecting the packet to a predetermined location if the application content comprises a second predetermined type.

6. The method of claim 1 , wherein the priority comprises at least one of a first priority and a second priority, the second priority being lower than the first priority, wherein the destination server has a workload above a first predetermined level, and the transmitting schedule is constructed such that, if the packet comprises the first priority then the packet is transmitted to the destination server without delay and if the packet comprises the second priority then the packet is held back from being transmitted to the destination server.

7. The method of claim 1 , further comprising:

determining at least one eligible server from among the group of servers, wherein determining at least one eligible server is dependent on the application content; and

selecting the destination server from among the at least one eligible servers.

8. The method of claim 1 , further comprising:

determining an estimated application load for the destination server, the estimated application load being dependent at least in part upon the application content; wherein selecting a destination server is also dependent at least in part upon the estimated application load.

9. The method of claim 1 , wherein the transmitting schedule is also dependent at least in part upon the server load metric for each server.

10. The method of claim 1 , wherein the application content comprises a Hypertext Transfer Protocol header.

11. A non-transitory computer readable medium, the computer readable medium including instructions, which when executed performs steps comprising:

maintaining a server load metric for each server in a group of servers;

parsing application content from a packet;

selecting a destination server from the group of servers, wherein selecting the destination server is dependent on the server load metric for each server assigning a priority to the packet, the priority being dependent on the application content; and

dropping the packet if the priority comprises at least one of a predetermined type.

12. The non-transitory computer readable medium of claim 11 , wherein the steps further comprise transmitting the packet to the destination server according to a transmitting schedule, the transmitting schedule being dependent on the priority.

13. The non-transitory computer readable medium of claim 11 , wherein the steps further comprise referencing an access control list to enforce security, the access control list being dependent at least in part upon the application content.

14. The non-transitory computer readable medium of claim 13 , wherein referencing an access control list further comprises dropping the packet if the application content comprises a first predetermined type.

15. The non-transitory computer readable medium of claim 14 , wherein referencing an access control list further comprises redirecting the packet to a predetermined location if the application content comprises a second predetermined type.

16. The non-transitory computer readable medium of claim 11 , wherein the priority comprises at least one of a first priority and a second priority, the second priority being lower than the first priority, wherein the destination server has a workload above a first predetermined level, and the transmitting schedule is constructed such that, if the packet comprises the first priority then the packet is transmitted to the destination server without delay and if the packet comprises the second priority then the packet is held back from being transmitted to the destination server.

17. A method comprising:

maintaining a server load metric for each server in a group of servers;

parsing application content from a packet;

determining at least one eligible server from among the group of servers, wherein determining at least one eligible server is dependent at least in part upon the application content;

selecting a destination server from among the at least one eligible server;

determining an estimated application load for the destination server, the estimated application load being dependent at least in part upon the application content;

assigning a priority to the packet, the priority being dependent at least in part upon the application content; and

dropping the packet if the priority comprises at least one of a predetermined level.

18. The method of claim 17 , further comprising transmitting the packet to the destination server according to a transmitting schedule, the transmitting schedule being dependent at least in part upon the priority and the server load metric for each server; wherein the step for selecting the destination server is dependent at least in part upon the server load metric for each server in the group of servers and the estimated application load.

19. The method of claim 17 , wherein the application content comprises a Hypertext Transfer Protocol header.

20. The method of claim 17 , wherein the priority further comprises at least one of a first priority and a second priority, the second priority being lower than the first priority, wherein the destination server has a workload above a first predetermined level of the at least one of a predetermined level, and the transmitting schedule is constructed such that, if the packet comprises the first priority then the packet is transmitted to the destination server without delay and if the packet comprises the second priority then the packet is held back from being transmitted to the destination server.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2023
From: OPEN INVENTION NETWORK LLC
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 062401/0512 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 10, 2013
From: SOFTSHIELD LLC
To: OPEN INVENTION NETWORK, LLC
Reel/Frame 031171/0783 →