Patent ID: 7529822

Claim:
A method comprising: detecting that a first application, among a plurality of applications running on a first system of a plurality of systems, has failed; determining whether the first application can be restarted on a second system of the plurality of systems based on a first prerequisite, wherein the first prerequisite corresponds to resources needed by the first application; and when the first application cannot be restarted on the second system, determining whether a third system of the plurality of systems can be made to satisfy the first prerequisite, wherein the determining whether the third system can be made to satisfy the first prerequisite comprises: determining whether a fourth system of the plurality of systems satisfies a second prerequisite, wherein the second prerequisite corresponds to resources needed by a second application running on the third system, and when the fourth system satisfies the second prerequisite, and the third system can be made to satisfy the first prerequisite, moving the second application to the fourth system, and restarting the first application on the third system.