Patent ID: 8347297

Claim:
A method of optimizing the distribution of a plurality of source servers amongst a plurality of target servers each having a resource, wherein each of the source servers has a functional characteristic and two or more of the source servers belong to a cluster; the method comprising the steps of: determining the available resources of one of the plurality of target servers; determining a set of allocation rules for allocating the plurality of source servers to the plurality of target servers based upon the functional characteristics of the source servers; and allocating the plurality of source servers to the plurality of target servers so that for each allocation of a given source server to a given target server: (i) the given target server will have sufficient computing resources to accommodate the given source server, and (ii) the set of allocation rules is met for the allocation of source servers to target servers; wherein the set of allocation rules includes at least one of the following allocation rules which are each respectively based upon the functional characteristics of the source servers: a network zone rule specifying that no target server shall have allocated to it both a source server that serves a DMZ network zone and a source server that serves a back-end network zone; a temporal availability requirements rule specifying that source servers having different temporal availability requirements are respectively allocated to different target servers, with the temporal availability of a given source server being the times of the day, week or month that the given source server must be available to users; a clustering rule specifying that source servers in a high availability cluster are respectively allocated to different target servers, with a cluster being a group of linked server computers, working together closely and thus in many respects forming a single server; and a location rule specifying that source servers serving users in different geographic locations are not respectively allocated to target servers located at the same geographic location.