1. Field of the Invention
The invention relates to removal of computer programs installed within a computer network and, in particular, pertains to a data storage system possessing targeted rollback and un-installation ability.
2. Description of the Related Art
Computer software is often upgraded in response to the needs of users. For example, upgrades may be developed to allow software applications to take advantage of new capabilities provided by new hardware or to provide improved features using existing hardware. Alternatively, software may be developed to remedy problems present in software already installed on computers, such as security vulnerabilities or programming errors (“bugs”).
Software upgrades may be made available in several different forms, such as entirely new software packages, software updates, or patches. New software packages are generally installed from scratch and provide substantially all of the files required for operation of the software application. In contrast, software updates and patches, which generally provide enhanced features and/or fix understood problems in the operation of software applications, typically replace selected files of the existing program while retaining others. Many such updates and patches may be installed over the lifetime of a software application.
When software upgrades are installed, however, the user is exposed to a degree of risk. While software developers perform extensive testing to ensure smooth integration of the upgrade with existing computer systems, unforeseen hardware/software configurations and programming errors may still result in mild to severe errors which affect the operation of the software. In the case of severe errors, the problems caused by a software update may outweigh the potential benefit the update provides.
Presently, however, there are limited options available for administrators of computer systems to manage the removal of upgrades throughout the lifetime of their software. Furthermore, those options which are available are generally limited, time consuming, and disruptive. In one example, un-installation programs provided with software may be utilized to remove installed software. However, these un-install programs are often poorly coded, leaving remnants of the software program behind which create further problems. In another example, administrators may create a complete copy of their computer system, allowing them to perform a full system restoration, if an upgrade performs undesirably. This method is time consuming, though, as all the data within the computer system is restored just to remove the small fraction of data associated with the problematic upgrade. In a further example, a user may manually examine the exact modifications performed by a software upgrade. However, this method is also time consuming to perform and subject to human error. The problems associated with any of these methods are also magnified as the number of computer systems under management increases.
These difficulties in removal of installed software illustrate the need for improved systems and methods of software removal which provide greater control over the un-installation process, as well as enhanced ease of use.