Charles Seagren - Palo Alto CA, US Barbara Chapman - Mountain View CA, US
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.