throbber
United States Patent
`(12)
`(10) Patent No.:
`US 6,549,932 Bl
`McNally etal.
`(45) Date of Patent:
`Apr. 15, 2003
`
`
`US006549932B1
`
`(54) SYSTEM, METHOD AND COMPUTER
`PROGRAM PRODUCT FOR DISCOVERYIN
`A DISTRIBUTED COMPUTING
`.
`on
`ENVIRONMENT
`Inventors: Michael MeNally, Austin, TX (US);
`.
`:
`Brian Jay Vetter, Austin, TX (US)
`.
`.
`.
`International Business Machines
`Corporation, Armonk, NY (US)
`
`.
`(73) Assignee:
`
`(75)
`
`....... 395/183.02
`8/1996 Giordanoet al.
`5,544,308 A
`..... 395/200.06
`8/1996 Hendersonet al.
`5,550,976 A
`10/1996 Wanget al.
`........... 364/551.02
`5,566,092 A
`5,572,528 A “ 11/1996 Shuen .........
`wee 370/402
`
`5,590,126 A
`12/1996 Mishraet al.
`370/329
`Seeee Stogy RUyAMa ef Ale vse 714/26
`
`5,603,029 A
`wee 709/105
`2/1997 Amanetal. .....
`
`sessesssssseee 395/610
`5,606,693 A
`2/1997 Nilsen et al.
`5,623,628 A *
`4/1997 Brayton et al. ...c..... TIU/L41
`ve 709/202
`5,655,081 A *
`8/1997 Bonnell ct al.
`..
`
`5,692,119 A * 11/1997 Koguchi et al. ec... 714/4
`
`(*) Notice:
`
`Subject to any disclaimer, the term ofthis
`patent is extended or adjusted under 35
`USC.154(b)by 0 days.
`
`(56)
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`(List continued on next page.)
`O
`0
`THER PUBLICATIONS
`IBM Technical Disclosure Bulletin, “Enhanced Method for
`Monitoring Critical Resources in Token Ring Networks,”
`(21) Appl. No.: 09/089,961
`1/97, vol. 40, No.
`1 (pp. 111-112).
`.
`‘“Error—Handling
`IBM Technical Disclosure Bulletin,
`Jun. 3, 1998
`Filed:
`(22)
`Mechanism for Automated Problem Determination Service
`5 LTooo G06F
`Agents on IBM Local Area Network Server Network,”
`(31)
`Int. Cl
`06k 15/16
`0/96.
`vol. 39.
`No.
`1¢
`91-192
`(52)
`UWS. Ch. eecceccceenetcreceeseseeeeenees 709/202; 709/223
`10/96, vol. 39,
`No. 10 (pp. 191-192).
`;
`58) Field of Search
`709/223, 224,
`IBM Technical Disclosure Bulletin, “Combining Multiple
`(
`709/244.105,239.240.3 3 317, 318,
`Layers of Configuration Models into a Single Report,” 3/94,
`(244, 1 ara, 13,

`318,
`vol. 37, No. 3 (pp. 557-560)
`320, 202; 370/252, 253, 254; 340/825.06,
`825.16; 714/47 oe ,
`‘
`Primary Examiner—Zarni Maung,
`Assistant Examiner—Jason 1D). Cardone
`(74) Attorney, Agent, or Firm—Duke W. Yee; Jeffrey S.
`LaBaw; Stephen R. Tkacs
`
`5/1992 Howes eccceccccsssesceseeee 371/11.2
`5,113,398 A
`«. 714/45
`5,157,067 A * 10/1992 Carusone,Jr. et al
`
`2/1903 Shah vccscessecesseees
`.. 395/575
`5,187,785 A
`
`. 395/575
`5,237,677 A
`8/1993 Hirosawaetal.
`1/1994 Shah v.cceccsscccsseseeseesees 371/15.1
`5,282,212 A
`. 345/866
`5,301,270 A *
`4/1994 Steinberg et al.
`...
`
`.............
`. 74/13
`5,303,243 A *
`4/1994 Anezaki
`
`5,321,813 A *
`6/1994 McMillenet al.
`..
`714/798
`5,321,837 A *
`6/1994 Daniel et al.
`.......
`707/4
`
`.. 713/176
`5,337,300 A *
`8/1994 Fischer........
`5,367,635 A * 11/1994 Baur et al. oe 709/221
`
`5,371,126 A
`12/1994 Wallace ..........
`wee 371/201
`5,410,651 A *
`4/1995 Sekizawaet al.
`.......... 709/224
`
`5,465,221 A
`11/1995 Merat et al. we 364/552
`6/1996 Dezonno oo...
`ceeeeeeeeee 379/265
`5,526,417 A
`
`6/1996 Wallace ................ 395/183.02
`5,528,748 A
`
`(57)
`
`ABSTRACT
`
`A large distributed enterprise includes computing resources
`including a management server servicing a plurality of
`endpoint machines. A managementinfrastructure 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 launchedinto 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 endpointis a candidate for a particu-
`lar task deployment.
`
`29 Claims, 5 Drawing Sheets
`
`
`
`Page 1 of 15
`
`GOOGLEEXHIBIT 1031
`
`Page 1 of 15
`
`GOOGLE EXHIBIT 1031
`
`

`

