1. A method for maintaining a set of software products installed on a plurality of code execution target entities, the method including the steps of: providing a set of software patches via an automation engine acting as a proxy for a patch provider, each software patch in the set correcting at least one problem by modifying at least one software product; selecting a subset of the patches and at least one target entity for each selected patch according to a vulnerability catalogue using the automation engine, the vulnerability catalog being maintained external to the code execution target entities and providing a listing that a target entity is exposed to a problem corrected by a software patch, the listing indicating a nature of the problem to which the target entity is exposed, the listing identifying that the software patch should be applied to the target entity; building a distribution plan using the automation engine, wherein for each selected patch the distribution plan includes an activity for applying a software package on the corresponding target entities, the software package installing the selected patch when applied, wherein at least one of the selected patches is a serial patch requiring a deferrable rebooting for installation, for such at least one of the selected patches, the step of building the distribution plan further including: for each serial patch, adding an activity for applying a corresponding serial software package without rebooting a corresponding target entity; and adding an activity for rebooting the target entity in response to the application of all the serial software packages; submitting the distribution plan for execution, causing each entity to be scanned for determining whether each entity is exposed to a problem corrected by any of the selected subset of patches; and updating the vulnerability catalogue according to the result of the scanning.