CENTRALIZED, AUTOMATED INSTALLATION OF SOFTWARE PRODUCTS

A preferred embodiment of the present invention provides a software facility for installing software products. The facility first displays a list of available software products that may be installed. The facility then receives user input selecting one of the available software products. After user input is received, the facility executes a script for installing the selected software product. In the preferred embodiment, the script is derived from an installation program provided by the vendor of the software product. The facility thus installs the selected software product without executing the installation program provided by the vendor of the software product. In a further preferred embodiment, the facility produces the executed script by executing the vendor installation program provided by the vendor of the software product, identifying changes made during the execution of the vendor installation program, and generating a script that, when executed, effects the identified changes.

Skip to: Description  ·  Claims  · Patent History  ·  Patent History
Description
TECHNICAL FIELD

[0001] The invention relates generally to the field of software installation and turnkey systems.

BACKGROUND OF THE INVENTION

[0002] A software product is a program or group of programs that perform a related set of useful functions, such as operating systems; spreadsheet, word processing, database, and email applications; and disk compression, error correction, and defragmentation utilities. After purchasing a software product, a user must typically perform a process called “installation” to copy the software product onto his or her computer system and configure the software product for operation.

[0003] Installation processes may be fairly involved. In a typical installation process, the user must obtain and access a CD-ROM containing the software product. The user must then locate an installation program for the software product on the CDROM, and execute the installation program. The location of the installation program on the CD-ROM often varies from product to product, as does the method for executing the installation program once it is located. The installation program copies the software product onto the user's computer system and configures the software product for operation. The installation program generally uses a visual user interface, whose style also varies from product to product, to query the user for information that it uses to determine which portions of the software product to copy to the user's computer system and how to configure the software product for operation. The queried information is often highly technical in nature, and can be beyond the knowledge of a typical user. It is also often difficult for a user to relate questions posed by the installation program to the environment of his or her computer system.

[0004] In view of how difficult conventional software product installations can be to complete, an automated, centralized facility for installing software products would have significant utility.

SUMMARY OF THE INVENTION

[0005] In a preferred embodiment, the present invention provides a software facility for the centralized, automated installation of software products (“the facility”). The facility preferable creates an automated installation script (“script”) for each software product, permit users to select a software product from a single list of software products such as a menu, and installs the selected software product with little or no user intervention using the script for the selected software product.

[0006] The facility preferably creates a script for a new software product by performing a trial installation of the software product using a vendor installation program provided with the software product. The facility monitors the changes made to the computer system during the trial installation process, and generates a script that automatically makes these same changes. After the facility generates a script for a software product, the script may be executed by users to automatically install the software product, and the vendor installation program for the software product is no longer needed.

[0007] Vendor installation programs commonly require a significant amount of user input. For example, various vendor installation programs require the version or portions of the software product to be installed, the location in which the software product is to be installed, the name and location of resources used by the computer system, and information about the purchaser of the software product used for warranty registration. In accordance with the invention, this user input is provided by a system administrator, whose body of knowledge about the information needed by vendor installation programs is more extensive than those of other users. Because the script is based on user input from a system administrator and the facility uses the script to install the software product for less knowledgeable users, each user installation is able to enjoy the benefits of the system administrator's more extensive knowledge.

BRIEF DESCRIPTION OF THE DRAWINGS

[0008] FIG. 1 is a high-level block diagram of the general-purpose computer system upon which the facility preferably executes.

[0009] FIG. 2 is a flow diagram showing the steps preferably performed by the facility in order to enable the installation of a new software product.

[0010] FIG. 3 is a diagram showing a sample script produced by the facility.

[0011] FIG. 4 is a diagram showing sample administrative modifications to a sample script.

[0012] FIG. 5 is a flow diagram showing the steps preferably performed by the facility to install a software product on a user computer system.

[0013] FIG. 6 is a display diagram showing a visual user interface of the facility used by users to install software products.

DETAILED DESCRIPTION OF THE INVENTION

