IP Library Granted Patent US 7,543,061
Granted Patent B2
US 7,543,061 · App. 10/606,999 · Granted Jun 2, 2009

Method and system for distributing load by redirecting traffic

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 7,543,061
App. No.
10/606,999
Granted
Jun 2, 2009
Kind
B2
Abstract

Disclosed is a system for servers to redirect client requests to other servers in order to distribute client traffic among the servers. A client is assigned to a server although the client may be unaware of that assignment. When the client accesses a server, a server possibly identified to the client by a name service, the server checks the client's assignment. If the client is not assigned to this server, then in some scenarios this server redirects the client to its assigned server. The client responds by sending its request to the assigned server. In other scenarios, the first server accessed by the client proxies the client's traffic to the assigned server. A database is kept of client-to-server assignments. If the present load distribution is less than ideal (e.g., clients are assigned to an unavailable server), then the assignment database is updated to reflect how the load should be distributed.

Claims (36)

1. In a network communications environment comprising at least a first and a second server client, a client, and a client-to-home-server assignment data structure specifying assignments of the clients to a server to which clients can subscribe, a method for changing the distribution of traffic among the servers, the method comprising:

receiving at the first server a registration request from the client, wherein the registration request comprises a Session Initiation Protocol Register message;

determining at the first server a server with which the client is assigned to work based on the client-to-home-server assignment data structure;

when the determined server is the first server, processing the registration request at the first server;

when the determined sever is the second server, checking a number of Via headers in the registration request, the number of Via headers indicating how many times the registration request has been forwarded; and

if the number of Via headers is one, then sending a request from the first server to the client redirecting the client to work with the second server;

else if the number of Via headers is greater than one, then proxying from the first server the client's registration request to the second server so that the second server processes the registration request;

setting up a subscription by a watcher to a current server;

monitoring the distribution of traffic among the servers;

determining that a change in the distribution of traffic could be beneficial;

modifying the client-to-home-server assignment data structure to reflect a change in assignment of the client from the current server to a new server; and

sending a notification to the watcher of the change in assignment so that the watcher can set up a new subscription.

2. The method of claim 1 wherein the first server is of a type selected from the group consisting of: a home server and a load distribution server.

3. The method of claim 1 wherein the second server is a real-time communications server.

4. The method of claim 1 wherein receiving a registration request comprises receiving the request over a Transport Layer Security connection.

5. The method of claim 1 wherein determining a server with which the client is assigned to work comprises checking an active directory for a home server entry for the client.

6. The method of claim 1 further comprising:

authenticating the client before determining a server with which the client is assigned to work.

7. The method of claim 6 wherein authenticating the client comprises using a New Technology LAN Manager authentication protocol.

8. The method of claim 6 wherein authenticating the client comprises using a Kerberos authentication protocol.

9. A computer-readable storage medium containing computer-executable instructions for performing a method for a first server to redirect traffic, the method comprising:

receiving a registration request from a client, wherein the registration request comprises a Session Initiation Protocol Register message;

determining a server with which the client is assigned to work;

when the determined server is the first server, processing the registration request at the first server; and

when the determined sever is a second server, checking a number of Via headers in the registration request; and

if the number of Via headers is one, then sending a request to the client, redirecting the client to work with the second server;

else if the number of Via headers is greater than one, then proxying the client's registration request to the second server.

10. In a network communications environment, a system for redirecting traffic among servers, the system comprising:

a home server directory service;

a client configured for requesting an identification of a home server from the home server directory service, for receiving a home server identification in response, and for sending a registration request to the identified home server, the registration request including a number indicating how many times the registration request has been forwarded, wherein the registration request comprises a Session Initiation Protocol Register message;

the identified home server comprising a client-to-home-server assignment data structure, the identified home server configured for receiving the registration request from the client, for querying the client-to-home-server assignment data structure to determine a home server with which the client is assigned to work, for processing the registration request at the home server when the determined server is the home server, and for checking the number when the determined server is not the home server, and the home server with which the client is assigned to work

wherein if the number is one, the identified home server is configured to send a request to the client redirecting the client to work with the home server with which the client is assigned to work, and else if the number is greater than one, the identified home server is configured for proxying the client's registration request to the home server with which the client is assigned to work.

11. In a network communications environment, a system for redirecting traffic among servers, the system comprising:

a home server directory service;

a client configured for requesting an identification of a home server from the home server directory service, for receiving a home server identification in response, and for sending a registration request to the identified home server, wherein the registration request comprises a Session Initiation Protocol Register message;

the identified home server comprising a client-to-home-server assignment data structure, the identified home server configured for receiving the registration request from the client, for querying the client-to-home-server assignment data structure to determine a home server with which the client is assigned to work, for checking a number of Via headers in the registration request, and, if the number of Via headers is one, for sending a request to the client redirecting the client to work with the home server with which the client is assigned to work, else if the number of Via headers is greater than one, for proxying the client's registration request to the home server with which the client is assigned to work; and the home server with which the client is assigned to work.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034541/0477 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 26, 2003
From: KUMBALIMUTT, VISHWAJITH; SIMONS, DAVID J.; BROWN, ROBERT; APREUTESEI, ELENA
To: MICROSOFT CORPORATION
Reel/Frame 014243/0581 →