throbber
United States Patent [191
`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

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