`Nabahi
`
`USOO6266811B1
`(10) Patent No.:
`US 6,266,811 B1
`(45) Date of Patent:
`Jul. 24, 2001
`
`(54) METHOD AND SYSTEM FOR CUSTOM
`COMPUTER SOFTWARE INSTALLATION
`USING RULE-BASED INSTALLATION
`ENGINE AND SIMPLIFIED SCRIPT
`COMPUTER PROGRAM
`
`(75)
`
`(73)
`
`(21)
`(22)
`
`(63)
`
`(51)
`(52)
`(58)
`
`(56)
`
`Inventor: Narimane Nabahi, Santa Clara, CA
`(US)
`Assignee: Network Associates, Santa Clara, CA
`(US)
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`This patent is Subject to a terminal dis
`claimer.
`
`Notice:
`
`Appl. No.: 09/418,426
`Filed:
`Oct. 14, 1999
`Related U.S. Application Data
`
`Continuation of application No. 09/001,612, filed on Dec.
`31, 1997, now Pat. No. 6,006,035.
`Int. Cl. ................................................. G06F 9/45
`U.S. Cl. ................................................................. 717/11
`Field of Search .......................... 717/11, 2; 709/203;
`714/25; 345/348; 700/49
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`5,159,587 * 10/1992 Richburg .................................. 717/2
`
`5,367,698 * 11/1994 Webber et al. ...................... 709/203
`5,428,525 * 6/1995 Cappelaere et al. ................... 700/49
`5,596,695 * 1/1997 Hamada et al. .....
`345/333
`5,727,174 * 3/1998 Apaicio, IV et al. ............... 345/348
`5,983,364 * 11/1999 Bortcosh et al. ...................... 71.4/25
`6,006,035
`12/1999 Nabahi ................................... 717/11
`
`* cited by examiner
`
`Primary Examiner Kakali Chaki
`Assistant Examiner Hoang-Vu Antony Nguyen-Ba
`(74) Attorney, Agent, or Firm-Pennie & Edmonds LLP
`(57)
`ABSTRACT
`
`A method and System for custom computer Software instal
`lation using a Standard rule-based installation engine is
`disclosed. Custom installation parameters are translated into
`a simplified Script language file by a System administrator.
`An application Software package is installed onto a com
`puter using the Standard rule-based installation engine,
`which is executed normally according to commands Stored
`in a rule-based instruction file. The rule-based instruction
`file has been configured by the provider of the application
`Software package to cause the rule-based installation engine
`to execute commands according to the Simplified Script
`language file. In this manner, the System administrator may
`achieve flexibility and control over each phase of the soft
`ware installation process without being required to have a
`knowledge of the Specific language of the rule-based instruc
`tion file.
`
`14 Claims, 4 Drawing Sheets
`
`
`
`Applicationsoftwarepackage
`developed by application
`softwaremfg.
`NEWAPPEXE
`NEWOATADAT
`
`Application software manufacturer
`Writes rule-based instruction file
`SERPINSdesigned to cause
`SETUPEXEtoinvoke READSCRIPTDLi
`at eachphaseofthe installation;
`and software manufacturer generates
`READSCRIPTDLLdesigned to access any
`compiledscriptianguagefile SS
`-
`404
`
`Applicationsoftwaremfg.
`releases disk with application
`softwarepackage+rule-based
`installation engine simplified
`Scripticompilerprogram
`SEUPEXE
`NEWAPPEXE
`NEW DATADAT
`SETUPNS
`SCRIPTCOMPEREXE
`READSCRIPTDLL
`
`-...--
`System administratof
`acquires disk
`
`System administrator determines
`customorsilentinstallationparameters
`
`
`
`System administrator translates custominstallationparameters into
`simplified script language filed STOMSCRIPTISC
`
`System administrator uses SCRIP COMPLER.EXE to compleCUSIOMSCRIPTISC
`into rule-based installation language file ADMINSIS
`
`
`
`At each compute, rule-based installation
`engine SETUPEXE is executed
`
`414
`- 416
`
`ironSource Exhibit 1015
`
`
`
`U.S. Patent
`
`Jul. 24, 2001
`
`Sheet 1 of 4
`
`US 6,266,811 B1
`
`(Tointernet
`
`
`
`102
`
`l
`104C
`
`|
`
`1046
`
`-10
`-106
`-106k
`-10
`
`106e
`
`of
`-10g
`106h
`
`
`
`U.S. Patent
`
`Jul. 24, 2001
`
`Sheet 2 of 4
`
`US 6,266,811 B1
`
`
`
`
`
`
`
`
`
`Application Software package
`developed by application Software m?g.
`NEW APPEXE
`NEW DATADAT
`
`
`
`
`
`Application Software manufacturer
`Writes rule-based instruction file
`SETUPNS
`
`204
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`206
`
`208
`
`210
`
`212
`
`214
`
`
`
`Application Software m?g.
`releases disk with application
`Softwarepackage+rule-based
`installation engine
`SETUPEXE
`NEW APPEXE
`NEW DATADAT
`SETUPNS
`
`System administrator
`acquires disk
`
`
`
`
`
`Launch rule-based installation
`engine at COMPUTER ()
`
`Respond to serial parameter
`request from rule-based
`installation engine at COMPUTER ()
`
`installation complete
`at COMPUTER ()
`
`218
`
`ignumber of computers
`
`Fig. 2
`Arior Art
`
`
`
`U.S. Patent
`
`Jul. 24, 2001
`
`Sheet 3 of 4
`
`US 6,266,811 B1
`
`Initialize internal settings of
`rule-based installation engine
`
`Display license agreement and obtain
`user consent to licensing terms
`
`Request destination directory
`for application Softwarepackage files
`
`Copy application Software files
`to computer
`
`Configure Operating system parameters to allow
`execution of application Software package
`(e.g. configure N and registryfiles
`in Windows 95M system)
`
`Create application Software
`programicons
`
`Display README file
`
`Delete temporary installation files and
`exit rule-based installation encine
`
`
`
`
`
`
`
`302
`
`304
`
`306
`
`308
`
`310
`
`312
`
`314
`
`316
`
`
`
`U.S. Patent
`
`Jul. 24, 2001
`
`Sheet 4 of 4
`
`US 6,266,811 B1
`
`CBEGIND
`Application Software package
`developed by application
`Software mfg.
`NEW APPEXE
`NEW DATADAT
`
`
`
`ApplicationSoftware manufacturer
`Writes rule-based instruction file
`SETUPINS designed to cause
`SETUPEXEtoinvoke READSCRIPTDLL
`at each phase of the installation;
`and software manufacturer generates
`READSCRIPTDLLdesigned to access any
`compiled script language file SIS
`
`40)
`
`406
`
`Application Softwaremfg.
`releases disk with application
`Software package+rule-based
`installation engine + simplified
`Script compiler program
`SETUPEXE
`NEWAPPEXE
`NEW DATADAT
`SETUPNS
`SCRIPT COMPLER.EXE
`READSCRIPTDLL
`
`System administrator
`acquires disk
`
`404
`
`System administrator determines
`Custom Orsilentinstallationparameters
`
`408
`
`410
`
`System administrator translates custom installationparameters into
`simplified script language file CUSTOMSCRIPTISC
`
`412
`
`System administrator uses SCRIPT COMPLER.EXE to compile CUSTOMSCRIPTISC
`into rule-based installation language file ADMINSIS
`
`Ateach computer, rule-based installation
`engine SETUPEXE is executed
`
`414
`416
`
`
`
`US 6,266,811 B1
`
`1
`METHOD AND SYSTEM FOR CUSTOM
`COMPUTER SOFTWARE INSTALLATION
`USING RULE-BASED INSTALLATION
`ENGINE AND SIMPLIFIED SCRIPT
`COMPUTER PROGRAM
`
`15
`
`2
`include InstallShield(R), Wise Installation System, and
`Microsoft Setup Toolkit. A rule-based installation engine is
`characterized in that it provides a Standard installation
`environment, e.g. Standard configuration options, familiar
`look-and-feel, etc., while operating according to a Set of
`rules that are expressed in a rule-based instruction file. AS an
`example, InstallShield(R) is commonly used for installing
`many Windows 95TM-based application software packages.
`Installshield(R) is provided with a variety of Software pack
`ages ranging from antivirus application Software Such as
`McAfee VirusScanTM to natural speech detection programs
`such as Dragon Systems NaturallySpeaking TM. When a user
`invokes Installshield(R) by launching its executable file
`named SETUPEXE, a selection from among a standard set
`of dialog and options boxes appear to the user, according to
`parameters in a rule-based instruction file SETUPINS gen
`erated by the application Software manufacturer. Such famil
`iar dialog and options boxes include, for example, a license
`dialog box for displaying a license agreement to the user,
`and a destination files dialog box for requesting a destination
`directory for installed application Software files.
`A rule-based instruction file is a computer file that is
`readable by a rule-based installation engine and that com
`prises a set of instructions and parameters for use during the
`instruction process. AS an example, the InstallShield(R) pro
`gram operates according to a rule-based installation file
`called SETUPINS and generally according to files having
`an INS extension. When the exemplary InstallShield(R) sys
`tem is used as a delivery vehicle by an application Software
`manufacturer, at Step 204 the application Software manufac
`turer generates a rule-based instruction file named SETU
`P.INS. This file provides a set of detailed instructions from
`the application Software manufacturer including specific
`parameters associated with the application Software package
`and computer operating System. This file also includes
`defaults, including the location of a desired license agree
`ment file, the default destination directory, the identity of the
`application Software files that require duplication onto the
`destination client computer, and default parameters for entry
`into the client computer operating System.
`Importantly, at Step 204 the application Software manu
`facturer generates the rule-based instruction file named
`SETUPINS by first writing a rule-based installation lan
`guage file which may bear, for example, the name SET
`UTIL.RUL. This file is created according to a specific set of
`commands adapted for the Specific rule-based installation
`engine. For the exemplary InstallShield engine, descriptions
`of the Specific language used in the rule-based installation
`language files *.RUL may be found in documents including
`“InstallShield 3 User's Guide,” InstallShield Corporation,
`rev. 4/29/96, which is hereby incorporated by reference into
`the present disclosure. A proprietary compiler ICOMPEXE
`provided to the application Software manufacturer by
`InstallShield is used to compile the rule-based installation
`language files *.RUL into rule-based instruction files *.INS.
`Accordingly, the *.INS files are binary files which cannot be
`read or modified using a standard ASCII editor. The com
`pilation requirement of the rule-based installation engine
`providers helps to ensure that rule-based installation lan
`guage files are accurately written by the application Software
`manufacturer prior to release. This is due to the fact that
`many mistakes in writing the rule-based installation lan
`guage file would be detected by the compiler, thus prevent
`ing the release or erroneous or buggy installation routines.
`Additionally, Speed of execution is increased over a situation
`where an ASCII or non-compiled rule-based installation
`language file is used. Finally, Security of the product is
`
`25
`
`This is a continuation, of application Ser. No. 09/001,
`612, filed Dec. 31, 1997 now U.S. Pat. No. 6,006,035.
`FIELD OF THE INVENTION
`The present invention relates generally to computer SyS
`tems and computer networks. In particular, the present
`invention relates to a method and System for installing
`application Software packages onto one or more computers.
`BACKGROUND OF THE INVENTION
`AS new and useful application Software packages for
`personal computers are developed, the need arises for an
`automated or Semi-automated process for installing a given
`application Software package onto a plurality of computers.
`This need arises, for example, in the context of corporate
`computer networks which may comprise tens, hundreds, or
`even thousands of client computers. For Such corporate
`computer networks, the purchase and installation of even a
`Single new application Software package can become a
`major task, requiring a large amount of time and effort from
`the System administrators whose job it is to Support the many
`client computers coupled to a corporate computer network.
`FIG. 1 shows a typical corporate computer network 100
`comprising a network backbone 102, a plurality of local area
`network Servers 104a-c, and a plurality of client computers
`106a-l. Corporate computer network 100 further comprises
`a gateway computer 108 for coupling the corporate com
`puter network 100 to an external network Such as the
`35
`Internet. Corporate computer network 100 further comprises
`a Service computer 112 which, generally Speaking, is a
`computer dedicated at least in part to assisting in Servicing
`the various hardware and Software applications being used
`by corporate computer network 100. Finally, shown in FIG.
`1 is a System administrator 114. Generally Speaking, the
`System administrator 114 represents the perSon or perSons
`responsible for Supporting the users of the client computers
`106a-land for servicing the various hardware and software
`applications being used by corporate computer network 100.
`FIG.2 shows steps taken in the development, distribution,
`and installation of application Software packages according
`to the prior art. At Step 202, an application Software package
`represented by the files NEW APPEXE and NEW
`DATA.DAT are developed by an application Software manu
`facturer. At Step 204, the application Software manufacturer
`develops a rule-based instruction file SETUPINS. At step
`206, the application Software manufacturer releases the
`application Software package by either a physical data
`delivery mechanism Such as a CD-ROM, a magnetic media
`disk, or a DVD-disk, or alternatively configures the appli
`cation Software package for electronic delivery, e.g., by
`posting the application Software package on an Internet
`World Wide Web Site or bulletin board. Along with the
`application software package files NEW APPEXE and
`60
`NEW DATA.DAT, the rule-based instruction file SETU
`P.INS is included, along with a rule-based installation engine
`denoted by a file SETUPEXE.
`A rule-based installation engine is a Standard computer
`program which is designed to install an application Software
`package from a first medium onto a client computer when
`executed. Examples of rule-based installation engines
`
`40
`
`45
`
`50
`
`55
`
`65
`
`
`
`3
`enhanced with regard to unauthorized access to proprietary
`information contained therein.
`At step 208 of FIG. 2, the system administrator 114
`acquires the magnetic disk or other medium containing the
`application software and installation files. At steps 210-220,
`using distribution methods known in the art, System admin
`istrator 114 distributes the application software and instal
`lation files to each of the computers 106a-106l that require
`the new Software installation. In what is perhaps the oldest
`prior art method, the System administrator physically goes to
`each computer with the CD-ROM or disk, executes the
`rule-based installation engine program, i.e. the
`InstallShield(R) SETUPEXE program, and enters the appro
`priate responses when prompted. In particular, Starting at
`step 210, the system administrator 114 launches the rule
`15
`based installation engine at each client computer COM
`PUTER (i) at step 212. At steps 214 and 216, the system
`administrator 114 enters the appropriate information when
`prompted. At steps 218 and 220, the system administrator
`114 continues on to the next computer COMPUTER (i+1),
`or else the process ends if installation has occurred on all
`required client computers. In another prior art method simi
`lar to that depicted in FIG. 2, the files identified at step 206
`are distributed electronically to the client computers
`106a-10.6l, wherein each user individually runs the rule
`based installation program.
`The above prior art method is disadvantageous in that
`there are no accommodations for custom parameters that
`may be desired by the system administrator 114 during the
`installation process. Rather, the installation will simply
`contain the default instructions and parameters in SETU
`P.INS provided with the application software. It would be
`desirable in many circumstances for custom installation to
`take place. For example, a custom licensing agreement
`display may be desired, custom destination directories may
`be desired, or it may be required that Specialized files
`overwrite the Standard application Software files during the
`installation process.
`The lack of custom installation parameters and commands
`during execution of the rule-based installation engine
`SETUPEXE is not practically resolvable through modifica
`tion of SETUPINS by the system administrator 114. As
`indicated previously, the SETUPINS file is very difficult to
`read or modify in that it is a binary file created by a special
`compiler that is not provided to the System administrator
`with the application Software package. Further, the rule
`based installation language files *.RUL are also generally
`not provided to the System administrator. Most importantly,
`however, even if these elements were provided to the System
`administrator, it would be very difficult for the system
`administrator to modify the rule-based instruction file
`directly, as it is written in a highly detailed and Specific form.
`Generally Speaking, rule-based instruction files contain code
`that is unique to each provider of rule-based installation
`engines, code that is not easily created or even deciphered by
`the System administrator 114. A major portion of the rule
`based instruction file, which may exceed 400 KB for many
`products, is devoted to intricacies of the application Software
`and installation process that-is not of concern to the System
`administrator, and proper entry and exit points would be
`difficult to discern unless the System administrator were to
`take the time to become skilled in that language. See
`generally “InstallShield 3 User's Guide” as referenced
`above.
`While rule-based instruction files are generally very dif
`ficult to create from Scratch, a limited Set of tools are
`Sometimes available to the System administrator to allow
`
`65
`
`45
`
`50
`
`55
`
`60
`
`US 6,266,811 B1
`
`25
`
`35
`
`40
`
`4
`generation of custom rule-based instruction files. AS an
`example, using a feature of the InstallShield(R) program, the
`system administrator can “record' a limited set of default
`installation parameters into a *.SIS file by executing the
`SETUP command line with the command “SETUP-R. The
`recorded *.SIS file can then be invoked on Subsequent
`installations using the command “SETUP-S”. However, this
`prior art method only allows a limited Set of options to be
`adjusted, e.g. the default destination directory, and does not
`allow for custom operating System commands to be
`executed at custom times during the installation process. The
`Installshield(R) recording proceSS is described on a publicly
`available CD-ROM disk entitled VirusScanTM version 3.0.0
`(3000) in the file \Win95\WHATSNEWTXT, which is
`hereby incorporated by reference into the present disclosure.
`Generally Speaking, the prior art as outlined above allows
`only a fixed-format, Serially presented, and limited Set of
`installation parameters to be specified by a System admin
`istrator for execution along with the provided rule-based
`instruction language file commands.
`It has been found that flexible and customizable installa
`tion procedures are especially important when antivirus
`application Software packages are being installed on a
`plurality of client computerS Such as those in the corporate
`computer network 100. Generally, a computer virus is a
`program that is capable of attaching to other programs or
`Sets of computer instructions, replicating itself, and perform
`ing unsolicited or malicious actions on a computer System.
`Generally, computer viruses are designed to spread by
`attaching to floppy disks or data transmissions between
`computer users, and are designed to do damage while
`remaining undetected. The damage done by computer
`Viruses may range from mild interference with a program,
`Such as the display of an unwanted political message in a
`dialog box, to the complete destruction of data on a user's
`hard drive. It is estimated that new viruses are created at a
`rate of over 100 per month. A variety of antivirus programs
`have been developed to detect and destroy computer viruses.
`It is important to ease the installation and distribution of
`antivirus applications Software packages and to provide a
`more flexible and yet simple method for installing them onto
`a plurality of client computers. AS an example, it is impor
`tant in an antivirus installation environment to display
`timely information to the user regarding computer viruses,
`information that often becomes available only after the
`release of the antivirus application Software disk. AS another
`example, updated *.DAT files containing newly unleashed
`Virus Signatures often need to be installed over the existing
`*.DAT files which accompany the antivirus application
`Software disk. Information related to antivirus applications
`is included in a publicly available CD-ROM disk entitled
`VirusScanTM version 3.0.1. All files contained on the
`CD-ROM disk VirusScanTM version 3.0.1 are hereby incor
`porated by reference into the present disclosure.
`Accordingly, it would be desirable to provide a method
`and System for allowing a System administrator to install an
`application Software package onto a plurality of client
`computers using a flexible and customizable installation
`proceSS.
`It would be further desirable to provide a method and
`System for allowing the System administrator to use a
`familiar and Standardized rule-based installation engine to
`install an application Software package onto a plurality of
`client computers.
`It would be even further desirable to allow for customi
`Zation of the rule-based installation process without requir
`
`
`
`US 6,266,811 B1
`
`15
`
`S
`ing the System administrator to have knowledge of the
`rule-based installation language being used.
`SUMMARY OF THE INVENTION
`These and other objects are achieved by a method and
`System for installing an application Software package onto a
`computer using a rule-based installation engine, wherein
`custom installation parameters are translated into a simpli
`fied Script language file by a System administrator. The
`application Software package is installed onto a computer
`using the Standard rule-based installation engine, which is
`executed normally according to commands Stored in a
`rule-based instruction file. The rule-based instruction file is
`modified and configured by the provider of the application
`Software package to cause the rule-based installation engine
`to execute commands according to the Simplified Script
`language file. In this manner, the System administrator may
`achieve flexibility and control over each phase of the soft
`ware installation process without being required to have a
`knowledge of the Specific language of the rule-based instal
`lation engine.
`In a preferred embodiment, the rule-based installation
`engine is capable of operation according to commands
`Stored in rule-based instruction files. The System adminis
`trator acquires the application Software package, and deter
`mines at least one custom installation parameter associated
`with the application Software package. The at least one
`custom installation parameter may comprise, for example,
`an instruction to execute a certain program during a certain
`phase of the installation process, or other commands. The
`custom installation parameter is expressed by the System
`administrator into a simplified and intuitive Script language
`command and recorded in a simplified Script language file.
`After all custom parameters are So translated, the Simplified
`Script language file is compiled into a compiled installation
`Script file using a Script compiler. The rule-based instruction
`file is modified and configured by the provider of the
`application Software package to cause the rule-based instal
`lation engine to execute commands in the complied Script
`language file. The rule-based installation engine is then
`executed according to the rule-based instruction file for
`installing the application Software package.
`In another preferred embodiment, the Simplified Script
`language file comprises a predetermined Sequence of instal
`lation phase portions corresponding to time periods between
`a predetermined Set of installation events. The predeter
`mined set of installation events may include Some or all of
`the following events: an initialization of internal Settings of
`the rule-based installation engine; a display of a license
`agreement; a request for a destination directory; a copying of
`application Software files to the destination computer, a
`configuration of operating System parameters to allow
`execution of the application Software program, e.g. the
`configuration of INI and registry files for Windows 95TM
`computers, creation of application Software program icons,
`display of a README file; and deletion of temporary
`installation files and exiting of the installation procedure.
`In another preferred embodiment, the application Soft
`ware package is an antivirus Software package, and one of
`the custom installation parameters corresponds to a com
`60
`mand for installing a newer Set of virus Signature files over
`preexisting virus Signature files that were provided with the
`antiVirus Software package. In another preferred
`embodiment, a Second custom installation parameter corre
`sponds to a command for displaying virus updates and
`warnings that are newer than virus updates and warnings
`provided with the antivirus Software package.
`
`65
`
`6
`BRIEF DESCRIPTION OF THE DRAWINGS
`FIG. 1 shows a diagram of a computer network compris
`ing a plurality of client computers,
`FIG. 2 shows Steps taken in the development and instal
`lation of an application Software package according to the
`prior art;
`FIG. 3 shows installation events associated with the
`installation of an application Software package onto a client
`computer, and
`FIG. 4 shows steps taken in the development and instal
`lation of an application Software package according to a
`preferred embodiment.
`DETAILED DESCRIPTION OF THE
`INVENTION
`The structure and function of the preferred embodiments
`can be understood by reference to the drawings. The reader
`will note that the same reference designations appear in
`multiple locations. Where this is the case, the numerals refer
`to the same or corresponding structure or Steps in those
`locations.
`FIG. 3 shows a set of installation events associated with
`the installation of an application Software package onto a
`client computer using an exemplary rule-based installation
`engine according to a preferred embodiment. It is to be
`appreciated that while the embodiment shown corresponds
`generally to the InstallShield(R) program, the Scope of the
`preferred embodiments is by no means limited to this
`rule-based installation engine. Rather, the Scope of the
`preferred embodiments applies to any of a variety of rule
`based installation engines including Wise Installation
`System, Microsoft Setup Toolkit or any other standard
`computer program which is designed to install an applica
`tion Software package from a first medium onto a client
`computer when executed and which is capable of operation
`according to rule-based instruction files. It is to be further
`appreciated that while a Windows 95TM operating system is
`used in the examples below, the Scope of the preferred
`embodiments is by no means limited to a Windows 95TM
`environment.
`One publicly available document that discloses an instal
`lation Script language, a rule-based installation engine, and
`a Script compiler for allowing customized installation of
`application Software packages is “Technotes: VirusScan for
`Windows 95 3.0; ISeamless Install Scripting”, a publicly
`available document that is available on request from Net
`work ASSociates, Inc. (formerly McAfee ASSociates) at
`408-988-3832.
`At step 302 of FIG. 3, a first installation event is shown,
`during which internal Settings of the rule-based installation
`engine are initialized. At Step 304, a license agreement is
`displayed and user consent to licensing terms is obtained. At
`Step 306, a request for a destination directory for application
`Software package files is made. At Step 308, application
`Software files are copied to the client computer. At step 310,
`operating System parameters are altered to allow execution
`of the application software package. In a Windows 95
`environment, for example, the Settings in certain INI files
`and in the registry files are altered at step 310.
`At Step 312, application Software program icons are
`created corresponding to the newly installed Software. At
`step 314, a README file is displayed. Finally, at step 316,
`a cleanup operation occurs wherein temporary installation
`files and directories are deleted, and the installation proce
`dure exits.
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`
`
`25
`
`7
`The above steps 302-316 are representative of a prede
`termined set of installation events that take place during
`execution of a rule-based installation engine. Several of the
`steps are often optional, including steps 302-306 and steps
`312-314. It has been found that a predetermined set of
`installation phase portions may be defined according to the
`time intervals lying between the above discrete installation
`events. According to a preferred embodiment, custom instal
`lation instructions expressed as Simplified Script language
`commands may be executed during any of the predeter
`mined set of installation phase portions. These commands
`include, but are not limited to: copying a file from a Source
`directory to a destination directory; deleting a file; launching
`any application program for Serial or parallel execution with
`Subsequent installation Steps, altering operating System
`parameters expressed as registry values, altering operating
`System parameters expressed in INI files, and altering a
`Specific Subset of rule-based installation parameters. Upon
`reading the present disclosure and the documents incorpo
`rated by reference, the implementation of Such Simplified
`Script commands and a compiler for converting these com
`mands into a rule-based instruction file will be readily
`apparent to one skilled in the art.
`FIG. 4 shows steps taken in the development and instal
`lation of an application Software package according to a
`preferred embodiment. The step 402 proceeds in a manner
`similar to the step 202 of FIG. 2. However, at step 404, the
`application Software manufacturer generates an improved
`rule-based instruction file SETUPINS which causes the
`rule-based installation engine SETUP.EXE to reference a
`dynamic link library READ SCRIPTDLL at each of the
`predetermined installation phases of the installation process.
`When routines contained in READ SCRIPTDLL are
`invoked, acceSS is made to any compiled Script language file
`having a designated file extension, for example, *.SIS, and
`35
`it is determined whether that *.SIS file contains any com
`mands associated with that phase of the installation process.
`At Step 406, the application Software manufacturer
`releases the script compiler SCRIPT COMPILER.EXE
`and the dynamic link library file READ SCRIPT.DLL
`along with the application Software files, the rule-based
`installation engine, and the rule-based instruction file.
`According to a preferred embodiment, the Script compiler
`SCRIPT COMPILER.EXE is a program adapted and con
`figured to compile a simplified Script language file into a
`compiled Script language file for use by the dynamic link
`library file and rule-based installation engine as outlined
`above.
`At step 408, the system administrator 114 acquires the
`application Software product containing the above files. At
`Step 410, the System administrator determines custom or
`Silent installation parameters, e.g., the desire to copying
`certain files during a certain predetermined installation
`phases, or the desire to run a certain application program
`during the same or different predetermined installation
`phase. At Step 412, the System administrator writes a file
`CUSTOM SCRIPTISC which contains simplified and
`intuitive Script commands classified according to the prede
`termined installation phase during which they are to be
`executed. An exemplary Set of Such commands and their
`Syntax is described infra.
`At Step 414, System administrator 114 uses the program
`SCRIPT COMPILER.EXE to compile CUSTOM
`SCRIPTISC into a rule-based instruction file ADMIN.SIS
`that is readable by the above referenced dynamic link library
`file during predetermined installation phases of the instal
`lation process. AS an example, the command String
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,266,811 B1
`
`5
`
`15
`
`8
`“SCRIPT COMPILER CUSTOM SCRIPTISC ADMIN
`SIS is launched in a DOS window of Windows 95 or with
`the File/Run command of the