[0014] In a preferred embodiment, the present invention provides a software facility for the centralized, automated installation of software products (“the facility”). The facility preferable creates an automated installation script (“script”) for each software product, permit users to select a software product from a single list of software products such as a menu, and installs the selected software product with little or no user intervention using the script for the selected software product.

[0015] The facility preferably creates a script for a new software product by performing a trial installation of the software product using a vendor installation program provided with the software product. The facility monitors the changes made to the computer system during the trial installation process, and generates a script that automatically makes these same changes. After the facility generates a script for a software product, the script may be executed by users to automatically install the software product, and the vendor installation program for the software product is no longer needed.

[0016] Vendor installation programs commonly require a significant amount of user input. For example, various vendor installation programs require the version or portions of the software product to be installed, the location in which the software product is to be installed, the name and location of resources used by the computer system, and information about the purchaser of the software product used for warranty registration. In accordance with the invention, this user input is provided by a system administrator, whose body of knowledge about the information needed by vendor installation programs is more extensive than those of other users. Because the script is based on user input from a system administrator and the facility uses the script to install the software product for less knowledgeable users, each user installation is able to enjoy the benefits of the system administrator's more extensive knowledge.

[0017] FIG. 1 is a high-level block diagram of the general-purpose computer system upon which the facility preferably executes. The computer system 100 contains a central processing unit (CPU) 110, input/output devices 120, and a computer memory (memory) 130. Among the input/output devices are a storage device 121, such as a hard disk drive; a computer-readable media drive 122, which can be used to install software products, including the facility, which are provided on a computer-readable medium, such as a CD-ROM; a display device 123 for displaying visual information, such as a video monitor; a pointing device 124 that a user may use to select positions within displayed visual information, such as a mouse; a keyboard 125 or other text input device; and a network connection 126, through which the computer system 100 may communicate with other connected computer systems (not shown). The memory 130 preferably contains the installation facility 131 of the present invention. The data maintained by the installation facility 131 includes installation bundles such as installation bundles 132 and 135, each corresponding to a software product that may be installed by the facility. Each installation bundle contains a script for automatically installing this software product (e.g., script 133), and, optionally, one or more files associated with the software product (e.g., files 134) that may be copied to a user computer system in accordance with the script as part of the automated installation specified by the script. While the facility is preferably implemented on a computer system configured as described above, those skilled in the art will recognize that it may also be implemented on computer systems having different configurations.

[0018] FIG. 2 is a flow diagram showing the steps preferably performed by the facility in order to enable the installation of a new software product. The facility preferably performs these steps, for example, when a system administrator decides to make a new software product available for installation by users. At a high level, these steps involve monitoring the changes made by a vendor installation program supplied with the software product by the vendor of the software product, then generating a bundle containing a script and new or changed files that may be used later to automatically perform on a user computer system the same changes made by the vendor installation program. In a preferred embodiment, the facility performs this monitoring using a tool called the Wise Installation System, Enterprise Edition, available from Wise Solutions of Canton, Mich. These steps are performed on a prototypical computer system, on which a minimum of software products have preferably been installed. In particular, the new software product should not have been previously installed on the prototypical computer system.

[0019] In step 201, the facility begins monitoring for changes made by the vendor installation program. In a preferred embodiment, the facility begins monitoring by invoking a Repackage or Setup Capture feature of the Wise Installation System. In step 202, after monitoring has commenced, the facility executes a vendor installation program for the new software product. Executing a typical vendor installation program requires a user to provide user input in order for the vendor installation program to complete successfully. This input is preferably provided by a system administrator having detailed knowledge of the software product and the computer systems upon which the software product will be installed. In step 203, when execution of the vendor installation program completes, the facility ends its monitoring. In step 204, the facility identifies changes made by the vendor installation program to the prototypcial computer system using information collected during the monitoring period. For example, the facility may identify new files copied to a storage device on the prototypical computer system, preexisting files stored on a storage device of the prototypical computer system whose contents have been changed, or changes to computer system configuration data structures, such as changes to BIOS settings or changes to the Registry in prototype computer systems running the Microsoft Windows 95 or Microsoft Windows NT operating system. In step 205, the facility generates a script for making the identified changes. The script generated in step 205 is preferably executable on a user computer system in order to make the same changes identified in step 204, thereby installing the software product on the user computer system without executing the vendor installation program.

