1. A system for allocating available resources in an on-demand computing environment comprising: a first computer system having a processor to predict on-demand computing resource supply from at least one resource producer according to historical supply trend data to predict future available on-demand computing resources; a second computer system having a processor to place one or more usage bids for on-demand computing resources on behalf of at least one consumer device; a third computer having a processor to receive the usage bids, to determine if conditions specified by any usage bids match any of the predicted available on-demand computer resource supply, and to notify the first computer system and the second computer system of the match; and a fourth computer system having a processor to establish a contract for future consumption of the matched on-demand computing resource supply.