Scalable java servers for network server applications
First Claim
1. A system for providing Java-implemented Application Servers to a plurality of clients, the system comprising:
- a computing system having a plurality of processing elements, each element configured such that, despite a failure of one processing element, the remaining processing elements continue to function;
a plurality of Java-implemented Application Servers, at least one Server assigned to execute on one or more processing elements; and
a distributor module that is configured to capture connection requests from a client on a port, to select one of the plurality of Application Servers to communicate with the requesting client during the connection and to assign the connection request to the selected one of the plurality of Application Servers, such that, after the assignment, the selected Application Server communicates directly with the client,wherein the distributor module is configured to capture client connection requests only for one of a plurality of Application server classes,a monitoring module that is configured to restart the distributor and any Application server that fails.
2 Assignments
0 Petitions
Accused Products
Abstract
A system for providing Java-implemented Application Servers to a plurality of clients. Each of the Java-implemented Application Servers is configured to execute on a processing element of a server which has multiple independent processing elements arranged such that a failure of one processing element does not affect the operability of the other processing elements. A Distributor is provided to enable making connections with the clients and then determine which of the Application Servers actually services the clients requests. The Distributor attempts to choose the Application Server that has the fewest number of clients as the server for a new client request. A monitoring program restarts the Distributor if it fails. The system thus provides a scalable and available set of Java-implemented Application Servers without requiring any change to the Java-implemented application itself.
-
Citations
16 Claims
-
1. A system for providing Java-implemented Application Servers to a plurality of clients, the system comprising:
-
a computing system having a plurality of processing elements, each element configured such that, despite a failure of one processing element, the remaining processing elements continue to function; a plurality of Java-implemented Application Servers, at least one Server assigned to execute on one or more processing elements; and a distributor module that is configured to capture connection requests from a client on a port, to select one of the plurality of Application Servers to communicate with the requesting client during the connection and to assign the connection request to the selected one of the plurality of Application Servers, such that, after the assignment, the selected Application Server communicates directly with the client, wherein the distributor module is configured to capture client connection requests only for one of a plurality of Application server classes, a monitoring module that is configured to restart the distributor and any Application server that fails. - View Dependent Claims (2, 3, 4)
-
-
5. A method for providing Java-implemented Application Servers to a plurality of clients, the method comprising:
-
providing a plurality of processing elements, each element configured such that, despite a failure of one processing element, the remaining processing elements continue to function; causing a plurality of Java-implemented Application Servers to execute on the processing elements, at least one Server assigned to execute on one or more of the processing elements; receiving incoming client connection requests at at least one port managed by a distributor module, the distributor module being configured to receive client connection requests only for one of a plurality of Application server classes; selecting one of the Application Servers to communicate with the client during the connection; and assigning, by the distributor module, the connection request to the selected Application Server such that, after the assignment, the selected Application Server communicates with the client directly, wherein the distributor module maintains an information structure that includes a number indicating how many clients have a connection with each Application Server; and further comprising the steps of; receiving a message from an Application Server that a connection between the Application Server and a client is closed; and updating the number of clients with a connection to the Application Server that sent the message. - View Dependent Claims (6, 7, 9)
-
-
8. A system, comprising:
-
a plurality of processing elements, each processing element configured such that, despite a failure of one processing element, the remaining processing elements continue to function; a plurality of application servers assigned to execute on the processing elements, wherein the plurality of application servers comprise distinct classes of application servers; and a plurality of distributor modules coupled between the application servers and a plurality of clients, wherein each distributor module is configured to handle client connection requests to only a distinct class of application servers, wherein each distributor module has an initialization phase, a main operating phase and a restart phase. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A method, comprising:
-
initializing a distributor module, the distributor module being assigned to distribute client connection requests to only one of a plurality of application server types; receiving incoming client connection requests by the distributor module; and distributing each client connection request by the distributor module to one of the assigned type of application servers based on a determination of which application server is currently handling the fewest number of clients, wherein the distributor module is configured to maintain an information structure that includes a number indicating how many clients have a connection with each application server, receive a message from an application server that a connection between the application server and a client is closed, and update the number of clients with a connection to the Application Server that sent the message. - View Dependent Claims (15, 16)
-
Specification