throbber
United States Patent 5
`Platt
`
`US005421009A
`5,421,009
`[11] Patent Number:
`[45] Date of Patent: May 30, 1995
`
`
`
`
`
`. file containingalist oor to provide a remote com-
`
`[57]
`ABSTRACT
`[54] METHOD OF REMOTELY INSTALLING
`A method for remote installation of software over a
`SORRECTLY FROM A CENTRAL
`computer networkallows a user to interactively select
`each remote computer system fotsoftware installation,
`Inventor:
`Stephen M.Platt, Ft. Collins, Colo.
`[75]
`putersystems. Before attempting to install the software,
`[73] Assignee: Hewlett-Packard Company, Palo
`the method ensures that the remote system can be
`Alto, Calif.
`reached through the network, that the remote system
`[21] Appl. No.: 171,498
`has the capability of running processes remotely, that
`the remote system has all the commands necessary to
`[22] Filed:
`Dec, 22, 1993
`
`[51] Tint, CVS ooeccescssestssccsescsesssensccccessecenneee GO6F 13/00_Perform theinstallation, that the remote system has the
`[52] WS. CD. ceeccccccssssssnsssseseseseeeeseeees 395/600; 395/200;
`correct hardware and software to support theinstalla-
`395/650; 364/DIG.1
`tion, and that sufficient disk space exists on the remote
`[58] Field of Search ...............0- 395/600, 650, 200|computer system for the installation. The method then
`combinesall files that are being remotely installed into
`[56]
`References Cited
`a single data stream, sends this single data stream over
`U.S. PATENT DOCUMENTS
`the network to the remote computer system, and sepa-
`5,155,847 10/1992 Kirouac et ale sacssssessssoen 395/600 eme datastream into theoriginal files on the remote
`Primary Examiner—Thomas G. Black
`Assistant Examiner—Peter Y. Wang
`
`
`
`16 Claims, 7 Drawing Sheets
`
`.
`
`CENTER)
`
`802
`
`804
`
`LOCATE REMOTE
`SYSTEM THROUGH
`NETWORK
`
`
`
`
`
`
`
`COMBINE FILES
`INTO A DATA
`
`STREAM
`
`
`
`SEND DATA
`STREAM TO
`
`REMOTE SYSTEM
`
`
`
` 8247 EXTRACT FILES
`
`’
`FROM DATA
`STREAM
`
`?
`
`
`
`
`Y
`
`812
`
`HARDWARE
`OK?
`
`PRINT ERROR
`MESSAGE
`
`UPDATE FILES
`
`STORE FILES
`ON REMOTE
`SYSTEM
`
`___
`
`RETURN
`
`Google Exhibit 1044
`Google v. VirtaMove
`
`Google Exhibit 1044
`Google v. VirtaMove
`
`

`

`U.S. Patent
`
`May30, 1995
`
`Sheet 1 of 7
`
`5,421,009
`
`IG.
`
`f F
`
`

`

`U.S. Patent
`
`May 30, 1995
`
`Sheet 2 of 7
`
`5,421,009
`
`
`
`
`
` .COOOOOOOREMHEEAEEREREETDEEHEROROEPEEEOEEEEREDEROODFEESSSEDEOHESTHESESEESOHOLOEEEOSOTHSHFEHEOHHESECESEESESESHOHOSHSEDHSEHSERHEHEHASBOOHEHESSEEEE
`
`
`
`
`
`
`
`90T|
`
`JOVAYZLNI1zZ0ZINSW3S13
`
`YYOMLINvONISSSOOUd
`
`912
`
`ONILVYAadOXINN INS9VHSNd
`
`WS1SAS
`
`Co
`
`902||rTT
`
`AYOWSW
`
`
`
`
`
`ETSSOTHdVuoauvogAs»
`
`AV1dSIG
`
`zcOt
`
`
`

`