`
`
`
`US 6,549,932 B1
`
`Page 2
`
`
`
`6,009,456 A * 12/1999 Frewetal. we 709/202
`U.S. PATENT DOCUMENTS
`
`
`
`
`
`
`
`
`
`
`
`
`
`6,012,152 A *
`1/2000 Douik et al. .cccccseee 714/26
`4
`
`
`
`
`
`
`
`
`
`3,706,422 A 1/1998 Maruyama et al.
`--..-s 714/4
`2/2000 Chow et al. ccs 707/104.1
`6,029,175 A *
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`ores A : ae Bidey Wo ee
`..cc..e 709/202
`6,049,819 A *
`4/2000 Buckle et al.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`9/1998 Balick Or
`* 09/90
`4/2000 Devarakonda etal.
`...... 709/202
`x80201 A *
`6,055,562 A *
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`vee 709/223
`6,061,721 A *
`5/2000 Ismaeletal. .....
`cr a
`oe
`/
`ates
`/
`
`
`
`
`
`
`
`
`
`
`..
`9/1998 Sitbon et al.
`5,805,884 A *
`709/320
`oe
`
`
`
`
`
`
`
`
`
`........... 709/202
`6,073,162 A *
`6/2000 Joannsen et al.
`'
`,
`
`
`
`
`
`
`
`
`
`
`
`5,809,238 A*9/1998 Greenblatt et al. 709/202 i, an
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`5815652 A *
`9/1998 Oteetal.
`......
`714/31
`6,075,863 A
`6/2000 Krishnanet al.
`............ 713/191
`
`
`
`
`
`
`
`
`
`6,088,727 A *
`7/2000 Hosokawaet al.
`......... 709/223
`oe
`;
`
`
`
`
`
`
`
`
`
`
`
`5,826,020 A*10/1998 Randell ...... . 709/202 os
`
`
`
`
`
`
`
`
`
`6,094,673 A *
`7/2000 Dilip etal.
`.......
`vee 709/202
`;
`
`
`
`
`
`
`
`
`
`
`
`5,838,918 A*11/1998 Prageret al. 709/221 aes
`
`
`
`
`
`
`
`
`
`an
`6,108,782 A *
`8/2000 Fletcheretal.
`wee 713/153
`:
`
`
`
`
`
`
`
`
`
`5,872,931 A *
`2/1999 Chivaluri....
`. 709/223
`et
`
`
`
`
`
`
`
`
`6,112,225 A *
`8/2000 Kraft etal.
`...
`vee 709/202
`:
`
`
`
`
`
`
`
`
`
`
`.....
`5,887,171 A *
`3/1999 Tada ct al.
`709/317
`vee
`
`
`
`
`
`
`
`
`
`6,185,611 Bl
`2/2001 Waldo etal.
`vee 709/221
`:
`,
`*
`..
`
`
`
`
`
`
`
`
`
`5,901,286 A *
`5/1999 Danknick ct al.
`........... 709/203
`20s
`
`
`
`
`
`
`
`
`
`
`6,240,451 B1 *
`5/2001 Campbellet al.
`. 709/224
`:
`
`
`
`
`
`
`
`
`
`
`5,913,037 A *
`6/1999 Spofford et al.
`.. 709/226
`..
`cai
`al
`
`
`
`
`
`
`
`
`
`6,266,709 B1 *
`7/2001 Gish veces 709/315
`,
`
`
`
`
`
`
`
`
`5,920,692 A *
`7/1999 Nguyenetal.
`
`709/204
`22095
`
`
`
`
`
`
`
`
`6,266,805 Bl
`7/2001 Nwana etal.
`...ccceeees 717/4
`:
`*
`
`
`
`
`
`
`
`
`
`5,944,782 A
`/1999 Nobleet al.
`......
`.. 709/202
`u
`
`
`
`
`
`
`
`
`
`...
`6,330,597 B2 * 12/2001 Collin ct al.
`. 709/220
`:
`,
`
`
`
`
`
`
`
`
`
`
`5,944,783 A *
`8/1999 Nieten ..ceccsccssessseeseeees 709/202
`ie
`"
`
`
`
`
`
`
`
`or
`6,336,139 B1 *
`1/2002 Feridun ct al. ccs 709/224
`:
`<
`
`
`
`
`
`
`
`
`
`
`
`5,958,009 A*9/1999 Friedrich etal. 709/224 6363-421 B2 * 3/2002 Barker et al 509/203
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`5,958,016 A *
`9/1999 Chang etal.
`..
`ATICET CU Ms
`seereereesenees
`709/229
`22025
`
`
`
`
`
`
`
`
`
`5,987,135 A * 11/1999 Johnsonetal.
`709/224
`
`
`
`
`
`
`
`
`
`
`6,006,251 A * 12/1999 Toyouchiet al.
`........... 709/203
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`* cited by examiner
`
`
`
`
`
`
`
`Page 2 of 15
`
`Page 2 of 15
`
`

`

