throbber
O
`(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

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket