Use of relational databases for software installation

Data processing: software development – installation – and managem – Software program development tool – Translation of code

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C709S221000, C707S793000, C707S793000, C707S793000

Reexamination Certificate

active

06237144

ABSTRACT:

TECHNICAL FIELD
This invention relates to computer program installation and more particularly relates to installation of computer programs using a data-driven model where installation is accomplished based on an “as complete” description of the installed features, components and resources of the computer program.
BACKGROUND OF THE INVENTION
In recent years, use of computers has increased dramatically worldwide. Users of computers utilize computer programs for a variety of purposes including word processing, database management, desktop publishing, and the like. In order to utilize a growing number of available computer programs, users must install the programs onto their individual computers or computer networks.
Applications today use a variety of installation technologies. For example, InstallShield, Seagate's WinInstall, or Great Lakes Software's Wise Installation System are commonly used tools for program installation. ActiveX® controls and other Web-page components often use IExpress packages, which are basically self-extracting executables with simple file copy and registry capabilities. Some functionality of computer programs like software drivers are able to use INF files, which are similar in capability of IExpress packages.
It is known in the art to install computer programs onto individual computers and computer networks using a procedural model for installation. According to a procedural model for installation of computer programs, installation is accomplished by following a regimented set of steps which describe how to get to an installed state. For example, a word processing program may be installed by following certain steps such as: (1) Launch word installation object; (2) Copy word primary executable file; (3) Copy dictionary; (4) Copy speller; and etc. Each such step may in turn require additional steps which creates a tree-based installation logic where an installation step leads to a branch of steps and then returns to follow other branches of steps. In the case of such procedural installation models, it often is quite difficult to turn on or turn off specific functions of a given computer program. That is, if the program developer desires to add or remove a desired function of a given computer program, the program developer or user often must enter a procedural installation sequence, such as described above, and add or remove a procedural step. Thus, making minor changes, for example installing a dictionary function to a word processing program, is a relatively cumbersome task.
Additionally, many of the desired functions of an application program to be installed may already be resident from a previously installed version or installation attempt. Some procedural installation models may be capable of recognizing the presence of previously installed functions of a computer program, but their tree-based logic often has trouble reacting once such a resource is found. If, for example, a newer version of a file is found on a computer, it might make sense for the current installation model not to copy an older file to the computer. But, if there are other functions, such as files or registry keys, associated with that file, the tree-based logic of a procedural installer model may have already written those associated files or registry keys to the computer's memory thereby creating a situation where older functions are coexisting with new functions. Even if no other functions have been copied to the computer at the moment, the decision not to copy related functions must be passed down the tree to other operations.
There is a need in the art for a method and system for installing computer programs and features, components and resources of computer programs where installation is accomplished based on an “as complete” description of the installed features, components and resources of the computer program. That is, there is a need for a method and system for installing a given computer software program or feature or component or resource of that program which describes how the desired installed program should look on the user's computer once the installation is complete. A “feature” is a granular piece of the product that a user may choose to install or execute. Features typically correspond roughly to the functional features of the program itself, such as a proofing tools feature or a word processing feature. A “component” is a collection of resources, such as files, shortcuts, or registry keys, that are all installed or un-installed as a unit. Components are the building blocks of the program that are not exposed to the user.
There is also a need in the art for a method and system for installing computer programs which allow for quick and efficient installation and un-installation of individual components of computer programs. There is further a need for a method and system for installing computer programs which track and utilize previously installed components of a computer program. There is also a need in the art for a method and system for temporarily and dynamically adding columns and rows to a data file for marking the installation status of the components and features of a computer program.
SUMMARY OF THE INVENTION
The present invention satisfies the above-described needs by providing a method and system for installing computer programs where installation is accomplished based on an “as complete” description of the installed features, components and resources of the computer program. Rather than installing a given feature or component of a computer program via a regimented set of procedural steps, the system and method of the present invention allow for installation by determining the necessary files and components required for installation of a given feature, marking for installation any components which are not presently installed, preparing a script of required installation executions, and then executing the instructions to install the necessary files or components.
Components are marked for installation or un-installation in temporary columns and rows which are dynamically added to data tables which identify components and features that are available for installation. The advantage over the procedural model is that individual components of a feature may be added or removed by simply marking that component for installation or removal. Then, when the instructions in the installation script are executed, that particular component will be installed or removed according to the instructions. Installation of a given software application is streamlined because any component of a program application to be installed which is already installed on the user's computer need not be reinstalled upon the installation of the desired feature. Rather, only components or files thereof which must be installed in addition to previously installed components or files need be installed for the installation of the software application program.
One aspect of the present invention provides a method of installing a computer program. Features of the computer program for installation are selected and components required for installation of the features are determined. Resources required for installation of the components are also determined. A script of instructions is generated for installation of the resources and the script of instructions is executed. Preferably, the determination of components required for installation of the features includes mapping each of the features of the computer program for installation to one or more components comprising each of the features. The installation status of each of the components is determined. In response to determining the installation status of each of the components, the components are marked with a desired installation status. The desired installation status may be installed or not installed.
Generating the script of instructions for installation of the resources can include creating a data file having a plurality of records. Each of the records is populated with an instruction for installation of a one of the res

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

Use of relational databases for software installation does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Use of relational databases for software installation, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Use of relational databases for software installation will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2444471

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