`U.S. Patent
`
`Apr.15, 2003
`
`Sheet 1 of 5
`
`US 6,549,932 B1
`
`NODE (LARGE)
`
`Nessriliezesl MANAGED
`
`[Fron
`
`TERMINAL
`NODES (TNs)
`
`TERMINAL
`NODES (TNs)
`
`Page 3 of 15
`
`Page 3 of 15
`
`

`

`U.S. Patent
`
`Apr.15, 2003
`
`Sheet 2 of 5
`
`US 6,549,932 B1
`
`FIG. 2
`
`
`
`16
`
`ee eee SERVER —~er as a= =p ap ==
`Bo
`
`©za@
`
`KO
`
`NO wn
`
`AUTHORIZER
`
`LOCATOR
`
`OBJECT
`RAR
`
`mica
`
`29
`
`BOA
`
`NO si
`| = eee ew ee ee ee ee ee 6 oe oe ee ee ee ee
`
`
`
`
`
`ENDPOINT
`
`CLIENT
`
`LCF
`
`o °°
`
`CLIENT
`LCF
`
`
` GATEWAY
`Lwaneeeeeeeeee7
`
`24
`24 ENDPOINT
`248
`
`FIG. 2A
`
`RUNTIME
`LIBRARY
`
`DAEMON
`
`24A
`
`Page 4 of 15
`
`Page 4 of 15
`
`

