`Luu
`
`I lllll llllllll Ill lllll lllll lllll lllll lllll 111111111111111111111111111111111
`US005860012A
`[11] Patent Number:
`[45] Date of Patent:
`
`5,860,012
`Jan. 12, 1999
`
`[54]
`
`INSTALLATION OF APPLICATION
`SOFTWARE THROUGH A NETWORK FROM
`A SOURCE COMPUTER SYSTEM ON TO A
`TARGET COMPUTER SYSTEM
`
`[75]
`
`Inventor: Linda Luu, Beaverton, Oreg.
`
`[73]
`
`Assignee: Intel Corporation, Santa Clara, Calif.
`
`[21]
`
`Appl. No.: 859,277
`
`[22]
`
`Filed:
`
`May 19, 1997
`
`[63]
`
`[51]
`[52]
`[58]
`
`[56]
`
`Related U.S. Application Data
`
`Continuation of Ser. No. 591,222, Jan. 18, 1996, abandoned,
`which is a continuation of Ser. No. 130,097, Sep. 30, 1993,
`abandoned.
`Int. Cl.6
`...................................................... G06F 11/30
`U.S. Cl. ........................ 395/712; 395/701; 395/200.5
`Field of Search ..................................... 395/701, 712,
`395/200.5
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,021,949
`5,086,502
`5,257,378
`5,265,239
`5,361,358
`5,386,564
`5,388,211
`
`6/1991 Morten et al. .......................... 395/200
`2/1992 Malcolm ................................. 395/575
`10/1993 Sideserf et al. ... ... ... ... ... .... ... ... 395 /700
`11/1993 Ardolino ................................. 395/500
`11/1994 Cox et al. ............................... 395/700
`1/1995 Shearer et al. .......................... 395/650
`2/1995 Hornbuckle ............................. 395/200
`
`OTHER PUBLICATIONS
`
`Mamram, "Maintenance ... Mainframes", May 1991, pp.
`113-119.
`T. Busse, "Wininstall installs Windows apps from central
`location", INFOWORLD, p. 54, May 24, 1993.
`"Wininstall Sends Applications As E-Mail Attachments",
`PC MAGAZINE, p. 66, Jul. 1993.
`
`Primary Examiner-Larry D. Donaghue
`Assistant Examiner-John Follansbee
`Attorney, Agent, or Firm-Blakely, Sokoloff, Taylor &
`Zafman LLP
`
`[57]
`
`ABSTRACT
`
`A technique for the remote installation of application soft(cid:173)
`ware from a source computer system to one or more target
`computer systems (workstation) coupled to a Local Area
`Network (LAN). The present invention allows a LAN
`Administrator to install application software on a user's
`workstation automatically at any time without user's inter(cid:173)
`vention. The state of (i.e. a snapshot of) the LAN Admin(cid:173)
`istrator's system before and after the installation of the
`application software is captured and an installation package
`is built. Installation on the user workstations is then sched(cid:173)
`uled. For installation, the installation package is transmitted
`to the user workstation where an install program carries out
`commands in the installation package for installing the
`application software.
`
`35 Claims, 6 Drawing Sheets
`
`i' -
`
`-
`
`-
`
`LAN
`ADMINISTRATOR
`WORKSTATION
`201
`
`•INSTALLATION
`SCHEDULER 301a
`•INSTALLATION PKG
`GENERATOR 301b
`
`FILE SERVER
`206
`
`INSTALLATION
`PACKAGE
`303
`----------- -----------•
`
`I
`
`LAN
`ADMINISTRATOR
`TOOLS
`301
`
`USER
`WORKSTATION
`202
`
`LAN
`205
`
`i" -
`
`- -
`
`LAN CLIENT
`':;ADMINISTRATION
`TOOLS
`302
`
`I
`
`•TSR
`•INSTALLATION
`PROGRAM
`•DEINSTALLATION
`PROGRAM
`-----------------------·
`
`I
`
`I
`
`IPR2017-00184
`UNIFIED EX1019
`
`
`
`LAN-,
`
`I
`~ '~
`
`-
`.
`
`•
`
`LAN
`ADAPTER
`111
`""",,,.. ..... .,
`
`CPU BUS 101
`
`.... ~ -·
`
`PARALLEL
`PORT
`11Q
`
`._
`
`ROM
`104
`...::,,,.. ..... .,
`
`...
`...
`CURSOR
`CONTROL
`DEVICE
`108
`
`DISPLAY
`105
`......
`
`""'
`
`"""~ -...
`SERIAL
`PORT
`109
`
`COMPUTER SYSTEM 100
`
`PROCESSOR
`102
`
`,,,,.. ..... .,
`
`.... ~ - II"'
`
`RAM
`103
`..::." ......
`
`....... -..
`
`HARD DRIVE
`106
`
`KEYBOARD
`107
`
`FIG.1
`
`d .
`\JJ. .
`~
`~ ......
`~ =
`......
`
`~
`~
`?
`'"""' ~N
`'"""'
`\C
`\C
`\C
`
`'Jl =(cid:173)~
`~ .....
`'"""' 0 .....,
`
`O'I
`
`~
`
`Ul
`00
`
`0--, = ~ = ~
`
`N
`
`
`
`U.S. Patent
`
`Jan. 12, 1999
`
`Sheet 2 of 6
`
`5,860,012
`
`z L.01
`
`:s~ L
`
`z
`0
`I-
`a:<( -.::ti WI-a
`cncn"'
`~~ a:
`0
`:?:
`
`z
`0
`I-
`a: <( C')I
`w 1-a
`cncn"'
`~~ a:
`0
`:?:
`
`z
`0
`I-
`a:<( "'I WI-a
`cncn"'
`~~ a:
`0
`:?:
`
`a:
`w w C.01
`_J >a
`-0: N
`u.. w
`en
`
`a:z
`Oo
`I-_
`<(I-
`0:<(
`z I- I- T"""I
`<t:cncna
`_J - ~ C'\.I
`Za:
`::::EO
`Cl$':
`<(
`
`
`
`U.S. Patent
`
`Jan. 12, 1999
`
`Sheet 3 of 6
`
`5,860,012
`
`LAN
`ADMINISTRATOR
`WORKSTATION
`201
`
`FILE SERVER
`206
`
`i -
`
`-
`
`-
`
`•INSTALLATION
`SCHEDULER 301 a
`•INSTALLATION PKG
`GENERATOR 301b
`----------- -----------·
`
`I
`I
`
`i -
`
`-
`
`-
`
`INSTALLATION
`PACKAGE
`303
`----------- -----------·
`
`I
`
`LAN
`ADMINISTRATOR
`TOOLS
`301
`
`USER
`WORKSTATION
`202
`
`LAN
`205
`
`•TSR
`•INSTALLATION
`PROGRAM
`:
`• DEINSTALLATION
`:
`PROGRAM
`-----------------------·
`
`I
`
`LAN CLIENT
`; (ADMINISTRATION
`;J
`TOOLS
`302
`
`FIG. 3
`
`
`
`U.S. Patent
`
`Jan. 12, 1999
`
`Sheet 4 of 6
`
`5,860,012
`
`TARGET
`
`SOURCE
`
`GENERATE
`PRE-INSTALLATION
`SYSTEM SNAPSHOT
`
`INSTALL APPLICATION
`SOFTWARE
`
`GENERATE POST-INSTALLATION
`SYSTEM SNAPSHOT
`
`SAVE PRE-INSTALLATION
`SYSTEM FILES 407
`
`COMPARE PRE-INSTALLATION
`SYSTEM SNAPSHOT WITH
`POST-INSTALLATION TO CREATE
`INSTALLATION PACKAGE 404
`
`SCHEDULE INSTALLATION OF
`APPLICATION SOFTWARE ON
`TARGET SYSTEMS
`405
`
`DELETE APPLICATION SOFTWARE
`FROM SOURCE SYSTEM
`
`FIG.4
`
`INSTALL APPLICATION
`SOFTWARE BASED ON
`CUSTOM PERSONALITY
`FILE
`
`INSTALL APPLICATION
`SOFTWARE BASED ON
`DEFAULT PERSONALITY
`FILE
`409
`
`
`
`U.S. Patent
`
`Jan. 12, 1999
`
`Sheet 5 of 6
`
`5,860,012
`
`PRE-INSTALLATION
`SNAPSHOT 501
`
`POST-INSTALLATION
`SNAPSHOT
`502
`
`IPACKGEN
`
`INSTALLATION
`PACKAGE
`
`504
`
`FIG. 5
`
`
`
`U.S. Patent
`
`Jan. 12, 1999
`
`Sheet 6 of 6
`
`5,860,012
`
`gl
`
`gl
`
`~
`~ oz
`en WO
`>- :::c __. !;;(
`en!::::~o
`t-s:1--
`en_.
`w
`zO..
`C!J
`a:
`- Q_
`<(
`<(
`I-
`
`) I\
`
`a:
`w
`__.
`__.
`~
`en
`z
`
`) I\
`
`I \
`
`fJI
`
`w
`a:
`~Oz
`~LLO ww-
`I- c:o I-
`en en ::5
`>-w--1
`en __. <C
`w-1-
`>LL en
`<(~Z
`-<(
`en
`Cl
`
`....
`,..
`
`gl
`
`z
`Ow
`I- C!J
`:'.5 ;2
`
`_J (.)
`<( <(
`~Q_
`z
`
`§I
`
`~
`::J
`<Cw
`z__.
`o-
`en LL
`a: w
`
`Q_
`
`
`
`5,860,012
`
`1
`INSTALLATION OF APPLICATION
`SOFTWARE THROUGH A NETWORK FROM
`A SOURCE COMPUTER SYSTEM ON TO A
`TARGET COMPUTER SYSTEM
`
`This is a continuation of application Ser. No. 08/591,222,
`filed Jan. 18, 1996, now abandoned, which is a continuation
`of application Ser. No. 08/130,097, filed Sep. 30, 1993, now
`abandoned.
`
`BACKGROUND OF THE INVENTION
`
`1. Field of the Invention
`The present invention relates generally to the field of
`management of computer systems on a network, and spe(cid:173)
`cifically to installation of application software on computer
`systems through a network.
`2. Prior Art
`Local Area Networks (LANs) have been developed for
`interconnecting computer systems for communication 20
`amongst computer users, for the exchange of data and for the
`sharing of resources (e.g. printers, facsimile devices,
`modems and the like). To properly implement and manage
`a LAN, a LAN administrator is needed. A LAN Adminis(cid:173)
`trator's duties may include such functions as registering 25
`users to use the Local Area Network, maintaining the shared
`resources and monitoring the network load. LANs may also
`be used to manage the computer systems connected to the
`network.
`With respect to management of the computer systems on
`the LAN, a desirable function for the LAN administrator is
`to remotely install application software on systems.
`Moreover, it would be desirable to perform such installa(cid:173)
`tions without the presence of the LAN Administrator.
`However, known techniques for remote installation of soft(cid:173)
`ware require the writing of scripts outlining the installation
`procedures. The writing of scripts is a manual, error prone
`task which must be performed for each system onto which
`an application is to be installed.
`An improved implementation for remote installation of
`applications by a LAN administrator is the netOctopus™
`program, available from B&L Impuls Software GmbH.
`netOctopus operates in an Apple® Macintosh networked
`environment. netOctopus provides for the remote execution
`of installation scripts on systems in which the application
`software is to be installed. netOctopus utilizes the installer
`program that accompanies each Apple Macintosh system.
`However netOctopus merely allows the LAN Administrator
`to perform the installation across the network, as if they
`were sitting at the workstation themselves.
`Consequently, it would be desirable to provide a means
`for automating script generation for remote installation of
`application software by a LAN Administrator. Further, it
`would be desirable to provide for such remote installation in
`a manner that does not require the presence of the LAN
`Administrator.
`
`2
`the application software is captured and an installation
`package is built. Installation on the user workstations is then
`scheduled. At that time the installation package is transmit(cid:173)
`ted to the user's workstation where a program carries out
`commands in the installation package for installing the
`application software.
`The installation package consists of an IPACK format file
`and the files contained in an application software program.
`The IPACK format file contains sets of commands that are
`10 used to modify system files and perform other functions
`necessary to the installation of the application software.
`Further, a personality file may be defined which allows for
`custom tailoring of the installation on a user's workstation.
`Further, a UPACK format file provides instructions for
`15 deinstalling application software. Deinstallation of applica(cid:173)
`tion software is necessary for removing unwanted or out(cid:173)
`dated applications from the user's workstation.
`
`BRIEF DESCRIPTION OF THE FIGURES
`
`FIG. 1 is a block diagram of a computer system which
`may be utilized as a LAN administrator workstation or user
`workstation in the currently preferred embodiment of the
`present invention.
`FIG. 2 is block diagram of a LAN with a LAN Admin(cid:173)
`istrator workstation and user workstations as may be imple(cid:173)
`mented in the currently preferred embodiment of the present
`invention.
`FIG. 3 is a block diagram illustrating the architecture of
`30 the main components of the LAN administrator workstation
`and a user workstation for implementation of the currently
`preferred embodiment of the present invention.
`FIG. 4 is a flow chart illustrating the steps performed by
`the LAN Administrator workstation (source system) and the
`35 user workstation (target system) in performing remote appli(cid:173)
`cation software installations in the currently preferred
`embodiment of the present invention.
`FIG. 5 is a block diagram illustrating the inputs and
`outputs for generating an installation package on a LAN
`40 Administrator workstation as may be performed in the
`currently preferred embodiment of the present invention.
`FIG. 6 is a block diagram showing the inputs and outputs
`for installing an application package on a user workstation
`45 as may be performed in the currently preferred embodiment
`of the present invention.
`
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENT
`
`50
`
`A technique for the remote installation of application
`software on user workstations connected to a Local Area
`Network (LAN) from a LAN Administrator workstation is
`described. In the following description, numerous specific
`details are set forth such as the network topology, in order
`55 to provide a thorough understanding of the present inven(cid:173)
`tion. It will be apparent, however, to one skilled in the art
`that the present invention may be practiced without such
`specific details. In other instances, specific implementation
`details such as the steps for installation of any particular
`60 application software package have not been shown in detail
`in order not to unnecessarily obscure the present invention.
`The currently preferred embodiment of the present inven(cid:173)
`tion is implemented for operation in networking environ(cid:173)
`ments utilizing the NetWare Network Operating System,
`65 available from the Novell Corporation of Provo, Utah. The
`respective workstations coupled to the network of the cur(cid:173)
`rently preferred embodiment would be executing the
`
`SUMMARY
`
`A technique for the remote installation of application
`software from a source computer system to one or more
`target computer systems (workstations) coupled to a Local
`Area Network (LAN) is disclosed. The present invention
`allows a LAN Administrator to install application software
`on a user's workstation automatically at any time without
`user's intervention. The state of (i.e. a snapshot of) the LAN
`Administrator's system before and after the installation of
`
`
`
`5,860,012
`
`3
`MS/DOS and the Windows operating system environments,
`both available from Microsoft Corporation of Seattle, Wash(cid:173)
`ington. However, these implementations are not meant to be
`limiting as to the scope of the present invention. It would be
`apparent to one skilled in the art to practice the present
`invention in environments utilizing different network con(cid:173)
`trol operating systems and with workstations executing
`under non MS/DOS or non Windows operating systems.
`Further, the following description uses the term "work(cid:173)
`station" with respect to any computer system that a user or 10
`LAN Administrator may be using. The term "workstation" is
`not meant to indicate or denote any particular class of
`computer systems. Finally, the following description will
`make reference to certain data files and structures, e.g. a
`CONFIG. SYS file, that are well known to those familiar 15
`with the MS/DOS Operating System. Thus, further descrip(cid:173)
`tion of such data files and structures is not deemed neces-
`sary.
`Overview of a Computer Systems in the Currently Pre(cid:173)
`ferred Embodiment
`A computer system embodying a workstation of the
`currently preferred embodiment is described with reference
`to FIG. 1. A computer system 100 as may be utilized by the
`currently preferred embodiment generally comprises a bus
`structure or other communication means 101 for communi- 25
`eating information between the various components of the
`computer system, a processor means 102 coupled with said
`bus 101 for processing information, a random access
`memory (RAM) or other storage device 103 (commonly
`referred to as a main memory) coupled with said bus 101 for
`storing information and instructions for said processor 102,
`a read only memory (ROM) or other static storage device
`104 coupled with said bus 101 for storing static information
`and instructions for said processor 102, a display monitor
`105 coupled with said bus 101 for displaying textual,
`graphical and image data generated by the computer system,
`a data storage device 106, such as a magnetic disk and disk
`drive, coupled with said bus 101 for storing information and
`instructions, an alphanumeric input device 107 including
`alphanumeric and other keys coupled to said bus 101 for
`communicating information and command selections to said
`processor 102, a cursor control device 108, such as a mouse,
`trackball, cursor control keys, etc., coupled to said bus 101
`for communicating information and command selections to
`said processor 102 and for controlling cursor movement.
`Additionally, the system will typically include, one or more
`ports for receiving input signal data. Such ports are illus(cid:173)
`trated here as serial port 109 and parallel port 110.
`The computer system 101 further includes a Local Area 50
`Network (LAN) adapter 111 for attaching to a LAN 112. The
`LAN Adapter 111 is coupled to CPU bus 101 and is used to
`transmit/receive information to/from the LAN 112.
`It should further be noted that the processor 102 in the
`computer system would perform various of the processing
`functions, e.g. generation of the application installation
`package (LAN Administrator workstation), and actual
`installation of the application software (user workstation),
`which is described herein.
`LAN Environment
`FIG. 2 illustrates a local area networking environment of
`the currently preferred embodiment of the present invention.
`In the currently preferred embodiment, the LAN 205 is an
`Ethernet LAN. As mentioned above, the network control
`operating system is Novell NetWare. Referring back to FIG.
`2, a LAN Administrator workstation 201 is coupled to the
`LAN 205. A plurality of user workstations 202-204 are also
`
`4
`coupled to the LAN 205. In operation, the LAN Adminis(cid:173)
`trator workstation 201 performs various functions in keeping
`the network and each of the individual user workstations
`operable. The present invention provides a means by which
`a LAN administrator can remotely schedule and cause the
`installation of application software on each of the user
`workstations 202-204. Without such a facility, the LAN
`administrator would have to physically install the applica(cid:173)
`tion software on each of the user workstations 202-204. This
`is very inefficient since it may require "downtime" of the
`user workstation during work hours, thus causing a loss in
`productivity of the user. The alternative, having the appli(cid:173)
`cation software installed during nonwork hours is also
`undesirable since it still requires the physical presence of the
`LAN administrator.
`Further illustrated in FIG. 2 is file server 206. In many
`LAN environments various server systems are provided
`which are shared resources for use and access by the users
`on the LAN. The file server 206 provides a shared disk
`20 storage resource for the LAN Administrator workstation 201
`and the User workstations 202-204.
`Implementation Architecture of the Currently Preferred
`Embodiment
`In the currently preferred embodiment of the present
`invention, an installation package is generated at the LAN
`administrator's workstation that subsequently causes instal(cid:173)
`lation of the software on each of the target workstations.
`Each of the target workstation contains means for receiving
`30 the installation package and processing it so that the appli(cid:173)
`cation software is installed. It should further be noted that
`the present invention assumes that the Operating System and
`Operating System levels and other systems files on the LAN
`administrator workstation and the various user workstations,
`are the same. If they were not the same, it is clear that the
`potential for error would be great.
`FIG. 3 illustrates the architecture of the operating soft(cid:173)
`ware residing on the LAN administrator workstation and the
`target user workstation in greater detail. Referring to FIG. 3,
`a LAN administrator workstation 201 contains LAN admin(cid:173)
`istrators tools 301. The LAN administrators tools 301
`include an installation scheduler 301a and installation pack(cid:173)
`age generator 301b. The installation scheduler 301a will
`allow the LAN administrator to schedule the automated
`installation of the new application software onto one or more
`user workstations. It is important to note that the installation
`scheduler 301a allows the LAN administrator to perform the
`actual installation at a time when the LAN administrator
`may or may not be physically present. The installation
`package generator 301b is used to create the installation
`package by which the application software is installed. In the
`currently preferred embodiment, installation package 303 is
`stored on file server 206.
`The target system i.e. the user workstations, contains a set
`55 of LAN client administration tools 302. The LAN client
`administration tools 302 on the target user workstation 202
`include a termination and stay resident (TSR) program 302a
`which remains active in memory on the target workstation.
`The remote program resident on the LAN Administrator's
`60 workstation executes this TSR program and causes an instal(cid:173)
`lation program (here installation program 302b) to be
`invoked. TSR programs of this type are well known to those
`skilled in the art, so further description of the TSR program
`is not deemed necessary. The installation program 302b is
`65 also part of LAN client administration tools 302. The
`installation program 302b processes an installation package
`for installing the application software on the target system.
`
`35
`
`40
`
`45
`
`
`
`5,860,012
`
`5
`The manner in which this is done will be described in greater
`detail below. Finally, a deinstallation program 302c is pro(cid:173)
`vided. The deinstallation program 302c will process a dein(cid:173)
`stallation package for removing applications from the target
`system.
`Installation Package
`The installation package of the currently preferred
`embodiment of the present invention is generated in what is
`termed an IPA CK format file. The IPA CK format file defines
`various groups of commands which are used by the instal- 10
`lation program residing on the user workstation to install the
`application software. Further, the UPACK format file pro(cid:173)
`vides a series of commands for deinstallation of files on a
`computer system. The IPACK format file is described in
`greater detail in Appendix A
`In the currently preferred embodiment, the installation
`package includes the IPACK format file and the application
`software to be installed. This package is stored on a server
`system in a compressed format, and it will be later down(cid:173)
`loaded during the installation process. As is described in
`Appendix A, the IPACK format file will contain references
`to the actual physical location of the installation package in
`compressed format.
`Personality File
`A second file utilized in the present invention is the
`personality file. The personality file allows for custom
`installation of application software on a user workstation.
`For example, if the application is to be installed in a
`particular directory, it is specified through the personality
`file. A custom personality file resides on the user worksta(cid:173)
`tion. In operation, the installation program on the user
`workstation will search for a custom personality file. If no
`custom personality file is found, a default personality file
`will be utilized to perform the installation. The personality 35
`file format is described in greater detail in appendix B.
`The incorporation of a personality file provides a great
`deal of flexibility for the installation of application software.
`A custom personality file would typically be created by the
`LAN Administrator according to the unique requirements of 40
`the user.
`Remote Installation of Application Software
`Remote installation of Application Software by the LAN
`Administrator is a two-step process; generation of an instal(cid:173)
`lation package and scheduling the installation at each of the 45
`desired user workstations. FIG. 4 is a flowchart which
`illustrates the steps performed by the LAN administrator
`workstation and the user workstations. In this description,
`the LAN administrator workstation will be referred to as the
`source workstation and the user workstations will be
`referred to as the target workstations. First, on the source
`workstation a preinstallation system snapshot is generated
`and saved, step 401. This preinstallation system snapshot
`will contain all the information that may be changed as a
`result of the installation of the application software, such as
`the complete disk directory structure contents, copies of
`various system and execution files (e.g. the CONFIG.SYS
`file and all* .INI and* .BAT files) and other operating system
`related information. Once the pre-installation system snap(cid:173)
`shot is stored the application software is installed, step 402.
`The installation of the application software is performed
`according to the instructions provided by the particular
`software application. In the DOS and WINDOWS environ(cid:173)
`ment of the currently preferred embodiment, the installation
`procedures for application software is not standardized. 65
`Thus, the present invention has been designed to be general
`enough to allow for various application installation see-
`
`6
`narios. In any event, after the application software has been
`installed on the source workstation, a post installation sys(cid:173)
`tem snapshot is generated, step 403. The post installation
`system snapshot contains the same information as the pre(cid:173)
`installation system snapshot except that is taken after the
`application has been installed.
`An installation package is then generated by comparing
`the preinstallation system snapshot with the post installation
`snapshot, step 404. As described above, the installation
`package will include the IPACK format file and the appli(cid:173)
`cation software. The generation of the installation package is
`further illustrated in FIG. 5. FIG. 5 is a block diagram which
`illustrates the inputs and the resultant output for generating
`an installation package. The program IPACKGEN 503 takes
`15 as inputs the pre-installation snapshot 501 and the post
`installation snapshot 502. As noted previously the pre(cid:173)
`installation snapshot contains the state of the system prior to
`the installation of the application software. The post instal(cid:173)
`lation snapshot 502 contains the same information except
`20 that it is after the installation of the application software.
`IPACKGEN 503 then compares the pre-installation snapshot
`501 with the post installation snapshot 502 to determine
`their differences. When comparing the preinstallation snap(cid:173)
`shot with the post-installation snapshot, the respective disk
`25 directory structures, CONFIG.SYS, * .INI, *.BAT and other
`system related files are compared. The IPACK format file
`contains instructions to enable modification of the pre(cid:173)
`installation snapshot so that it equals the post-installation
`files. The installation package 504 is then generated based
`30 on these differences (refer to Appendix A for the specific
`commands used and for various examples). In the currently
`preferred embodiment, the installation package is stored on
`a server system on the LAN.
`Referring back to FIG. 4, once the installation package is
`created the installation of the application software on each of
`the respective targets systems is scheduled, step 405. Such
`scheduling allows the LAN administrator to cause the instal(cid:173)
`lation of the application software at off hours, e.g. at night.
`It should be noted that in the currently preferred
`embodiment, the various steps performed by the LAN
`administrator are done via a dialog and windows type
`interface. The LAN administrator would respond to prompts
`from the dialog that has been created for generating instal-
`lation packages and the scheduling of installations.
`The mechanism for causing the transmission of the instal(cid:173)
`lation package to a target user workstation utilizes the
`system clock as a trigger. Such a mechanism for triggering
`the transmission utilizing the system clock is a well known
`50 technique to those skilled in the art. Thus further description
`of such a technique is not deemed necessary.
`Assuming that all installations successful, the application
`software may optionally be deleted from the source system,
`step 406. This is provided for because most application
`55 software licenses are based on the number of workstations
`which may use the software. If the LAN administrator is not
`going to be using that particular application software they
`would not want to count that copy of the application
`software on the LAN administrator systems towards the
`60 number being used.
`The operation of the target workstation is now described.
`Referring back to FIG. 4, at a scheduled time, the remote
`program on the LAN Administrator's workstation executes
`the TSR. At this point the install software will be invoked on
`the target workstation and will save the necessary files
`before the installation takes place, step 407. These files are
`saved so that in the event of an error, e.g. network failure
`
`
`
`5,860,012
`
`7
`during transmission of the application software, the appli(cid:173)
`cation can be readily deinstalled. In any event, the installa(cid:173)
`tion software then looks to see whether a custom personality
`file exists, step 408. If a custom personality file does not
`exist the application is installed based on the default per(cid:173)
`sonality file, step 409 otherwise, the application software is
`installed based on the custom personality file, step 410. The
`operations occurring on the target side require no user
`interaction. The installation package contains the informa(cid:173)
`tion needed to cause the application software to be installed. 10
`The installation of the application software on the target
`workstation is further described with reference to FIG. 6.
`FIG. 6 is a block diagram which shows the installation of the
`application software on a target system. An installer (or
`installation program) 601 receives as input installation 15
`packet 602 and a personality file 603. Using these two files
`as input, an installed application 604 is created on the target
`system. This is accomplished by carrying out the installation
`commands set forth by the PACK format file in accordance
`with parameters set out by the personality file. As noted
`previously, the installer 601 also saves the system and data
`files before the actual installation 605. As noted previously,
`the installer is initiated by a TSR program that is resident in
`the target system.
`
`8
`The installation program processes the PACK format file
`and determines what files are needed and where they are
`placed. It then obtains these files from the compressed
`installation package on the server and places them in the
`appropriate directories. It also modifies system configuration
`files based on the directives provided in the IPACK format
`file. For example in the case of Windows applications, it
`creates a group (if necessary) and icons as dictated by the
`application software.
`Deinstallation of Application Software
`Mechanically, the deinstallation of application software is
`substantially similar to those for the installation of applica(cid:173)
`tion software. Here, a UPACK format file for the deinstal(cid:173)
`lation of application software is generated. As a system
`snapshot has been created on each of the target workstations,
`prior to installation of the application software, this version
`of the various files are restored. A UP ACK format file can be
`generally considered as the reverse of an IPACK format file,
`20 where added files are deleted. The specific instructions in the
`UPACK format file are described in Appendix A
`Thus, a method for installation of application software
`from a LAN Administrator workstation on to a user work(cid:173)
`station on a network is described.
`
`
`
`9
`
`10
`
`5,860,012
`
`-16-
`
`APPENDIX A
`
`DESCRIPTION OF IP ACK FORMAT FILE
`
`
`
`11
`
`5,860,012
`
`12
`
`The IPack Format File
`
`The !Pack format file is a text file that is created by a Windows
`utility program called IPackGen, that executes on your (the LAN
`administrator's) workstation after an installation package is
`created. The !Pack file's input files are created by a program
`called Snapshot before the software is installed locally (during the
`creation of an installation package). These input files contain the
`following:
`
`Complete disk directory structure and contents (with file
`names, date-and-time stamps, file size, and so on)
`
`Saved copies of CONFIG.SYS, and all *.INI and *.BAT
`files.
`
`All Windows Shell (like Program Manager) group names and
`complete contents.
`
`Complete Windows Registration Database information.
`
`To build lhe !Pack format file, the IPackGen program compares
`the input files gathered by the Snapshot program wilh the similar
`information gathered by IPackGen after the software is installed.
`Using the differences, IPackGen creates the !Pack format file.
`
`LANinstall may also create a UPack, or Uninstall file for
`removing installations that have been made previously by
`LANlnstall.
`
`
`
`13
`
`14
`
`5,860,012
`
`Appendix A
`
`. .: IPack Format File
`
`General Format
`
`The IPack Format file consists of 11 groups. presented in no
`particular order. Each group is denoted by a liame enclosed in
`double square brackets. Some of these groups may be empty and
`are listed below in alphabetical order:
`llAdde!FilesJI
`llAdded~
`IIBasePasonalit
`~II
`[DeleledFiles]J
`
`[Deleted~
`[MelgacPenu ialilyll
`[MxlifiedTexlFilesll
`[MxlifiedWlllShell])
`IIQlhelBrolsAnd
`~II
`
`note icon
`
`Although the names are given in mixed case, both case and
`leading whitespace are ignored. (For example,"
`[[ADDEDFiles]]"
`is acceptable.) However.all characters inside the brackets are
`significant, and must match exactly.
`
`Any line whose first character is a semi-colon(";") is considered