Patent ID: 7606906

Claim:
A method comprising: creating a bundle of a plurality of work units; selecting an active server from among a plurality of servers, wherein the selecting further comprises determining a plurality of relative work unit costs for the plurality of work units, determining a plurality of relative server costs for the plurality of servers, calculating a plurality of total weighted costs for the plurality of servers based on the relative work unit costs and the relative server costs, and selecting the active server with a lowest of the total weighted costs; and sending the bundle from a client to the active server, wherein the active server determines whether each of the work units can be executed at the active server, if the work unit can be executed on the active server, the active server executes the work unit and creates local results, if the work unit cannot be executed on the active server, the active server sends the work unit to a passive server, wherein weighted cost for the passive server is included in the total weighted cost for the active server, and wherein the passive server creates remote results, and wherein the active server receives the remote results from the passive server, combines the local results with the remote results into combined results, and sends the combined results to the client.