Dynamic generation of proxy connections
US-2015326683-A1 · Nov 12, 2015 · US
US9723093B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9723093-B2 |
| Application number | US-201414225261-A |
| Country | US |
| Kind code | B2 |
| Filing date | Mar 25, 2014 |
| Priority date | Jun 26, 2003 |
| Publication date | Aug 1, 2017 |
| Grant date | Aug 1, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
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.
Opening claim text (preview).
We 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. The method of claim 1 wherein the registration request is a request to register for a real-time communications service. 3. The method of claim 2 wherein the registration request is a Session Initiation Protocol (SIP) REGISTER message. 4. The method of claim 2 wherein the request sent from a client includes a Via header, the edge server adds another Via header to a request sent from an external client, and the receiving server determines whether the requesting client is internal or external to the network based on number of Via headers of the received request. 5. The method of claim 1 wherein the network includes an edge server through which requests from external clients pass before being provided to a receiving server, and wherein the edge server upon receiving a request for a service from an external client selects a server to receive the request to effect load balancing of receiving requests among the servers. 6. The method of claim 5 wherein the client-to-server assignment data structure provides load balancing among assignments of clients to home servers. 7. The method of claim 1 wherein the network includes a firewall separating the servers and internal clients from the external clients. 8. The method of claim 1 , further comprising: receiving by the identified home server the redirected or proxied registration request; and registering by the identified home server the requesting client to provide the service to the registered client. 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. 10. The computer-storage medium of claim 9 wherein the servers register clients for a real-time communications service. 11. The computer-storage medium of claim 10 wherein the registration request is a Session Initiation Protocol (SIP) REGISTER message. 12. The computer-storage medium of claim 9 wherein the registration request is sent from a non-registered requesting client. 13. The computer-storage medium of claim 9 wherein identifying a home server of the requesting client includes using a client-to-server assignment data structure that specifies assignments of each client to one of the servers as a home server for the client. 14. The computer-storage medium of claim 9 wherein the servers are in a network, some of the clients being internal to the network and some of the clients being external to the network, and wherein determining whether to redirect the requesting client or to proxy the registration request includes determining whether the requesting client is internal to the network or external to the network. 15. The computer-storage medium of claim 14 wherein the server determines to redirect the requesting client when the requesting client is internal to the network and determines to proxy the registration request when the requesting client is external to the network. 16. The computer-storage medium of claim 9 wherein sending a response to the requesting client indicating that the requesting client should redirect the registration request to the identified home server comprises sending a 301 Moved Permanently SIP response code. 17. The computer-storage medium of claim 16 wherein the receiving server has not moved permanently, such that the receiving server registers clients for which it is the identified home server. 18. The computer-storage medium of claim 9 , further comprising: receiving by the identified home server the redirected or proxied registration request; and registering by the identified home server the requesting client. 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 th
Electricity · mapped topic
Electricity · mapped topic
Electricity · mapped topic
for authentication of entities (cryptographic mechanisms or cryptographic arrangements for entity authentication H04L9/32) · CPC title
Reaction to server failures by a load balancer · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.