[0020] FIG. 3 is a diagram showing a sample script produced by the facility. The script 300 contains lines or “statements” 11-14, 21, and 31-39. Each statement specifies one change to be made to the configuration of the user computer system upon which the software product is installed by the script. Such changes can take many different forms. For example, statements 11-14 specify copying files to the user computer system, in this case files containing dynamic linked libraries to the target computer system. Statement 21 specifies adding a line to an existing file stored on the user computer system. Statements 31-39 specify adding keys to the Registry, a system configuration database of the user computer system. Those skilled in the art will recognize that statements specifying a variety of other types of changes to the user computer system may be included in the script by the facility.

[0021] Returning to FIG. 2, after the facility generates a script in step 205, the facility preferably permits a system administrator to modify the generated script in step 206. A system administrator may wish to modify this generated script for a variety of purposes. For example, the system administrator may wish to delete unnecessary statements, or to add new statements. If new statements are added, they may either be directed to performing additional changes, or to collecting further information upon which the operation of existing statements may be based. For example, a system administrator may add steps that collect information from the registry for use in other statements. Also, the system administrator may add steps that solicit information from the user in a user-friendly manner. This information may be used either to change the effect of executed statements, or to condition the execution of a particular statement.

[0022] FIG. 4 is a diagram showing sample administrative modifications to a sample script. The script 400 corresponds to the script 300 shown in FIG. 3, with the addition of user statements 22 and 23. New statements 22 and 23 have the effect of conditioning the execution of statement 21 on a determination of whether the user computer system is running the Microsoft Windows 95 operating system. If the user system does have Windows 95 running, then step 21 is executed. Otherwise, step 21 is not executed. As discussed above, in accordance with step 206, the system administrator may make a variety of modifications to the script for different reasons. On the other hand, in step 206, the system administrator may completely omit to modify the script.

[0023] In step 207, the facility bundles the script together with any files that were created or changed by the vendor installation program. In terms of the example, the facility preferably bundles with the script 400 the files referenced in statements 11-14. As a result of step 207, the script and the created or changed files together constitute a bundle that may be used to install the new software product on any user system. After step 207, the steps shown in FIG. 2 conclude.

[0024] After the facility has enabled the installation of one or more software products in accordance with the steps shown in FIG. 2, users may use the facility to install any of the software products on a user computer system. FIG. 5 is a flow diagram showing the steps preferably performed by the facility to install a software product on a user computer system. These steps are typically performed in a user computer system onto which the software product is to be installed. Alternatively, these steps may be performed in a first computer system in order to install a software product on a second computer system.

[0025] In step 501, the facility displays a software product performed in a user interface that preferably provides a button for each bundle. In step 502, if the user has selected one of the displayed buttons, then the facility continues in step 503, else the facility continues in step 502. In step 503, the facility executes the script of the bundle whose button was selected, executing its statements and, in the process, copying any created or changed files in the bundle to the user computer system. As a result of the facility's performance of step 503, the software product is installed on the user computer system. After step 503, these steps conclude.

[0026] FIG. 6 is a display diagram showing a visual user interface of the facility used by users to install software products. The user interface window 600 contains a number of buttons 601-625, each corresponding to a software product whose installation by the facility has been enabled in accordance with the steps shown in FIG. 2. In order to install any of these software products in accordance with the steps shown in FIG. 5, the user need only use the pointing device or another input device to select the button corresponding to that software product. The facility, using the script for the selected software products, then installs the software product automatically, requiring little or no user input. Any user input that is required is prompted for in accordance with statements prepared by the system administrator, which prompt the user in a straightforward manner using terms familiar to the user.

