throbber
United States Patent (19)
`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

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket