`Desai et a].
`
`[54]
`
`[75]
`
`INTELLIGENT REMOTE AGENT FOR
`COMPUTER PERFORMANCE MONITORING
`
`Inventors: Arun K. Desai. Thousand Oaks; Scott
`Alan Bendar. Westlake Village:
`Gregory William Modster. Los
`Angeles. all of Calif.
`
`[73]
`
`Assignee: Candle Distributed Solutions, Inc..
`Santa Monica. Calif.
`
`[21]
`[22]
`[51]
`[52]
`[58]
`
`Appl. No.: 708,234
`
`Filed:
`
`Sep. 6, 1996
`
`Im. Cl.6 .................................................... .. G06F 11/34
`
`US. Cl. .............................................................. .. 395/54
`Field of Search ...................... .. 364/DIG. l. DIG. 2:
`340/825.07: 345/148. 502; 348/571; 370/396:
`395000.32. 200.33. 200.53. 200.54. 200.49.
`200.55. 200.56. 200.67. 200.52. 677. 671.
`684. 680. 681; 707/1. 102. 103; 704/200
`
`[5 6]
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`4,423,414 12/1983 Bryant et a1. ........ ..
`4,630,196 12/1986 Bebnar, Jr. et a1.
`4,800,488
`l/1989 Agrawal et a1.
`4,949,248
`8/1990 Caro ................. ..
`5,005,122
`4/1991 Gri?in et a1.
`5,036,459
`7/1991 den Haan et a1. .
`5,109,486
`4/1992 Seymour .......... ..
`5,129,081
`7/1992 Kobayashi et a1.
`5,133,053
`7/1992 Johnson et a1.
`5,165,018 11/1992 Simor ....... ..
`5,187,787
`2/1993 Skeen et a1.
`5,212,778
`5/1993 Dally et a1.
`5,212,792
`5/1993 Gerety et a]. ..
`5.265.250 11/1993 Andrade et a].
`
`.. 340/82507
`395000.32
`395000.55
`. 395000.33
`395000.33
`395000.67
`. 395000.54
`....... .. 707/1
`395000.53
`395000.52
`. 395/680
`. 348/571
`. 345/148
`. 395/671
`
`5,267,235 11/1993 Thacker . . . . . . . . . . . . .
`
`. . . . .. 370/396
`
`395000.67
`4/1994 Schwartz et a].
`5,301,281)
`707/102
`5,307,484 4/1994 Baker et a1v ..... ..
`. 395/684
`5,307.490 4/1994 Davidson et a1.
`5,321,303
`6/1994 Rupp ...................... .. 345/502
`5,327,559
`7/1994 Priven et a1.
`395000.33
`5,329,619
`7/1994 Page et a]. ..
`. .. 395/671
`5.335.347
`8/1994 Foss et a1. ..
`395/680
`5,341,477
`8/1994 Pitkin et a]. ..................... .. 39500056
`
`US00578 1 703A
`[11] Patent Number:
`{45] Date of Patent:
`
`5,781,703
`Jul. 14, 1998
`
`395/681
`8/1994 Doragh
`5.341.499
`.. 395000.49
`5.355.453 10/1994 Row et a1.
`.. 395000.33
`5.381.534
`1/1995 Shi ................. ..
`704000
`5.384.890 V1995 Anderson et a1.
`395/677
`5.421.015
`5/1995 Khoyi et a1.
`5.446.885
`8/1995 Moore et a1. ......................... .. 707/103
`
`FOREIGN PATENT DOCUMENTS
`
`0 259 224 3/1988 European Pat. 01f. .
`2232763 9/1990 Japan .
`
`OTHER PUBLICATIONS
`
`Richard Snodgrass. “A Relational Approach to Monitoring
`Complex Sytems". ACM Transactions on Computer Sys
`tems. vol. 6. No. 2. May 1988. pp. 157-196.
`Author Unknown. Method to Centralize Maintenance Activ
`ity of a Performance Database:./BM Technical Disclosure
`Bulletin. vol. 35. No. 2. Jul. 1992. pp. 364-368.
`Edelstein. Herb. Application Strategies (Tutorial). Supplier
`No. 1253719. “Using Stored Procedures and Triggers". Sep.
`1992. M&T Publishing Inc.. DBMS. vol. 5. No. 10. 8-pages.
`
`ABSTRACT
`
`Primary Emmc'ner—Robert B. Harrell
`Attorney, Agent, or Firm—Merchant. Gould. Smith. Edell.
`Welter. & Schmidt
`[57]
`A network monitoring system for a network interconnecting
`a plurality of computer systems. wherein the network moni
`toring system is comprised of one or more Intelligent
`Remote Agents. a Data Server. and a Proxy Controller. The
`Intelligent Remote Agents receive commands instructing
`them to collect performance data on the Agent’s associated
`computer system. wherein the commands comprise predi
`cates for ?ltering the performance data and a sampling
`interval or event occurrence. The Data Server generates
`requests for performance data and stores the collected per
`formance data returned in response to the requests. The
`Proxy Controller translates the requests generated by the
`Data Server into the commands for the Intelligent Remote
`Agents. The Proxy Controller also transmits the commands
`to the Intelligent Remote Agents. accumulates the collected
`performance data returned from the Intelligent Remote
`Agents. and forwards the collected performance data to the
`Data Server for storage therein.
`
`78 Claims, 4 Drawing Sheets
`
`12
`77/
`
`/ is
`
`oilvurrk
`
`“h ,
`
`12
`
`PMCESSOR
`
`T44 V
`,
`,
`,
`r,
`
`‘ (resilient/61mm UttlfttKSlAflttltr
`
`' ' "
`
`I'cuuwrrn
`20 “ Pnocrssm
`
`J *‘
`
`‘
`H
`
`~ H
`
`/
`‘
`‘F11
`// \
`
`
`
`,. 1'
`
`1 Fm statues orvlct
`
`,
`‘
`
`, I, W ,
`W
`mun commute
`i
`s
`s ,2"
`‘DATA 51m war
`
`_.
`
`1,
`
`72.,
`
`;. Wag. ‘A
`
`'
`
`’
`
`,5
`
`1
`
`—'
`
`loomnev
`‘
`i
`{
`PROCESSOR
`l
`‘ wrnuor'mim? ‘
`
`= _ MSENTtSjW J
`
`[MIA STMACE DIWJE ;
`
`--- ~
`
`1
`
`Petitioners Old Republic Gen'l Insur. Group, et al., Ex. 1006, p. 1
`
`
`
`Petitioners Old Republic Gen'l Insur. Group, et al., Ex. 1006, p. 2
`
`
`
`US. Patent
`
`Jul. 14, 1998
`
`Sheet 2 0f 4
`
`5,781,703
`
`INITIALIZE
`DATASERVER
`
`FIG. 2
`
`GENERATE
`
`REQUEST
`
`_
`
`SEND REQUEST
`gg?g?’gi
`
`STORE
`DATA
`
`RESPOND T0 oursrmomc
`~
`REQUEST IF
`REQUIRED
`
`REIRIEVE
`DATA
`
`:
`
`8%”
`REQUESTER
`
`DTHER
`PROCESSING ‘
`
`Petitioners Old Republic Gen'l Insur. Group, et al., Ex. 1006, p. 3
`
`
`
`US. Patent
`
`Jul. 14, 1998
`
`Sheet 3 0f 4
`
`5,781,703
`
`FIG. 3
`
`AII'IIJZEEIIEQIJTEEST
`commas
`
`_ SEND commas
`T0 IRA
`
`[so
`58
`ANALYZE REQUEST,
`W38. E RESP‘é’é%J€sP‘JR%I"”'“G
`DATASERVER
`
`f 66
`64
`SEND SW0“ AND
`UPDATE NODEUST,
`“WSW HEAT = REPORT REQUEST
`REE I T i;
`T0 IRA
`
`i\
`
`I,
`
`i
`
`CANCIS‘IL ANDUEESET
`TIMER
`
`UPDATE
`NODELIST
`
`/ 76
`UPDATE NODEUST
`THAT IRA IS
`NON-OPERATIONAL
`
`_
`
`OTHER
`PROCESSING ‘
`
`Petitioners Old Republic Gen'l Insur. Group, et al., Ex. 1006, p. 4
`
`
`
`US. Patent
`
`Jul. 14, 1998
`
`Sheet 4 0f 4
`
`5,781,703
`
`INI'IIAIJZE
`INTELLIGENT
`REMOTE AGENT
`
`FIG. 4
`
`DETERMINE PREDICATES
`AND SAMPUNG INTERVAL
`0R EVENT INOICA'I'ION
`
`F90
`
`v
`
`COLLECT AND FILTER
`DATA. RESPOND TO
`REQUEST. AND SET TIMER
`
`~
`
`=
`
`r94
`
`cOLLEcT
`DESIRED
`DATA
`
`/ 100
`COLLECT
`AND FILTER
`DATA
`
`f1 06
`COLLECT
`AND FILTER
`DATA
`
`K112
`
`CANCEL TIMER
`
`~
`
`r96
`
`RESPOND TO
`REPORT
`REQUEST
`
`K102
`sEND To
`PROXY
`CONTROLLER
`
`f1 08
`sEND TO
`PROXY
`CONTROLLER
`
`K114
`
`RESPOND TO
`PROXY
`CONTROLLER
`
`OTHER
`PROCESSING
`
`Petitioners Old Republic Gen'l Insur. Group, et al., Ex. 1006, p. 5
`
`
`
`
`
`5.781. 703
`
`LII
`
`1
`INTELLIGENT REMOTE AGENT FOR
`COMPUTER PERFORMANCE MONITORING
`CROSS-REFERENCE TO RELATED
`APPLICATIONS
`This is application is related to:
`Application Ser. No. Oil/660.730. entitled “OBJECT
`PROCEDURE MESSAGING FACILITY.” ?led Jun. 10.
`1996. by Aubrey Chernick. et al.. still pending.
`Application Ser. No. 08/653.l06 entitled “OBJECT PRO
`CEDURE MESSAGING FACILITY.” ?led May 24. 1996.
`by Aubrey Chernick. et al.. still pending.
`Application Ser. No. O8/494.83l. entitled “DATA
`SERVER WITH EVENT DRIVEN SAMPLING.” ?led Jun.
`23. 1995. by Sam Greenblatt. et al.. still pending.
`Application Ser. No. 08/264.403. entitled “EVENT
`DRIVEN SAMPLING.” ?led Jun. 23. 1994. by Alex Yung.
`now US Pat. No. 5.615.359. issued Mar. 25. 19W.
`all of which applications are incorporated by reference
`herein.
`
`2
`apparent upon reading and understanding the present
`speci?cation. the present invention discloses a network
`monitoring system for a network interconnecting a plurality
`of computer systems. wherein the network monitoring sys
`tem is comprised of one or more Intelligent Remote Agents.
`a Data Server. and a Proxy Controller. The Intelligent
`Remote Agents receive commands instructing them to col
`lect performance data on the Agent's associated computer
`system. wherein the commands comprise predicates for
`?ltering the performance data and a sampling interval or
`event occurrence. The Data Server generates requests for
`performance data and stores the collected performance data
`returned in response to the requests. The Proxy Controller
`translates the requests generated by the Data Server into the
`commands for the Intelligent Remote Agents. The Proxy
`Controller also transmits the commands to the Intelligent
`Remote Agents. accumulates the collected performance data
`returned from the Intelligent Remote Agents. and forwards
`the collected performance data to the Data Server for storage
`therein.
`
`BACKGROUND OF THE INVENTION
`1. Field of the Invention
`This invention relates in general to techniques for moni
`toring the performance of computer networks. and in
`particular. to database techniques for collecting and manag
`ing performance data from computers in a network.
`2. Description of Related Art
`In conventional computer performance monitoring
`applications. the monitoring application generates a request
`for data. such as “How busy is the CPU‘Z". This request is
`sent by the monitoring application to a data subsystem
`having such information via the network transport system.
`The data subsystem returns the information requested to the
`monitoring application which then processes the data as
`required Conventional data subsystems. such as relational
`databases. maintain the data to be requested in tables. Some
`types of data. such as network monitoring data. are often
`processed using predicate logic to compare the data against
`a predetermined threshold. Such comparisons are typically
`performed by rule based testing.
`The systems to be monitored often include complex
`computer networks that may include. inter alia. mainframes.
`minicomputers. workstations. etc. The information to be
`monitored continuously becomes more complicated so that
`there are enormous amounts of information to be analyzed
`In order to reduce the amount of data to be reviewed by the
`system operators. some techniques have been developed to
`further ?lter the data before it is reviewed by the operator.
`One example is the display by exception technique once the
`data has been collected. wherein the internal logic of the
`system displays data to the operator in accordance with a
`predicate logic test. The data that has been retrieved is
`compared to a predetermined predicate or threshold level
`and is displayed to the operator if and only if the data
`exceeds the predicate or threshold.
`As the computer network systems to be monitored grow
`in size and complexity. the data to be monitored and tested
`grows the same way. What are needed are improvements in
`the structure of database systems and monitoring applica
`tions to reduce the substantial computational time. and other
`overhead requirements. of conventional monitoring appli
`cations.
`
`25
`
`35
`
`45
`
`55
`
`60
`
`SUMMARY OF THE INVENTION
`To overcome the limitations in the prior art described
`above. and to overcome other limitations that will become
`
`65
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`Referring now to the drawings in which like reference
`numbers represent corresponding parts throughout:
`FIG. 1 is a block diagram that illustrates an exemplary
`hardware environment for the present invention: and
`FIGS. 2. 3. 4 are ?ow charts illustrating the structure and
`logic for each of the components. wherein FIG. 2 represents
`the steps performed by the Data Server. FIG. 3 represents the
`steps performed by the Proxy Controller. and FIG. 4 repre
`sents the steps performed by the Intelligent Remote Agent.
`
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENT
`In the following description of the preferred embodiment.
`reference is made to the accompanying drawings which
`form a part hereof. and in which is shown by way of
`illustration a specific embodiment in which the invention
`may be practiced. It is to be understood that other embodi
`ments may be utilized and structural changes may be made
`without departing from the scope of the present invention.
`
`OVERV ] EW
`
`FIG. 1 is a block diagram that illustrates an exemplary
`hardware environment for the present invention. The present
`invention is typically implemented using a computer net
`work 10. which includes a plurality of interconnected com
`puter systems 12. each of which may comprise mainframes.
`minicomputers. workstations. LAN servers. personal
`computers. etc.. and each of which may execute any number
`of different application programs. Those skilled in the art
`will recognize that the exemplary environment illustrated in
`FIG. 1 is not intended to limit the present invention. Indeed.
`those skilled in the art will recognize that other alternative
`hardware environments may be used without departing from
`the scope of the present invention.
`The present invention is a network 10 monitoring system
`comprised of Data Servers 14. Proxy Controllers 16. and
`Intelligent Remote Agents 18. Although only an exemplary
`con?guration of Data Servers 14. Proxy Controllers 16. and
`Intelligent Remote Agents 18 is illustrated in FIG. 1. those
`skilled in the art will recognize that any number of such
`components may be used in accordance with the present
`invention.
`Generally. the Data Servers 14. Proxy Controllers 16. and
`Intelligent Remote Agents 18 comprise computer programs
`
`Petitioners Old Republic Gen'l Insur. Group, et al., Ex. 1006, p. 6
`
`
`
`5.78 L703
`
`3
`that are tangibly embodied in or readable from a computer
`readable medium or carrier. e.g. ?xed and/or removable data
`storage and/or data communication devices. These computer
`programs may be retrieved from such devices into the
`random access memory of one or more of the computer
`systems 12 for execution. These computer programs com
`prise instructions which. when read and executed by a
`computer system 12. cause the computer system 12 to
`perform the steps necessary to execute the steps or elements
`of the present invention.
`
`DATA SERVER
`
`The Data Server 14 collects and stores performance data
`from one or more computer systems 12 in the network 10.
`In the preferred embodiment. a relational database model is
`described. although persons of ordinary skill in the art could
`easily use other types of databases. As a relational database.
`the Data Server 14 is equipped with one or more data
`retrieval engines. such as those using conventional struc
`tured query language (SQL) statements. Data is stored in the
`Data Server 14 and retrieved therefrom by one or more
`application programs. including those executing on an
`operator monitoring workstation 20.
`Each Data Server 14 may be located on any of the
`computer systems 12 or on a specialized computer system
`12 which is linked with networked computer systems 12 by
`the network 10. Preferably. if there are multiple Data Servers
`14 in the computer network 10. one of them is designated a
`Hub Data Server 14 that centrally manages and/or accumu
`lates data from the other Data Servers 14.
`Any application program may direct data and instructions
`to and from the Data Server 14 for storage and/or retrieval
`therein. Thereafter. by submitting an appropriate inquiry.
`such as an SQL statement. any application program may
`request the retrieval of such data in the Data Server 14.
`
`PROXY CONTROLLER
`
`The Proxy Controller 16 works in conjunction with the
`Data Server 14. and provides communication services with
`the Intelligent Remote Agents 18. The Proxy Controller 16
`also translates requests received from the Data Server 14
`into commands for the Intelligent Remote Agents 18. col
`lects data from the Intelligent Remote Agents 18. and
`forwards the data to the Data Server 14 for storage therein.
`In the present invention. Data Servers 14. Proxy Control
`lers 16. and Intelligent Remote Agents 18 are organized by
`“cell”. wherein a cell refers to a collection of related Data
`Servers 14. Proxy Controllers 16. and Intelligent Remote
`Agents 18. There can be any number of Intelligent Remote
`Agents 18 in any particular cell. but only one Data Server 14
`and Proxy Controller 16. A cell is referred to by a symbolic
`name. which is typically assigned by an operator or
`administrator. but may be assigned automatically by default.
`Upon initialization. a Proxy Controller 16 registers with a
`global location broker (not shown) using the name of the cell
`it was given or a default name if none is speci?ed. wherein
`the global location broker may be a process. a ?le. or a table
`(including a table stored in the Data Server 14). The Proxy
`Controller 16 then waits for requests from the Data Server
`14 or for requests or responses from an Intelligent Remote
`Agent 18.
`
`INTELLIGENT REMOTE AGENTS
`The Intelligent Remote Agents 18 communicate with the
`Proxy Controller 16. and through it the Data Server 14. for
`
`is) O
`
`35
`
`4
`the collection of performance data from the computer sys—
`tems 12. Many Intelligent Remote Agents 18 can commu
`nicate with the same Proxy Controller 16 and Data Server
`14. thereby providing scalability for the present invention.
`An Intelligent Remote Agent 18 receives commands from
`a Proxy Controller 16 associated with the Data Server 14. as
`described in more detail below. In response to such
`commands. the Intelligent Remote Agent 18 initiates data
`collection operations on its respective computer system 12.
`10 and then returns the collected data to the Proxy Controller 16
`for forwarding to the Data Server 14. Thereafter. the col
`lected data may be transmitted to an operator monitoring
`workstation 20 and/or other application programs for addi
`tional processing or perusal.
`The Intelligent Remote Agent 18 can be distinguished
`from its predecessor. the DataProbe. which is a Non
`Intelligent Remote Agent (NIRA). DataProbes use SQL to
`insert data a row at a time into a Data Server 14. There is
`generally one DataProbe process for each table. although
`this does not have to be the case. In addition. DataProbes
`insert their data on ?xed intervals controlled by a con?gu
`ration ?le located on the associated computer system 12.
`In contrast to DataProbes. Intelligent Remote Agents 18
`use Remote Procedure Calls (RPC) to communicate with the
`Proxy Controller 16. and thus do not require an SQL services
`library. Further. by using RPC rather than SQL. the Intelli
`gent Remote Agents 18 are not restricted by SQL limitation
`that allow the insertion of only one row at a time into the
`Data Server 14. As a result. the Intelligent Remote Agent 18
`can return data of any size to the Proxy Controller 16 for
`storage into the Data Server 14.
`Unlike DataProbes. Intelligent Remote Agents 18 return
`responses on a sampling interval or event occurrence con
`trolled by the requester. and not on a ?xed interval rigidly
`determined by con?guration ?les and the like. In addition.
`Intelligent Remote Agents 18 can respond with only
`requested data to the Data Server 14. ?ltering out unre
`quested data. thereby reducing tra?ic on the network 10 and
`minimizing contention for the Data Server 14.
`A computer system 12 can be monitored by any number
`of Intelligent Remote Agents 18. wherein each Intelligent
`Remote Agent 18 collects speci?c data for a speci?c table
`and each Intelligent Remote Agent 18 has its own collection
`45 interval. Thus. the Intelligent Remote Agents 18 are smaller
`than DataProbes. use a more ef?cient communications
`mechanism. collect data on sampling intervals or event
`occurrences controlled by the requester. and ?lter the infor
`mation before returning it to a Proxy Controller 16.
`When an Intelligent Remote Agent 18 initializes. it que
`ries the global location broker for the Proxy Conn'oller 16
`having the same cell name. If the Intelligent Remote Agent
`18 ?nds a Proxy Controller 16 with the same cell name. it
`infonns the Proxy Controller 16 that it is operational and
`55 ready to accept commands. If the Intelligent Remote Agent
`18 cannot ?nd an associated Proxy Controller 16. it “sleeps"
`for some period of time and then tries again to locate a Proxy
`Controller 16. This sequence continues until the Intelligent
`Remote Agent 18 ?nds an associated Proxy Controller 16.
`Using cell names in this manner isolates the Intelligent
`Remote Agents 18 from the particular location of a Proxy
`Controller 16 and Data Server 14. Thus. the Data Server 14
`and Proxy Controller 16 can be moved easily from one
`computer system 12 to another.
`Once an Intelligent Remote Agent 18 has found an
`associated Proxy Controller 16 in its cell and has informed
`the Proxy Controller 16 that it is operational. the Proxy
`
`50
`
`60
`
`Petitioners Old Republic Gen'l Insur. Group, et al., Ex. 1006, p. 7
`
`
`
`5
`Controller 16 transmits commands to initiate a “heartbeat”
`monitoring function on the Intelligent Remote Agent 18. At
`some speci?ed interval. e.g.. 10 minutes. the Intelligent
`Remote Agent 18 sends a heartbeat monitoring response to
`the Proxy Controller 16 to indicate that it is still operational.
`In this way. even if there are no situations being monitored
`by the Intelligent Remote Agent 18. the Proxy Controller 16
`can still determine whether the Intelligent Remote Agent 18
`is still operational.
`The ?rst time a heartbeat monitoring response is returned
`by an Intelligent Remote Agent 18. the Proxy Controller 16
`inserts data identifying the Intelligent Remote Agent 18 into
`a special table in the Data Server 14 called a nodelist. The
`nodelist table provides a central directory of Intelligent
`Remote Agents 18. for use by other applications. so that the
`applications know which Proxy Controller 16 to communi
`cate with in order to request data from a particular Intelligent
`Remote Agent 18. The nodelist table may be accessed from
`the operator monitoring workstation 20 or any other appli
`cation program.
`The heartbeat monitoring response indicates that an Intel
`ligent Remote Agent 18 is operational and allows situation
`monitoring (SITMON) functions to be assigned to that
`Intelligent Remote Agent 18. If. for some reason. the Intel—
`ligent Remote Agent 18 stops communicating with a Proxy
`Controller 16. it no longer returns a heartbeat monitoring
`response. and when the heartbeat monitoring interval
`expires. the Proxy Controller 16 indicates in the nodelist
`table that the Intelligent Remote Agent 18. and its associated
`computer system 12. are non-operational.
`If the Intelligent Remote Agent 18 is. in fact. operational.
`but simply cannot communicate with the Proxy Controller
`16. e.g.. during a network 10 outage of some kind. the
`Intelligent Remote Agent 18 attempts to send heartbeat
`monitoring responses and possibly other data during the
`outage. but will not be able to communicate with the Proxy
`Controller 16. If this happens. the Intelligent Remote Agent
`18 behaves exactly as if the Proxy Controller terminated 18.
`If the Intelligent Remote Agent 18 cannot communicate
`with the Proxy Controller 16. it assumes. after a certain
`number of retries. that the Proxy Controller 16 has termi
`nated. The Intelligent Remote Agent 18 then proceeds to
`discard all outstanding commands and re-initializes in the
`same manner as described above. wherein the Intelligent
`Remote Agent 18 queries the global location broker for the
`Proxy Controller 16 that matches its cell name. and then
`informs the Proxy Controller 16 that it is operational and
`ready to accept requests. If the Intelligent Remote Agent 18
`cannot ?nd an associated Proxy Controller 16. it “sleeps” for
`some period of time and then tries again to locate a Proxy
`Controller 16. This sequence continues until the Intelligent
`Remote Agent 18 ?nds an associated Proxy Controller 16.
`After the Proxy Controller 16 restarts. and the Intelligent
`Remote Agent 18 reconnects to the Proxy Controller 16. the
`Proxy Controller 16 retransmits the commands for all pend
`ing situation monitoring requests. including the heartbeat
`monitoring function. and report requests.
`If the Intelligent Remote Agent 18 aborts or otherwise
`terminates. then. after being restarted. it attempts to connect
`again with the Proxy Controller 16 during its initialization.
`As described above. the Proxy Controller 16 re-transmits
`commands for all pending situation monitoring and report
`requests to the Intelligent Remote Agent 18. in addition to
`the heartbeat monitoring function.
`PERFORMANCE MONITORING FUNCTIONS
`In the present invention. there are two ways to collect
`performance data from Intelligent Remote Agents 18: (l)
`
`50
`
`55
`
`65
`
`5.781.703
`
`20
`
`25
`
`35
`
`6
`transmitting commands for a situation monitoring request to
`a particular Intelligent Remote Agent 18 on a particular
`computer system 12: or (2) transmitting commands for a
`report request to a particular Intelligent Remote Agent 18 on
`a particular computer system 12. In both cases. the com
`mands are transmitted from the Proxy Controller 16 to the
`Intelligent Remote Agent 18 and the response is returned by
`the Intelligent Remote Agent 18 to the Proxy Controller 16
`and Data Server 14.
`For example. the Data Server 14 may include prede?ned.
`automatically-initiated. situation monitoring requests that
`are transmitted to the Proxy Controller 18 upon initialization
`of Data Server 14 and the Proxy Controller 16. The Proxy
`Controller 16 analyzes the situation monitoring request.
`extracts predicates and sampling intervals or event occur
`rences therefrom. and generates one or more command
`sequences for the Intelligent Remote Agents 18. The
`predicates. which are analogous to SQL predicates. indicate
`the speci?c items of performance data to be collected. The
`sampling intervals. which are analogous to timers. indicate
`the speci?c time periods for collecting the items of perfor
`mance data. The event occurrences. which are analogous to
`interrupts. indicate the speci?c event indication or occur
`rence that triggers the collection of performance data. The
`command sequences are then transmitted to the speci?ed
`Intelligent Remote Agents 18. Thereafter. no more com
`mands are transmitted to the Intelligent Remote Agent 18
`concerning the speci?c situation monitoring request. unless
`the Proxy Controller 16 transmits a “quit” command
`instructing the Intelligent Remote Agent 18 to end the
`speci?c situation monitoring request.
`Thereafter. all communications from the Intelligent
`Remote Agent 18 to the Proxy Controller 16 occur on the
`sampling interval or event occurrence (if there is any data to
`return). The only exception is in the case of report requests.
`where a command sequence for a report request is trans
`mitted to the Intelligent Remote Agent 18 each time the
`request is made. e.g.. when an operator on the operation
`monitoring workstation 20 selects a initial view of the
`performance data or refreshes the currently displayed view
`of the performance data.
`The Intelligent Remote Agent 18 collects the desired data
`at the speci?ed sampling interval or event occurrence. and
`determines whether the collected data satis?es any of the
`situation predicates. Any collected data that satis?es the
`situation predicates is returned to the Proxy Controller 16.
`and is then transmitted to the Data Server 14 for storage
`therein.
`There are two things in particular to note about the
`operation of an Intelligent Remote Agent 18. First. the
`Intelligent Remote Agent 18 executes asynchronously from
`the Proxy Controller 16 and the Data Server 14. Similarly.
`the Proxy Controller 16 stores returned data from the
`Intelligent Remote Agent 16 until the Data Server 14 asks
`for it (by executing instructions associated with a situation
`monitoring function at its sampling interval or event
`occurrence. for instance). Also. note that if the commands
`for a situation monitoring request are transmitted to multiple
`Intelligent Remote Agents 18. then each of the Intelligent
`Remote Agents 18 collect data asynchronously.
`Second. note that the Intelligent Remote Agent 18 returns
`the collected data to the Proxy Controller 16 if the data
`satis?es any of the situation predicates (rather than satisfy
`ing all of the situation predicates). The Data Server 14 later
`veri?es that all situation predicates are satis?ed. This tech
`nique can result in slightly more tra?ic on the network 10.
`
`Petitioners Old Republic Gen'l Insur. Group, et al., Ex. 1006, p. 8
`
`
`
`5.78l.703
`
`7
`but operations of the Intelligent Remote Agents 18 are
`greatly simpli?ed. Since the main purpose of Intelligent
`Remote Agents 18 is to avoid running a Data Server 14 on
`each managed computer system 12. the preferred embodi
`ment of the present invention uses the Intelligent Remote
`Agents 18 to perform only partial predicate processing. with
`the Data Server 14 performing full predicate processing.
`The other way to communicate with the Intelligent
`Remote Agents 18 is more direct. Instead of developing
`situation monitoring requests. i.e.. to watch for interesting
`events to occur. report requests can be used to monitor a
`computer system 12. The Data Server 14 uses distributed
`SQL in the report request to request data from the Proxy
`Controller 16. The Proxy Controller 16 transmits commands
`for the report request to the Intelligent Remote Agent 18 on
`the computer system 12 and then waits for a response. When
`the Intelligent Remote Agent 18 returns the data. the Proxy
`Controller 16 transmits the data back to the Data Server 14.
`This diifers from situation monitoring functions. because it
`is a synchronous operation. i.e.. the Data Server 14 waits for
`a response from the Proxy Controller 16. which waits for a
`response from the Intelligent Remote Agent 18. Thus. once
`the collected data is returned to the Proxy Controller 16 from
`the Intelligent Remote Agent 18. the collected data is
`immediately sent to the Data Server 14. which in turn
`immediately responds to the requester.
`Generally. report requests do not require predicates. so the
`Intelligent Remote Agent 18 sends all available data in its
`response without ?ltering the data. This can result in the
`transmission of a large amount of data and thus will provide
`more immediate data than situation monitoring requests. but
`it can also be slow and result in increased tra?‘ic on the
`network 10.
`Once a report has been requested and then later is
`refreshed. further responses should be much faster than the
`response to the initial report request. because the Proxy
`Controller 16 is already communicating with the Intelligent
`Remote Agent 18 and the Data Server 14 already knows how
`to respond to the requester. The only delay is the commu
`nication from the Proxy Controller 16 to the Intelligent
`Remote Agent 18 and back to the Proxy Controller 16.
`COMPONENT STRUCTURE AND LOGIC
`FIGS. 2-4 are ?ow charts illustrating the structure and
`logic for each of the components. wherein FIG. 2 represents
`the steps performed by the Data Server 14. FIG. 3 represents
`the steps performed by the Proxy Controller 16. and FIG. 4
`represents the steps performed by the Intelligent Remote
`Agent 18.
`Referring to FIG. 2. block 22 represents the initialization
`of the Data Server 14. which may include the generation of
`pre-de?ned situation monitoring (SITMON) requests.
`wherein the Data Server 14 transmits the requests to the
`Proxy Controller 16. Block 24 represents the Data Server 14
`waiting for the next event to occur. Thereafter. upon the
`occurrence of an event. the remaining blocks 26-44 in the
`?ow chart are performed.
`Block 26 is a decision block that represents the Data
`Server 14 determining whether the event is a situation
`monitoring (SI'I'MON) request. which may have been
`received. for example. from the operator monitoring work
`station 20 or other application. If so. block 28 represents the
`Data Server 14 generating the situation monitoring request.
`Block 30 represents the Data Server 14 sending the situation
`monitoring request to the Proxy Controller 16.
`Block 32 is a decision block that represents the Data
`Server 14 determining whether it received data from the
`
`20
`
`25
`
`35
`
`45
`
`55
`
`65
`
`8
`Proxy Controller 16. If so. block 34 represents the Data
`Server 14 storing the data and block 36 represents the Data
`Server 14 responding to any outstanding request for such
`data. e.g.. from the operator monitoring workstation 20 or
`other application.
`Block 38 is a decision block that represents the Data
`Server 14 determining whether it received a database query
`from a requester. e.g.. the operator monitoring workstation
`20 or other application program. If so. block 40 represents
`the Data Server 14 retrieving data and block 42 represents
`the Data Server 14 sending the retrieved data to the
`requester.
`Block 44 represents the Data Server 14 performing all
`other functions.
`Referring to FIG. 3. block 46 represents the initialization
`of the Proxy Controller 16. Block 48 represents the Proxy
`Controller 16 waiting for the next event to occur. Thereafter.
`upon the occurrence of an event. the remaining blocks 50-80
`in the ?ow chart are performed.
`Block 50 is a decision block that represents the Proxy
`Controller 16 det