[0027] While this invention has been shown and described with reference to preferred embodiments, it will be understood by those skilled in the art that various changes or modifications in form and detail may be made without departing from the scope of the invention.

Claims

1. A method in a computer system for installing software products, the method comprising the steps of:

displaying a list of available software products that may be installed, the list of available software products including software products from at least two vendors;
receiving user input selecting one of the available software products; and
executing a script for installing the selected software product not provided by the vendor of the software product in order to install the selected software product.

2. The method of

claim 1 wherein the executing step copies files associated with the software product to a target computer system.

3. The method of

claim 1 wherein the executing step modifies the contents of a preexisting file stored on a target computer system.

4. The method of

claim 1 wherein the executing step modifies the contents of a system configuration data structure of a target computer system.

5. The method of

claim 1, further comprising the steps of, for each available software product:
executing a vendor installation program provided by the vendor of the software product;
identifying changes made during the execution of the vendor installation program; and
generating a script that, when executed, effects the identified changes.

6. The method of

claim 1 wherein the executing step installs the selected software product without any additional user input.

7. The method of

claim 1 wherein the executing step installs the selected software product using only user input obtained using a visual interface not provided by the vendor of the software product.

8. A computer-readable medium whose contents cause a computer system to install software products provided by vendors by performing the steps of:

displaying a list of available software products that may be installed;
receiving user input selecting one of the available software products; and
executing a script for installing the selected software product derived from an installation program provided by the vendor of the software product in order to install the selected software product without executing the installation program provided by the vendor of the software product.

9. The method of

claim 8 wherein the executing step copies files associated with the software product to a target computer system.

10. The method of

claim 8 wherein the executing step modifies the contents of a preexisting file stored on a target computer system.

11. The method of

claim 8 wherein the executing step modifies the contents of a system configuration data structure of a target computer system.

12. The method of

claim 8, further comprising the steps of, for each available software product:
executing the vendor installation program provided by the vendor of the software product;
monitoring for changes made during the execution of the vendor installation program; and
generating a script that, when executed, effects the monitored changes.

13. The method of

claim 8 wherein the executing step installs the selected software product without any additional user input.

14. The method of

claim 8 wherein the executing step installs the selected software product using only user input obtained using a visual interface not provided by the vendor of the software product.

15. One or more computer memories collectively containing a software product installation data structure for use in installing a software product among a plurality of available software products acquired from one or more vendors, the data structure comprising:

for each available software product, an installation script not provided by the vendor for installing the software product,
such that, when one of the available plurality of software products is selected for installation, an installation script for the selected software product may be retrieved from the data structure and executed in order to install the selected software product.

16. The computer memories of

claim 15 wherein the data structure further comprises:
for each available software product, one or more files relating to the software product, the installation script for the software product specifying the copying of the files,
such that, when an installation script for a selected software product is executed, the files relating to the selected software product may be copied from the data structure to a computer system upon which the selected software product is to be installed.

17. The computer memories of

claim 16 wherein, for each available software product, at least one of the files contained in the data structure relating to the software product was not provided in the same form by a vendor.

18. The computer memories of

claim 15 wherein the scripts contained by the data structure, when executed, each install a software product without any user input.

19. The computer memories of

claim 15 wherein the scripts contained by the data structure, when executed, each install a software product using only user input obtained using a visual user interface not provided by the vendor of the software product.

20. A data processing system for installing software products among a plurality of software products, comprising:

a display device for displaying a menu of the plurality of software products;
an input device for selecting one of the plurality of software products under user control; and
a processor for executing an installation script not provided with the selected software product for installing the selected software product.

21. The computer system of

claim 20, further comprising:
a memory containing installation scripts each for installing one of the plurality of software products, the contained scripts being derived from vendor installation programs provided by vendors of the software products.
Patent History
Publication number: 20010039655
Type: Application
Filed: Mar 31, 1998
Publication Date: Nov 8, 2001
Inventor: DENNIS D. ELLEDGE (NAMPA, ID)
Application Number: 09052808
Classifications
Current U.S. Class: 717/11
International Classification: G06F009/455;