A software distribution method and system are provided. In a software
distribution application, packages including instructions specifying the
actions to be carried out on each target computer for installing or
removing selected software products are prepared in a central site. Each
package is transmitted to the target computer, and the corresponding
instructions are interpreted so as to enforce the desired software
products meeting the current configuration of the target computer. The
configuration of the target computer is monitored to detect any hardware
upgrade. In response thereto, the target computer generates a list of
actions for removing software products not meeting the new configuration
any longer and a list of action for installing software products now
meeting the new configuration. These lists are transmitted to the central
site, and they trigger the building of a delta package. The delta package
is then distributed to the target computer.