`

`U.S. Patent
`
`Apr.15, 2003
`
`Sheet 3 of 5
`
`US 6,549,932 Bl
`
` TN MANAGER
`
`
` TERMINAL
`“7 NODES(TNs)
`
`30~[
`
`DISTRIBUTE RUNTIME
`ENGINES
`
`------|---..- OFFLINE
`
`32
`
`
`TASK
`REQUEST?
`
`
`34 6S
`
`
`
`DISCOVERY
`
`ENABLED?
`36
`eS
`
`
`
`FIC. 5
`
`TERMINATE
`
`NO
`
`YES
`
`INFORMATION
`
`NO|INFORMATION AVAILABLE
`NOT AVAILABLE
`
`42
`
`44
`
`46
`
`PARSE TASK
`
`RETURN REQUESTED
`INFORMATION
`
`SELECT SOFTWARE
`AGENT
`
`DEPLOY SOFTWARE
`AGENT
`
`INSTANTIATE
`
`TERMINATE
`
`38
`
`40
`
`Page 5 of 15
`
`Page 5 of 15
`
`

`

`U.S. Patent
`
`Apr.15, 2003
`
`Sheet 4 of 5
`
`US 6,549,932 B1
`
`FIG. 4
`
`20
`“a
`
`faa
`
`MANAGER
`
`ODE
`
`ie
`
`TN GATEWAY
`
`RQ = zy
`TN GATEWAY
`
`MR
`
`12
`
`Se
`UU
`
`TN GATEWAY
`
`
`
`TERMINAL
`NODES (TNs)
`
`ENGINE
`
`44
`
`
`
`TERMINAL
`NODES (TNs)
`
`Page 6 of 15
`
`Page 6 of 15
`
`

`

`U.S. Patent
`
`Apr. 15, 2003
`
`Sheet 5 of 5
`
`US6,549,932 B1
`
`FIG. 6
`
`AGENT ARRIVES
`AT NODE
`
`LINK AGENT INTO RUNTIME
`
`INITIATE LOCAL
`DISCOVERY
`
`NO
`
`
`G
`
`CRITERIA
`MET?
`
`YES
`
`COMPILE/GENERATE
`IDENTIFYING INFORMATION
`
`
`NO(
`
`YES
`
`TRANSMIT INFORMATION
`
`
`
`72
`
`7
`
`<>
`
`LONE AGENT
`
`» C
`
`62
`
`
`
`ADDITIONAL
`
`PATHS?
`66
`NO
`EXTINGUISH/TRANSMIT
`
`TIN
`
`H/TRANSMIT
`
`“YES
`
`BACK
`
`BAC
`
`50
`
`S2~J
`
`54
`
`58—|
`
`68
`
`SAVE TO DATASTORE
`
`64
`
`Page 7 of 15
`
`Page 7 of 15
`
`

`

`
`
`US 6,549,932 B1
`
`
`
`
`1
`SYSTEM, METHOD AND COMPUTER
`
`
`
`
`PROGRAM PRODUCT FOR DISCOVERYIN
`
`
`
`
`
`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 environmentin
`a distributed manner. One such management framework
`
`
`
`
`
`
`
`comprises a server that manages a numberof 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 problemsalso 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 (“PC’s”)
`or workstationsthatsee little managementactivity 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 maydesire 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
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`machinehassufficient 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 inventoryto facilitate plan-
`
`
`
`
`
`
`
`
`ning for future enterprise expansion. The nature and types of
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`discovery: operations are thus quite varied.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`ey}wn
`
`
`
`40
`
`
`
`
`
`5
`
`
`
`
`
`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
`desiredto facilitate system administration, management and
`
`
`
`
`
`
`
`maintenance in such an environment, especially as the
`
`
`
`
`
`
`
`
`network growsto 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
`machinesthat 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.‘hus, 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 discoveryof 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 amountof code that may be necessary
`to discoverdistribution targets for a subsequent task deploy-
`
`
`
`
`
`
`
`
`ment in a large computer network.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`It is a further object of this invention to deploya 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
`
`
`
`
`
`
`
`
`
`
`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 sofiware
`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
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`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, methad 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.
`
`
`
`Onepreferred method begins upona 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 deploysinto
`the network a set of one or more “discovery agents” that are
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`tasked Lo locate and identifysuitable 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).
`Whena particular discovery agentarrives at a node in the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`network, the software agent preferably is linked into the
`local runtime environmentalready presentto thereby initiate
`
`
`
`
`
`
`
`
`a local discovery process. The discovery routine executed by
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`the discovery agent may discoverthat 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, ccrtain identifying information (c.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 agentis
`
`
`
`
`
`
`
`
`
`to return to the dispatch mechanism)or, alternatively, such
`information is transmitted back to the dispatch mechanism
`
`
`
`
`
`
`
`
`Cif the agent is to extinguish itself upon completion of the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`discovery process). Such transmission maybe effected using
`a simple messaging technique. When a given network path
`
`
`
`
`
`
`
`
`
`is exhausted, the discovery agent then either returns to the
`
`
`
`
`
`
`
`
`
`
`dispatch mechanism or extinguishesitsclf, as the casc may
`
`
`
`
`
`
`
`
`
`be.
`
`Thus, at each node, the software agent is preferably run by
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`the runtime engine previously deployed there. Alternatively,
`
`ey}wn
`
`
`
`40
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`For a more complete understanding of the present inven-
`tion and the advantagesthercof, reference should be made to
`
`
`
`
`
`
`
`
`
`
`the following Detailed Description taken in connection with
`
`
`
`
`
`
`
`
`the accompanying drawings in which:
`
`
`
`
`
`FIG.1 illustrates a simplificd diagram showing a large
`
`
`
`
`
`
`
`
`distributed computing enterprise environment in which the
`
`
`
`
`
`
`present invention is implemented;
`
`
`
`
`TIG. 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 diagramof the elements that comprise
`
`
`
`
`
`
`
`
`
`the LCF client componentof the system managementframe-
`
`
`
`
`
`
`
`
`work;
`
`FIG.3 illustrates a smaller “workgroup” implementation
`
`
`
`
`
`
`of the enterprise in which the server and gatewayfunctions
`
`
`
`
`
`
`
`
`
`are supported on the same machine;
`
`
`
`
`
`
`
`FIG. 4 is a distributed computer network environment
`
`
`
`
`
`
`having a managementinfrastructure 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.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`DETAILED DESCRIPTION OF THE
`
`
`
`PREFERRED EMBODIMENT
`
`
`Referring now to FIG. 1,
`the invention is preferably
`
`
`
`
`
`
`
`
`implementedin a large distributed computer environment 10
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`comprising up to thousands of “nodes.” The nodes will
`typically be geographically dispersed and the overall cnvi-
`
`
`
`
`
`
`
`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 managementserver 14 for managing
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`60
`
`Page 9 of 15
`
`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 scrves 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
`clicnt processes through scparate stubs and skelctons 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 clicnt 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 connce-
`
`
`
`
`
`
`
`
`
`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 varicd 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 maybe 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 wayof limitation as
`
`
`
`
`
`
`
`
`
`these elements may be combinedinto a single platform. For
`
`
`
`
`
`
`intermediate size installations the MR growsbreadth-wise,
`with additional gateways then being usedto balance the load
`
`
`
`
`
`
`
`
`
`of the endpoints.
`
`
`
`The server is the top-lcvel authority over all gateway and
`
`
`
`
`
`
`
`
`
`endpoints. The server maintains an endpoint list, which
`
`
`
`
`
`
`
`keepstrack of every endpoint in a managed region. This list
`
`
`
`
`
`
`
`
`
`preferably contains all information necessary to uniquely
`
`
`
`
`
`
`
`
`
`
`
`
`identify and manage endpoints including, withoutlimitation,
`
`
`
`
`
`
`
`
`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 onc 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 endpointlist for its
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`endpoints. The gateway’s duties preferably include: listen-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`10
`
`
`
`
`
`
`
`i}wn
`
`
`
`
`
`
`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 mainparts asillustrated
`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
`point
`
`
`
`
`
`
`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
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`handles all further communication with the gateway.
`Preferably,
`the server and each of the gateways is a
`
`
`
`
`
`
`
`
`
`computer or “machine.” For example, each computer may
`
`
`
`
`
`
`
`be a RISC System/6000® (a reduced instruction set or
`
`
`
`
`
`
`
`
`so-called RISC-based workstation)
`running the
`
`
`
`
`
`
`
`
`
`ATX( (Advanced Interactive Executive) operating system,
`preferably Version 3.2.5 or greater. Suitable alternative
`
`
`
`
`
`
`machines include: an IBM-compatible PC x86 or higher
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`running, Novell UnixWare 2.0, an AT&T 30

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