`U.S. Patent
`
`May30, 1995
`
`Sheet 3 of 7
`
`5,421,009
`
`TIVLSNI
`
`
`
`gT¢SJAILOVYSLNIote
`
`HOLVE
`
`THVISNI
`
`
`
`porAtP3|gooTMISNT]go
`
`LIX3TIVLSNI
`
`INTMd
`
`OUINI
`
`ZcOL[NEVA
`
`9T¢
`
`rTeZTEgT¢
`yt?CTS
`
`N3ayoS901
`
`Yuva19N3d0O
`
`
`
`Naauos|][oor
`
`
`
`¥va10.||[N3d0
`
`£Oly
`
`
`
`

`

`U.S. Patent
`
`—s
`
`May30, 1995
`
`Sheet 4 of 7
`
`5,421,009
`
`
`
`CLOSE LOG
`FILE
`
` Y
`
`

`

`U.S. Patent
`
`May 30, 1995
`
`Sheet 5 of 7
`
`5,421,009
`
`302
`
`INSTALLATION
`FILES
`
`504
`
`DISPLAY BATCH/
`INTERACTIVE
`MENU
`
`READ MENU
`
`
`310
`
`309
`
` FIND
`
` 506
`MESSAGE
`CHOICE
`
`
`
`INTERACTIVE
`
`NSTALL
`FIG. 6
`
`
`
`DISPLAY ERROR
`
`
`
`
`
`
`BATCH INSTALL
`FIG. 7
`
`
`|
`
`

`

`U.S. Patent
`
`May 30, 1995
`
`Sheet 6 of 7
`
`3,421,009
`
`OPEN LOG
`FILE |
`
`602
`
`
`
`604
`
`
`READ REMOTE
`SYSTEM NAME
`THROUGH
`KEYBOARD
`
`
`
` INSTALL TO
`
`FIG. 6
`
`DISPLAY SYSTEM
`NAMED SYSTEM
`NAMES FROM
`FILE
`|FIG.8
`
`INSTALL TO
`NAMED SYSTEM
`|FIG.8
`
`FIG. 7
`
`702
`
`704
`
`OPEN LOG
`FILE
`
`READ BATCH
`
`
`
`
`
`FILE sa
`
`DisreayTERROR
`
`LIST
`CORRECT?
`
`GET FIRST/
`NEXT NAME
`
`
`
`
`
`
`
`
`

`

`U.S. Patent
`
`May30, 1995
`
`Sheet 7 of 7
`
`5,421,009
`
`ENTER
`
`LOCATE REMOTE
`SYSTEM THROUGH
`
`NETWORK
`
`
`820
`
`COMBINE FILES
`INTO A DATA
`STREAM
`
`802 804
`
`
`SEND DATA
`
`STREAM TO
`
`REMOTE SYSTEM
`
`
`
` 824) EXTRACT FILES
`
`FROM DATA
`
`STREAM
`<FARpWARE
`
`
`
`
`
`Y
`
`7812
`
`HARDWARE
`
`PRINT ERROR
`MESSAGE
`
`RETURN
`
`UPDATE FILES
`
`STORE FILES
`ON REMOTE
`SYSTEM
`
`

`

`1
`
`5,421,009
`
`METHOD OF REMOTELY INSTALLING
`SOFTWARE DIRECTLY FROM A CENTRAL
`COMPUTER
`
`FIELD OF THE INVENTION
`
`This invention relates to computer systems and more
`particularly to software installation within computer
`systems. Even moreparticularly, the invention relates
`to remotely installing software on a computer system.
`
`BACKGROUND OF THE INVENTION
`
`Whensoftwareutilizing a client-server architecture is
`being distributed to customers, the server portion ofthe
`softwareis installed on a server computer system, and
`the client portion of the software is typically installed
`on each client computer system attached to the net-
`work. The installation of the server portion of the soft-
`wareis routine, since usually there is only one, or a very
`few, server computer systems. Installation of the client
`portion of the software is considerably moredifficult.
`Often there are many client computer systems, some-
`times hundreds, and the client portion of the software
`must be installed individually on each machine. One
`prior art method of accomplishing this installation is for
`an installer to manually take the software distribution
`media to each client machine and individually install
`from the media onto that machine. A more efficient
`method is to first install the client portion of the soft-
`ware on the server machine, and then an installer goes
`to each individual client machine, logs on to the ma-
`chine, and manually enters the commands necessary to
`copyandinstall the software, from the network server,
`onto the client machine.
`Another prior art method is to manually place a
`download program on the server and client machines,
`then the download program can be used to automati-
`cally install other client-server software over a network
`connecting the server and client machines. This method
`has the disadvantage that the download program must
`first be manually installed on all the client machines,
`which requires considerable effort when a large number
`of client machines are being served.
`All these methods, however, require considerable
`time to perform the installation, either of the client
`server software or the download program,particularly
`where a large number of client computer systems are
`involved. There is need in the art then for a way of
`installing the client portion of client server software
`onto client machines without requiring that the soft-
`ware or a download program be manually copied to
`each client computer system. The present invention
`solves this and other needsin the art.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`45
`
`30
`
`35
`
`. SUMMARYOF THE INVENTION
`
`It is an aspect of the present invention to provide a
`method of remotely installing software or data files
`over a network onto a remote computer system.
`Anotheraspect of the invention is to remotely install
`software withoutfirst installing a download program on
`the client computer system.
`It is another aspect of the invention to ensure that the
`remote computer system has all needed facilities before
`the remoteinstallation is started.
`A still further aspect of the inventionis to combineall
`files being installed into a single data stream thatis sent
`
`2
`to the remote computer system where thefiles are sepa-
`rated andinstalled.
`The above and other aspects of the invention are
`accomplished in a method that allowsinstallation of the
`client portion of software tobe done automatically over
`the network from the server computer system. The
`method allowsa user to interactively select each client
`computer system for softwareinstallation, or to provide
`a batchfile containing a list of all client computer sys-
`tems. This batch file allows the method to easily install
`software on large numbers of remote computer systems.
`For each client computer system, the method first
`ensures that the system can be reached through the
`network, and then ensures that the client computer
`system allows the server computer system to run pro-
`cesses remotely. It then ensures that the remote com-
`puter system has all the standard operating system com-
`mands necessary to perform theinstallation. By using
`-Standard operating system commands,
`the system
`“bootstraps” the installation of the software into the
`remote computer system, without requiring installation
`of a download program in the remote computer system,
`thus avoiding any manual operations on the remote
`computer system.
`After ensuring that the remote system has the neces-
`sary commands, the method then determines whether
`the hardwareof the remote computer system is capable
`of supporting the remoteinstallation. It further deter-
`mines whether the operating system level of the remote
`computer system can support the installation, and then
`it determines whethersufficient disk space exists on the
`remote computer system for theinstallation.
`If all the necessary standard operating system com-
`mandsare available and spaceis sufficient, the system
`combines all files that are being remotely installed into
`a single data stream.It then sends this single data stream
`over the network to the remote computer system, and
`runs a standard operating system installation program in
`the remote computer system which separates the data
`stream into the original files, updates the files to con-
`form to the remote computer system, and installs these
`files on the remote computer system.
`BRIEF DESCRIPTION OF THE DRAWINGS
`The above and other aspects, features, and advan-
`tages of the invention will be better understood by read-
`ing the following more particular description of the
`invention, presented in conjunction with the following
`drawings, wherein:
`FIG. 1 showsa diagram of a local and a remote com--
`puter system connected by a computer network and
`illustrates the remote installation process;
`FIG.2 shows a block diagram of the local computer
`system that performs the remoteinstall;
`FIG. 3 showsa hierarchy chart of the software mod-
`ules of the invention; and
`FIGS. 4-8 show flowcharts of the software modules -
`of the invention.
`
`wo
`
`65
`
`DESCRIPTION OF THE PREFERRED
`EMBODIMENT
`
`The following description is of the best presently
`contemplated mode of carrying out the present inven-
`tion. This description is not to be taken in a limiting
`sense but is made merely for the purpose ofdescribing
`the general principles of the invention. The scope of the
`invention should be determined by referencing the ap-
`pended claims.
`:
`
`

`

`5,421,009
`
`10
`
`15
`
`25
`
`30
`
`3
`FIG.1 shows a diagram of a computer network hav-
`ing server and client machines. Referring now to FIG.
`1, a server machine 102 has a display element 108 that
`contains a menu display 112. The server computer sys-
`tem 102 is connected to a client computer system 104
`over a network 106. The network 106is typically a local
`area network (LAN), but may be any type of network.
`The present invention comprises software running in
`the network computer system 102 and also in the client
`computer system 104 to install software from the net-
`work computer system 102 over the network 106 to the
`client computer system 104.
`FIG. 2 showsa block diagram of the server system
`102. This same block diagram could also be applicable
`to the client computer system 104. Referring now to
`FIG.2, the computer system 102 contains a processing
`element 202 which communicates to other elements of
`the computer system 102 over a system bus 204. A
`keyboard 206 allows text input to the computer system
`102 and a mouse 210 allows graphical locator input to
`the computer system 102. A graphics display 208 pro-
`vides for graphics and text output to be viewed by a
`user of the computer system 102 and a disk 212 stores
`the software and data of the present invention, as well as
`an operating system and otheruser data ofthe computer
`system 102. A network interface 214 allows the com-
`puter system 102 to transfer data and commands over
`the network 106 (FIG.1).
`A memory 216 contains the unix operating system
`218. Those skilled in the art will recognize that other
`operating systems could also work with the present
`invention. Memory 216 also contains the push agent
`software 220 which comprises the present invention.
`FIG.3 illustrates a hierarchy chart which shows the
`modules of the present invention, and how theyinter-
`connect. Referring now to FIG. 3, main module 302is
`called by the operating system 218 (FIG. 2) whenever
`the user requests remote installation of software. Main
`module 302 presents a menu to the user of the system
`through the graphics display 208 (FIG. 2). If the user
`requests help information, module 302 calls PRINT
`INTRO module 304 to present the help info. When the
`user desires to terminate the remote installation, MAIN
`module 302 calls exit module 308. When the user re-
`quests that remoteinstallation be continued, module 302
`calls INSTALL module 306 which presents another
`menu to the user to allow the user to elect batch or
`interactive installation.If the user elects a batchinstalla-
`tion, INSTALL 306 calls BATCH INSTALL 310
`which calls OPEN LOG 312, CLEAR SCREEN314,
`and the DO INSTALLATIONmodule 316. If the user
`elects an interactive install, INSTALL module 306 calls
`INTERACTIVE INSTALL 318 which calls OPEN
`LOG 312, CLEAR SCREEN 314, and the DO IN-
`STALLATION module 316. The OPEN LOG module
`312 opens the log file so that error messages can be
`written to the log file, and the CLEAR SCREEN mod-
`ule 314 clears the user’s screen in preparation for dis-
`playing a menu. The functions of each of the other
`modules will be described below with respect to FIGS.
`4-8.
`FIG.4 showsa flowchart of the MAIN module 302
`(FIG.3) which is called by the unix operating system
`218 (FIG. 2) when the user requests a remote installa-
`tion of software. Referring now to FIG.4, after entry,
`block 402 displays a menuto the user and requests input.
`This menu has three options, option 1 requests an intro-
`duction, such as help information, option 2 requests an
`
`20
`
`4
`install of the software on the remote system, and option
`3 requests termination of the remote softwareinstalla-
`tion system. After presenting the menu, block 404 reads
`the menu choice from the user, and block 406 deter-
`mines whether the user selected option 1 to print an
`introduction. If the user did select option 1, block 406
`transfers to block 408 which displays a help message
`and then returns to block 402 to re-display the menu.
`If the user did notselect option 1, block 406 transfers
`to block 410 which determines whether the user se-
`lected option 2, to install the remote software. If user
`selected option 2, block 410 transfers to block 412
`which calls FIG. 5 to perform the remote software
`installation. After performing the installation, control
`returns to block 402 to re-display the menu.
`If the user did not’select install, block 410 transfers to
`block 414 which determines whether the user selected
`theexit, option 3, and if not, block 414 transfers back to
`block 402 to re-display the menu.If the user did select
`option 3, block 414 transfers to block 416 which closes
`a log file, which was created during the remote soft-
`ware installation, and then returns to the operating
`system.
`FIG.5 shows a flowchart of the INSTALL module
`306 (FIG.3). This module is called by block 412 of FIG.
`4. Referring now to FIG. 5, after entry, block 502 lo-
`cates the installation files on the server system. Before
`the installation can proceed, theinstallation files must
`be in place on the server computer system. The present
`invention uses a predefined setof installation files for
`each set of remote software being installed. Those
`skilled in the art will recognize that the invention could
`also request that the user specify the installation files
`+ when the remoteinstallation is started.
`35
`Block 504 then determines whether block 502 was
`successful in finding the installation files and if block
`502 was not successful, block 504 transfers to block 506
`which displays an error message to the user indicating
`the missing files and then returns to FIG. 4. If the files
`were found, block .504 transfers to block 508 which
`displays a menu to the user asking whetherthe installa-
`tion should be an interactive installation or a batch
`installation. Block 509 reads a menu choice from the
`user and block 510 determines whether the user re-
`quested an interactive install. If an interactive install
`was requested, block 510 goes to block 512 whichcalls
`FIG. 6 to interactively perform the remote software
`installation and after the installation is complete block
`512 returns to FIG.4.
`If an interactive install was not requested, block 510
`goes to block 514 which determines whether the user
`requested a batchinstall and if so, block 514 transfers to
`block 516 which calls FIG. 7 to perform a batch install.
`After the batch install is complete block 516 returns to
`FIG.4.
`If neither type ofinstall is requested, block 518 deter-
`mines whether the user wishes to terminate the installa-
`tion, and if not, block 518 returns to block 508 to re-dis-
`play the menu. If the user requested termination, block
`518 returns to FIG.4.
`FIG. 6 showsa flowchart of the INTERACTIVE
`INSTALL module 318 (FIG. 3) which is called from
`block 512 of FIG. 5. Referring now to FIG.6, after
`entry, block 602 opens a log file which is used to write
`information about each of the remote installations.
`Block 604 then displays a message requesting that the
`user enter the name of the next system to beinstalled,
`and block 604 reads this name through the keyboard 206
`
`40
`
`45
`
`50
`
`35
`
`65
`
`

`

`5,421,009
`
`25
`
`35
`
`40
`
`45
`
`50
`
`20
`
`5
`6
`(FIG.2). Biock 606 then determines if the user entered
`Server system must be authorized to use the remote shell
`a nameandifso, transfers to block 608 whichcalls FIG.
`in orderto perform theinstallation.If there is no autho-
`8 to install the software onto the system named by the
`rization, block 808 transfers to block 814 to print an
`user. After the software has been installed on that sys-
`error message and return to the user. If the remote shell
`tem, block 608 returns to block 604 to read another
`is present, block 808 transfers to block 810 which inter-
`system name from the user. After the user has remotely
`rogates the remote client computer system to determine
`installed the software on all desired systems, no more
`whether all necessary commandsare available for the
`names are entered so block 606 returns to FIG.5.
`installation. These commands include the “mknod”
`FIG.7 showsa flowchart of the BATCH INSTALL
`command, “bdf’ command, “uname” command, “cat”
`module 310 (FIG.3), whichis called from block 516 of
`command, “delete file(rm)” command, and the update
`FIG.5. Referring now to FIG.7, after entry, block 702
`command used toinstall the files. Each of these com-
`opensa log file in the same mannerof block 602. Block
`mandsis well known to the unix user community and
`704 then displays a message requesting the name of a
`will not be described further. Those skilled in the art
`batchfile, and then reads this name from the keyboard.
`will recognize that other commonly available com-
`A batch file is a file that contains a list of names of
`mands may be needed for a remoteinstallation.
`systems to which the software will be installed. Block
`If all the above described commandsarenotavailable
`706 determines whetherthefile is a valid file, that is,
`on the remote system,the installation cannot proceed so
`block 706 checks the file system on the serveranddeter-
`block 810 transfers to block 814 whichdisplays an error
`mines whether it can locate the file. Block 706 also
`message and returns.If all these commandsare avail-
`removes blank lines and comments from the file and
`able, block 810 transfers to block 812 which interro-
`determines whetherthe file contains any names. If the
`gates the remote system to determinethe type of hard-
`file cannot be located, or contains no remote system
`ware used in the remote system. The present invention
`names, block 706 goes to block 708 which displays an
`can be limited to installing only on certain hardware,
`error message and then returns to FIG.5.
`and block 812 determines whether the hardware of the
`If the file is valid, block 706 goes to block 710 which
`client computer system is compatible. Although this
`displays the system names foundin thefile on the graph-
`type oflimitation is not necessary for the present inven-
`ics display 208 (FIG.2), so that the user of the system
`tion, it provides a method ofinsuring a successful instal-
`knows wherethe software will be installed. Block 710
`lation. If the hardware is not compatible, block 812
`also asks the user to verify that the list is correct, and
`transfers to block 814 which displays an error message
`block 711 reads the user input and determines whether
`and returns. If the hardware is compatible, block 812
`the user verified that thelist is correct. If the user indi-
`transfers to block 816 which interrogates the remote
`cates that the list is not correct, block 711 returns to
`system to determine the operating system level. In the
`FIG.5. If the user indicates that thelist is correct, block
`711 goes to block 712. Block 712 then gets the first or
`same manner as block 812 checked the hardware and
`limits the installation to certain types of hardware,
`next namefrom thebatchfile, and block 714 calls FIG.
`block 816 limits the installation to certain types and
`8 to install the software on the system identified by the
`levels of operating systems. As described above this is a
`name from the batch file. Block 716 then determines
`limitation that insures a smooth installation, but is not
`whether there are more names in thefile, and if there
`required by the present invention. If the operating sys-
`are, transfers back to block 712 to get the next name
`tem level is not supported, block 816 transfers to block
`from the file and install the software on that remote
`814 which prints an error message and returns. If the
`system. After all names have been read from thefile,
`block 716 returns to FIG.5.
`operating system level is compatible, block 816 transfers
`FIG. 8 shows a flowchart of the DO INSTALLA-
`to block 818 which determines whether the remote
`TION block 316 from FIG. 3, which is called from
`computer system has sufficient disk space to allow for
`block 608 and also from block 714 of FIGS. 6 and 7
`the installation. In the present invention, the amount of
`disk space required forinstallation is defined by the user
`respectively. Referring now to FIG. 8, after entry,
`block 802 writesalist of thefiles to install for input to
`of the system, however, those skilled in the art will
`the installation program. Thislist offiles will be used in
`recognize that the amountof disk space could be dy-
`block 820 to combinethefiles into a single data stream.
`namically determined from the amountof space used by
`Thefile list may also include commandsto cause other
`the files on the server computer system. Determining
`changes whenthe softwareis installed, such as setting
`the disk space available on the client computer system is
`file permissions or deleting existing files from the client
`donebyissuing a commandthrough the remote shell to
`computer system. Block 804 then sends a message
`display the amountof disk space available in the remote
`through the network in an attempt to locate the client
`system. If insufficient disk space is present on the re-
`computer system where the software will be installed.
`mote system, block 818 transfers to block 814 which
`Block 806 determines whether the client computersys-
`prints an error message. and returns.
`tem could be found through the network, and if not,
`If the remote system does have sufficient disk space,
`block 806 transfers to block 814 which prints an error
`block 818 transfers to block 820 which uses thefile list
`message and then returns to its caller. The means of
`prepared in block 802 to combineall the files being
`locating a remote system is a unix network command
`installed on the remote system into a single data stream.
`called “ping”. This command is well known in unix
`By combining thefiles into a single data stream, a con-
`systems and will not be described further. Similar com-
`siderable performance improvement is achieved over
`mands exist in most local area network systems.
`individually transferring each file to the remote system.
`If the remote client computer system was located,
`The files are combined by concatenating the files to-
`block 806 transfers to block 808 which interrogates the
`gether, and including any otherinstallation commands
`remote system to determine whether the server com-
`necessary to correctly install the software. Optionally,
`puter system has authorization to execute commands on
`thefiles could be compressed as well to improve perfor-
`mance.
`a remote shell available in the remote system. The
`
`55
`
`60
`
`65
`
`

`

`5,421,009
`
`7
`After combining the files into a single data stream,
`block 822 sends this data stream to the remote system
`and block 824 runs the update program described above
`to extract thefiles from the data stream and block 826
`updates the files to conform to the remote computer
`system. This updating includes, for example, modifying
`startup files so the newly installed software runs auto-
`matically when the remote computer system is started;
`updating security files; changing file permissions; etc.
`After updating the files, block 828 stores the files on
`the remote system as well as performing other software
`installation commands, suchas deleting files that are no
`longer used. Block 828 then returns, since the installa-
`tion for this remote computer system is complete.
`Asa performance improvement, block 822 may send
`the data stream to a pipe in the remote computer sys-
`tem, and block 824 may read the data stream from the
`pipe before performing the separation. Pipes are well
`known methodsoftransferring data from one process to
`another within an operating system, and perform in a
`manner similar to a temporary file. By using the pipe,
`the process that receives the data stream into the remote
`computer system, and the process that separates the
`data stream into the individual files can be separate
`processes that run concurrently, thus improving perfor-
`mance.
`
`the
`Those skilled in the art will recognize that
`methodofthe present invention is not limited to install-
`ing software on a client computer system from a server
`computer system, but could be used to install any type
`of files on a client computer system from a server com-
`puter system.
`Having thus described a presently preferred embodi-
`ment of the present invention, it will now be appreci-
`ated that the aspects of the invention have been fully
`achieved, and it will be understood by those skilled in
`the art that many changes in construction and circuitry
`and widely differing embodiments and applications of
`the invention will suggest themselves without departing
`from the spirit and scope ofthe present invention. The
`disclosures and the description herein are intended to be
`illustrative and are not in any sense limiting of the in-
`vention, more preferably defined in scope by the fol-
`lowing claims.
`Whatis claimedis:
`1. A programmatically performed within a central
`computer system, for installing software to a remote
`computer system through a computer network, the
`method comprising thestepsof:
`(a) requesting a list identifying at least one remote
`computer system from a user of the central com-
`puter system;
`(b) selecting one previously unselected remits com-
`putersystem from the list identifying at least one
`remote computer system;
`(c) stopping the method when all remote computer
`systems have been previously selected from thelist
`identifying at least one remote computer system;
`(d) sending a general response request to the selected
`remote computer system to determine whether the
`selected remote computer system can be contacted
`through the computer network, and transferring to
`step (b) if the selected computer system cannot be
`contacted;
`(e) determining whether the selected remote com-
`puter system allows remote performing of com-
`mands, and transferring to step (b) if the selected
`
`8
`computer system does not support remote perform-
`ing of commands;
`(f) remotely performing a commandtolist all other
`commands in the remote computer system and
`examining the list to determine whether the se-
`lected remote computer system contains all stan-
`dard operating system commands necessary to
`install the software on the selected remote com-
`puter system, and transferring to step (b) if the
`selected computer system does not contain all the
`standard operating system commands;
`(g) remotely performing a commandtolist available
`disk space on the remote computer system and
`examining the list to determine whether the se-
`lected remote computer system contains an amount
`of free disk space required to install the software,
`andtransferring to step (b) ifthe selected computer
`system does not have the amountof free disk space;
`(h) combiningall individual files contained within the
`software into a single data stream;
`@transferring the single data stream to the remote
`computer system; and
`(j) separating the single data stream into the individ-
`ual files to complete the installation.
`2. The computer implemented method of claim 1
`wherein step (a) further comprises the steps of;
`(al) requestinga file containingthelist identifying at ©
`least one remote computer system from the user of
`the method; and
`(a2) reading thelist from thefile.
`3..The computer implemented method of claim 1
`wherein step (a) further comprises the step of requesting
`identification of each remote computer system individu-
`ally from the user of the method.
`4. The computer implemented method of claim 1
`wherein step (f) further comprises thestep of:
`(fi) remotely performing a commandtolist a level of
`operating system software contained in the remote
`computer system, and transferring to step (b) if the
`level of operating system software is an incorrect
`level for the software being remotely installed.
`5. The computer implemented method of claim 1
`wherein step (f) further comprises the step of:
`(f1) remotely performing a commandto list a type
`and level of electronics contained in the remote
`computer system, and transferring to step (b) if the
`type and level of electronics is incorrect for the
`software being remotely installed.
`6. The computer implemented method of claim 1
`wherein the combining of step (h) comprises concate-
`nating the individual files together to form a single data
`stream.
`7. The computer implemented method of claim 1
`wherein step (i) further comprises the following step
`(iD) and wherein step (j) further comprises the following
`step (jl):
`(1) transferring the single data stream to a temporary
`file in the remote computer system; and
`(jl) reading the single data stream from the tempo-
`rary file and separating the single data stream into
`individual files to complete the installation.
`8. The computer implemented method of claim 7
`wherein the temporary file comprises a pipe.
`9. A computer implemented method programmati-
`cally performed within a central computer system for
`installing software on a remote computer system by
`installing and updating a plurality of data files on the
`
`20
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`

`

`5,421,009
`
`10
`(j) separating the single data stream into the plurality
`of data files to complete theinstallation.
`10. The computer implemented method of claim 9
`wherein step (a) further comprises the steps of:
`(al) requesting a file containingthelist containing at
`least one remote computer system from the user of
`the method; and
`(a2) reading the list from thefile.
`11. The computer implemented method of claim 9
`wherein step (a) further comprises the step ofrequesting
`identification of each remote computersystem individu-
`ally from the user of the method.
`12. The computer implemented method of claim 9
`wherein step (f) further comprises the step of:
`(fl) remotely performing a commandtolist a level of
`operating system software contained in the remote
`computer system, and transferring to step (b) if the
`level of operating system software is not correct
`for the plurality of data files being remotely in-
`stalled.
`13. The computer implemented method of claim 9
`wherein step (f) further comprises the step of:
`(f1) remotely performing a commandtolist a type
`and level of electronics contained in the remote
`computer system, and transferring to step (b) if the
`type and level of electronicsis not correct for the
`software being remotely installed.
`14. The computer implemented method of claim 9
`wherein the combining of step (h) comprises concate-
`nating the individual files together to form a single data
`stream.
`18. The computer implemented method of claim 9
`wherein step (i) further comprises the following step
`(il) and wherein step (j) further comprises the following
`step (jl):
`(il) transferring the single data stream to a temporary
`file in the remote computer system; and
`(jl) reading the single data stream from the tempo-
`rary file and separating the single data stream into
`the pl

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