Method and system for distributing load by redirecting traffic
First Claim
1. A method for distributing, among networked servers that each provide a service for clients, a request from a client to register for the service, the client being internal or external to the server network, the method comprising:
- providing a client-to-server assignment data structure specifying assignments of each client to one of the servers as a home server for the client;
receiving by a receiving server a request sent from a requesting client to register for the service;
before registering the requesting client, identifying by the receiving server a home server of the requesting client from the client-to-server assignment data structure;
determining whether the receiving server is the identified home server;
after determining that the receiving server is the identified home server, registering by the receiving server the requesting client, such that the receiving server may provide the service to the registered client; and
after determining that the receiving server is not the identified home server,determining whether the requesting client is internal or external to the network;
after determining that the requesting client is internal to the network, sending by the receiving server a response to the requesting client indicating that the requesting client should redirect the registration request to the identified home server; and
after determining that the requesting client is external to the network, proxying by the receiving server the received registration request from the receiving server to the identified home server.
2 Assignments
0 Petitions
Accused Products
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.
24 Citations
21 Claims
-
1. A method for distributing, among networked servers that each provide a service for clients, a request from a client to register for the service, the client being internal or external to the server network, the method comprising:
-
providing a client-to-server assignment data structure specifying assignments of each client to one of the servers as a home server for the client; receiving by a receiving server a request sent from a requesting client to register for the service; before registering the requesting client, identifying by the receiving server a home server of the requesting client from the client-to-server assignment data structure; determining whether the receiving server is the identified home server; after determining that the receiving server is the identified home server, registering by the receiving server the requesting client, such that the receiving server may provide the service to the registered client; and after determining that the receiving server is not the identified home server, determining whether the requesting client is internal or external to the network; after determining that the requesting client is internal to the network, sending by the receiving server a response to the requesting client indicating that the requesting client should redirect the registration request to the identified home server; and after determining that the requesting client is external to the network, proxying by the receiving server the received registration request from the receiving server to the identified home server. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer-storage medium that is not a signal containing instructions for causing a server that registers clients to perform a method to distribute a registration request received from a client to another server that also registers clients, the servers being in a network, some of the clients being internal to the network and some of the clients being external to the network, the method comprising:
-
receiving by a receiving server a registration request sent from a requesting client; and under control of the receiving server, identifying a home server of the requesting client before registering the requesting client; when the receiving server is the identified home server, registering the requesting client; and when the receiving server is not the identified home server, determining whether to redirect the requesting client or to proxy the registration request; when the receiving server determines to redirect the requesting client, sending a response to the requesting client indicating that the requesting client should redirect the registration request to the identified home server; and when the receiving server determines to proxy the registration request, proxying the received request from the receiving server to the identified home server. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A server that receives from a requesting client a registration request and either registers the client or distributes the received registration request to another server that registers clients, the servers being in a network, some of the clients being internal to the network and some of the clients being external to the network, comprising:
-
a memory storing computer-executable instructions of; a component that identifies a home server of the requesting client from a client-to-server assignment data structure before registering the requesting client; a component that, when the receiving server is the identified home server, registers the requesting client; a component that, when the receiving server is not the identified home server, determines whether the requesting client is internal or external to the network; when it is determined that the requesting client is internal to the network, sends a response to the requesting client indicating that the requesting client should redirect the registration request to the identified home server; and when it is determined that the requesting client is external to the network, proxies the received registration request from the receiving server to the identified home server; and a processor that executes the computer-executable instructions stored in the memory. - View Dependent Claims (20, 21)
-
Specification