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 .