`a2) Patent Application Publication co) Pub. No.: US 2002/0156877 Al
`(43) Pub. Date: Oct. 24, 2002
`
`Lu etal.
`
`US 20020156877A1
`
`(54) SYSTEM AND METHOD FOR THE
`DUPLICATION OF A SOFTWARE SYSTEM
`ONTO AN APPROPRIATE TARGET
`COMPUTER
`
`(76)
`
`Inventors: James C. Lu, Andover, MA (US);
`Robert B. McCown, Concord, MA
`(US); Ajay Pydah, Burlington, MA
`(US); Ganesh Rangarajan, Westwood,
`MA (US)
`
`Correspondence Address:
`CESARI AND MCKENNA, LLP
`88 BLACK FALCON AVENUE
`BOSTON, MA 02210 (US)
`
`(21) Appl. No.:
`
`09/840,658
`
`(22)
`
`Filed:
`
`Apr. 23, 2001
`
`Publication Classification
`
`(51) Unt. C7 cece GO6F 15/177; GOOF 9/445
`(52) US. Ch.
`cascesscsssssssssstscrsssstseeeretne 709/221; 717/178
`
`(57)
`
`ABSTRACT
`
`Asystem and method for duplicating the software system of
`a source computer and installing the duplicated software
`system on a plurality of target computers. Asource computer
`is selected and an image of the software system and the
`hardware configuration of the source computer is made. A
`plurality of target computers that are hardware compatible
`with the source computer are selected for installation of a
`copy of the software system of the source computer. The
`software system of the source computer is duplicated based
`on information stored in the image of the source computer.
`The duplicated software system is then installed on each of
`the selected target computer systems.
`
`DEPLOYMENT CONSOLE
`
`110 120
`
`365
`480:
`
`355
`
`GET SOURCE IMAGE AND
`REMOTE LOCATIONS/NODES
`
`STORAGE
`“ENGINE
`
`INFORMATION
`
`
`
`
`
`190
`
`|-+440
`
`PACKAGING ENGINE wy .
`
`
`
`IMAGING & PACKAGING
`360
`SERVER
`
`
`LIST OF SOURCE MACHINE
`IMAGES AND REMOTE
`
`
`LOCATIONS/NODES
`
`EXTERNAL
`
`
`SEND HARDWARE
`INTERFACE
`
`INFORMATION/RETURNLIST
`
`OF TARGET SYSTEMS
`
`
`THAT MATCH
`
`
`
`INSTALLATION ENGINE
`INTELLIGENT INSTALLATION
`SERVER
`
`EXTERNAL
`INTERFACE
`
`LOCK EACH
`TARGET SYSTEM
`ONLIST
`
`COMPILE AND
`
`SEND LIST OF
`MATCHING
`TARGET SYSTEMS
`
`STORAGE
`SUBSYSTEM
`
`RETRIEVE LIST OF
`TARGET SYSTEM
`
`
`
`Google Exhibit 1020
`Google v. VirtaMove
`
`Google Exhibit 1020
`Google v. VirtaMove
`
`
`
`Patent Application Publication Oct. 24,2002 Sheet 1 of 5
`
`US 2002/0156877 Al
`
`
` :[+]=]Fei
`
`INSTALLATION
`INTELLIGENT
`SERVER
`=> —==== DISKARRAY
`—=>
`
`=2 «fill
`
`wx
`||
`
`S
`CC~«dzd
`“I
`
`
`
`
`
`——}—=[—>[—>——
`DISKARRAY
`170
`INTERNETORPRIVATENETWORK
`
`
`DISKARRAY IMAGINGANDPACKAGINGSERVER
` FIG.1
`
`SENDINGNODE
`COMPUTER
`
` DEPLOYMENT
`130 CONSOLE
`
` COMPUTER
`
`a
`oO
`
`©~<i
`
`al
`
`o
`
`0
`
`80
`1
`
`
`
`LU
`5
`
`HS
`we
`
`160
`
`aQ
`
`150
`
`
`
`
`
`|
`
`
`
`
`
`
`
`Patent Application Publication Oct. 24,2002 Sheet 2 of 5
`
`
`SOURCE COMPUTER SYSTEM DEPLOYMENT CONSOLE
`
`US 2002/0156877 Al
`
`
`
`STORAGE
`
`140
`SUBSYSTEM
`
`
`READ DATABASE
`OF SOURCE
`MACHINES
`
`
`
`
`
`
`
`LNSWAO1d30
`WSALSASLGOYVL|=TWNYSLX3
`
`SWALSASLA9NVL
`
`NOLVTIVLSNILNSSITISLNI
`LSi1NOJOVAYSALNI
`
`ANISNANOLLVTIVLSNI
`
`AOLSISASIYLSY
`
`WALSASLA9uv1
`sOVUOISNNOSL349
`
`ANIONS:ONYSOV308
`SJOVSYALNIJUVMCYVHGNIS
`
`ONIOVAOVd3ONIOVMI
`
`ANISNAONIOVAOVd
`
`LADYVLJOLSINYntay/NOLLVAOSNI
`SWALSAS
`
`WALSASENS
`
`ADVYOLS
`
`WNdSLX4
`
`
`
`SWALSASLADYVL
`
`Q3LO3TSS40LSI
`
`ANIHOVWSOYNOSJOLSI
`
`ALOWSYONVSS9VWI
`
`SACON/SNOILVOO7
`
`Patent Application Publication
`
`Oct. 24,2002 Sheet 3 of 5
`
`US 2002/0156877 Al
`
`HOVA4001
`
`CNVFTIdWOO
`
`401S]GNSS
`
`ONIHOLVA
`
`YSAYSS
`
`YAAYAS
`
`ATOSNOO
`
`HOLYLVHL
`
`
`
`SACON/SNOILVOO7SLOWSY
`
`NOILVAINOANI
`
`
`
`Patent Application Publication
`
`Oct. 24,2002 Sheet 4 of 5
`
`US 2002/0156877 Al
`
`
`
`SalsaLdiYOS
`
`vyOls
`
`DWsIDAdSWALSASSdlNOUSFOVAYSLNI
`
`
`
`
`LAOYVLSLVIYD|]314LSANOSYWNYALXS
`
`
`YAAYSSNOILVTIVLSNILNSSITISLNI
`quindS34SASLSYGNVLSI7314WOudFila149WOYSAldLAD
`NIaid30Vid]|SASIMLSYOVNIOE|
`
`VayJOVIa4NOLLVWYOSNIJOYuNOS
`VauVJOVI_Ist]4dNIGSLs
`
`
`
`
`WALSASONILVaad0ADVYOLSAGONONIGNAS
`
`
`
`:JASIMLIY
`
`YALNAWOD
`
`WNYALXS
`
`SOVAYSLNI
`
`NOILVWYO-NI
`
`
`
`YSAUSSONIOVHOVd8ONIOVWI
`
`ddSSAD0Ud
`
`ISANOFY
`
`
`
`
`
`
`
`
`Patent Application Publication
`
`Oct. 24,2002 Sheet 5 of 5
`
`US 2002/0156877 Al
`
`
`
`SNLVLSSSA0O0Ud
`
`GaASOSu/SLSSNOAY
`
`
`
`4ONOILLV9O1GNSS
`
`
`
`VauvONIDVUI
`
`
`
`MAAUASWALSASS14
`
`SAOVIYSLNI
`
`YsAYSS
`
`
`
`LSNILNSOITTSLNI
`
`WNUSLXa
`
`NOILVTIV,d8ONISVII
`
`AIOSNOD
`
`SNAWAO1d30
`
`WNdYALXS
`
`SOVIYNSLNI
`
`
`
`SNLV.LSSSA00Ud
`
`GSAIS0Su/SLSSNDAY
`
`
`
`YSAYASONIOVHOV
`
`SOVSYSLNI
`
`WALSASLOOGSY
`
`
`
`JOVYOLSWOTSZNVLLINI
`
`SOVYOLS O6109S
`
`AYOLS/AAAINLAYTANYANIHL
`sailsTWNYALXSSSA00udLOOASIGOW
`
`WALSASENSWALSASHALAdWOOLaDuvL
`
`
`
`
`G‘Sls
`
`FJOVYOLSW901OLSLM
`
`SadSAStLAa
`
`
`
`SNLVLSGNAS
`
`
`
`
`
`WALSAS3114LNNOW
`
`
`
`
`
`
`
`
`
`
`US 2002/0156877 Al
`
`Oct. 24, 2002
`
`SYSTEM AND METHOD FOR THE DUPLICATION
`OF A SOFTWARE SYSTEM ONTO AN
`APPROPRIATE TARGET COMPUTER
`
`BACKGROUND OF THE INVENTION
`
`{0001]
`
`1. Field of the Invention
`
`‘lhe present invention relates generally to installing
`[0002]
`software on computer systems, and more specifically, to a
`system and method for duplicating a software system and
`installing that software system on a target computer.
`
`[0003]
`
`2. Background Information
`
`[0004] Over the years, the number of operating systems
`and software applications/packages that run on various
`hardware platforms has dramatically increased. Software
`companies have built very complex software that runs on
`multiple physical hardware boxes that communicate with
`cach other. This assortment of software includes various
`
`operating systems, as well as applications such as database
`systems, accounting systems, word processors and spread-
`sheets.
`
`[0005] Some of this software may be installed and run
`from a client computer such as the Personal Computer (PC).
`Other software may be centrally hosted by a Server and used
`by a number of Clients. For example, a typical “Web”
`application may have various pieces of software installed
`across many components such as a web server, an applica-
`tion server, and a database. In aggregate, these components
`typically comprise the Server. In a “Web” application envi-
`ronment, Clients would log into this Server through the
`Internet and run the various applications that are provided by
`the Server.
`
`[0006] While it is good that a user has a wide choice of
`software to choose from, this increase in the number of
`choices has created a numberof problems for administrators
`whoarc responsible for installing software on any number of
`computer systems.
`
`instance, administrators who manage the
`[0007] For
`installation of software on a large number of computer
`systems often must keep track of each computer system’s
`hardware configuration to ensure that the hardware configu-
`ration is adequate to support
`the software that
`is to be
`installed. Keeping track of this information may become
`quite involved, depending on the number of computer sys-
`tems being managed. One way to manage the complexities
`of keeping track of this information is to create a database.
`However, creating and maintaining a database is often
`arduous and time-consuming and maybe a waste of valuable
`IT resources in particular situations.
`
`{0008] Another problem administrators often face is the
`task of manually installing software on a system, either
`remotely or locally. Methods that are often used to install
`software include:
`
`Install the operating system, then install the
`[0009]
`software packages and applications individually;
`
`then use the
`the operating system,
`Install
`[0010]
`application specific installation setup routines to
`install the applications from a shared network drive;
`
`then copy the
`the operating system,
`Install
`(0011]
`application software over a network, using a file
`
`copy program such as File Transfer Protocol (FTP),
`and install the application software from a remote
`location;
`
`[0012] Use local tools to capture an operating system
`and applications image locally and then “push” the
`image to the computer system where the imageis to
`be installed;
`
`Install the operating system and use a third
`[0013]
`party vendor product to push the application soft-
`ware to the computer system where the application
`software is to be installed.
`
`[0014] As can be seen, these methods require a great deal
`of manual intervention on the part of the administrator and
`thus are often time-consuming and error prone. The mag-
`nitude of these problemsgreatly increase if a large number
`of computer systems are to be managed.
`
`{0015] With the arrival of the Internet, as well as with
`global diversification of enterprises, the remote installation
`and management of a software system has become even
`more complex. Enterprises are constantly struggling to offer
`standardized software environments; yet it is not possible to
`do so within a distributed enterprise easily.
`
`Itis therefore desirable to provide a system that can
`[0016]
`capture the hardware and software configuration of a source
`computer system, create an image based on this captured
`information, determine what target systems can support the
`image, and install and configure that image on those target
`systems, automatically.
`
`SUMMARY OF THE INVENTION
`
`[0017] Asoftware systemis defined as any combination of
`software that
`includes, but
`is not
`limited to, operating
`systems, applications and data files.
`
`[0018] Network connectivity is defined as a connection
`that enables communication between entities, such as but
`not limited to, a connection that enables communication
`between computer systems. This connection may be of any
`form of communication medium including, but not limited
`to, point-to-point hardwired connections, wireless connec-
`tions, and networked connections, among others.
`
`[0019] An imaging area is defined as an area on a storage
`subsystem that contains an exact duplicate of the local disks
`of a source computer, script files, and operating-system-
`specific information.
`
`invention relates to a system and
`[0020] The present
`method for duplicating the software system of a source
`computer system and installing this duplicated software
`system onto a plurality of target computer systems.
`
`In the preferred illustrative embodiment of the
`[0021]
`invention, the system described is comprised of two major
`components, a Sending Node (SN) component and a Receiv-
`ing Node (RN) component.
`
`[0022] The Sending Node component comprises a deploy-
`ment console, an imaging and packaging server (IPS), a
`storage subsystem, and a source computer system. The
`Receiving Node component comprises an intelligent instal-
`lation server (ITS), a storage subsystem, and a plurality of
`target computer systcms.
`
`
`
`US 2002/0156877 Al
`
`Oct. 24, 2002
`
`[0023] A packaging engine is a subset of the Sending
`Node. A packaging engine comprises the IPS andthe storage
`subsystem of the Sending Node. An installation engine is a
`subset of the Receiving Node. An installation engine com-
`prises the IIS and the storage subsystem of the Receiving
`Node.
`
`[0024] The deployment console provides a user interface
`to the overall software duplication and installation process.
`From the deployment console, a user can select a source
`computer system, create an image of that source computer
`system, deploy that image to an installation engine, select a
`plurality of target computer systems associated with the
`installation engine anddirectthe installation engineto install
`a copy of the software system, represented in the deployed
`image, onto each of the selected target computer systems.
`
`[0025] The imaging and packaging server (IPS) is essen-
`tially the central controlling point of the Sending Node
`component. The IPS basically creates images of source
`computer systems and deploys those images to the Receiv-
`ing Node component.
`It interfaces with the deployment
`console, the storage subsystem at the Sending Node, and the
`intelligent installation server (IIS) at the Receiving Node.
`[0026] The storage subsystem at the Sending Node pro-
`vides data storage and retrieval for the IPS.
`
`‘lhe source computer system is the computer sys-
`[0027]
`tem whose software system is to be installed on the target
`computer systems.
`
`[0035] The IPS notifies the IIS of the user’s selection. The
`IIS gathers the files that make up the source computer’s
`software system and builds an image of this system in an
`imaging area on the IIS’s storage subsystem. The IIS com-
`presses and archives the imaging area along with scriptfiles,
`that are used to configure the software on the target com-
`puter, into an archive file. The IIS sends this archivefile to
`the target computer. The target computer then installs the
`software system contained in the archivefile.
`
`[0036] When a target computer has completed its instal-
`lation and has booted and configured the new software, it
`notifies the IIS that it has completed the installation. The HS
`in turn notifies the IPS that the installation has completed.
`The IPS sends the completed status to the deployment
`console for display.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`[0037] The detailed description of the preferred illustra-
`tive embodimentof the invention below refers to the accom-
`
`panying drawings, of which:
`
`[0038] FIG. 1 is a block diagram of a system that may
`advantageously be used to implementthe preferred illustra-
`tive embodiment;
`
`FIG.2 is a detailed block diagram of the process
`[0039]
`of creating an image of a source computer;
`
`FIG.3 is a detailed block diagram of the process
`[0040]
`of choosing a target computer system;
`
`[0028] The IIS is the central controlling point on the
`Receiving Node. The IIS basically duplicates the source
`computer system’s software at the Receiving Node and aids
`in the installation of this software system on the selected
`target computers. The IIS interfaces to the IPS, the storage
`subsystem on the Receiving Node andaplurality of target
`[0042]
`FIG.5 is a detailed block diagram of the process
`computer systems.
`of installing an image on a target computer.
`
`FIG.4 is a detailed block diagram of the process
`[0041]
`of creating an image of the source computer at a Receiving
`Node; and
`
`the Receiving Node
`[0029] The storage subsystem at
`provides data storage and retrieval for the IIS and the target
`computer systems.
`
`[0030] The target computer systems are those computer
`systems that are to install a copy of source computer’s
`software system.
`
`In accordance with the preferred illustrative
`{0031]
`embodimentof the present invention, the method for dupli-
`cating the software system of a source computer system onto
`a target computer system as employedby the present inven-
`tion can be summarized as follows.
`
`DETAILED DESCRIPTION OF AN
`ILLUSTRATIVE EMBODIMENT
`
`In accordance with the practices of persons skilled
`[0043]
`in the art of computer programming, certain aspects of the
`present invention are described as a method that can be
`implemented in the form of computer readable and execut-
`able program code. Typically, this program codeis stored in
`the main memoryof the computer system that is executing
`this code. However, it will be apparentto those skilled in the
`art that other memory means may be used for storing and
`executing the program instructions pertaining to the
`described mechanism and technique.
`
`[0032] At the deployment console, the user selects the
`source computer whose software system is to ultimately be
`duplicated onto a target computer. The IPS creates an image
`FIG.1 is an overall block diagram of the preferred
`[0044]
`of the source computer system and saves it in its local
`embodimentof the present invention comprising a Sending
`storage subsystem.
`Node (SN) 100 that connects to a Receiving Node 160
`through a network 150. The network 150 may comprise any
`[0033] Later, the user selects the image, as well as one or
`form of communication medium including, but not limited
`more Receiving Nodes that are to receive the image, and
`to, point-to-point hardwired connections, wireless connec-
`directs the IPS to deploythe image to the Receiving Nodes.
`tions, and networked connections, among others.
`At each Receiving Node, the IIS compilesalist of all target
`computers known to the Receiving Node that are hardware
`compatible with the source computer system and sends this
`list to the IPS for display on the deployment console.
`
`From this list, the user selects the target computers
`[0034]
`that are to install a copy of the source computer’s software
`systcm.
`
`[0045] The Sending Node comprises a deployment con-
`sole 110, a source computer system 130, a storage subsystem
`140, and an imaging and packaging server (IPS) 120. The
`Receiving Node comprises a plurality of target computer
`systems 170, an intelligent installation server (ITS) 180, and
`a storage subsystem 190.
`
`
`
`US 2002/0156877 Al
`
`Oct. 24, 2002
`
`[0046] The deployment console is a software interface that
`interfaces with the IPS. This software interface may be a
`Graphical User Interface (GUI), such as Win32, a web
`browser, or other form ofinterface. In the case of a GUI, the
`interface runs on a computer system and preferably connects
`over a network to the IPS using a socket interface. In the
`case of a browser, the browser runs on a computer system
`and preferably acts as a web client that connects over a
`network to a web serverthat is part of the IPS.
`
`[0047] The source computer system may be any type of
`computer system, such as a workstation, a personal com-
`puter (PC), a server, or the like, that has associated with it
`a storage subsystem (not shown) on which software and data
`for use in the operation of the computer is stored. The
`storage subsystem of the source computer system is com-
`prised of disks, tapes or other media that is used for storing
`information, locally. The source computer preferably has
`network connectivity to the IPS.
`
`[0048] The software system of the source computer com-
`prises all the executable and data files that are installed on
`the source computer’s storage subsystem. These executable
`and data files include, but are not limited to, those files that
`comprise the operating system, applications, and files that
`have been created by the operating system, by the applica-
`tions and by users.
`
`[0049] The source computer runs an imaging client. The
`imagingclient is a software application that runsas a process
`on the source computer. The imaging client handles the
`communication between the source computer and the IPS.
`
`[0050] The IPS is a server computer system thatacts as the
`central controlling point at the Sending Node. It preferably
`has network connectivity to the deployment console, the
`source computer, and the storage subsystem and the Receiv-
`ing Node. The IPS performs such functions as interfacing
`with the deployment console, creating an image of the
`source computer system, handling the communications
`between the Sending Node component and the Receiving
`Node component, and interfacing with the storage sub-
`system of the Sending Node component.
`
`[0051] The storage subsystem 140 of the Sending Node
`componentis a data storage system that enables the IPS to
`save and retrieve data. The storage subsystem mayconsist
`of, though is not limited to, local disk storage or a storage
`engine coupled to a disk storage network.
`
`[0052] At the Receiving Node, the target computer sys-
`temsare those systemsthat, if selected, are to receive a copy
`of the source computer’s software system. A target computer
`system may be a PC or any other computer system, such as
`a workstation or a server, that is hardware compatible with
`the source computer system. The target computer systems
`preferably have network connectivity to the IIS.
`
`[0053] Each target computer is configured to run a thin-
`kernel rather than a regular operating system. The thin-
`kernel is a software application that handles the installation
`of the source computcr’s software system on the target
`computer. The thin-kernel, among other things, initializes
`and partitions the drives on the target computer, handles
`communication between the target computer and IIS during
`the installation process, modifies various system startup
`files, modifies the boot record to boot the new operating
`system, and reboots the target system.
`
`[0054] The intelligent installation server (IIS) is the cen-
`tral controlling point at the Receiving Node. It preferably
`has network connectivity to the IPS, the target computer
`system and the storage subsystem at the Receiving Node.
`The IIS communicates with both the IPS and the target
`computer systems. The IIS is primarily responsible for
`creating an imaging area and packaging the imaging area
`along with scriptfiles and sending this packageto the target
`computer systems for installation on those systems.
`
`[0055] The storage subsystem 190 of the Receiving Node
`is a data storage system that provides data storage and
`retrieval capabilities to the IIS. This data storage subsystem
`preferably consists of, though is not limited to, local disk
`storage or a storage engine coupled to a disk storage
`network.
`
`[0056] The overall duplication process can be broken
`down into four main steps. First, an image of the software
`system on the source computer systemis created and stored
`at the Sending Node. Second,
`the user selects the target
`computer systems that are to receive a copy of the source
`computer system’s software system. Third, eachinstallation
`engine associated with each target computer system receives
`a copy of the source computer’s software image and recre-
`ates the software system at the installation engine. [‘ourth,
`each installation engine directs each selected target system
`associated with the installation engine to install the recreated
`software system.
`
`FIG. 2 illustrates in further detail the process of
`[0057]
`creating an image of the source computer. An image pref-
`erably consists of the hardware configuration and the oper-
`ating-system-specific
`configuration information of
`the
`source computer system, as well asa list of all the files on
`the source computer system’s storage subsystem.
`
`From the deployment console 110 the user begins
`[0058]
`the image creation process by logging into the imaging and
`packaging server (IPS) 120 and requesting a list of source
`computer systems. ‘Ihe IPS processesthis request by retriev-
`ing from a database all of the records for the source
`computer systemsthat are knownto the IPS. In one embodi-
`ment of the invention the database resides on the storage
`subsystem 140. The IPS then compiles a list of source
`computers from the information stored in these records and
`sends this list to the deployment console for display.
`
`Information that is stored in the record associated
`[0059]
`with the source computer includes, but is not limited to, the
`hostname of the source computer and the network address,
`such as IP address, of the source computer. In one embodi-
`ment of the invention, the database is created by manually
`entering the record information for each source computer
`into the database.
`
`[0060] At the deployment console, the user then selects a
`source computer whose imageis to be created from thelist
`of source computers that are displayed. This selection is
`communicated to the IPS. Using the record information for
`the selected source computer the IPS establishes a network
`connection to the imaging client on the source computer
`system 130.
`
`[0061] The IPS requests from the imaging clicnt informa-
`tion about the source computer system’s disk subsystem, as
`well as the hardware configuration and the operating-sys-
`tem-specific configuration of the source computer system.
`
`
`
`US 2002/0156877 Al
`
`Oct. 24, 2002
`
`[0062] The imaging client processes this request by com-
`piling a list of all files that are installed on the source
`computer system, information about the disk partitions on
`the source computer’s storage subsystem, a list of all the
`hardware attached to the computer system, and a list of
`operating-system-specific configuration information.
`
`particular installation engine includes, butis not limited to,
`the hostname and the network address, such as IP address,
`of the intelligentinstallation serverat the installation engine.
`In one embodimentof the invention, the database is created
`by manually entering the information for each installation
`engine into the database.
`
`[0063] The information about the source computer sys-
`tem’s disk subsystem preferably consists of a list of all the
`files that are installed on the source computer system,as well
`as disk partition information. For eachfile, the list desirably
`includes the full file name of the file and file attribute
`information associated with the file. The full file name
`desirably includes, but is not limited to, the full path name
`of the file including the names of any directories and
`subdirectories under which the file resides, as well as the
`file’s name and any file name extensions. Thefile attribute
`information associated with the file desirably includes, butis
`not limited to, such information as the size of thefile, file
`version, ownership,
`last modified date and protection
`attributes such as read, write and execute access.
`
`[0064] The disk partition information desirably includes,
`butis not limited to, the name ofthe partition,the typeoffile
`system associated with the partition, the name of the disk
`drive associated with the partition, the name of the mount
`point associated with the partition, the device name associ-
`ated with the partition, as well as the size of the partition.
`
`[0065] The list of hardware desirably includes the entire
`hardware configuration of the source computer system. The
`list includes, but is not limited to, such information as the
`type of processor, the numberof processors, the size of main
`memory, the number and types of disks and their sizes, and
`the types and versions of I/O cardsthat are installed in the
`system, among other information.
`
`[0066] The operating-system-specific configuration infor-
`mation desirably includes information that is specific to the
`operating system that is installed on the source computer
`system. For example, if the Microsoft Windows operating
`system is installed on the source computer system,
`the
`Microsoft WindowsRegistry would desirably be included in
`the operating-system-specific configuration information.
`Likewise, if Linux wasinstalled on the source computer, the
`configuration, packaging and devicefiles would desirably be
`included in the operating-system-configuration information.
`
`[0067] Once the source computer system gathers this
`information it supplies it to the IPS. The IPS then stores this
`information in a database located on the storage subsystem
`140.
`
`[0068] Once an image has beencreated, a user can deploy
`this image to an installation engine so that the software
`system that
`the image represents can be copied to any
`number of target computer systems that are qualified to
`receive the software system. FIG. 3 illustrates in further
`detail the process of selecting the target computer systems
`that are to receive a copy of the source computer’s software
`system.
`
`In FIG. 3, from the deployment console 110 the
`[0069]
`user requests from the IPS 120 a list of all the imagesin the
`image database anda list of all installation cngincs known
`to the IPS. The installation engines known to the IPS are
`maintained in a database that is accessible to the IPS. The
`information stored in the database that is associated with a
`
`[0070] The IPSretrieves the information for all the source
`images and installation engines. This information is pro-
`cessed and sent to the deployment console for display. At the
`deploymentconsole, the user selects an image to deploy and
`one or more installation engines that are to receive the
`deployed image. These selections are conveyed to the IPS.
`
`{0071] For each installation engine selected by the user,
`the following is performed:
`
`1. The IPS establishes a two-way communi-
`[0072]
`cations connection through an externalinterface 350
`to an external interface 360 of the intelligent instal-
`lation server (IIS) 180 at the installation engine 365.
`In the preferred embodiment of the invention, an
`external interface is a socket interface that is capable
`of establishing a TCP/IP connection to another
`remote socket. A person skilled in the art, however,
`would appreciate that the external interface could be
`any other
`two-way communications mechanism
`knownin theart that allows a software process on a
`computer system to communicate with anothersoft-
`ware process, either on the same system or on a
`remote computer system.
`
`the hardware
`2. The IPS sends to the IIS,
`[0073]
`configuration of the selected image, along with a
`request for a list of all available target computer
`systems knownto the IIS whose hardware configu-
`ration is compatible with the hardware configuration
`of the selected image.
`
`3. The IIS processes this request byfirst
`[0074]
`retrieving all of the records for the target computer
`systems that are known to the IIS from a database
`located on the storage subsystem 190. Each record
`contains among other information,
`the hardware
`configuration of the target computer system associ-
`ated with the record.
`In one embodiment of the
`
`invention, the database is created by manually enter-
`ing the information for each of the target computer
`systems.
`
`the TIS compiles a list of target
`4. Next,
`[0075]
`computers that are available and whose hardware
`configuration is compatible with the hardware con-
`figuration sent by the IPS.
`
`5. The list of all available hardware compat-
`[0076]
`ible target computer systems associated with the
`installation engine is then sent by the IIS to the IPS.
`
`[0077] Atarget computer system is considered available if
`it is not in the process ofinstalling software from an imaging
`arca. The US determines that a target computer system is
`compatible by comparing certain components that make up
`the hardware configuration of the source computer to the
`equivalent components on the target computer. If the com-
`pared componentsare equal, the target computeris said to be
`compatible to the source computer. The components on the
`source computer that arc compared to the equivalent com-
`
`
`
`US 2002/0156877 Al
`
`Oct. 24, 2002
`
`ponents on the target computer include, but are not limited
`to, the central processor type, the type of hard disks, the type
`hard disk controllers and all other peripheral devices and
`their controllers that are attached to the source computer.
`
`[0078] After the IPS receives a list of available target
`systems from eachofthe installation engines, the IPS places
`this information into a message and sends this message to
`the deployment console for display. The user then selects
`one or more of the target computer systems and sendsthis
`selection information to the IPS. For each IIS associated
`
`with the selected target computers, the IPS sends to the IIS
`a list of all the selected target computers associated with that
`IIs.
`
`[0079] For each target computer system in thelist, the IIS
`sets a lock associated with the target computer to indicate the
`IIS is in the process of installing an image on that target
`computer. Once all the target computer systems in the list
`have been locked,the IIS notifies the IPS that it has finished
`locking all the selected target computer systems. The IPS
`sends a message to the deployment console indicating the
`selected target computer systems that have been locked.
`
`[0080] FIG. 4 illustrates in further detail the process of
`building an imageareaat the installation engine based on the
`image information of the source computer’s software sys-
`tem.
`
`[0081] The IPS 120, retrieves the operating system con-
`figuration information,the disk partitioning information and
`thefile list associated with the image that was selected by the
`user from the storage subsystem 140. The IPS sends this
`information to the IIS 180 over a socket connection estab-
`lished to the IIS. In one embodiment of the invention, the
`information is compressed and encrypted before it is sent to
`the IS.
`
`[0082] The IIS receives the information sent by theIPS. In
`one embodiment of the invention,
`the information is
`received in a compressed and encrypted form and the IPS
`decrypts and decompresses the information before usingit.
`
`the IIS
`[0083] Using the disk partitioning information,
`initializes an imaging area on its storage subsystem 190. The
`imaging area is initialized in such a mannerthat it reflects
`the partitions that are described by the partitioning informa-
`tion.
`
`[0084] Using thefile list information, for everyfile listed
`in the file list, the IIS first determines where it can get a copy
`of the file. ‘his determination is made by the HS by
`searching its own storage subsystem for an exact copy ofthe
`file to determine if the file cxists on its own storage sub-
`system. If the file does not exist on its own storage sub-
`system, the IIS requests a copy of the file from the IPS.
`
`[0085] To determine if a copy ofthe file exists on its own
`storage system, the IIS uses the file name and variousfile
`attributes listed for the file in the file list. The IIS compares
`the file name andthe file attribute information from the file
`
`list to the same information for a given file on its own
`storage subsystem. If the two match exactly, the file is