Routing client requests to back-end servers
First Claim
1. In a computerized system that includes a client system, a front-end server, and one or more back-end servers, all interconnected with a communication link, a method of accessing content stored at a particular back-end server such that the client system does not know which of the one or more back-end servers store the content, the method comprising the front-end server performing the acts of:
- receiving a request for the content from the client system, the request including a resource identifier that references the front-end server and the content being requested by the client system;
examining a global catalog that dynamically maps the resource identifier to a plurality of back-end servers storing the requested content;
identifying a particular back-end server storing the requested content, from the plurality of back-end servers mapped to the resource identifier in the global catalog, wherein the same particular back-end server is identified for a given request over time, as long as the same particular back-end server is available and stores the content being requested; and
directing the request to the particular back-end server.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods and computer program products for using a front-end server to access content stored on one or more back-end servers. The front-end server receives requests for content from client systems. Back-end servers store the content, but to the client system, it appears as if the front-end server is the content'"'"'s source. Upon receiving the request, the front-end server checks the validity of the request and examines a global catalog that dynamically maps client system requests to the back-end server or servers that store the requested content. In some circumstances, the content will be stored at a single back-end server and the front-end server directs the request to that server. Alternatively, a list of back-end servers storing the requested content may be generated. If so, the front-end then uses an authentication token as a key to a hash operation that is performed on the list and a single server that is capable of satisfying the request for content is identified. A given request and authentication token always identify the same server if the list of servers available for providing the requested content remains the same. The front-end server provides a single source for content requests so that client systems are not required to alter requests or invalidate local caches when content is moved from one back-end server to another. The front-end server also provides an additional level of security for back-end servers.
-
Citations
40 Claims
-
1. In a computerized system that includes a client system, a front-end server, and one or more back-end servers, all interconnected with a communication link, a method of accessing content stored at a particular back-end server such that the client system does not know which of the one or more back-end servers store the content, the method comprising the front-end server performing the acts of:
-
receiving a request for the content from the client system, the request including a resource identifier that references the front-end server and the content being requested by the client system;
examining a global catalog that dynamically maps the resource identifier to a plurality of back-end servers storing the requested content;
identifying a particular back-end server storing the requested content, from the plurality of back-end servers mapped to the resource identifier in the global catalog, wherein the same particular back-end server is identified for a given request over time, as long as the same particular back-end server is available and stores the content being requested; and
directing the request to the particular back-end server. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
receiving the requested content from the particular back-end server; and
sending the requested content to the client system.
-
-
3. A method as recited in claim 1 further comprising the act of rejecting the request if the request is invalid.
-
4. A method as recited in claim 1 wherein the content is specific to a user at the client system and is stored only at the particular back-end server.
-
5. A method as recited in claim 4 further comprising the acts of:
-
requesting authentication credentials from a user at the client system;
receiving proper authentication credentials from the user at the client system; and
adding at least a portion of the authentication credentials to the resource identifier so that the resource identifier is limited to a user associated with the authentication credentials.
-
-
6. A method as recited in claim 5 wherein the content is email content.
-
7. A method as recited in claim 1 further comprising the acts of:
-
requesting authentication credentials from a user at the client system who initiated the request for content; and
receiving proper authentication credentials from the user at the client system.
-
-
8. A method as recited in claim 7 wherein the particular back-end server requires user authentication, the method further comprising the act of including the user authentication credentials with the request for content directed to the particular back-end server.
-
9. A method as recited in claim 7 further comprising the acts of:
-
receiving from the global catalog an authentication token associated with the authentication credentials; and
using the authentication token as a key for a hash operation to identify the particular back-end server.
-
-
10. A method as recited in claim 7 further comprising the acts of:
-
receiving a subsequent request for the content from the client system, the request including the same resource identifier as the prior request;
examining the global catalog; and
identifying the same particular back-end server that was identified for the prior request.
-
-
11. A method as recited in claim 7 further comprising the acts of:
-
receiving a subsequent request for the content from the client system, the request including the same resource identifier as the prior request;
examining the global catalog; and
identifying a different back-end server from the particular back-end server identified for the prior request because the particular back-end server is either unavailable or no longer stores the requested content.
-
-
12. A method as recited in claim 1 wherein the front-end server is part of a hosting system and is identified by a plurality of server names, and wherein the global catalog dynamically maps resource identifiers referencing the front-end server based at least in part on a server name portion of the resource identifier.
-
13. A method as recited in claim 1 wherein the client system communicates with the front-end server using at least one of hypertext transfer protocol, post office protocol, and internet message access protocol.
-
14. In a computerized system that includes a client system, a front-end server, and one or more back-end servers, all interconnected with a communication link, a method of accessing content stored at a particular back-end server such that the client system does not know which of the one or more servers store the content, the method comprising the front-end server performing the acts of:
-
receiving a request for the content from the client system, the request including a resource identifier that references the front-end server and the content being requested by the client system;
checking the request to insure that the request is a valid request;
examining a global catalog that dynamically maps resource identifiers to the one or more back-end servers storing the content;
identifying a particular back-end server storing the requested content based on the mappings in the global catalog, wherein the same particular back-end server is identified for a given request over time, as long as the same particular back-end server is available and stores the content being requested; and
directing the request to the particular back-end server. - View Dependent Claims (15, 16, 17, 18, 19)
requesting authentication credentials from the client system; and
receiving proper authentication credentials from the client system.
-
-
16. A method as recited in claim 15 wherein the one or more back-end servers require user authentication, the method further comprising the act of including the user authentication credentials with the request for content directed to the particular back-end server.
-
17. A method as recited in claim 15 further comprising the acts of:
-
receiving from the global catalog an authentication token associated with the authentication credentials; and
using the authentication token as a key for a hash operation to identify the particular back-end server.
-
-
18. A method as recited in claim 14 wherein the content is Web content.
-
19. A method as recited in claim 18 further comprising the acts of:
-
receiving a subsequent request for the content from the client system, the request including the same resource identifier as the prior request;
examining the global catalog; and
identifying the same particular back-end server that was identified for the prior request.
-
-
20. In a computerized system that includes a client system, a front-end server, and one or more back-end servers, all interconnected with a communication link, a method of accessing content stored at a particular back-end server such that the client system does not know which of the one or more back-end servers store the content, the method comprising the front-end server performing:
-
an act of receiving a request for the content from the client system, the request including a resource identifier that references the front-end server and the content being requested by the client system;
a step for mapping a request received from the client system to a particular one of a plurality of back-end servers that store the requested content, wherein a given request maps to the same particular back-end server over time, as long as the same particular back-end server is available and stores the content being requested;
a step for retrieving the requested content from the particular back-end server; and
an act of sending the requested content to the client system. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27)
-
-
28. For a computerized system that includes a client system, a front-end server, and one or more back-end servers, all interconnected with a communication link, a computer program product for implementing a method of accessing content stored at a particular back-end server such that the client system does not know which of the one or more back-end servers store the content, comprising:
-
a computer readable medium for carrying machine-executable instructions for implementing the method; and
wherein said method is comprised of machine-executable instructions for performing the acts of;
receiving a request for the content from the client system, the request including a resource identifier that references the front-end server and the content being requested by the client system;
examining a global catalog that dynamically maps the resource identifier to a plurality of back-end servers storing the content;
identifying a particular back-end server storing the requested content, from the plurality of back-end servers mapped to the resource identifier in the global catalog, wherein the same particular back-end server is identified for a given request over time, as long as the same particular back-end server is available and stores the content being requested; and
directing the request to the particular back-end server. - View Dependent Claims (29, 30, 31, 32, 33, 34, 35)
receiving the requested content from the particular back-end server; and
sending the requested content to the client system.
-
-
30. A computer program product as recited in claim 28 wherein the method is comprised further of machine-executable instructions for performing the act of rejecting the request if the request is invalid.
-
31. A computer program product as recited in claim 28 wherein the method is comprised further of machine-executable instructions for performing the acts of:
-
requesting authentication credentials from the client system; and
receiving proper authentication credentials from the client system.
-
-
32. A computer program product as recited in claim 31 wherein the method is comprised further of machine-executable instructions for performing the act of adding at least a portion of the authentication credentials to the resource identifier so that the resource identifier is limited to a user associated with the authentication credentials.
-
33. A computer program product as recited in claim 31 wherein the one or more back-end servers require client system authentication, and wherein the method is comprised further of machine-executable instructions for performing the act of including the client authentication credentials with the request for content directed to the particular back-end server.
-
34. A computer program product as recited in claim 31 wherein the method is comprised further of machine-executable instructions for performing the acts of:
-
receiving from the global catalog, an authentication token associated with the authentication credentials; and
using the authentication token as a key for a hash operation to identify the particular back-end server.
-
-
35. A computer program product as recited in claim 28 wherein the front-end server is part of a hosting system and is identified by a plurality of server names, and wherein the global catalog dynamically maps resource identifiers referencing the front-end server based at least in part on a server name portion of the resource identifier.
-
36. For a computerized system that includes a client system, a front-end server, and one or more back-end servers, all interconnected with a communication link, a computer program product comprising one or more computer readable media carrying computer executable instructions that implement a method of accessing content stored at a particular back-end server such that the client system does not know which of the one or more servers store the content, the method comprising the front-end server performing the acts of:
-
receiving a request for the content from the client system, the request including a resource identifier that references the front-end server and the content being requested by the client system;
checking the request to insure that the request is a valid request;
examining a global catalog that dynamically maps resource identifiers to the one or more back-end servers storing the content;
identifying a particular back-end server storing the requested content based on the mappings in the global catalog, wherein the same particular back-end server is identified for a given request over time, as long as the same particular back-end server is available and stores the content being requested; and
directing the request to the particular back-end server. - View Dependent Claims (37, 38, 39, 40)
requesting authentication credentials from the client system; and
receiving proper authentication credentials from the client system.
-
-
38. A computer program product as recited in claim 37 wherein the one or more back-end servers require user authentication, the method further comprising the act of including the user authentication credentials with the request for content directed to the particular back-end server.
-
39. A computer program product as recited in claim 37, the method further comprising the acts of:
-
receiving from the global catalog an authentication token associated with the authentication credentials; and
using the authentication token as a key for a hash operation to identify the particular back-end server.
-
-
40. A computer program product as recited in claim 36 further comprising the acts of:
-
receiving a subsequent request for the content from the client system, the request including the same resource identifier as the prior request;
examining the global catalog; and
identifying the same particular back-end server that was identified for the prior request.
-
Specification