Patent ID: 7552431

Claim:
A method of applying multiple patches to one or more software products, the method comprising: receiving a plurality of patches from a user, each of the plurality of patches including patch sequencing data associated therewith; determining a software product on a target machine targeted by the received plurality of patches, said determined software product having sequence data regarding patches already installed on the target machine, said determined software product further indicating a current state of the determined software product; for the determined software product, identifying the received plurality of patches that are applicable to the software product based on the included patch sequencing data for each of the plurality of patches and the sequence data regarding the patches already installed on the target machine; determining a logical order of application for the identified plurality of patches that are applicable to the software product, wherein the determining the logical order comprises determining a portion of the software product of which the identified plurality of patches are members, and arranging the identified plurality of patches according to their relative orderings within the determined portion of the software product; specifying a desired state of the software product based on the determined logical order, the patch sequencing data, and the sequence data regarding the patches already installed on the target machine; applying the identified plurality of patches to the software product as a function of the desired state and the current state of the software product in a single installation transaction, wherein the applying comprises modifying the current state of the software product to match the desired state of the software product, and wherein the modifying comprises determining a list of resources of the software product affected by the identified plurality of patches, identifying a desired state for each resource in the list of resources based on those of the identified one or more patches that affect the resources, and modifying each resource in the list of resources to achieve the desired state for each resource in the list of resources; determining another software product on the target machine targeted by the received plurality of patches; and upon failure to apply the identified plurality of patches for the software product, continuing to apply the identified plurality of patches for said another software product in the single installation transaction.