A method and mechanism for a distributed on-demand computing system. The
system automatically provisions distributed computing servers with
customer application programs. The parameters of each customer
application program are taken into account when a server is selected for
hosting the program. The system monitors the status and performance of
each distributed computing server. The system provisions additional
servers when traffic levels exceed a predetermined level for a customer's
application program and, as traffic demand decreases to a predetermined
level, servers can be un-provisioned and returned back to a server pool
for later provisioning. The system tries to fill up one server at a time
with customer application programs before dispatching new requests to
another server. The customer is charged a fee based on the usage of the
distributed computing servers.