1. A system for provisioning a shared computing infrastructure that supports a plurality of software applications and a plurality of types of applications servers, each type of applications server providing a run-time environment for executing at least one of the plurality of software applications, the system comprising: two or more computing engines each assigned to execute an instance of one of the plurality of software applications in a run-time environment provided by one of the plurality of types of application servers; two or more clients each accessing one of the two or more computing engines to execute the software application assigned to the one computing engine; and a broker including: an optimization module for periodically determining an optimal allocation of the plurality of software applications and applications servers among the two or more computing engines; and a configuration manager for instructing one of the two or more computing engines to reconfigure by halting a current instance of a software application of a first type, and by loading and starting an instance of a software application of a second type, wherein the software application of the first type operates in a run-time environment created by a first type of software application server and the software application of the second type operates in a run-time environment created by a second type of software application server.