`Davis et al.
`
`115
`
`US005742829A
`[11] Patent Number:
`[45] Date of Patent:
`
`5,742,829
`Apr. 21, 1998
`
`1/1995 Si oo. eesccesecerneeessonersensesens 395/700
`5,381,534
`AUTOMATIC SOFTWARE INSTALLATION
`5/1995 Platt ...........
`.. 395/600
`5,421,009
`ON HETEROGENEOUS NETWORKED
`7/1995 Tevanian et al...
`cece 395/700
`5,432,937
`CLIENT COMPUTER SYSTEMS
`5,473,772 12/1995 Halliwell et al.nesscsseseee 395/650
`5,485,370
`1/1996 Mosset al. oc. sssccesssessseeneeees 364/408
`[75]
`
`[54]
`
`Inventors: Michael L. Davis; Or Ben-Natan. both
`of Bellevue; Bruce W. Copeland.
`Redmond,all of Wash.
`
`[73]
`
`Assignee: Microsoft Corporation, Redmond.
`Wash.
`
`[21]
`
`[22]
`
`[51]
`[52]
`[58]
`
`[56]
`
`Appl. No.: 403,246
`
`Filed:
`
`Mar. 10, 1995
`
`Tint, CUS ecccccccsscssssccsssenssesssssscsesescersssssssesenee GO6F 9/45
`
`WLS. C1. vesesssssssscsssscsstetsseoserserenseeess
`Field of Search ..........cccscssscssscsssssseeeses 395/700, 650
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,019,963
`5,142,680
`5,144,692
`5,155,847
`5,247,683
`5,327,563
`5,361,358
`5,367,686
`
`+ 395/600
`.
`5/1991 Alderson et al.
`.. 395/700
`8/1992 Ottman etal.....
`
`«a. 395/650
`9/1992 Bakeretal. ......
`». 395/700
`10/1992 Kirouac et al.
`...
`
`9/1993 Holmeset al.
`...
`- 395/700
`
`7/1994 Singh ...........
`we 395/700
`.....
`. 395/700
`11/1994 Cox etal.
`.........cccscsscenesseenes 395/700
`11/1994 Fisher et al.
`
`
`
`Primary Examiner—Emanuel T. Voeltz
`Assistant Examiner—Peter J. Corcoran, Il
`Attorney, Agent, or Firm—Seed and Berry LLP
`
`[57]
`
`ABSTRACT
`
`The present invention provides for automatically installing
`software on heterogeneous client computer systems. In a
`distributed system having heterogeneous computer systems
`of different natural languages. different operating system
`types, and/or different processor types, the present invention
`automatically installs the appropriate edition of software
`onto client computers. The present invention installs an
`edition of software appropriate for execution on a particular
`processor type. with a particular operating system type and
`in a particular natural
`language by utilizing commands
`specific to an operating system type. The present invention
`automatically installs software in responseto the availability
`of a new version of the software. a change in the operating
`system of the client computer, a change in the associated
`natural language of the client computer, or in response to
`input of the administrator of the distributed system.
`
`29 Claims, 8 Drawing Sheets
`
`Add Program?
`
`
` Copy Program
`
`
`
`Add Entry Referring|“7
`to Program
`
`
`Logon Script
`Envaked
`
`Invoke SMSLS
`Batch File
`
`Invoke Client Setup
`
`
`
`
` Delete Programs
`
`
`Determine Language |-~
`
`
`
`
`
`Determine Programs
`to Install
`
`S14
`
`
`
`| $16
`Copy New Programs ;i
`
`
`
`
`
`
`Delete
`
`
`Program?
`
`
`$24
` Delete Entry
`
`Referring to Program
`
`
`526
`
`
`Delete Program
`
`§28
`
`Start Programs
`
`Google Exhibit 1049
`Google v. VirtaMove
`
`Google Exhibit 1049
`Google v. VirtaMove
`
`
`
`U.S. Patent
`
`Apr. 21, 1998
`
`Sheet 1 of 8
`
`5,742,829
`
`901
`
`oll
`
`OO
`
`ousArewlig
`
`cll
`
`cOl
`
`vol
`
`801
`
`11gperUaD
`
`ousABW
`
`augAlepuoses
`
`augArepuosas
`
`[Old
`
`
`
`
`U.S. Patent
`
`Apr. 21, 1998
`
`Sheet 2 of 8
`
`5,742,829
`
`colaaysyenuadg
`
`wary
`
`WUdH{D
`
`wai{)
`
`urewoqd
`
`way
`
`JaAIaS
`
`
`
`
`
`
`U.S. Patent
`
`Apr. 21, 1998
`
`Sheet 3 of 8
`
`5,742,829
`
`
`
`38e10}¢Alepuosas
`
`Aopesq
`
`aINjJONLS
`
`sIBMYOSOZEVCE
`
`Wd1SAS
`
`oflydew
`
`Beg
`
`
`
`Joss9201gSdIN
`
`Japuas
`
`JaproT
`
`I9A19gSUS
`
`VEDId
`Asoquaauy|OTE
`41ossao001g
`SODAIOS
`-BINBYUO?)
`Jaj0odsaq
`Jajnpayos
`SMOPUIAA
`Josvuryy
`
`
`
`ao1Aaqqinduy
`
`voy
`
`aus
`
`C0
`
`IN
`
`Ole
`
`cLE
`
`pit
`
`
`
`U.S. Patent
`
`Apr. 21, 1998
`
`Sheet 4 of 8
`
`5,742,829
`
`
`
`aBelo1gAepuoses
`
`Ose
`
`way)
`
`dmesg
`
`apquinoaxy
`
`SIBMYOS
`
`Aloyoasiq]
`
`aINJONS
`
`SISWNS
`
`attyore
`
`
`
`isrJAdog“RZIRIU]
`
`wewogd
`
`aylqwon
`
`adeyord
`
`
`
`
`JOSSAN0Ig98EOR
`
`
`
`ao1naqInduy
`
`puruuro:)
`
`Joseuryy]
`
`AJOWSAUT
`
`quasy
`
`I‘DIA
`
`91%
`
`JOAIBSWal)
`
`
`
`wat[D
`
`sorjsouselq
`
`ajouay|.
`
`puewmuo-)
`aseyorg
`
`Jodeurey]
`
`U.S. Patent
`
`Apr. 21, 1998
`
`Sheet 5 of 8
`
`5,742,829
`
`
`
`adeloigArepuosas
`
`8LE
`
`
`
`~PZTEN]“eZyentu]
`
`SWSundSWS
`
`wonuoq}
`
`parfeisuy
`
`aIeMYyOos
`
`sold
`
`unySWS
`
`a]qeinoexg
`
`SMOPUIAA
`
`98£08
`
`Jossa.0Ig
`
`ynduj
`
`SOIAa(]
`
`JEDIA
`
`rIc
`
`
`
`U.S. Patent
`
`Apr. 21, 1998
`
`Sheet6 of 8
`
`5,742,829
`
`
`Site Configuration
`Manager
`
` Copy Client
`
`
`
`Software to Client
`Server
`
`402
`
`Wait Until Receiving|403
`Input From
`Administrator
`
`
`
`Add a Program?
`
`
`
`Add Program to
`Domain Initialization
`File
`
`
`
`
`
`
`
`
`Removea Program?
`
`Delete Program From
`Domain Initialization
`File
`
`FIG. 4
`
`
`
`U.S. Patent
`
`Apr. 21, 1998
`
`Sheet 7 of 8
`
`5,742,829
`
`Begin
`
`LogonScript
`Invoked
`
`>02
`
`Invoke SMSLS
`Batch File
`
`504
`
`506
`
`508
`
`510
`
`Invoke Client Setup
`
` .
`
`Determine Language
`
`Determine Programs
`to Install
`
`Update?
`
`12
`
`Y
`
`N
`
`Delete Programs
`
`Copy New Programs
`
`514
`
`516
`
`FIG. 5A
`
`
`
`US. Patent
`
`Apr. 21, 1998
`
`Sheet 8 of 8
`
`5,742,829
`
`518
`
`Add Program?
`
`Y
`
`N
`
`Copy Program
`
`Add Entry Referring
`to Program
`
`520
`
`521
`
`
`
` Delete
`
`Program?
`
`
`Delete Entry
`Referring to Program
`
`
`
`Delete Program
`
`924
`
`526
`
`Start Programs
`
`528
`
`End
`
`FIG. 5B
`
`
`
`5,742,829
`
`1
`AUTOMATIC SOFTWAREINSTALLATION
`ON HETEROGENEOUS NETWORKED
`CLIENT COMPUTER SYSTEMS
`
`TECHNICAL FIELD
`
`Thepresent invention relates generally to data processing
`systems and, more particularly, to the automatic installation
`of software on heterogeneous client computer systems.
`
`BACKGROUND OF THE INVENTION
`
`Typically, large, multinational corporations have a dis-
`tributed system containing many computers spread across a
`wide geographical area that are networked together. This
`type of environment makesit difficult and costly to manage
`the computers in terms of providing software installation,
`support and maintenance. That is, an administrator of the
`distributed system has to visit each computer in order to
`managethe computers. Thus. a significant cost of managing
`the computers in this type of environment stems from
`software installation, support, and maintenance. In fact, the
`initial purchase price of software may be only a small
`portion of the total cost associated with managing the
`computers.
`The distributed systems of large corporations usually
`comprise computers that have dissimilar hardware andsoft-
`ware components. The lack of uniformity in components is
`the productof different organizations within the corporation
`having different needs for their computers. For instance, one
`organization may consist primarily of clerical workers, who
`utilize various programs such as word processing programs
`or spreadsheet programs.
`that do not require significant
`processing power, whereas another organization in the cor-
`poration that performs engineering research utilizes more
`computationally intensive programs that require signifi-
`cantly more processing power. Therefore, a large corpora-
`tion usually has computers with different types of processors
`to match the differing processing demands of its organiza-
`tions.
`
`With respect to different software components, the dis-
`tributed systems of large corporations usually contain
`groups of computers that are interconnected via a local area
`network (LAN). Each group of computers typically repre-
`sents an organization within the corporation. Each group of
`computers contains one or more server computers that runs
`a network operating system. A “network operating system”
`provides network services to other computers (“client
`computers”) on the LAN, such as remote file access and
`remote printing capabilities. In many instances. different
`groups may have servers running different network operat-
`ing systems.
`The client computers within a group of computers are
`typically used by end users. End users often have prefer-
`ences regarding what operating system runs on their com-
`puter Therefore, in a distributed system of a large corpora-
`tion having many end users, there are usually a number of
`computers with different operating systems.
`Just as end users have a preference for a particular
`operating system. end users typically have a preference for
`a natural language in which communications between the
`end user and the computer are to take place. In a distributed
`system of a large. multinational corporation.it is common to
`have computers that employ different natural languages for
`communications with end users.
`
`Systems have been developed that. upon user initiation.
`install software from a master computer to a slave computer.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`45
`
`50
`
`55
`
`65
`
`2
`where both the master and the slave are homogeneous with
`respect to each otherin that they have similar hardware and
`software components. However, these systems typically do
`not operate within a distributed system of computers that
`have dissimilar hardware and software components. such as
`is commonly found with large corporations. Therefore.
`although systems have been developed to facilitate the
`installation of software on homogenous computers. these
`systems do not suit the needs of a large corporation. Thus,
`large corporations and other organizations having a distrib-
`uted system of heterogeneous computers are in need of a
`mechanism to facilitate the installation of software within
`their distributed system.
`SUMMARYOF THE INVENTION
`
`The system described herein provides for automatically
`installing software on heterogeneous client computer sys-
`tems. In a distributed system having heterogeneous com-
`puter systems of different natural languages. different oper-
`ating system types, or different processor types. the system
`described herein automatically installs the appropriate edi-
`tion of software onto client computers. The system described
`herein installs an edition of software appropriate for execu-
`tion on a particular processor type. suitable for use with a
`particular operating system and in a particular natural lan-
`guagebyutilizing commands specific to an operating system
`type. The system described herein automatically installs
`software on a client when the natural language of the client
`changes, when the operating system of the client changes.
`when a new version ofthe software becomesavailable or in
`response to input of the administrator of the distributed
`system.
`In accordance with a first aspect of the present invention,
`a methodis provided for automatically installing software in
`a data processing system having a client computer and a
`server computerthat provides network services to the client
`computer. In accordance with the first aspect of the present
`invention, the method provides an installation component at
`the client computer. where the client computer is heteroge-
`neous with respect to the server computer and automatically
`determines when to install the software on the client com-
`puter by the installation component. When it is determined
`to install the software, the system described herein installs
`the software on the client computer by the installation
`component.
`In accordance with a second aspect of the present
`invention, an automatic software installation system is pro-
`vided. The automatic software installation system of the
`second aspect of the present
`invention provides a first
`computer that has an associated natural language and has a
`processor running an operating system. Further. the second
`aspectof the present invention provides a second computer
`for providing network services to the first computerafter the
`first computer logs onto the second computer. The second
`computer further comprises a first component for storing
`editions of software and a second componentfor determin-
`ing the natural languageof the first computer, the operating
`system of the first computer and the processor of the first
`computer. In addition. the automatic software installation
`system includes a third componentfor installing an edition
`of the software onto the first computer that is suitable for
`execution on the processor of the first computer, suitable for
`execution with the operating system of the first computer
`and that utilizes the associated natural language ofthe first
`computer. The second computer installs the edition of the
`software by utilizing commands that are suitable for the
`operating system of the first computer in responseto thefirst
`computer initiating a logon to the second computer.
`
`
`
`3
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`5,742,829
`
`4
`administrator of the distributed system to take control of the
`input devices and the display of a remote computer soas to
`FIG. 1 depicts a distributed system suitable for practicing
`be able to diagnose problems with the computer.
`a preferred embodiment of the present invention.
`Aspreviously stated, the distributed system in which the
`FIG. 2 depicts a more detailed block diagram of the
`preferred embodiment operates contains heterogeneous
`central site of FIG. 1.
`computers. These computers can have different natural
`FIG. 3A depicts a more detailed block diagram ofasite
`languages, network operating systems. operating systems,
`server of FIG. 2.
`and processors. With respect to natural languages, for pur-
`poses of explaining the preferred embodiment, an illustra-
`FIG. 3B depicts a more detailed block diagram ofa client
`server of FIG. 2.
`tive case is described below using English and German.
`although the present invention can be used with other natural
`FIG. 3C depicts a more detailed block diagram ofa client
`languages.
`computer of FIG.2.
`With respect to network operating systems. operating
`FIG.4 depicts a flowchart of the steps performed by the
`systems and processors, the preferred embodiment operates
`site configuration manager of the preferred embodiment of
`in an environmentof server computers and client computers.
`the present invention.
`In some instances, servers and clients may be configured
`FIGS. 5A and 5B depict a flowchart of the steps per-
`differently, thus the configuration of each is described sepa-
`formed by the preferred embodiment of the present inven-
`rately. With respect to the configuration of server computers,
`tion when automatically installing software onto a client
`the preferred embodiment supports the “MICROSOFT
`computer.
`WINDOWSNT”network operating system available from
`Microsoft Corporation of Redmond, Wash.,
`the “LAN
`MANAGER”network operating system also available from
`Microsoft Corporation, the “LAN SERVER”network oper-
`ating system available from the International Business
`Machines Corporation of Armonk, N.Y. and the “NetWare”
`network operating system available from the Novell corpo-
`ration of Provo, Utah. The operating systems supported by
`serversof the preferred embodiment include “MICROSOFT
`WINDOWSNT.” Microsoft Operating System 2, and “MS-
`DOS”which are all available from Microsoft Corporation
`and IBM “OS/2”which is available from the IBM Corpo-
`ration. “MICROSOFT WINDOWSNT”operates as both a
`network operating system by providing access to remote
`resources such as printers and files, as well as a local
`operating system by providing access to local resources. The
`processors supported by servers of the preferred embodi-
`ment include the X86 family of processors available from
`the Intel Corporation of Cupertino. Calif.. the MIPS R4000
`family of processors available from MIPS Technologies of
`Mountain View, Calif. and the Alpha family of processors
`available from the Digital Equipment Corporation of
`Maynard, Mass. The various combinations of network oper-
`ating systems, operating systems and processors supported
`by servers of the preferred embodiment are depicted below
`in Table 1.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`65
`
`TABLE 1
`
`Network
`Operating
`System
`
`LAN Manager LAN Server
`
`Netware
`
`Windows
`NT
`
`Operating
`system
`Processor
`
`Windows
`NT
`Intel X86
`DEC Alpha
`MIPS R4000
`
`
`MS OS/2
`
`Intel X86
`
`IBM OS/2
`
`MS-DOS
`
`Intel X86
`
`Intel X86
`
`the preferred
`As can be seen from the above table.
`embodiment supports a server computer running
`“MICROSOFT WINDOWS NT” on the X86, Alpha or
`MIPSfamilies of processors. Also, the preferred embodi-
`ment supports a server computer running “LAN MAN-
`AGER”and MS Operating System 2 on the Intel X86 family
`of processors, a server computer running “LAN SERVER”
`and IBM “OS/2”on the Intel X86 family of processors and
`a server computer running “Netware” and “MSDOS”onthe
`Intel 86 family of processors. One skilled in the art will
`
`DETAILED DESCRIPTION OF THE
`INVENTION
`
`A preferred embodiment of the present invention auto-
`matically installs software on client computers that are
`heterogeneous with respect to each other, as well as to server
`computers in a distributed system. The term “client com-
`puter” refers to a computer that utilizes another computer
`(“server computer”) to gain access to network services. such
`as remote file access and remote printing capabilities. By
`automatically installing software on client computers, the
`preferred embodiment facilitates the management of com-
`puters in a distributed system of heterogencous computers
`and reduces the cost associated therewith. Two computers
`are said to be “heterogeneous” with respect to each otherif
`they have dissimilar hardware or software components or
`dissimilar configuration information. For example,
`two
`computers are considered heterogeneous if they have dif-
`ferent operating systems, natural languages or processors.
`The preferred embodimentof the present invention oper-
`ates within the context of a centralized management system
`for distributed systems. such as the Systems Management
`Server available from Microsoft Corporation of Redmond.
`Wash., although one skilled in the art will appreciate that
`other embodiments of the present invention can operate in
`other types of systems. Thus. in order to more fully describe
`the preferred embodiment,
`it
`is necessary to provide a
`description of the centralized management system in which
`the preferred embodiment operates. The centralized man-
`agement system provides hardware and software inventory
`support, software distribution and installation, software
`updates. and remote diagnostics. In providing hardware and
`software inventory support,
`the centralized management
`system provides a listing of the various hardware and
`software components on each of the computers in the
`distributed system. In providing software distribution and
`installation, the centralized management system centralizes
`the managementandinstallation of application programs on
`file servers and clients. The software update functionality
`performed by the centralized managementsystem installs a
`new version of the software when the current version of the
`software becomes outdated. The installation of the new
`version of software is performed on each computer that
`needs the new version. A “version” of software refers to the
`release of the software. which is typically indicated by a
`number such as 1.0. In providing the remote diagnostics
`functionality. the centralized management system allows an
`
`
`
`5.742,829
`
`5
`appreciate that the present invention can be used with other
`network operating systems, operating systems and proces-
`sors or additional combinations thereof.
`The various configurations of clients supported by the
`preferred embodimentare depicted below in Table 2.
`
`TABLE 2
`
`
`Operating Windows
`
`System
`NT
`MS-DOS Windows
`IBM OS/2 MS OS/2
`Processor
`Intel X86
`X86
`K86
`X86
`X86
`DEC Alpha
`MIPS R4000
`
`
`As can be seen from Table 2, clients of the preferred
`embodiment support the “MICROSOFT WINDOWS NT”
`operating system,
`the “MS DOS” operating system,
`the
`“MICROSOFT WINDOWS” operating system available
`from Microsoft Corporation, the IBM “OS/2” operating
`system and the Microsoft Operating System 2. Also, when a
`client utilizes the “MICROSOFT WINDOWSNT”operat-
`ing system, the client can support the Intel X86, Alpha or
`MIPSfamily of processors. When utilizing the other oper-
`ating systems, the client supports the X86 family of proces-
`sors. Although specific combinations of operating systems
`and processors have been described with respect to client
`computers of the preferred embodiment, one skilled in the
`art will appreciate that client computers of the present
`invention can utilize different operating systems and pro-
`cessors or additional combinations thereof.
`
`A block diagram of the distributed system in which the
`preferred embodiment operates is depicted in FIG. 1. The
`distributed system 100 contains a central site 102.
`two
`primary sites 104, 106 and two secondary sites 108, 110 with
`each site connected to a communication mechanism 112,
`such as a wide area network. Eachsite. in turn, contains a
`number of computers connected via a local area network.
`The central site 102 manages all other sites and therefore
`stores system-wide information. The primary sites 104, 106
`typically manage one or more secondary sites 108, 110. For
`example, the primary site 104 may manage secondary site
`108 and the primary site 106 may manage secondary site
`116. The sites are arranged hierarchically with the central
`site at the top of the hierarchy managingall other sites and
`the primary sites are next in the hierarchy managing the
`secondary sites.
`Amore detailed block diagram of the central site of FIG.
`1is depicted in FIG. 2. The central site 102 is connected to
`one or more primary sites via a communication mechanism
`112. The central site 200 contains a site server 202, an SQL
`server 206. a helper server 208, and a domain 204. Thesite
`server 202 of the central site 102 acts as the centralized
`management system for the central site and all othersites.
`An administrator’s console 21@ is connected to the site
`server 202 so that the administrator can centrally managethe
`distributed system. In addition, the site server 202 stores
`software that can be installed on other computers in the
`distributed system. The SQLserver 206 manages a database
`that contains various inventory information andstatus infor-
`mation regarding the distributed system. The helper server
`208 is used to offload some of the burden of managing the
`distributed system from the site server 202. The domain 204
`is a grouping of computers and contains two client servers
`212 and 216, which are connected to client computers 214,
`218, and 220. The client servers 212 and 216 act as file
`servers for the client computers 214, 218, and 220, which
`are. in turn. used by end users. The client computers 214,
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`30
`
`55
`
`65
`
`6
`218 and 220 can be heterogeneous with respect to each other
`in that the clients may have different operation systems,
`processors or natural languages. Although the central site
`has been described as having various components. one
`skilled in the art will appreciate that the central site can
`contain additional or different components such as addi-
`tional helper servers, additional domains. additional client
`servers within a domain, and additional clients for each
`client server.
`Primary and secondary sites are configured like the cen-
`tral site except that the secondary sites do not contain SQL
`servers. Therefore, both primary sites and secondary sites
`usually contain a site server, one or more helper servers, as
`well as one or more domains and the primary sites addi-
`tionally contain an SQL server. Each domain may contain
`one or more client servers connected to one or moreclients.
`Thesite server for a primary site is used for managing the
`primary site in whichit is located as well as all secondary
`sites that are lowerin the hierarchy. However.the site server
`of the central site acts as the centralized management
`mechanism of the entire distributed system, thereby man-
`aging all sites.
`FIG. 3A depicts a more detailed block diagram of the site
`server 202 of FIG. 2. The site server 202 contains a central
`processing unit (CPU) 302, such as a MIPS R4000
`processor, a memory 304, a secondary storage device 306,
`such as a hard disk. and an input device 308, such as a
`keyboard. Although the site server 202 is described with
`respect to having specific components, one skilled in the art
`will appreciate that the site server may have additional or
`different components. For example. the site server 202 can
`utilize a CPU such as an X86 or Alpha CPU. The memory
`304 contains a copy of “MICROSOFT WINDOWSNT”
`310. a number of services 312, 314, 318, 320, 322 that
`provide the functionality of the centralized management
`system, and a site configuration manager 316 thatis further
`described below. “MICROSOFT WINDOWSNT”310 acts
`as both a network operating system and a local operating
`system to the site server. A “service” is a computer program
`that typically runs as a background task and performs a
`system function. such as a functionrelated to the centralized
`management system described herein. The services that
`provide the functionality of the centralized management
`system include the scheduler 312. the despooler 314, the
`inventory processor 318, the inventory data loader 320, and
`the sender services 322. The scheduler 312 is responsible for
`scheduling jobs such as software updates to occur across the
`distributed system and whenthe time has arrived for the job
`to be performed, the despooler 314 is responsible for per-
`forming the job by distributing the software to one or more
`computers within the site. The inventory processor 318 is
`responsible for receiving inventory information from the
`computers within a domain and passing the data to the
`inventory data loader 320. The inventory data loader 320 is
`responsible for receiving the data. correlating the data, and
`storing the data into a database on the SQL server. The
`sender services 322 is responsible for performing site-to-site
`communications. The sender services.
`therefore, provide
`communication over various connections such as ISDN or
`X.25. It should be noted that only one instance of the
`scheduler 312, the despooler 314, the inventory processor
`318. and the inventory data loader 320 are present within the
`site at any given time. However. more than one sender
`services 322 may be present within a site since the site may.
`in turn, be connected to other sites.
`The secondary storage 306 contains a system mapfile 324
`and a software directory structure 326. The system mapfile
`
`
`
`5,742,829
`
`10
`
`20
`
`25
`
`30
`
`35
`
`TABLE 3
`_Asite.srv
`\x86.bin
`servos2.exe
`servnt.exe
`serv.dll
`
`7
`324 lists the softwarethat is stored on the site server 202 and
`the directories in which the software is stored. In addition.
`the system mapfile 324 indicates the specific edition of the
`software. An “edition” of software refers to a copy of the
`software that operates using a particular natural language
`and that is suitable for execution with a particular type of
`operating system on a particular type of processor. For
`example. an application program may have twoeditions. a
`first edition in German for use with OS/2 on an X86
`processor and a second edition in English for use with
`“MICROSOFT WINDOWSNT” on an Alpha processor.
`Morethan oneedition of the software is typically stored on
`the site server 202 according to the natural language in
`whichit is to operate, the operating system with whichit is
`to operate and the platform (or processor) on whichit is to
`execute. The various editions of the software are stored in
`the software directory structure 326. The software directory
`structure 326 is created uponinstallation of the centralized
`management system. Wheninstalling the centralized man-
`agement system, a compact disk is inserted into the site
`server 202 and as part of the installation process,
`the
`software directory structure 326 is created and the software
`contained on the compact disk is copied therein. The soft-
`ware directory structure 326 has a main directory “site.srv”
`with various directories of the main directory that each
`contain portions of an edition of the software that are natural
`language independent. Thatis. software usually comprises a
`number of files (“portions”), some of which are natural
`language independent and others are natural
`language
`dependent. The natural language independent portions are
`stored in the directories and the natural language dependent
`portions are stored in subdirectories within the directories.
`An example of a service stored in the software directory
`structure 226 is depicted below in Table 3.
`
`8
`the number 00000409indicates the English language. These
`subdirectories contain one or more portions of the edition of
`the software that are language dependent. Therefore. within
`the \x86 directory. servos2.exe, servnt.exe and serv.dll are
`language independent portions of the software that are
`suitable for execution on the X86 family of processors, with
`servos2.exe suitable for use with “OS/2” and servnt.exe
`suitable for use with “MICROSOFT WINDOWS NT.”
`Further, subdirectories 00000409 and 00000407of the \x86
`directory contain the language dependent portions of the
`software that are suitable for execution on the X86 family of
`processors. Although the software for one service has been
`depicted, all of the other software that is available from the
`site server (including programs that are to be installed on
`clients) is stored in this manner. For example, with respect
`to an additional service. the \x86 directory would contain the
`language independentportions of the additional service that
`run on the X86 family of computers (with one edition for
`each operating system supported), and the subdirectories
`00000409 and 00000407 would contain the language depen-
`dent portions of the additional service.
`The configuration of the helper server is similar to that of
`the site server. Thatis. the helper server has similar hardware
`componentsto thatof the site server, although one skilied in
`the art will appreciate that the helper server can have
`additional or different components. However, the services
`used by the centralized management system do nottypically
`run on the helper server unless they are specifically moved
`on to the helper server.
`FIG. 3B depicts a more detailed block diagram of the
`client server 216 of FIG. 2. Although client server 216 is
`depicted. the other client servers, including client server
`212, are similarly configured. The client server 216 has an
`80386 processor 332. a memory 334. a secondary storage
`device 336, and an input device 338, such as a keyboard.
`One skilled in the art will appreciate that the client server
`216 may have additional or different components, such as a
`MIPSprocessor. an Alpha processoror a different processor
`from the X86 family of processors. The memory 334 con-
`tains a network operating system, such as “LAN
`MANAGER”, 344 and an operating system. such as IBM
`“OS/2”, 346. It should be appreciated that the client server
`216of the present invention can operate other combinations
`of network operating systems and operating systems. In
`addition. the memory 334 contains services that help pro-
`vide the functionality of the centralized management system
`including the package command manager 340 and the
`inventory agent 342. The package command manager 340
`provides the functionality of automatically installing appli-
`cation programs onto the client server 216. The inventory
`agent 342 provides the functionality of retrieving the hard-
`ware and software inventory of the client server 216 and
`sendingthis inventory information to the site server wherein
`the information is utilized by the inventory processor of the
`
`55
`site server.
`The secondary storage device 336 contains a software
`directory structure 350, a logon script 348, an SMSLSbatch
`file 352. a client setup executable 354, a domain initializa-
`tion file 356 and a copylist file 358. The directory structure
`350 stores all of the software currently installed on the client
`server 216, as well as the software to be installed on the
`clients. The logon script 348 is invoked by the client to logon
`to the client server. Therefore.
`the logon script 348 is
`responsible for requesting the client server to perform user
`password validation and the logon script performs other
`functionality associated with the logon process. After log-
`ging on, the “LAN MANAGER” 344 network operating
`
`\alpha.bin
`servnhit.exe
`serv.dll
`
`45
`
`50
`
`serviangdllHenneEn
`
`As can be seen from Table 3, the main directory site.srv
`has three directories \x86, \mips, and \alpha. Each directory
`contains software that is specific to a particular type of
`processor and within each directory are editions of the
`software for a particular operating system, such as
`“servos2.exe”for use with “OS/2”and “servnt.exe” for use
`with “MICROSOFT WINDOWSNT.” Each directory then,
`in turn. has a subdirectory 00000409 and a subdirectory
`00000407. Each of these numbers indicates a specific lan-
`guage code that refers to a natural language. For example.
`the number 00000407 indicates the German language and
`
`65
`
`
`
`5,742,829
`
`9
`system provides network services to the client. As part of the
`processing of the logon script 348, the logon script invokes
`the SMSLS batch file 352. The SMSLS batch file 352
`actually has a number of copies, with each copy specific to
`one or more ope