Patent ID: 7526765

Claim:
A method for optimizing an allocation of system resources, comprising: determining, for each source from which a system receives job requests, a minimum percentage of job requests to be processed by the system, where the system receives job requests from at least two separate sources; allocating system resources among the at least two separate sources to meet at least one job processing obligation and to maximize a total profit of the system; and scheduling a processing order of new job requests on-line, wherein said scheduling is accomplished by: determining a completion deadline for a new job request; determining an estimated process time for the new job request as a length of time needed to process the new job request by the completion deadline; and scheduling processing for the new job request based on the completion deadline and the estimated process time as compared to completion deadlines and estimated process times for existing jobs in the system; routing the new job request to a server in the system that can complete processing for the new job request soonest; assigning the new job request to an end of a job queue of the server; determining whether a cumulative length of time necessary to process all jobs in the job queue, including the new job request, exceeds a latest completion deadline among all jobs in the job queue; and temporarily stopping work on a job in the job queue having a longest estimated processing time, if the cumulative length of time necessary to process all jobs in the job queue, including the new job request, exceeds the latest completion deadline among all jobs in the job queue.