System and method for patching an installed application program

Data processing: software development – installation – and managem – Software upgrading or updating

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C717S170000, C717S174000

Reexamination Certificate

active

06434744

ABSTRACT:

FIELD OF THE INVENTION
The present invention relates generally to the installation of software applications on a computer system, and more particularly to patching a software application on a computer system.
BACKGROUND OF THE INVENTION
Software application installation is an area of increasing importance. Unfortunately, existing installation technologies fail to address all of a computer user's needs. Most installation technologies are simply brute-force mechanisms for copying program files from one location to another. Only one known installer program even comes close.
The one installer program that comes close to addressing all of a computer user's needs manages the installation of an application so that information related to of each of the application's resources is stored in a “configuration database.” The configuration database may be registry keys within the system registry, or it may be a stand-alone database. The stored information includes, but is not limited to, the installed state of the application (i.e., what features of the application are or are not installed, whether the application should be run locally or run from a source, paths to the program files of the application, whether features are “advertised” but not installed, etc.). That information is stored at install time and is used by the installer program to ensure that an application always has available the resources that it expects or that the user requests. For instance, one function of the installer program is to verify the existence of a resource needed by the application. When the application requests a path to a program file, the installer program verifies the existence of that program file at the expected location stored in the configuration database. If, for some unexpected reason, the program file does not exist at the expected location, the installer program installs the program file prior to returning its path to the application. The installer program continually updates the configuration database if any changes are made to the installed state of the application.
Generally speaking, “patching” refers to the art of modifying or updating an application from one state to another state. Often, patching is performed if an application is in need of a service release or update to remedy a programming bug or other infirmity. Patching is traditionally performed by executing a patching application which makes slight modifications to the installed application's files or resources. Patching is traditionally a brute-force mechanism to revise an application from one version to another version without completely reinstalling the application. Unfortunately, there are several problems with traditional patching.
First, the traditional patch modifies the resources of the application, but does not modify the configuration database maintained by the installer program to reflect those modifications. For example, a patch will often add a new program file to the application. However, the patch does not modify the configuration database to make the installer program aware of the existence of the new program file. In addition, the installer program is unable to update its configuration database to reflect the existence of the new file because the patch and new file were not installed by the installer program. The result is that the installer program is unaware that the new program file was added, so any additional functionality provided by the installer program is unavailable for that new program file. For example, the installer program is unable to verify the existence of the new program file if requested by the application.
Another problem with traditional patches is that they may not be able to properly patch an uninstalled or partially-installed application. At installation, the user may choose not to install all of the features of an application, but rather delay the installation of certain features until they are actually used. The installer program may provide an application with the ability to offer the feature as available although the feature is uninstalled (“advertising” the feature). When the user or application attempts to access that feature for the first time, the installer program then automatically installs the advertised feature. This reduces the amount of storage space consumed by features of an application which are not initially used.
Unfortunately, although the installer program maintains information concerning any advertised features, the traditional patch does not make use of that information. Consequently, when the traditional patch attempts to update an application, any files or resources that are advertised but not installed are not updated. Compounding the problem is the situation where the user selects an advertised feature for the first time after the patch has been applied. The user will likely be unaware that the patch did not update resources related to the advertised feature and therefore will not execute the patch a second time to update the newly-installed resources. Indeed, the user may even be unaware that the advertised feature was just installed. The unhappy result is that the user believes the application to have been fully updated by the patch when that is not the case. Even worse, the application may be left in a mixed state having some resources of one version and other resources of another version. Such a mixed state can be prone to unexpected application errors during use.
Accordingly, there exists a need in the art for an improved method of patching a software application. In addition, a need exists for a method of patching a software application that modifies stored information to properly reflect the installed state of a patched application.
SUMMARY OF THE INVENTION
The present invention is directed to a system, method, and computer-readable medium for patching a software application and providing an installer program with notice of the patch's existence so that the installer program can modify a configuration database to reflect the patch. Simply stated, the present invention makes the installer program patch-aware so that should the user or application make or require any changes to the installed state of the application, the installer program will be able to operate on the system resources with knowledge that the application has either been patched, or that a patch is present for the application (in the case where the application is not yet fully installed). In that manner, all of the additional functionality provided by the installer program to an application is equally applicable to the application in its patched state.
In one embodiment, the installer program is provided with the capability to recognize the launch of a patch file. The patch file may include multiple streams of information, including summary information regarding which application is affected by the patch, transform information regarding changes to an installation file associated with the application, and update information to effect the necessary bit-level changes to existing program files of the application. When the patch file is launched, the installer program uses the summary information to verify that the affected application is installed. Once verified, the installer program initiates an install procedure for the application by reading an installation file associated with the original (unpatched) version, i.e., the installed version of the application. The installation file typically contains information, such as a series of instructions for installing the application, used by the installer program to install the application. For instance, the installation file may define a source for the installation files, registry key values applicable to the application, directory paths for certain files, particular groupings of files to be installed together depending on the user's installation selections, and the like.
The transform information from the patch file provides the installer program with changes (deletions, additions, or modifications) to be applied to the ins

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

System and method for patching an installed application program does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with System and method for patching an installed application program, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and System and method for patching an installed application program will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2946305

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.