`Henry
`
`54). SOFTWARE INSTALLATION
`75 Inventor: Craig James Henry, Woodinville,
`Wash.
`
`73 Assignee: Microsoft Corporation, Redmond,
`Wash.
`
`21 Appl. No.: 09/099,903
`22 Filed:
`Jun. 18, 1998
`(51) Int. Cl." ...................................................... G06F 9/445
`52 U.S. Cl. .............................. 717/11; 707/101; 707/203
`58 Field of Search ................................. 395/712; 713/1,
`713/100, 101; 707/100, 200, 203, 205;
`711/170, 171, 205
`
`56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`5.999,740 12/1999 Rowley ................................... 395/712
`Primary Examiner Tariq R. Hafiz
`ASSistant Examiner Kakali Chaki
`Attorney, Agent, or Firm Jones & Askew LLP
`57
`ABSTRACT
`An executable file contains materials necessary for the
`installation of a Software product, and the executable file is
`executed to provide a compressed file and a shell program
`
`USOO6131192A
`Patent Number:
`11
`(45) Date of Patent:
`
`6,131,192
`Oct. 10, 2000
`
`module. The shell program module locates a Suitable tem
`porary Storage Space, extracts the compressed file from the
`initial executable file, and places the compressed file in the
`temporary Storage Space. The initial executable file causes a
`Second executable file to be extracted from the compressed
`file and executed, So that a Setup program module is run. In
`response to execution of the Setup program module, files are
`Sequentially decompressed from the compressed file. A
`newly decompressed file may initially be placed in the
`temporary Storage Space, and the decompressing is paused
`until that newly decompressed file is copied to a target
`Storage Space. The newly decompressed file may be renamed
`or decompressed while being copied to the target Storage
`Space. Thereafter, that newly decompressed file is deleted
`from the temporary directory. This process is repeated until
`multiple files originating from the compressed file are in
`their respective directory of a directory tree created in the
`target directory. Alternatively, newly decompressed files
`may be placed directly in the target Storage Space.
`Thereafter, the Setup program module prepares the data and
`information on the computer So that the Software product
`will work with the computer and its attached devices. Once
`the Setup program module is no longer running, files remain
`ing in the temporary Storage Space as a result of execution
`of the shell program module are deleted from the temporary
`Storage Space, and execution of the shell program module is
`terminated.
`
`15 Claims, 6 Drawing Sheets
`
`105
`
`100
`
`SEARCHFOR TEMPORARY STORAGE
`SPACE
`
`EXTRACT COMPRESSEDFILE
`
`DENTIFYFILE TODECOMPRESS
`
`DECOMPRESS FILEFROM
`COMPRESSEDFILE
`
`110
`
`115
`
`12O
`
`125
`
`
`
`
`
`
`
`PLACEDECOMPRESSED FILEIN
`THE EMPORARY STORAGESPACE
`
`130
`
`DESREDFILES
`DECOMPRESSED?
`
`YES
`
`135
`
`140
`
`BEGINSETTING UPTHE
`SOFTWARE PRODUCT
`
`QUERY FOR STATUS OF SETTING UP
`THE SOFTWAREPRODUCT
`145
`
`
`
`
`
`STHE
`SOFTWAREPRODUCT
`SETUP
`
`155
`
`DELETEFILES FROMTEMPORARY
`STORAGESPACE
`
`
`
`ironSource Exhibit 1015
`
`
`
`U.S. Patent
`
`Oct. 10, 2000
`
`Sheet 1 of 6
`
`6,131,192
`
`XNOMIEN – r =
`
`èJOLINOW|
`
`87 || Z.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`US. Patent
`
`Oct. 10, 2000
`
`Sheet 2 0f 6
`
`6,131,192
`
`om
`
`
`
`
`
`mEE.SDQONE._<z_u
`
`
`
`m.=n_mxmmzhmw
`
`
`
`m3:589:22:gm.3:zoEEDoczoo
`
`
`
`
`
`m.=u_bosoomm._<z_n_m.=n_ommmmmmEOom.=n_m._m<.50mxm_._<_.:z_
`
`
`
`
`
`
`
`m.=n_jojzmmamm
`
`
`
`
`
`m.=u_Posoomm._<z_u_m.=u_zO_k<m_Do_u_zoo
`
`
`
`
`
`
`
`m.=u_Cm:53m
`
`
`
`
`
`
`
`m.=n_Foam—OWE._<z_u_m2”.ZOFEDOEZOO
`
`
`
`mEEHQDQOWEism:
`
`N.0_n_
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Oct. 10, 2000
`
`Sheet 3 of 6
`
`6,131,192
`
`105
`
`SEARCHFOR TEMPORARY STORAGE-110
`SPACE
`
`EXTRACT COMPRESSED FILE
`
`115
`
`IDENTIFYFILE TODECOMPRESS h 120
`
`DECOMPRESS FILE FROM
`COMPRESSED FILE
`
`125
`
`PLACE DECOMPRESSED FILE IN
`THE TEMPORARY STORAGE SPACE
`
`130
`
`NO
`
`ALL
`DESREDFILES
`DECOMPRESSED?
`
`YES
`
`135
`
`140
`
`BEGINSETTING UPTHE
`SOFTWARE PRODUCT
`
`
`
`
`
`
`
`
`
`155
`
`QUERY FOR STATUS OF SETTING UP
`THE SOFTWARE PRODUCT
`
`IS THE
`SOFTWARE PRODUCT
`SETUP?
`
`150
`
`
`
`YES
`DELETE FILES FROM TEMPORARY
`STORAGE SPACE
`
`FIG. 3
`
`
`
`U.S. Patent
`
`Oct. 10, 2000
`
`Sheet 4 of 6
`
`6,131,192
`
`STARTY-205
`
`200
`-
`
`DESIGNATE TARGET STORAGE
`SPACE
`
`210
`
`IDENTIFYFILE TODECOMPRESS h215
`
`DECOMPRESS FILE FROM
`COMPRESSED FILE
`
`220
`
`PLACE DECOMPRESSED FILE IN
`THE TEMPORARY STORAGE SPACE
`
`225
`
`COPY DECOMPRESSED FILE TO
`TARGET STORAGE SPACE
`
`230
`
`ERASE DECOMPRESSED FILE FROM -235
`TEMPORARY STORAGE SPACE
`
`NO
`
`
`
`
`
`ALL
`DESIREDFILES
`DECOMPRESSED?
`
`240
`
`YES
`COMPLETE SETTING UP
`SOFTWARE PRODUCT
`
`END
`
`250
`
`245
`
`FG. 4A
`
`
`
`U.S. Patent
`
`Oct. 10, 2000
`
`Sheet 5 of 6
`
`6,131,192
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`405
`
`DESIGNATE TARGET
`STORAGE SPACE
`
`IDENTIFYFILE TO DECOMPRESS
`
`400
`
`410
`
`415
`
`NAME OF FILE TO
`DECOMPRESS CORRESPOND
`TO THE NAME OF APRIOR FILEIN
`THE TARGET STORAGE
`SPACE?
`
`DECOMPRESS FILE TO
`TARGET STORAGE SPACE
`425
`
`DECOMPRESS FILE TO TARGET
`STORAGE SPACE USING
`TEMPORARY NAME
`
`S THE
`FILE WITH THE
`TEMPORARY NAME NEWER
`THAN THE PRIOR
`FILE?
`YES
`DELETE THE PRIOR FILE
`
`435
`
`CHANGE THE NAME OF THE FILE
`WITH THE TEMPORARY NAME
`
`
`
`DELETE THE FILE WITH
`THE TEMPORARY NAME
`
`
`
`DESREDFILES
`DECOMPRESSED?
`450
`
`YES
`COMPLETE SETTING UPSOFTWARE
`PRODUCT
`
`455
`
`FIG. 4B
`
`
`
`U.S. Patent
`
`Oct. 10, 2000
`
`Sheet 6 of 6
`
`6,131,192
`
`
`
`
`
`305
`
`300
`-
`
`IDENTIFY STORAGE SPACE
`
`DETERMINE CAPACITY OF
`STORAGE SPACE
`
`
`
`310
`
`315
`
`HAVE SUFFICIENT
`CAPACITY?
`
`F.G. 5
`
`
`
`1
`SOFTWARE INSTALLATION
`
`6,131,192
`
`TECHNICAL FIELD
`The present invention relates to Software installation, and
`more particularly to an executable file that contains the
`Software materials necessary for the installation of a Soft
`ware product.
`BACKGROUND OF THE INVENTION
`There are numerous methods for installing Software prod
`ucts on computers. For example, it is conventional to install
`a Software product on a computer by using a set of diskettes
`that contain the Software materials necessary for the instal
`lation of the software product. The first diskette typically
`includes a Setup program and a compressed file. Execution
`of the Setup program causes files to be decompressed from
`the compressed file on the first diskette, and those decom
`pressed files are placed in a target directory of the computer.
`When decompression from the first disk is complete, the
`Setup program prompts for the Second diskette, and the Setup
`program causes files to be decompressed from a compressed
`file on the Second diskette, and those decompressed files are
`also placed in the target directory. This may continue for
`Several diskettes. In addition to decompressing files from the
`diskettes, the Setup program guides the user through, or
`otherwise handles, the process of Setting up the Software
`product, which is a conventional process for preparing the
`data and information on the computer So that the Software
`product will work with the computer and its attached
`devices. For example, the Setup program may modify the
`computer's configuration files, which reside on the computer
`irrespective of the Software product being installed. The
`Software product can typically be executed in a conventional
`manner, once the Setup program has been completely
`executed.
`It is also conventional to install a Software product on a
`computer by using a compact disk that contains the Software
`materials necessary for the installation of the Software
`product. Installation with a compact disk is similar to
`installation with diskettes, except that the compressed files
`that are typically spread acroSS Several diskettes may each be
`included on a single compact disk. Further, after decom
`pressing files from a first compressed file on the compact
`disk to the target directory, the Setup program typically
`proceeds automatically to decompress files from Subsequent
`compressed files on the compact disk.
`Numerous Steps have been taken to Simplify and Stream
`line the process of installing a Software product on a
`computer. For example, it is now conventional to have a
`Single executable file that contains the Software materials
`necessary for the installation of a Software product. The
`Single executable file can be transferred from a Source, Such
`as a website on the Internet, to any disk drive that can be
`written to and is associated with the computer to which the
`Software product is to be installed.
`One type of conventional Single executable file is the
`Source of a tree of files and a program, which may be
`referred to as the shell program. The tree of files may be
`compressed into the Single executable file during the original
`creation of the Single executable file. That compression can
`be facilitated by a utility program or runtime library.
`While the single executable file is on a disk drive asso
`ciated with the computer to which the Software product is to
`be installed, the perSon using the computer can Select the
`Single executable file to initiate execution of the shell
`program. The shell program may designate a predefined
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`location on a disk drive associated with the computer, Such
`as a temporary directory that is established by the WIN
`DOWS brand operating system sold by Microsoft Corpora
`tion of Redmond, Wash., and the temporary directory may
`be examined in an effort to determine if it has Sufficient free
`Space to accommodate the tree of files. If Sufficient Space is
`available, the shell program causes the tree of files to be
`extracted from the Single executable file, and the tree of files
`is placed in the temporary directory.
`Some of the files of the tree of files placed in the
`temporary directory may be individually compressed, Such
`that the tree of files in the temporary directory contains
`compressed files. One of the files of the tree of files is an
`executable file, the execution of which causes a Setup
`program to run. The Setup program must be run to set up the
`Software product. Some conventional shell programs initiate
`execution of the Setup program. In contrast, other conven
`tional shell programs do not initiate execution of the Setup
`program, Such that a user must initiate execution of the Setup
`program in order to Set up the Software product.
`The Setup program guides the user through the process of
`Setting up the Software product, which is a conventional
`process for preparing the data and information on the
`computer so that the Software product will work with the
`computer and its attached devices. For example, the Setup
`program copies the tree of files from the temporary directory
`to a target directory, may cause individually compressed
`files of the tree of files to be decompressed, and may modify
`the computer's configuration files, which reside on the
`computer irrespective of the Single executable file.
`Typically, the tree of files in the temporary directory varies
`from the Subsequent tree of files in the target directory. This
`variation may be because some of the files in the tree of files
`in the temporary directory are decompressed before they are
`placed in the target directory. Because an entire tree of files
`is placed in the temporary directory, and the tree of files is
`copied to the target directory, a large amount of Space is
`required for installation of the Software product.
`Once the Software product is installed, there is no need for
`the tree of files in the temporary directory. For some
`Software products, is it conventional for the shell program or
`Setup program to remove the tree of files from the temporary
`directory, whereas for other Software products the tree of
`files is not automatically removed from the temporary
`directory. Thus, in Some circumstances the user must delete
`the temporary tree of files from the temporary directory if it
`is desired to free-up Storage Space. Some users may not
`know that is okay to delete the temporary tree of files from
`the temporary directory.
`It is conventional to determine if there is Sufficient free
`Space to accommodate the tree of files to be extracted from
`the Single executable file by comparing the total number of
`bytes that define the tree of files, when extracted, to the
`number of bytes of free Space available in the temporary
`directory. For example, if the extracted tree of files consists
`of 10 megabytes, it will be assumed that there is sufficient
`free Space if 10 megabytes of free Space is available in the
`temporary directory. However, for at least Some conven
`tional Single executable files, the extraction of the tree of
`files from the single executable file will fail even if the
`analysis indicates that there is Sufficient Space in the tem
`porary directory for the tree of files, because the WINDOWS
`brand operating System writes out each file to the end of a
`cluster boundary. If the analysis indicates that there is
`Sufficient Space, but there are not enough clusters due to the
`Writing of each file to the end of a cluster boundary, the
`extraction will fail part way through the processing.
`
`
`
`6,131,192
`
`3
`Numerous problems can be encountered when download
`ing and installing Software as described above. For example,
`the tree of files initially extracted from the Single executable
`file may require a large amount of Storage Space which may
`not be available. Further, it is common for a shell program
`to perform an analysis that incorrectly determines whether
`there is Sufficient free Space to accommodate the tree of files
`extracted from the Single executable file, because the shell
`program does not consider clusters, which may cause the
`installation of the software product to fail. Further, the shell
`programs associated with the installation of Some Software
`products do not initiate execution of the corresponding Setup
`program that must be executed to Set up the Software
`product. Moreover, neither the shell program nor the Setup
`program associated with the installation of Some Software
`products operate to remove the tree of files initially extracted
`from the Single executable file and placed in the temporary
`directory. Thus, it is common with the installation of Some
`Software products to leave the tree of files in the temporary
`directory, even though those files are not used after the
`Software product has been installed. Retaining Such unused
`files is certainly inefficient use of Storage Space.
`Therefore, there is a need in the art for an improved
`executable file that contains the Software materials necessary
`for the installation of a Software product on a computer, and
`that, once executed, Searches for and uses only a Small
`amount of temporary Storage Space in the process of getting
`the files of the Software product in the target directory,
`causes the Software product to be set up on the computer,
`and that cleans-up the temporary Storage space.
`
`SUMMARY OF THE INVENTION
`The present invention satisfies the above-described needs
`by providing an improved single executable file, referred to
`as the initial executable file, that contains the Software
`materials necessary for the installation of a Software product
`on a computer, and that, once executed, Searches for and
`uses only a Small amount of temporary Storage Space in the
`process of getting the files of the Software product in the
`target directory, causes the Software product to be set up on
`the computer, and thereafter cleans-up the temporary Storage
`Space.
`In accordance with one aspect of the present invention,
`the Single executable file can be transferred from a Source,
`Such as a website on the Internet, to any Storage Space, Such
`as a disk drive or other computer readable Storage media,
`that can be written to and is associated with the computer to
`which the software product is to be installed. The initial
`executable file is the Source of a compressed file and a
`program module, which may be referred to as the shell
`program module. The compressed file that originates from
`the initial executable file is the Source of series of files of the
`Software product.
`In accordance with another aspect of the invention, while
`the initial executable file is in the Storage media associated
`with the computer to which the software product is to be
`installed, the perSon using the computer can Select the initial
`executable file to initiate execution of the shell program
`module. The shell program module locates a Suitable tem
`porary Storage Space, extracts the compressed file from the
`initial executable file, and places the compressed file in the
`temporary Storage Space. The initial executable file decom
`presses a Setup program module from the compressed file
`and causes the Setup program module to be executed.
`The Setup program module creates a directory tree in the
`target Storage Space, and thereafter the Setup program mod
`
`4
`ule calls a decompression module to Sequentially decom
`preSS files of the Software product from the compressed file.
`A newly decompressed file may be initially placed in the
`temporary Storage Space, and the decompressing from the
`compressed file is paused until that newly decompressed file
`is copied to the target Storage Space. In conjunction with
`being copied to the target Storage Space, the newly decom
`pressed file may be renamed. Thereafter, that newly decom
`pressed file is deleted from the temporary Storage Space, So
`that a minimum amount of Space is required in the temporary
`Storage Space. This process is repeated until multiple files
`originating from the compressed file are in their respective
`place in the directory tree created in the target Storage Space.
`Thereafter, the Setup program module prepares the data and
`information on the computer So that the Software product
`will work with the computer and its attached devices.
`In accordance with another aspect of the invention, when
`the Setup program module calls the decompression module
`to Sequentially decompress files of the Software product
`from the compressed file, the newly decompressed files are
`placed directly into the target Storage Space. Prior to placing
`a newly decompressed file into the target Storage Space, the
`target Storage Space is Scanned to determine if a prior file
`having the Same name as the newly decompressed file is in
`the target Storage space. If So, the newly decompressed file
`is renamed with a temporary name and then placed in the
`target Storage Space. Then, the version information of the
`prior file and the newly decompressed file are compared. If
`the newly decompressed file is newer than the prior file, the
`prior file is deleted and the newly decompressed file is given
`the name of the deleted file.
`In accordance with another aspect of the invention, the
`shell program module transitions from being executed in the
`foreground to being executed in the background during
`execution of the Setup program module. Once the Setup
`program module is no longer running, the shell program
`module transitions from being executed in the background to
`being executed in the foreground. Thereafter, the shell
`program module deletes the files remaining in the temporary
`Storage Space as a result of the execution of the shell
`program module. Thereafter, execution of the shell program
`module is terminated.
`In accordance with another aspect of the invention, when
`the initial executable program module Searches for tempo
`rary Storage Space, it is determined whether the capacity of
`a Section of the Storage media is at least as large as a
`predetermined capacity that is representative of the amount
`of Storage Space required to accommodate at least the
`compressed file and a file from which the Setup program
`module originates. This determination is preferably made by
`determining the number of empty clusters in the Section of
`the Storage media, and comparing that number to the number
`of clusters required to accommodate at least the compressed
`file and the file from which the Setup program module
`originates.
`The various aspects of the present invention may be more
`clearly understood and appreciated from a review of the
`following detailed description of the disclosed embodiments
`and by reference to the appended drawings and claims.
`BRIEF DESCRIPTION OF THE DRAWINGS
`FIG. 1 is a block diagram of a personal computer that
`provides the operating environment for the exemplary
`embodiment of the present invention.
`FIG. 2, which diagrammatically illustrates an exemplary
`arrangement of files on a computer readable Storage media,
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`
`
`6,131,192
`
`S
`is illustrative of an intermediate phase of installing a Soft
`ware product, in accordance with the exemplary embodi
`ment of the present invention.
`FIG.3 is a flow diagram illustrating an exemplary method
`for installing a Software product.
`FIG. 4A is a flow diagram illustrating an exemplary
`method for Setting up the Software product.
`FIG. 4B is a flow diagram illustrating an exemplary
`alternative method for Setting up the Software product.
`FIG. 5 is a flow diagram illustrating an exemplary method
`for Searching for Sufficient temporary Storage Space for
`receiving files in the process of installing the Software
`product.
`
`15
`
`6
`skilled in the art will appreciate that the present invention
`can be practiced with other operating Systems, or the like.
`The invention may also be practiced in distributed comput
`ing environments where tasks are performed by remote
`processing devices that are linked through a communica
`tions network. In a distributed computing environment,
`program modules may be located in both local and remote
`memory Storage devices.
`With reference to FIG. 1, an exemplary system for imple
`menting the invention includes a conventional personal
`computer 20, including a processing unit 21, a System
`memory 22, and a System buS 23 that couples the System
`memory to the processing unit 21. The System memory 22
`includes read only memory (ROM) 24 and random access
`memory (RAM) 25. Abasic input/output system 26 (BIOS),
`containing the basic routines that help to transfer informa
`tion between elements within the personal computer 20,
`such as during start-up, is stored in ROM 24. The personal
`computer 20 further includes a hard disk drive 27, a mag
`netic disk drive 28, e.g., to read from or write to a removable
`disk 29, and an optical disk drive 30, e.g., for reading a
`CD-ROM disk 31 or to read from or write to other optical
`Storage media. The hard disk drive 27, magnetic disk drive
`28, and optical disk drive 30 are connected to the system bus
`23 by a hard disk drive interface 32, a magnetic disk drive
`interface 33, and an optical drive interface 34, respectively.
`The drives and their associated computer-readable Storage
`media provide nonvolatile Storage for the personal computer
`20. Although the description of computer-readable Storage
`media above refers to a hard disk, a removable magnetic
`disk and a CD-ROM disk, it should be appreciated by those
`skilled in the art that other types of Storage media which are
`readable by a computer, Such as magnetic cassettes, flash
`memory cards, digital Video disks, Bernoulli cartridges, and
`the like, may also be used in the exemplary operating
`environment.
`A number of program modules may be Stored in the drives
`and RAM 25, including an operating System 35, one or more
`application programs 36, other program modules 37, and
`program module data 38. A user may enter commands and
`information into the personal computer 20 through a key
`board 40 and pointing device, such as a mouse 42. Other
`input devices (not shown) may include a microphone,
`joystick, game pad, Satellite dish, Scanner, or the like. These
`and other input devices are often connected to the processing
`unit 21 through a Serial port interface 46 that is coupled to
`the System bus, but may be connected by other interfaces,
`Such as a game port or a universal Serial bus (USB). A
`monitor 47 or other type of display device is also connected
`to the System buS 23 via an interface, Such as a video adapter
`48. In addition to the monitor, personal computers typically
`include other peripheral output devices (not shown), Such as
`Speakers or printers.
`The personal computer 20 may operate in a networked
`environment using logical connections to one or more
`remote computers, Such as a remote computer 49. The
`remote computer 49 may be a Server, a router, a peer device
`or other common network node, and typically includes many
`or all of the elements described relative to the personal
`computer 20, although only a memory Storage device 50 has
`been illustrated in FIG.1. The logical connections depicted
`in FIG. 1 include a local area network (LAN) 51 and a wide
`area network (WAN) 52. Such networking environments are
`commonplace in offices, enterprise-wide computer
`networks, intranets and the Internet.
`When used in a LAN networking environment, the per
`sonal computer 20 is connected to the LAN 51 through a
`
`35
`
`DETAILED DESCRIPTION
`The present invention is directed toward a method for
`installing a Software product. In one embodiment, the inven
`tion may be used to facilitate installation of trial versions of
`Software products that are in the form of Software games,
`such as the Puzzle Collection Trial Version, the Age of
`Empires Trial Version, Close Combat-A Bridge Too Far
`Trial Version, and CART Precision Racing Trial Version, all
`of which are available from Microsoft Corporation of
`Redmond, Wash., and all of which operate in the WIN
`25
`DOWS brand operating system. As additional examples, the
`invention may be used to facilitate installation of Software
`products that are in the form of patches, Such as an Age of
`Empires program module patch, and Close Combat-ABTF
`program module patches, all of which are available from
`Microsoft Corporation, and all of which operate in the
`WINDOWS brand operating system. The present invention
`is Suitable for facilitating installation of many other Software
`products, which may be collections of files and program
`modules that cooperate to provide computer program or
`patches.
`Turning now to the drawings, where like numbers refer
`ence like parts in the Several figures, an exemplary embodi
`ment of the present invention will be described.
`Exemplary Operating Environment
`FIG. 1 and the following discussion are intended to
`provide a brief, general description of a Suitable computing
`environment in which the invention may be implemented.
`Whereas the invention will be described in the general
`context of the installation of an application program or patch
`that runs on an operating System in conjunction with a
`personal computer, those skilled in the art will recognize that
`the invention also may be implemented to install other types
`of Software for use in other environments. Whereas the
`invention will be described with reference to files, those
`skilled in the art will appreciate that the term “file” may
`correspond to a collection of computer readable information
`or data, or the like, and that a file may or may not contain
`computer executable instructions. Although not required, the
`invention will be described in the general context of
`computer-executable instructions, Such as program modules,
`being executed by a personal computer. Generally, program
`modules include routines, programs, components, data
`Structures, etc. that perform particular tasks or implement
`particular abstract data types. Moreover, those skilled in the
`art will appreciate that the invention may be practiced with
`other computer System configurations, including hand-held
`devices, multiprocessor Systems, microprocessor-based or
`programmable consumer electronics, minicomputers, main
`frame computers, and the like. That is, whereas the exem
`plary embodiment of the present invention is discussed in
`the context of a WINDOWS brand operating system, those
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`
`
`6,131,192
`
`15
`
`25
`
`35
`
`40
`
`7
`network interface 53. When used in a WAN networking
`environment, the personal computer 20 typically includes a
`modem 54 or other means for establishing communications
`over the WAN 52, Such as the Internet. The modem 54,
`which may be internal or external, is connected to the System
`bus 23 via the serial port interface 46. In a networked
`environment, program modules depicted relative to the
`personal computer 20, or portions thereof, may be Stored in
`the remote memory Storage device. It will be appreciated
`that the network connections shown are exemplary and other
`means of establishing a communications link between the
`computerS may be used.
`Exemplary Embodiments of the Present Invention
`The present invention is directed toward a method for
`installing a Software product on a computer, Such as the
`computer 20 (FIG. 1). Those skilled in the art will appreciate
`that a Software product may be a collection of files and
`program modules that cooperate to provide a computer
`program or patch. In accordance with the exemplary
`embodiment of the present invention, an executable file,
`which may be referred to as the initial executable file,
`contains the Software materials necessary for the installation
`of the software product on the computer 20. The initial
`executable file may be placed in Storage media readable by
`the computer 20. For example, the initial executable file may
`be transferred from a Source, Such as a website on the
`Internet, to the Storage media readable by the computer 20.
`Once in the Storage media of the computer 20, the initial
`executable file may be executed. Once executed, the initial
`executable file provides means that Search for and use only
`a Small amount of a temporary Storage Space portion of the
`Storage media readable by the computer 20, install the
`Software product in a target Storage space portion of the
`Storage media readable by the computer 20, and thereafter
`clean-up the temporary Storage Space.
`More Specifically, a shell program module originates from
`the initial executable file in response to Selection of the
`initial executable file. The Shell program module is prefer
`ably executed in a multitasking operating System, and those
`skilled in the art will appreciate that a multitasking operating
`System allows a program module to run in either the fore
`ground or the background. Initially the shell program mod
`ule runs in the foreground and extracts a compressed file
`from the initial executable file. Thereafter, the shell program
`module decompress an executable file, Such as a Setup.exe
`file, from the compressed file. Thereafter, the shell program
`module causes a Setup program module that originates from
`the Setup.eXe file to be executed. The shell program module
`Switches from executing in the foreground to executing in
`the background as Soon as the Setup program module is
`executed, and the Setup program module is executed in the
`foreground. The Setup program module Sets up the Software
`product, which includes the process of Sequentially decom
`pressing and processing files from the compressed file. Once
`the execution of the Setup program module is complete, the
`shell program module Switches from executing in the back
`ground to the foreground. Thereafter, the Shell program
`module at least partially cleans up the computer's Storage
`Space, for example by deleting the compressed file.
`Exemplary Arrangement of Data and Information
`FIG. 2 diagrammatically illustrates an exemplary arrange
`ment of data and information on Storage media 56 of the
`personal computer 20 (FIG. 1). The data and information on
`the Storage media is illustrated, for example, in the form of
`multiple files, which are discussed in greater detail below.
`The files illustrated in FIG. 2 are associated with the
`
`45
`
`50
`
`55
`
`60
`
`65
`
`8
`installation of a Software product, Such as a computer
`program module or patch, on the computer. The illustrated
`arrangement of files is representative of an intermediate
`Stage in the process of installing the Software product.
`The Storage media 56 is preferably any kind of Storage
`media that can be written to, Such as the hard disk drive 27
`(FIG. 1) or the magnetic disk drive 28 (FIG. 1), or a
`combination of those drives or multiple of those drives, or
`the like. The Storage media 56 may include numerous
`Sections; however, only a few Sections are illustrated in FIG.
`2. For example, one Section may be a temporary Storage
`Space, which may be referred to as, or may b