1. A method of assigning a user workload to an application server, comprising: receiving, by a data processing system, a user request to initiate execution of a workload assigned to a user; and selecting, by the data processing system an application server, from among multiple application servers, to execute the workload based on compatibility between respective current states of the application servers and the workload.