`(12) UnltEd States Patent
`(10) Patent N0.:
`US 6,549,932 B1
`
`McNalIy et al.
`(45) Date of Patent:
`Apr. 15, 2003
`
`U800654993281
`
`(54) SYSTEM, METHOD AND COMPUTER
`PROGRAM PRODUCT FOR DISCOVERY IN
`A DISTRIBUTED COIHPUTING
`,
`, n
`ENVIRONMENI
`Inventors: Michael McNally, Austin, TX (US);
`.
`.
`3““ Jay Vetter,Austin, TX (US)
`,
`,
`_
`International Busmess Machines
`Corporation, Armonk, NY(US)
`
`_
`(73) Assignee:
`
`(75)
`
`(*) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`USP, 154(1)) by 0 days.
`
`(31) Appl. No.: 09/089,961
`‘
`Flledi
`Jun. 3: 1998
`(23)
`.
`. _7 ............................................. G v
`5
`llI‘tS (Ell
`$9.1);
`709/20£6:();1§i'122
`(5;) Find n 5151;“:32'::j:‘:':::::‘::::::...... 70m '7‘»:
`709/244, 105, 239, 240, 313, 317, 318,
`320, 202; 370/252, 253, 254; 340-82506,
`825.16; 714147
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`5.113308 A
`5/1002 Howes ...................... 3711112
`5,157,667 A " 1011992 Carusonc, .Ir. cl 3]
`7141’45
`
`5,187,785 A
`2/1003 Shah ..................
`__ 3051575
`. 395,575
`5,237,677 A
`811993 Hirosawa fl ul.
`
`“1004 Shah ______________________ 371,151
`5,282,212 A
`. 345,300
`5301370 A s
`4,1994 Steinbeig e, at.
`
`.............
`5,303,243 A *
`411994 Ane7aki
`714113
`671994 McMillan et al.
`..
`. 714;”798
`5,321,813 A *
`
`5321-837 A *
`611994 Daniel el al-
`- 707/4
`
`-- 713/176
`5,337,360 A "
`8/1994 Fischer --------
`
`il ace ..........
`.~
`.
`l
`,
`.'
`.
`----- 3770:9325:
`gig-(1):: 2 * 11:11:32 3/“: 9‘ al-
`
`4/1995 Sekizawa et ZlI.
`..... 709/224
`5,410.651 A *
`
`..... 364/552
`5,465,221 A
`11/1995 Mei'alet a1.
`
`5.526.417 A
`6/1996 Dezonno
`..... 379/265
`5,528,748 A
`611996 Wallace
`395/18302
`
`DtSTRlBUTE RLNTIK
`ENGINIS
`
`811996 Giordano et at.
`5,544,308 A
`3951183112
`8.11996 Henderson ct aI.
`5,550,976 A
`395/20006
`10,1996 Wang et al.
`5,506,092 A
`364155112
`5,572,523 A * 11/1996 Shucn ..........
`.. 3701402
`
`3701329
`5,590,126 A
`1211996 Mishra etal.
`
`111997 Ts"y“'““”"'
`""" 717””?
`2159657” A :
`7091105
`.,)03,029 A
`211997 Aman etal.
`5,606,693 A
`2/1997 Nilscn ct al.
`3951610
`5,623,628 A *
`4:1997 Brayton etal.
`7111141
`..
`5,655,081 A :
`8/1997 Bonncllctal.
`7093202
`..
`5,692,119 A * 11-1997 Koguchiet al.
`............... 714/4
`
`
`
`(List continued on next page)
`OTHER PUBLICATIONS
`
`IBM Technical Disclosure Bulletin, “Enhanced Method for
`
`Monitoring Critical Resources in Token Ring Networks,"
`1/97, vol. 40, No.
`I (pp. 111—112).
`“Error—Handling
`IBM Technical Disclosure Bulletin,
`Mechanism for Automated Problem Determination Service
`Agents on IBM Local Area Network Server Network,”
`10196, v0" 39’ N°~ 10 (pp. 191-1921
`IBM Technical Disclosure Bulletin, "Combining Multiple
`Layers of Configuration Models into a Single Report,” 3/94,
`vol. 37, No. 3 (pp. 557—560).
`
`Primary Examiner—Zami Mating
`Assistant klramim’r—Jason I). (‘ardone
`
`(74) Attorney, Agent, or Firm—Duke W. Yee; Jeflrey S.
`LaBaw, Stephen R. Tkacs
`
`(57)
`
`ABS I RAQI
`,
`.
`1
`.
`.
`.
`.
`A large distributed enterprise includes computing resources
`including a management server serv1c1ng a plurality of
`endpomt machines. A management infrastructure include a
`runtime engine is deployed on given endpoint machines. In
`response to a task deployment request at an administrative
`server, discovery agents may be launched into the computer
`network. When a software agent arrives at a given machine
`‘
`‘
`‘
`'
`'
`'
`that supports the runtime engine, the agent is executed to
`determine whether the endpomt 1s a candidate for a particu-
`1"" “‘5“ deploymcm‘
`
`29 Claims, 5 Drawing Sheets
`
`
`
`42
`
`46
`
`sow:
`AGNI
`
`REPUSIIORY.’
`
`ND INFORM/MON
`
`
`REIURN REQUESTED
`
`turmmnou
`SELECT WMRE
`
`
`
`
`
`
`[WIN
`AVAIUBII
`
`55
`
`
`
`
`
`
`Page 1 of 15
`
`GOOGLE EXHIBIT 1031
`
`Page 1 of 15
`
`GOOGLE EXHIBIT 1031
`
`
`
`
`
`
`US 6,549,932 B1
`
`Page 2
`
`
`
`
`
`US. PATENT DOCUMENTS
`
`
`,
`*
`
`
`
`
`
`
`
`
`
`~~~~~~~~~ 7W4
`1,1998 Mamyama Ct a1~
`5,706,422 A 1
`
`
`
`
`
`
`
`:1ng 1i~~~~~~~~~~~~~~
`3383/33:
`2,728,202:
`*
`61,133:
`
`
`
`
`
`
`
`
`3709’,202
`twl'"
`31998 BaiT:
`538023291 A *
`
`
`
`
`
`
`
`
`
`.‘m e a‘
`3
`3
`’
`’
`
`/1998 snbon et a1.
`5,805,884 A *
`..
`709/320
`
`
`
`
`
`
`
`
`
`,
`,
`,
`709,202
`9/1998 Gleenblatt et 211.
`5,809,238 A
`
`
`
`
`
`
`
`
`
`
`.. 714/31
`/1998 Ote et a1.
`......
`5 815 652 A *
`
`
`
`
`
`
`
`
`
`’
`’
`,
`,,
`.709,202
`10/1998 Randell
`......
`5,826,020 A
`
`
`
`
`
`
`
`
`,,
`,
`11/1998 Prageretal.
`5,838,918 A
`709,221
`
`.
`.
`,
`
`
`
`
`
`
`
`
`.709,223
`2/1999 Chlvalurl
`5,872,931 A *
`
`
`
`
`
`
`
`
`,
`709,317
`.....
`/1999 Tada ct a1.
`5,887,171 A *
`
`
`.
`,
`
`
`
`
`
`
`
`
`5/1999 Danknlck ct al..
`5,901,286 A *
`709,203
`
`
`
`
`
`
`
`
`
`
`,
`.. 709,226
`6/1999 Spofford etal.
`5,913,037 A *
`..
`
`
`
`
`
`
`
`
`
`
`,
`/1999 Nguyen etal.
`5,920,692 A *
`
`709,204
`
`
`
`
`
`
`
`
`
`,,
`,
`.. 709,202
`/1999 Noble et a].
`......
`5,944,782 A
`
`
`
`
`
`
`
`
`
`.
`,
`8/1999 Nleten ........................ 709,202
`5,944,783 A *
`
`
`
`
`
`
`
`.
`,
`-
`,,
`.
`
`
`
`
`
`
`
`
`
`9/1999 Frledrlch et a1.
`709,224
`5,958,009 A
`
`9/1999 Chang et a1.
`..
`5,958,016 A *
`709/229
`
`
`
`
`
`
`
`
`5,987,135 A * 11/1999 Johnson et al.
`709/224
`
`
`
`
`
`
`
`
`
`6,006,251 A * 12/1999 Toyouchi et a1.
`.. 709/203
`
`
`
`
`
`
`
`
`
`
`
`
`................. 709/202
`6,009,456 A * 12/1999 Frew et al.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`...... 714/26
`6,012,152 A *
`1/2000 Douik et a1.
`
`............. 707/104.1
`6,029,175 A *
`2/2000 Chow etal.
`
`
`
`
`
`
`
`
`
`.............. 709/202
`6,049,819 A *
`4/2000 Buckle eta].
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`6,055,562 A *
`4/2000 Devarakonda et a1.
`709/202
`6061721 A *
`5/2000 Ismael et a1.
`.....
`709/223
`
`
`
`
`
`
`
`
`
`
`3
`3
`709/202
`6,073,162 A 3
`6/2000 Joannsen et a1.
`.
`
`
`
`
`
`
`
`
`
`,
`
`
`
`
`
`
`
`
`
`713/191
`6,075,863 A
`(3/2000 Kllsllllau et a1.
`709/223
`6,088,727 A 33
`7/2000 Hosokawa et a1.
`
`..
`
`
`
`
`
`
`
`
`709/202
`6094 673 A *
`7/2000 Dlllp etal.
`.......
`
`
`
`
`
`
`
`
`
`3
`3
`713/153
`6108 782 A *
`8/2000 Fletcher et a1.
`
`3
`3
`
`
`
`
`
`
`
`
`709/202
`6112 225 A *
`8/2000 Kraft et a1.
`
`3
`3
`
`
`
`
`
`
`
`
`709/221
`6185 611 B1 *
`2/2001 Waldo et a1.
`..
`
`3
`3
`
`
`
`
`
`
`
`
`. 709/224
`6240 451 B1 33
`5/2001 Campbell et a1.
`
`
`
`
`
`
`
`
`
`3
`3
`.
`6266 709 B1 *
`7/2001 Glsh .......................... 709/315
`
`
`
`
`
`
`
`3
`3
`6,266,805 B1 *
`7/2001 Nwana et a1.
`................. 717/4
`
`.
`
`
`
`
`
`
`
`
`6330 597 B2 * 12/2001 Colhn ct a1.
`. 709/220
`
`
`3
`3
`,
`
`
`
`
`
`
`
`
`6,336,139 B1 *
`1/2002 Fondun ct a1.
`............. 709/224
`
`
`
`
`
`
`
`
`
`6363 421 B2 *
`3/2002 B k
`1
`1
`709/223
`
`
`
`
`
`
`
`
`
`at e‘ e a' """""""""
`3
`3
`
`
`
`
`..
`
`
`* cited by examiner
`
`
`
`
`
`Page 2 of 15
`
`Page 2 of 15
`
`
`
`US. Patent
`
`Apr. 15, 2003
`
`Sheet 1 0f5
`
`US 6,549,932 Bl
`
`\‘
`
`TME SERVER
`fihmII-II?
`
`l\“\\\“\\l—
`
`
`
`MANAGED
`NODE (LARGE)
`11111111111
`
`
`
`
`TEMINAL
`NODES (TNs)
`
`TERMINAL
`NODES (TNs)
`
`Page 3 of 15
`
`Page 3 of 15
`
`
`
`US. Patent
`
`Apr. 15, 2003
`
`Sheet 2 of5
`
`US 6,549,932 B1
`
`FIG. 2
`
`
`GATEWAY
`"""u'EE'm/‘EE """"" "
`
`23
`
`AUTHORIZER
`
`[\J U'l
`
`[PC
`
`OBJECT
`
`LIBRARY
`
`29
`
`THREADS
`
`OS
`
`A
`
`M
`I I l I I I I I I I I I I I I I I I I I
`
`
`
`19
`
`1 7
`
`15
`
`16
`
`
`
` r
`
`
`L-------7
`
`
`
`
`|\)
`
`
`
`
`ENDPOINT
`
`CLIENT
`
`LCF
`
`24
`
`°
`
`°
`
`°
`
`ENDPOINT
`
`CLIENT
`
`LCF
`
`24
`
`FIG. 2A
`
`24B
`
`DAEMON
`
`24A
`
`RUNTIME
`LIBRARY
`
`Page 4 of 15
`
`Page 4 of 15
`
`
`
`US. Patent
`
`Apr. 15, 2003
`
`Sheet 3 0f 5
`
`US 6,549,932 B1
`
`
`
`TERMINAL
`NODES (TNs)
`
`30
`
`DISTRIBUTE RUNTIME
`ENGINES
`
`———————————— OFFLINE
`
`34
`
`32
`
`TASK
`
`REQUEST?
`
`
`YES
`
`DISCOVERY
`
`
`ENABLED?
`
`YES
`36
`
` YES
`QUERY
`REPOSITORY?
`
`
`
`NO
`
`FIG. 5
`
`TERMINATE
`
`
`NO INFORMATION
`NOT AVAILABLE
`
`INFORMATION
`AVAILABLE
`
`PARSE TASK
`
`RETURN REQUESTED
`INFORMATION
`
`SELECT SOFTWARE
`AGENT
`
`DEPLOY SOFTWARE
`AGENT
`
`INSTANTIATE
`
`TERMINATE
`
`38
`
`40
`
`42
`
`44
`
`46
`
`Page 5 of 15
`
`Page 5 of 15
`
`
`
`US. Patent
`
`Apr. 15, 2003
`
`Sheet 4 0f5
`
`US 6,549,932 B1
`
`FIG. 4
`
`
`
`2 0
`
`
`
`
`
`TN
`MANAGER
`
`“u“
`\\I“
`
`14
`
`MANAGED
`NODE (LARGE)
`
`’12
`
`MR
`
`
`
`
`
`
`\
`
` M\ o o o
`
`
`TN GATEWAY
`TN GATEWAY
`
`TN GATEWAY
`
`TERMINAL
`NODES (TNs)
`
`TERMINAL
`NODES (TNs)
`
`
`
`Page 6 of 15
`
`Page 6 of 15
`
`
`
`US. Patent
`
`Apr. 15, 2003
`
`Sheet 5 0f5
`
`US 6,549,932 B1
`
`FIG. 6
`
`50
`
`AGENT ARRIVES
`AT NODE
`
`52
`
`LINK AGENT INTO RUNTIME
`
`54
`
`INITIATE LOCAL
`DISCOVERY
`
`
`
`
`
`GIVEN
`CRITERIA
`
`
`MET?
`
`NO
`
`YES
`
`COMPILE/GENERATE
`IDENTIFYING INFORMATION
`
`53
`
`NOW
`
`YES
`
`SAVE TO DATASTORE
`
`TRANSMIT INFORMATION
`
`64
`
`62
`
`
`ADDITIONAL
`PATHS?
`
`YES
`
`68
`
`Page 7 of 15
`
`
`
`66
`N0 ®
`EX I CUIS /
`S
`B C
`70
`
`I N
`
`H TRAN MIT
`
`A K
`
`CLONE AGENT
`
`72
`
`74
`
`Page 7 of 15
`
`
`
`
`
`US 6,549,932 B1
`
`
`
`
`1
`SYSTEM, METHOD AND COMPUTER
`
`
`
`
`PROGRAM PRODUCT FOR DISCOVERY IN
`
`
`
`
`
`A DISTRIBUTED COMPUTING
`
`
`ENVIRONMENT
`
`
`
`
`
`BACKGROUND OF THE INVENTION
`
`
`
`
`
`
`1. Technical Field
`
`
`
`The present invention is directed to managing a large
`
`
`
`
`
`
`
`
`
`distributed computer enterprise network and, more
`
`
`
`
`
`
`particularly,
`to performing discovery operations therein
`
`
`
`
`
`
`preferably using software components that are deployed in
`
`
`
`
`
`
`
`
`the network and adapted to be executed in local runtime
`
`
`
`
`
`
`
`
`
`
`environments.
`
`2. Description of the Related Art
`
`
`
`
`
`
`Today, companies desire to place all of their computing
`
`
`
`
`
`
`
`
`
`resources on the company network. To this end, it is known
`
`
`
`
`
`
`
`
`
`
`
`to connect computers in a large, geographically-dispersed
`
`
`
`
`
`
`
`network environment and to manage such an environment in
`
`
`
`
`
`
`
`
`
`a distributed manner. One such management framework
`
`
`
`
`
`
`
`comprises a server that manages a number of nodes, each of
`
`
`
`
`
`
`
`
`
`which has a local object database that stores object data
`
`
`
`
`
`
`
`
`
`
`specific to the local node. Each managed node typically
`
`
`
`
`
`
`
`
`
`includes a management framework, comprising a number of
`
`
`
`
`
`
`management routines, that is capable of a relatively large
`
`
`
`
`
`
`
`
`
`number (e.g., hundreds) of simultaneous network connec-
`
`
`
`
`
`
`tions to remote machines. As the number of managed nodes
`
`
`
`
`
`
`
`
`
`
`increases, the system maintenance problems also increase,
`
`
`
`
`
`
`
`as do the odds of a machine failure or other fault.
`
`
`
`
`
`
`
`
`
`
`The problem is exacerbated in a typical enterprise as the
`
`
`
`
`
`
`
`
`
`
`node number rises. Of these nodes, only a small percentage
`
`
`
`
`
`
`
`
`
`
`are file servers, name servers, database servers, or anything
`
`
`
`
`
`
`
`
`
`but end—of—wire or “endpoint” machines. The majority of the
`
`
`
`
`
`
`
`
`
`network machines are simple personal computers (“PCs”)
`
`
`
`
`
`
`
`or workstations that see little management activity during a
`
`
`
`
`
`
`
`
`
`normal day.
`
`
`System administrators typically manage such environ—
`
`
`
`
`
`ments through system and network tasks that are configured
`
`
`
`
`
`
`
`
`by the administrator on some local machine and then dis-
`
`
`
`
`
`
`
`
`
`tributed or deployed into the network. A machine that is to
`
`
`
`
`
`
`
`
`
`
`
`receive the task is referred to as a deployment “target”. The
`
`
`
`
`
`
`
`
`
`
`
`locations and characteristics of the target machines,
`
`
`
`
`
`
`
`however, are typically determined by the administrator
`
`
`
`
`
`
`
`manually. Thus, for example, if the task to be deployed is a
`
`
`
`
`
`
`
`
`
`
`
`
`database management application,
`the administrator must
`
`
`
`
`
`
`specify the particular database servers in the network. This
`
`
`
`
`
`
`
`
`
`process is cumbersome and time—consuming, especially as
`
`
`
`
`
`
`
`the size of the network increases to include thousands of
`
`
`
`
`
`
`
`
`
`
`connected machines. If the system administrator does not
`
`
`
`
`
`
`
`
`specify all target machines, the system administration task
`
`
`
`
`
`
`
`
`may be implemented incorrectly. Alternatively, if the num-
`
`
`
`
`
`
`
`ber and location of targets is over—specified, network
`
`
`
`
`
`
`
`resources are consumed unnecessarily.
`
`
`
`
`In addition, there are many other reasons why network
`
`
`
`
`
`
`
`
`administrators have an interest in performing so-called “dis-
`
`
`
`
`
`
`
`covery” operations in such a large managed environment. As
`
`
`
`
`
`
`
`one example, an administrator may desire to determine how
`
`
`
`
`
`
`
`
`many and which machines in the environment presently
`
`
`
`
`
`
`
`support a given version of a software program. Discovery
`
`
`
`
`
`
`
`may also be required to determine whether a particular
`
`
`
`
`
`
`
`
`machine has sufficient resource (e.g., available disk storage)
`
`
`
`
`
`
`
`to support a software upgrade. Yet another reason to perform
`
`
`
`
`
`
`
`
`a discovery operation might simply involve a need or desire
`
`
`
`
`
`
`
`
`
`to perform system or resource inventory to facilitate plan-
`
`
`
`
`
`
`
`
`ning for future enterprise expansion. The nature and types of
`
`
`
`
`
`
`
`
`
`discovery: operations are thus quite varied.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`10
`
`
`
`
`
`
`
`I\)m
`
`
`
`
`LA)LII
`
`
`
`40
`
`
`
`
`
`
`
`
`
`60
`
`
`
`
`
`Page 8 of 15
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`2
`
`Known distributed management architectures do not
`
`
`
`
`
`afford the system administrator the ability to issue a distri-
`
`
`
`
`
`
`
`
`
`bution request and deploy a task without having to manually
`
`
`
`
`
`
`
`
`
`associate the tasks with given groups of machines. Likewise,
`
`
`
`
`
`
`
`
`
`such known techniques have not been readily adapted to
`
`
`
`
`
`
`
`
`
`facilitate a wide range of basic discovery operations that are
`
`
`
`
`
`
`
`
`
`
`desired to facilitate system administration, management and
`
`
`
`
`
`
`
`maintenance in such an environment, especially as the
`
`
`
`
`
`
`
`
`network grows to include thousands of connected, managed
`
`
`
`
`
`
`
`
`machines.
`
`The present invention addresses these and other associ-
`
`
`
`
`
`
`
`ated problems of the prior art.
`
`
`
`
`
`
`BRIEF SUMMARY OF THE INVENTION
`
`
`
`
`
`It is thus a primary object of this invention to perform
`
`
`
`
`
`
`
`
`
`
`discovery operations in a distributed computer enterprise
`
`
`
`
`
`
`environment
`in which a large number of machines are
`
`
`
`
`
`
`
`
`connected and managed.
`
`
`
`It is another primary object of this invention to deploy
`
`
`
`
`
`
`
`
`
`discovery agents in the distributed computer network that
`
`
`
`
`
`
`
`are executed in local runtime environments to perform such
`
`
`
`
`
`
`
`
`discovery operations.
`
`
`Another primary objective of this invention is to provide
`
`
`
`
`
`
`
`
`
`software components that are readily deployed into a
`
`
`
`
`
`
`
`
`distributed, managed environment for discovering given
`
`
`
`
`
`
`facts (e.g., machine and/or source identity, characteristics,
`
`
`
`
`
`
`
`
`state, status, attributes, and the like) that are then useful in
`
`
`
`
`
`
`
`
`
`
`
`controlling a subsequent operation (e.g., a task deployment).
`
`
`
`
`
`
`A more specific object of this invention is to provide a
`
`
`
`
`
`
`
`
`
`
`
`mechanism by which a dispatcher may identify particular
`
`
`
`
`
`
`
`
`machines that are candidates to receive a task deployment so
`
`
`
`
`
`
`
`
`
`
`that an administrator or other user need not manually
`
`
`
`
`
`
`
`
`
`associate the task with given groups of machines.
`
`
`
`
`
`
`
`
`It is a particular object of this invention to deploy a
`
`
`
`
`
`
`
`
`
`
`Java-based software “discovery agent” into a distributed
`
`
`
`
`
`
`computer network environment
`to discover particular
`
`
`
`
`
`machines or resources that are to be targeted to receive a
`
`
`
`
`
`
`
`
`
`
`particular task deployment within the network.
`
`
`
`
`
`
`A further object of this invention to launch a set of one or
`
`
`
`
`
`
`
`
`
`
`
`
`more discovery agents into a large, distributed computer
`
`
`
`
`
`
`
`
`network in response to a given request for the purpose of
`
`
`
`
`
`
`
`
`
`
`
`identifying and locating suitable target machines or
`
`
`
`
`
`
`
`resources for receipt of a given task. The task may be an
`
`
`
`
`
`
`
`
`
`
`
`
`administrative task, a management task, a configuration
`
`
`
`
`
`
`
`task, or any other application.
`
`
`
`
`
`A further specific object of this invention is to customize
`
`
`
`
`
`
`
`
`
`
`or tailor the software agent dispatched in the network for
`
`
`
`
`
`
`
`
`
`
`discovery purposes as a function of the type of task to be
`
`
`
`
`
`
`
`
`
`
`
`
`subsequently deployed. Thus, the software agent may more
`
`
`
`
`
`
`
`
`readily determine whether a candidate machine may qualify
`
`
`
`
`
`
`
`as a potential target for the deployment.
`
`
`
`
`
`
`
`Yet another more general object of this invention is to
`
`
`
`
`
`
`
`
`
`
`more fully automate the discovery of distribution targets in
`
`
`
`
`
`
`
`
`
`a large, distributed computing network and thereby reduce
`
`
`
`
`
`
`
`
`the expense and complexity of system administration.
`
`
`
`
`
`
`
`Another object of the present invention is to initially
`
`
`
`
`
`
`
`
`dispatch a minimum amount of code that may be necessary
`
`
`
`
`
`
`
`
`
`to discover distribution targets for a subsequent task deploy-
`
`
`
`
`
`
`
`
`ment in a large computer network.
`
`
`
`
`
`
`It is a further object of this invention to deploy a self—
`
`
`
`
`
`
`
`
`
`
`
`routing software agent into a distributed computer network
`
`
`
`
`
`
`
`to discover workstations that satisfy a given criteria. During
`
`
`
`
`
`
`
`
`a particular search, a given agent may “clone” itself at a
`
`
`
`
`
`
`
`
`
`
`particular node to continue the search along a new network
`
`
`
`
`
`
`
`
`
`path.
`
`
`
`
`
`
`
`
`
`
`Page 8 of 15
`
`
`
`
`
`US 6,549,932 B1
`
`
`
`
`
`10
`
`
`
`
`
`
`
`I\)m
`
`
`
`
`LA)LII
`
`
`
`40
`
`
`
`
`
`
`
`
`
`3
`
`Yet another more general object of the present invention
`
`
`
`
`
`
`
`
`
`is to collect
`information about workstations in a large
`
`
`
`
`
`
`
`
`
`computer networked environment as mobile discovery
`
`
`
`
`
`
`agents are dispatched and migrated throughout the network.
`
`
`
`
`
`
`
`
`These and other objects of the invention are achieved by
`
`
`
`
`
`
`
`
`
`
`the disclosed system, method and computer product for
`
`
`
`
`
`
`
`
`discovery in a large, distributed computer networking envi-
`
`
`
`
`
`
`
`ronment. A management
`infrastructure supported in the
`
`
`
`
`
`
`
`networking environment includes a dispatch mechanism,
`
`
`
`
`
`
`which is preferably located at a central location (e.g., an
`
`
`
`
`
`
`
`
`
`
`
`administrative server), and a runtime environment supported
`
`
`
`
`
`
`on given nodes of the network. In particular, the runtime
`
`
`
`
`
`
`
`
`
`
`environment (e.g., an engine) is preferably part of a distrib-
`
`
`
`
`
`
`
`
`uted framework supported on each managed node of the
`
`
`
`
`
`
`
`
`
`distributed enterprise environment.
`
`
`
`One preferred method begins upon a distribution request.
`
`
`
`
`
`
`
`
`The distribution request is not limited to any particular type
`
`
`
`
`
`
`
`
`
`
`of system or network administration, configuration or man-
`
`
`
`
`
`
`
`agement
`task.
`In response to the request,
`the dispatch
`
`
`
`
`
`
`
`
`
`mechanism determines whether the machines targeted for
`
`
`
`
`
`
`
`the deployment (namely,
`the “target machines”) can be
`
`
`
`
`
`
`
`
`identified from local sources (e.g., a local repository of
`
`
`
`
`
`
`
`
`
`
`previously-collected or generated configuration
`
`
`
`
`information). If such information is not available or it
`
`
`
`
`
`
`
`
`
`otherwise not useful, the dispatch mechanism deploys into
`
`
`
`
`
`
`
`
`the network a set of one or more “discovery agents” that are
`
`
`
`
`
`
`
`
`
`
`
`tasked to locate and identify suitable target(s) for the deploy-
`
`
`
`
`
`
`
`
`
`ment. These one or more agents then “fan-out” into the
`
`
`
`
`
`
`
`
`
`
`network to collection information to facilitate subsequent
`
`
`
`
`
`
`
`task deployment. Preferably, the discovery agent is a small
`
`
`
`
`
`
`
`
`
`piece of code that is customized or tailored as a function of
`
`
`
`
`
`
`
`
`
`
`
`
`the particular task to be later deployed. This customization
`
`
`
`
`
`
`
`
`
`reduces the time necessary to complete an overall search
`
`
`
`
`
`
`
`
`
`because the agent
`thus may be “tuned” to evaluate the
`
`
`
`
`
`
`
`
`
`
`candidate node for a particular characteristic. If that char—
`
`
`
`
`
`
`
`
`acteristic is not present, the software agent may then proceed
`
`
`
`
`
`
`
`
`
`elsewhere (or clone itself to follow a new network path).
`
`
`
`
`
`
`
`
`
`
`When a particular discovery agent arrives at a node in the
`
`
`
`
`
`
`
`
`
`
`network, the software agent preferably is linked into the
`
`
`
`
`
`
`
`
`
`local runtime environment already present to thereby initiate
`
`
`
`
`
`
`
`
`a local discovery process. The discovery routine executed by
`
`
`
`
`
`
`
`
`
`the discovery agent may discover that the local machine (or
`
`
`
`
`
`
`
`
`
`
`some resource or application thereon) is a suitable target,
`
`
`
`
`
`
`
`
`
`that the local machine (or some application thereon) is not
`
`
`
`
`
`
`
`
`
`
`a suitable target, or that insufficient information is available
`
`
`
`
`
`
`
`
`
`to make this determination. Based on information obtained
`
`
`
`
`
`
`
`
`during the discovery process, the software agent also may
`
`
`
`
`
`
`
`
`
`identify one or more new network paths that must be
`
`
`
`
`
`
`
`
`
`
`traversed to continue the discovery process and thereby
`
`
`
`
`
`
`
`
`complete the search. The software agent may then launch
`
`
`
`
`
`
`
`
`
`itself to another node, or it may “clone” itself and launch a
`
`
`
`
`
`
`
`
`
`
`
`
`“cloned” agent over the new network path as needed.
`
`
`
`
`
`
`
`
`
`If the software agent discovers that the candidate machine
`
`
`
`
`
`
`
`
`
`is a suitable target, certain identifying information (e.g., a
`
`
`
`
`
`
`
`
`
`confirmation, a machine identifier, a state identifier or the
`
`
`
`
`
`
`
`
`
`like) is generated. The identifying information is then saved
`
`
`
`
`
`
`
`
`
`within a datastore associated with the agent (if the agent is
`
`
`
`
`
`
`
`
`
`
`
`to return to the dispatch mechanism) or, alternatively, such
`
`
`
`
`
`
`
`
`
`information is transmitted back to the dispatch mechanism
`
`
`
`
`
`
`
`
`(if the agent is to extinguish itself upon completion of the
`
`
`
`
`
`
`
`
`
`
`
`discovery process). Such transmission may be effected using
`
`
`
`
`
`
`
`
`a simple messaging technique. When a given network path
`
`
`
`
`
`
`
`
`
`is exhausted, the discovery agent then either returns to the
`
`
`
`
`
`
`
`
`
`
`dispatch mechanism or extinguishes itself, as the case may
`
`
`
`
`
`
`
`
`
`be.
`
`Thus, at each node, the software agent is preferably run by
`
`
`
`
`
`
`
`
`
`
`
`the runtime engine previously deployed there. Alternatively,
`
`
`
`
`
`
`
`
`
`
`Page 9 of 15
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`4
`
`runs as a standalone process using
`the software agent
`
`
`
`
`
`
`
`
`existing local resources. When the suitability of the work-
`
`
`
`
`
`
`
`
`station (as a target machine) is indeterminate, the software
`
`
`
`
`
`
`
`
`agent may obtain additional code from the dispatch mecha-
`
`
`
`
`
`
`
`
`nism or from some other network source to facilitate its
`
`
`
`
`
`
`
`
`
`determination. Such additional code may be another soft—
`
`
`
`
`
`
`
`ware agent.
`
`
`While one preferred “discovery” operation involves a
`
`
`
`
`
`
`
`determination of whether a given machine or resource is a
`
`
`
`
`
`
`
`
`
`
`suitable target for a task deployment, other more discovery
`
`
`
`
`
`
`
`
`
`operations may be implemented in like manner. Thus, a
`
`
`
`
`
`
`
`
`
`discovery operation may be implemented for inventory
`
`
`
`
`
`
`
`control, for determining which machines support which
`
`
`
`
`
`
`
`versions of given software, for determining the ability of a
`
`
`
`
`
`
`
`
`
`given machine or an associated resource to support given
`
`
`
`
`
`
`
`
`
`software or to perform a given task, and the like.
`
`
`
`
`
`
`
`
`
`
`The foregoing has outlined some of the more pertinent
`
`
`
`
`
`
`
`
`
`objects of the present invention. These objects should be
`
`
`
`
`
`
`
`
`
`construed to be merely illustrative of some of the more
`
`
`
`
`
`
`
`
`
`
`prominent features and applications of the invention. Many
`
`
`
`
`
`
`
`
`other beneficial results can be attained by applying the
`
`
`
`
`
`
`
`
`
`disclosed invention in a different manner or modifying the
`
`
`
`
`
`
`
`
`
`invention as will be described. Accordingly, other objects
`
`
`
`
`
`
`
`
`and a fuller understanding of the invention may be had by
`
`
`
`
`
`
`
`
`
`
`
`referring to the following Detailed Description of the pre-
`
`
`
`
`
`
`
`
`ferred embodiment.
`
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`
`
`
`
`For a more complete understanding of the present inven—
`
`
`
`
`
`
`
`
`tion and the advantages thereof, reference should be made to
`
`
`
`
`
`
`
`
`
`
`the following Detailed Description taken in connection with
`
`
`
`
`
`
`
`
`the accompanying drawings in which:
`
`
`
`
`
`FIG. 1 illustrates a simplified diagram showing a large
`
`
`
`
`
`
`
`
`distributed computing enterprise environment in which the
`
`
`
`
`
`
`present invention is implemented;
`
`
`
`
`FIG. 2 is a block diagram of a preferred system manage-
`
`
`
`
`
`
`
`
`
`ment framework illustrating how the framework function-
`
`
`
`
`
`
`ality is distributed across the gateway and its endpoints
`
`
`
`
`
`
`
`
`within a managed region;
`
`
`
`
`FIG. 2A is a block diagram of the elements that comprise
`
`
`
`
`
`
`
`
`
`
`the LCF client component of the system management frame-
`
`
`
`
`
`
`
`
`work;
`
`FIG. 3 illustrates a smaller “workgroup” implementation
`
`
`
`
`
`
`of the enterprise in which the server and gateway functions
`
`
`
`
`
`
`
`
`
`are supported on the same machine;
`
`
`
`
`
`
`FIG. 4 is a distributed computer network environment
`
`
`
`
`
`
`
`having a management infrastructure for use in carrying out
`
`
`
`
`
`
`
`
`the preferred method of the present invention;
`
`
`
`
`
`
`
`FIG. 5 is a flowchart illustrating a preferred method of
`
`
`
`
`
`
`
`
`
`
`deploying a software discovery agent
`in response to a
`
`
`
`
`
`
`
`
`
`distribution request in the computer network; and
`
`
`
`
`
`
`
`FIG. 6 is a flowchart of a software agent local discovery
`
`
`
`
`
`
`
`
`
`mechanism according to the preferred embodiment of this
`
`
`
`
`
`
`
`invention.
`
`
`
`
`
`
`
`
`
`
`
`60
`
`
`
`
`
`
`
`DETAILED DESCRIPTION OF THE
`
`
`
`PREFERRED EMBODIMENT
`
`
`the invention is preferably
`Referring now to FIG. 1,
`
`
`
`
`
`
`
`
`implemented in a large distributed computer environment 10
`
`
`
`
`
`
`comprising up to thousands of “nodes.” The nodes will
`
`
`
`
`
`
`
`
`typically be geographically dispersed and the overall envi-
`
`
`
`
`
`
`
`ronment is “managed” in a distributed manner. Preferably,
`
`
`
`
`
`
`
`the managed environment (ME) is logically broken down
`
`
`
`
`
`
`
`into a series of loosely-connected managed regions (MR)
`
`
`
`
`
`
`
`12, each with its own management server 14 for managing
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Page 9 of 15
`
`
`
`
`
`US 6,549,932 B1
`
`
`
`
`
`5
`
`local resources with the MR. The network typically will
`
`
`
`
`
`
`
`
`
`include other servers (not shown) for carrying out other
`
`
`
`
`
`
`
`
`
`distributed network functions. These include name servers,
`
`
`
`
`
`
`
`security servers, file servers, threads servers, time servers
`
`
`
`
`
`
`
`
`and the like. Multiple servers 14 coordinate activities across
`
`
`
`
`
`
`
`
`
`the enterprise and permit remote site management and
`
`
`
`
`
`
`
`
`operation. Each server 14 serves a number of gateway
`
`
`
`
`
`
`
`
`
`machines 16, each of which in turn support a plurality of
`
`
`
`
`
`
`
`
`
`
`
`endpoints 18. The server 14 coordinates all activity within
`
`
`
`
`
`
`
`
`
`the MR using a terminal node manager 20.
`
`
`
`
`
`
`
`
`Referring now to FIG. 2, each gateway machine 16 runs
`
`
`
`
`
`
`
`
`
`
`a server component 22 of a system management framework.
`
`
`
`
`
`
`
`
`The server component 22 is a multi-threaded runtime pro-
`
`
`
`
`
`
`
`
`cess that comprises several components: an object request
`
`
`
`
`
`
`
`
`broker or “ORB” 21, an authorization service 23, object
`
`
`
`
`
`
`
`
`
`location service 25 and basic object adaptor or “BOA” 27.
`
`
`
`
`
`
`
`
`
`
`Server component 22 also includes an object library 29.
`
`
`
`
`
`
`
`
`
`Preferably, the ORB 21 runs continuously, separate from the
`
`
`
`
`
`
`
`
`
`operating system, and it communicates with both server and
`
`
`
`
`
`
`
`
`
`client processes through separate stubs and skeletons via an
`
`
`
`
`
`
`
`
`
`interprocess communication (IPC) facility 19. In particular,
`
`
`
`
`
`
`
`a secure remote procedure call (RPC) is used to invoke
`
`
`
`
`
`
`
`
`
`
`operations on remote objects. Gateway machine 16 also
`
`
`
`
`
`
`
`
`includes an operating system 15 and a threads mechanism
`
`
`
`
`
`
`
`
`
`17.
`
`The system management framework includes a client
`
`
`
`
`
`
`
`component 24 supported on each of the endpoint machines
`
`
`
`
`
`
`
`
`
`18. The client component 24 is a low cost, low maintenance
`
`
`
`
`
`
`
`
`
`
`application suite that is preferably “dataless” in the sense
`
`
`
`
`
`
`
`
`
`that system management data is not cached or stored there
`
`
`
`
`
`
`
`
`
`
`in a persistent manner. Implementation of the management
`
`
`
`
`
`
`
`
`framework in this “client—server” manner has significant
`
`
`
`
`
`
`
`advantages over the prior art, and it facilitates the connec-
`
`
`
`
`
`
`
`
`
`tivity of personal computers into the managed environment.
`
`
`
`
`
`
`
`
`Using an object-oriented approach, the system management
`
`
`
`
`
`
`
`framework facilitates execution of system management
`
`
`
`
`
`
`tasks required to manage the resources in the MR. Such
`
`
`
`
`
`
`
`
`
`
`tasks are quite varied and include, without limitation, file
`
`
`
`
`
`
`
`
`
`and data distribution, network usage monitoring, user
`
`
`
`
`
`
`
`management, printer or other
`resource configuration
`
`
`
`
`
`
`management, and the like.
`
`
`
`
`In the large enterprise such as illustrated in FIG. 1,
`
`
`
`
`
`
`
`
`
`
`preferably there is one server per MR with some number of
`
`
`
`
`
`
`
`
`
`
`
`gateways. For a workgroup-size installation (e.g., a local
`
`
`
`
`
`
`
`
`area network) such as illustrated in FIG. 3, a single server—
`
`
`
`
`
`
`
`
`
`
`class machine may be used as the server and gateway, and
`
`
`
`
`
`
`
`
`
`
`the client machines would run a low maintenance frame-
`
`
`
`
`
`
`
`
`work References herein to a distinct server and one or more
`
`
`
`
`
`
`
`
`
`
`gateway(s) should thus not be taken by way of limitation as
`
`
`
`
`
`
`
`
`
`
`these elements may be combined into a single platform. For
`
`
`
`
`
`
`
`
`
`intermediate size installations the MR grows breadth-wise,
`
`
`
`
`
`
`with additional gateways then being used to balance the load
`
`
`
`
`
`
`
`
`
`of the endpoints.
`
`
`
`The server is the top-level authority over all gateway and
`
`
`
`
`
`
`
`
`
`endpoints. The server maintains an endpoint list, which
`
`
`
`
`
`
`
`keeps track of every endpoint in a managed region. This list
`
`
`
`
`
`
`
`
`
`preferably contains all information necessary to uniquely
`
`
`
`
`
`
`identify and manage endpoints including, without limitation,
`
`
`
`
`
`
`such information as name, location, and machine type. The
`
`
`
`
`
`
`
`
`server also maintains the mapping between endpoint and
`
`
`
`
`
`
`
`gateway, and this mapping is preferably dynamic.
`
`
`
`
`
`
`
`As noted above,
`there are one or more gateways per
`
`
`
`
`
`
`
`
`
`
`managed region. Preferably, a gateway is a fully-managed
`
`
`
`
`
`
`
`
`node that has been configured to operate as a gateway. As
`
`
`
`
`
`
`
`
`
`
`
`endpoints login, the gateway builds an endpoint list for its
`
`
`
`
`
`
`
`
`
`
`endpoints. The gateway’s duties preferably include: listen—
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`10
`
`
`
`
`
`
`
`I\)m
`
`
`
`
`LA)LII
`
`
`
`40
`
`
`
`
`
`
`
`
`
`60
`
`
`
`
`
`Page 10 of 15
`
`
`6
`ing for endpoint login requests, listening for endpoint update
`
`
`
`
`
`
`
`
`requests, and (its main task) acting as a gateway for method
`
`
`
`
`
`
`
`
`
`
`invocations on endpoints.
`
`
`
`is a machine
`the endpoint
`As also discussed above,
`
`
`
`
`
`
`
`
`framework client
`running the system management
`
`
`
`
`
`component, which is referred to herein as the low cost
`
`
`
`
`
`
`
`
`
`ramework (LCF). The LCF has two main parts as illustrated
`
`
`
`
`
`
`
`
`
`in FIG. 2A: the LCF daemon 24a and an application runtime
`
`
`
`
`
`
`
`
`
`
`ibrary 24b. The LCF daemon 24a is responsible for end—
`
`
`
`
`
`
`
`
`
`login and for spawning application endpoint
`aoint
`
`
`
`
`
`
`executables. Once an executable is spawned, the LCF dae-
`
`
`
`
`
`
`
`
`mon 24a has no further interaction with it. Each executable
`
`
`
`
`
`
`
`
`
`is linked with the application runtime library 24b, which
`
`
`
`
`
`
`
`
`iandles all further communication with the gateway.
`
`
`
`
`
`
`
`Preferably,
`the server and each of the gateways is a
`
`
`
`
`
`
`
`
`
`computer or “machine.” For example, each computer may
`
`
`
`
`
`
`
`3e a RISC System/6000® (a reduced instruction set or
`
`
`
`
`
`
`
`
`so-called RISC-based workstation)
`running the
`
`
`
`
`AIX( (Advanced Interactive Executive) operating system,
`
`
`
`
`
`arefer