1. A method of managing software patches, comprising; aggregating patch history information from a set of clients associated with a set of software products installed on the set of clients; receiving a patch download request from a requesting client; generating patch selection information based on the aggregate patch history information and the patch download request; and transmitting the patch selection information to the requesting client.