1. In a system for provisioning a shared computing infrastructure including a plurality of computing engines, a plurality of applications servers, a plurality of computing domains and a broker, the shared computing infrastructure supporting a plurality of software applications and the plurality of applications servers including a plurality of applications server types, each application server type capable of providing a run-time environment for executing at least one of the plurality of software applications; each computing domain being hosted by an application server of a given type, a method performed by the broker for allocating the plurality of computing engines among the plurality of computing domains based on an allocation policy, the method comprising the steps of: determining an expected number of computing engines to be allocated to each of the plurality of computing domains, wherein the expected number for each computing domain is determined as a function of a predetermined service policy of the computing domain and a predicted demand for the computing domain; and while one or more of the computing engines is unallocated and one or more of the plurality of computing domains has been allocated fewer than its expected number of computing resources, sequentially selecting a next computing domain as a function of predetermined priorities for the computing domains, selecting an unallocated computing engine, and allocating the selected computing engine to the selected computing domain, wherein the predetermined service policy for each computing domain specifies a minimum number of computing engines to be allocated to the computing domain, a maximum number of computing engines to be allocated to the computing domain, and an allocation priority for allocating computing engines to the computing domain; wherein the predetermined service policy further specifies a service level agreement (SLA) target for judging the performance of the computing domain; wherein the step of determining an expected number of computing engines for each domain further includes the steps of: setting the expected number of computing engines equal to the minimum number of computing engines for the computing domain; initially adjusting the expected number of computing engines to equal to a current number of computing engines allocated to the computing domain when the current number of allocated computing engines exceeds the minimum number of computing engines; determining whether the computing domain has a current unmet demand; Further adjusting the expected number of computing engines when there is a current unmet demand; and finally adjusting the expected number of computing engines to equal a lesser of the maximum number of computing engines to be allocated to the computing domain and the further adjusted expected number of computing engines; wherein the current unmet demand is determined as a function of a statistical performance measure for the domain and an associated service level agreement (SLA); wherein the current unmet demand is validated as a function of a variability of the statistical performance measure among computing engines in the domain, and wherein the variability is determined as a normalized geometric variance computed as a geometric mean value of the statistical performance measure among computing engines in the domain divided by an arithmetic mean of the statistical performance measure among computing engines in the domain.