`Hofmann et al.
`
`111111
`
`1111111111111111111111111111111111111111111111111111111111111
`US006519581Bl
`US 6,519,581 B1
`Feb. 11, 2003
`
`(10) Patent No.:
`(45) Date of Patent:
`
`(54) COLLECTION OF INFORMATION
`REGARDING A DEVICE OR A USER OF A
`DEVICE ACROSS A COMMUNICATION
`LINK
`
`(75)
`
`Inventors: William D. Hofmann, Berkeley, CA
`(US); John C. Hurley, Sanata Clara,
`CA(US)
`
`(73) Assignee: Alset, Inc, Palo Alto, CA (US)
`
`( *) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`Hofmann et al, "Mobile agents on the digital battlefield",
`ACM Autonomous agents, pp 219-225.*
`
`Hu et al, "Discovery of decision rules in relational data(cid:173)
`bases: a rough set approach", ACM CIKM pp 392-400.*
`
`Adomavicius et al, "User profiling in personalization appli(cid:173)
`cations through rules discovery and validation", ACM KDD
`pp 377-381.*
`
`Shyu et al, "Discovering quasi equivalance relationship
`from database system", ACM CIKM pp 102-108.*
`
`Rosset et al. "Discovery of fraud rules to telelcommunica(cid:173)
`tion challenges and soluctions" ACM KDD pp 409-413.*
`
`(21) Appl. No.: 09/844,858
`
`(22) Filed:
`
`Apr. 27, 2001
`
`* cited by examiner
`
`Related U.S. Application Data
`
`( 63) Continuation of application No. 09/017,112, filed on Jan. 31,
`1998, now Pat. No. 6,236,983.
`Int. Cl? .................................................. G06F 7/00
`(51)
`(52) U.S. Cl. .............................. 706/47; 706/45; 706/46
`(58) Field of Search .............................. 706/45, 46, 47,
`706/52, 61; 707/101, 102
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`5,185,860 A * 2/1993 Wu ............................ 709/224
`5,555,346 A * 9/1996 Gross et a!. .................. 706/45
`5,586,025 A * 12/1996 Tsuji eta!. ................... 707/50
`5,727,174 A * 3/1998 Aparicio et a!. ............ 345/348
`5,877,759 A * 3/1999 Bauer ......................... 345/339
`5,944,783 A * 8/1999 Nieten ........................ 709/202
`
`01HER PUBLICATIONS
`
`Elofson "intelligent agents extend knowledge base system
`feasibility", IBM system Journal vol. 34, No. 1, pp 78-95. *
`Hilbert et al "Agents for collecting application usage data
`over the internet", ACM Autonomous agents, pp 149-156. *
`
`Primary Examiner-Ani! Khatri
`(74) Attorney, Agent, or Firm-Lisa N. Benado
`
`(57)
`
`ABSTRACT
`
`A system is provided for collecting information regarding a
`device or a user of a device. Information is collected from
`a discovery agent residing on the computer system. At
`certain times, the agent may be activated to collect the
`information. A sender transmits a discovery rule across a
`communication link to a computer system. The discovery
`agent and the discovery rule are separate code sequences or
`separate programs. The discovery rule is then applied to the
`information received from the discovery agent and the
`resulting information is returned back to the sender. Where
`the sender receives a user request, such as regarding the
`computer system, the discovery rule may be transmitted and
`the sender may use the resulting information to respond to
`the user request.
`
`47 Claims, 6 Drawing Sheets
`
`Petitioners Old Republic Gen'l Insur. Group., et al.
`Ex. 1001, p. 1
`
`
`
`U.S. Patent
`
`Feb.l1,2003
`
`Sheet 1 of 6
`
`US 6,519,581 B1
`
`QIENT
`14A
`
`10
`
`148
`
`14C
`
`140
`
`Dlscx:MR
`Ac:c:Nf
`
`DISCXMR
`AGeNT
`
`DISCXJJER
`AGNT
`
`• • •
`
`20
`
`srrnAa= 1 - - - - - - - f
`
`Dlscx:MR
`RULE
`
`OIS(X)..ffi
`RULE
`
`01 SCXJv'ffi
`RULE
`
`• • •
`
`DISCD.Iffi
`RULE
`
`18A
`
`188
`
`18C
`
`180
`
`SERVER
`
`24
`.r-J
`
`01 SCXJ..Iffi
`ACENTS
`
`12
`
`28
`_2
`
`22
`
`26
`_2
`
`01 so::J./ffi
`RULES
`
`FIG. 1
`
`Petitioners Old Republic Gen'l Insur. Group., et al.
`Ex. 1001, p. 2
`
`
`
`U.S. Patent
`
`Feb. 11,2003
`
`Sheet 2 of 6
`
`US 6,519,581 B1
`
`OISCXJJffiY 8\JG NE
`40
`r1
`
`TABLECF
`DISCXNERY
`AG3\ITS
`
`46
`r1
`DISCXNER
`AG:NT
`ACTlVA llQ\1
`Mmt.JLE
`
`42
`r1
`
`T.ABLECF
`Dl SCXJJffiY
`RULES
`
`48
`r1
`Dl SCXJ.Iffi
`RULE
`EXEO.JnQ\1
`MCDULE
`
`16
`
`44
`r1
`
`SCHEDULffi
`MmtJLE
`
`50
`r1
`DATA
`CXl..LECTl 0\1
`MCD..LE
`
`FIG. 2
`
`Petitioners Old Republic Gen'l Insur. Group., et al.
`Ex. 1001, p. 3
`
`
`
`U.S. Patent
`
`Feb. 11,2003
`
`Sheet 3 of 6
`
`US 6,519,581 B1
`
`DiskDrivel nfo
`
`Memorylnfo
`
`Discovery
`Data Collected by Discovery Agent
`Agent Name
`HWConfiguration ProcessorMfr, ProcessorModel,
`ProcessorSpeed, RAMSize,
`Connected Devices
`DiskCapacity, DiskRemovable,
`UnusedDiskSpace
`UnusedRAM, CacheUsage,
`LargestContiguousBiock
`SWConfiguration Operating System, OpSysVersion,
`Softwarelist
`Open Windows, FrontTitle, FrontPosition,
`FrontSize, FrontType
`Hobbies, VacationPreference, Occupation,
`Gender
`
`ActiveWindows
`
`Personallnfo
`
`Invoke
`Interval
`5 min.
`
`1 min.
`
`5 sec.
`
`5 min.
`
`10 sec.
`
`5 sec.
`
`FIG. 3
`
`Discovery
`Data Required to Execute Discovery Rule
`Rule Name
`DiskDriveStatus DiskCapacity, UnusedDiskSpace
`UnusedDiskSpace, UnusedRAM, LargestContiguousBiock,
`System Status
`Open Windows
`UpgradeWindow OpenWindows, FrontTitle
`Hobbies, Softwarelist
`GolfGamers
`
`FIG. 4
`
`Petitioners Old Republic Gen'l Insur. Group., et al.
`Ex. 1001, p. 4
`
`
`
`U.S. Patent
`
`Feb. 11,2003
`
`Sheet 4 of 6
`
`US 6,519,581 B1
`
`Start )
`
`~
`
`Initialize Client System
`
`0
`
`r0
`
`Discovery engine Identifies Discovery Agents rJ
`
`and Discovery Rules Coupled to the
`Discovery Engine
`
`2
`
`1
`
`Discovery Engine Determines Which ~
`
`Discovery Rules can be Executed Based on
`the Available Discovery Agents
`
`4
`
`1r
`Discovery Engine Interrogates All
`Possible Discovery Rules
`
`6
`
`r0
`
`Discovery Engine Deactivates Discovery
`
`8
`6
`
`Agents that are Not Required to Execute rv
`
`the Identified Discovery Rules
`
`End )
`
`FIG. 5
`
`Petitioners Old Republic Gen'l Insur. Group., et al.
`Ex. 1001, p. 5
`
`
`
`U.S. Patent
`
`Feb.11,2003
`
`Sheet 5 of 6
`
`US 6,519,581 B1
`
`Reschedule
`Discovery Agent
`
`No
`
`No
`
`No
`
`Activate and Collect Data from
`the Appropriate Discovery Agents
`
`Execute the Discovery Rule Using the Data
`Collected by the Discovery Agents
`
`94
`
`FIG. 6
`
`Petitioners Old Republic Gen'l Insur. Group., et al.
`Ex. 1001, p. 6
`
`
`
`U.S. Patent
`
`Feb. 11,2003
`
`Sheet 6 of 6
`
`US 6,519,581 B1
`
`1
`
`~~ 50
`
`1
`
`~
`
`1 I
`
`1
`
`1
`
`~
`
`i
`
`~
`z
`
`~
`8 .....
`
`.
`<.9 -LL
`
`~
`a:
`
`rc_
`co
`..(cid:173)..-
`
`~~
`~~
`
`ll
`
`~~
`z~
`
`ll
`
`~
`~
`~
`0
`
`rl
`
`N .....
`.....
`
`Petitioners Old Republic Gen'l Insur. Group., et al.
`Ex. 1001, p. 7
`
`
`
`US 6,519,581 B1
`
`1
`COLLECTION OF INFORMATION
`REGARDING A DEVICE OR A USER OF A
`DEVICE ACROSS A COMMUNICATION
`LINK
`
`RELATED APPLICATION
`
`This is continuation of application Ser. No. 09/017,112,
`now U.S. Pat. No. 6,236,983, filed Jan. 31, 1998.
`
`FIELD OF THE INVENTION
`
`The present invention relates to information collection
`systems. More specifically, the invention provides a system
`for collecting information regarding a device or a user of a
`device.
`
`BACKGROUND
`
`2
`information. Instead, the discovery agents communicate the
`collected information to a discovery engine, which receives
`collected data from the discovery agents and applies dis(cid:173)
`covery rules to the collected data. The discovery rules
`s determine what, if any, action is to be taken based on the
`collected data.
`In one embodiment, the discovery rule is transmitted
`across a communication link to a computer system and the
`resulting information, e.g. analysis and collected
`10 information, is received back from the computer system
`through the link. In some instances, the sending of the
`discovery rule may be due to a user request. At times, the
`sender of the request is a remote individual. For example, the
`request may be a request for assistance made to a technical
`15 support representative or sales representative. In this case,
`the collected information/analysis information may be used
`to provide a respond to the user request.
`In still other embodiments, the discovery rule is transmit(cid:173)
`ted automatically, when the computer system establishes a
`20 connection with a server.
`In particular embodiments of the invention receives infor(cid:173)
`mation from a discovery agent, which collects information
`when activated. The discover agents may be periodically
`25 activated to collect information. The invention determines a
`discovery rule to be applied to the information received from
`the discovery agent. The discovery rule is then applied to the
`information received from the discovery agent. The discov(cid:173)
`ery agent and the discovery rule are separate code
`30 sequences.
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`Different types of systems and procedures are available
`for collecting or retrieving information from a device or a
`user of a device. The collected information may be used to
`analyze system performance, identify existing problems, or
`identify potential problems. If a problem or potential prob(cid:173)
`lem is identified, a user or administrator of the system is
`notified of the problem and can take an appropriate action.
`Existing procedures for collecting or retrieving informa(cid:173)
`tion are typically contained in a software application or a
`built-in diagnostic routine that performs one or more pro(cid:173)
`cedures to monitor specific portions of a system. Generally,
`these procedures are included in a single application or a
`diagnostic routine that retrieves information about the sys(cid:173)
`tem and analyzes the retrieved information. Therefore, these
`procedures retrieve a particular set of information and
`perform a particular analysis on the information.
`These existing applications or diagnostic routines are not
`easily modified if a user or administrator wants to change the
`information retrieved or change the analysis performed on
`the retrieved information. To make such a change requires
`modifying the application source code or modifying the
`built-in diagnostic routine, both of which can be compli-
`cated and time-consuming.
`Additionally, many existing applications are invoked and
`operated by a user of the system. Instead of running auto(cid:173)
`matically or running in a "background" mode, these appli(cid:173)
`cations are executed at the direction of the user. Thus, to 45
`retrieve data about the system using this type of application,
`the user must install the application and know how to
`operate and command the application. If the application is
`used infrequently (e.g., only when a problem occurs), the
`user is not likely to be proficient when operating the appli- 50
`cation. In this situation, the user may need to re-learn the
`operation of the application before retrieving and analyzing
`data about the system.
`It is therefore desirable to provide a system that collects
`information automatically while requiring minimal interac(cid:173)
`tion with the user of the system. Additionally, it is desirable
`to provide an information collection system that is easily
`modified to collect different types of data and perform
`different operations on the collected data.
`
`40
`
`The present invention is illustrated by way of example in
`the following drawings in which like references indicate
`35 similar elements. The following drawings disclose various
`embodiments of the present invention for purposes of illus(cid:173)
`tration only and are not intended to limit the scope of the
`invention.
`FIG. 1 illustrates an embodiment of a client and a server
`capable of implementing the teachings of the present inven(cid:173)
`tion.
`FIG. 2 illustrates an embodiment of a discovery engine
`that receives data collected by one or more discovery agents
`and applies one or more discovery rules using the received
`data.
`FIG. 3 illustrates an embodiment of a table identifying
`various discovery agents and the data collected by each
`discovery agent.
`FIG. 4 illustrates an embodiment of a table identifying
`various discovery rules and the data required to execute each
`discovery rule.
`FIG. 5 is a flow diagram illustrating an embodiment of a
`procedure for initializing an information discovery mecha(cid:173)
`ss nism on a client system.
`FIG. 6 is a flow diagram illustrating an embodiment of a
`procedure for handling the activation of discovery agents
`and the execution of discovery rules.
`FIG. 7 illustrates an embodiment of a computer system
`that can be used with the present invention.
`
`60
`
`SUMMARY OF THE INVENTION
`Embodiments of the present invention provide a system
`for passively and actively collecting information about a
`device, such as a computing device and/or the user of the
`device. The system uses one or more discovery agents to 65
`collect information about a device or its user. The discovery
`agents do not have intelligence to understand the collected
`
`DETAILED DESCRIPTION
`
`The following detailed description sets forth numerous
`specific details to provide a thorough understanding of the
`invention. However, those of ordinary skill in the art will
`appreciate that the invention may be practiced without these
`
`Petitioners Old Republic Gen'l Insur. Group., et al.
`Ex. 1001, p. 8
`
`
`
`US 6,519,581 B1
`
`5
`
`35
`
`3
`specific details. In other instances, well-known methods,
`procedures, protocols, components, algorithms, and circuits
`have not been described in detail so as not to obscure the
`invention.
`The present invention provides a system for passively and
`actively collecting information about a device, such as a
`computing device and/or the user of the device. The system
`uses one or more discovery agents (implemented using
`individual programs or code sequences) to collect informa(cid:173)
`tion about a device or its user. The discovery agents them(cid:173)
`selves have no intelligence regarding how to interpret or act
`on the collected data. Instead, the discovery agents merely
`communicate the collected data to a discovery engine, which
`is a central control module for the information collection
`system. The discovery engine receives collected data from
`the discovery agents and applies one or more discovery rules
`to the collected data. The discovery rules determine what, if
`any, action is to be taken based on the collected data. As
`discussed below, the discovery rules may be a series of
`Boolean operations, mathematical equations, or other com- 20
`parisons or evaluations of the collected data.
`The discovery agents are separate programs (or code
`sequences) from the discovery rules, and there is no par(cid:173)
`ticular relationship between the discovery agents and the
`discovery rules. A particular discovery agent may collect 25
`data that is used by one or more discovery rules. Similarly,
`a particular discovery rule may use data collected by one or
`more discovery agents. Thus, if a particular piece of data
`collected by a discovery agent is used by multiple discovery
`rules, that data need only be collected once, rather than 30
`retrieving the required data multiple times (once for each
`discovery rule requiring the information). The discovery
`engine is responsible for determining what data is required
`by a particular discovery rule and activating the appropriate
`discovery agents to collect the required data.
`Since the discovery agents and the discovery rules are not
`linked to one another, new discovery agents can be gener(cid:173)
`ated and existing discovery agents can be modified without
`necessarily requiring a corresponding change to the existing
`discovery rules. Similarly, an existing discovery rule can be
`changed or an additional rule added without necessarily
`making any changes to the existing discovery agents. For
`example, a new discovery rule may be created that uses data
`from existing discovery agents. In this situation, no addi- 45
`tional discovery agents are required to implement the new
`discovery rule. Thus, the operation of the information col(cid:173)
`lection system can be modified without requiring a revision
`of all agents and rules contained in the system.
`The updating of discovery agents and discovery rules can
`be accomplished by downloading agents or rules from a
`server or other device, or installed from a diskette or other
`storage medium. In one embodiment of the invention, new
`or revised agents and rules are downloaded automatically
`from a server to the device when the device establishes a 55
`connection with the server. This embodiment updates the
`agents and rules without requiring any user interaction or
`user control. Since the discovery agents and discovery rules
`are separate programs or code sequences, individual agents
`and rules can be communicated across a common data 60
`communication link, without requiring a high-speed or
`high-bandwidth communication link.
`Particular embodiments of the invention allow an
`individual, such as a technical support representative or a
`sales representative, to download a particular discovery
`agent or discovery rule to a client across a communication
`link, without requiring action by the user of the client. In a
`
`4
`particular example, the user of a client requests assistance
`from a technical support representative. The technical sup(cid:173)
`port representative can then download discovery agents and
`discovery rules that collect and analyze information about
`the client system. This collected information and analysis is
`communicated back to the technical support representative
`for use in providing assistance to the user of the client.
`FIG. 1 illustrates an embodiment of a client 10 and a
`server 12 capable of implementing the teachings of the
`10 present invention. Client 10 includes multiple discovery
`agents 14a, 14a, 14c, and 14d. Although FIG. 1 illustrates
`four discovery agents, a particular client may include any
`number of discovery agents. Each discovery agent 14a-4d is
`coupled to a discovery engine 16 and is capable of commu-
`15 nicating information from the discovery agent to the dis(cid:173)
`covery engine. Discovery agents 14a-14d collect informa(cid:173)
`tion about the client or the user of client 10. The information
`collected may include the hardware and software configu(cid:173)
`ration of client 10 and the hobbies or personal interests of the
`user of client 10. As discussed in greater detail below,
`discovery engine 16 is responsible for activating particular
`discovery agents, thereby causing the activated agents to
`collect data about client 10 or the user of client 10. The
`information collected by discovery agents 14a-4d is com-
`municated to discovery engine 16. A particular set of dis(cid:173)
`covery agents may be installed on client 10 by the manu(cid:173)
`facturer as part of the manufacturing process. Additional
`discovery agents can be downloaded or otherwise installed
`on the client in the future to perform additional data collec-
`tion operations. Similarly, additional discovery rules can be
`installed on the client in the future to perform additional
`analysis.
`Client 10 also contains multiple discovery rules 18a, 18b,
`18c, and 18d. Although four discovery rules are illustrated in
`FIG. 1, a particular client 10 may include any number of
`discovery rules. Additionally, the number of discovery rules
`need not correspond to the number of discovery agents. As
`discussed above, the discovery rules and the discovery
`agents are independent of one another. Discovery engine 16
`40 receives data collected from one or more discovery agents
`14a-14d and uses the received data to execute one or more
`discovery rules 18a-18d. A particular discovery rule may
`require one or more data elements retrieved from one or
`more discovery agents 14a-14d. As discussed below, a
`discovery rule may compare the collected data to a prede(cid:173)
`termined value or threshold value, or may compare one
`collected data value to another collected value. A particular
`discovery rule may contain Boolean expressions, math(cid:173)
`ematical equations or other data operation or data com pari-
`50 son. The result of a particular discovery rule may store the
`received data, invoke another discovery rule, or combine the
`received data with previously stored data (e.g., performing
`data averaging). An exemplary discovery rule is provided
`below:
`IF
`Star age Me diaCo nfig. S tor ageMediaLis t[i]
`.AvailableSpace<50 MB AND
`NOT S torageMediaConfig.StorageMediaList[ i]
`.IsRemovable
`THEN
`increment profile. s ys tern. devices. fixed me(cid:173)
`dia.lowerWaterMarkCount
`Additionally, the result of a particular discovery rule may
`trigger one or more activities or events. For example, a
`65 particular discovery rule may generate a warning to the user
`of client 10 if the available disk space or available memory
`falls below a particular threshold. In this situation, the
`
`Petitioners Old Republic Gen'l Insur. Group., et al.
`Ex. 1001, p. 9
`
`
`
`US 6,519,581 B1
`
`5
`
`5
`discovery rule will receive collected data regarding the
`available disk space and the available memory in client 10.
`That data is initially collected by discovery engine 16 from
`one or more discovery agents 14a-14d. The discovery rule
`then compares the collected data to its predetermined thresh-
`olds. If the available disk space or the available memory
`falls below the predetermined threshold, then a warning is
`generated and displayed or otherwise provided to the user of
`client 10. If the available disk space and the available
`memory are above the predetermined threshold, then the rule 10
`may complete execution without causing the occurrence of
`any particular activity or operation.
`Client 10 also includes a storage mechanism 20 coupled
`to discovery engine 16. Storage mechanism 20 can be used
`to store various tables and other configuration information 15
`used by discovery engine 16 during its regular operation.
`Additionally, storage mechanism 20 may store data gener(cid:173)
`ated during execution of one or more discovery rules.
`Client 10 is coupled to server 12 using a communication
`link 22. Communication link 22 can be any type of com- 20
`munication link using any type of communication medium.
`In a particular embodiment of the invention, client 10 and
`server 12 are coupled to one another across a network, such
`a local area network (LAN), a wide area network (WAN), or
`the Internet. Server 12 includes one or more discovery 25
`agents 24, one or more discovery rules 26, and a storage
`mechanism 28. Although server 12 contains discovery
`agents 24 and discovery rules 26, the server does not
`necessarily activate the discovery agents or execute the
`discovery rules. Instead, the server stores various discovery 30
`agents 24 and discovery rules 26 for transmission to one or
`more clients, which are then activated or executed by the
`discovery engine contained in the client.
`Storage device 28 in server 12 can be used to store various
`information regarding the clients coupled to the server and 35
`the various discovery rules and discovery agents already
`installed on each client. In a particular embodiment of the
`invention, storage device 28 also maintains the particular
`version of each discovery agent and discovery rule installed
`on each client. A typical server 12 is coupled to multiple 40
`clients 10. Although multiple clients 10 may be coupled to
`server 12, only particular clients may contain discovery
`agents, discovery rules and a discovery engine for coordi(cid:173)
`nating the collection of data. Any number of clients 10
`coupled to server 12 may be capable of implementing the 45
`information collection system of the present invention. A
`particular client 10 may be coupled to multiple servers 12
`and may receive discovery agents and discovery rules from
`multiple servers.
`FIG. 1 illustrates a particular embodiment of a client 50
`capable of implementing an information collection system
`as described herein. Similarly, server 12 is one embodiment
`of a server capable of distributing discovery agents and
`discovery rules to one or more clients. Particular compo(cid:173)
`nents of client 10 and server 12 are not shown in FIG. 1, for 55
`purposes of simplifying the illustration. For example,
`processors, memory devices, printing devices, and other
`components and devices commonly used in computer
`devices are not shown in FIG. 1. However, those of ordinary
`skill in the art will appreciate that these additional campo- 60
`nents can be added to client 10 or server 12 without affecting
`the operation of the invention.
`FIG. 2 illustrates an embodiment of a discovery engine 16
`that receives data collected by one or more discovery agents
`and applies the collected data to one or more discovery rules. 65
`Discovery engine 16 includes a table of discovery agents 40,
`which contains information about the various discovery
`
`6
`agents contained in the client. Table 40 includes, for
`example, the name (or other unique identifier) of the dis(cid:173)
`covery agent, the data collected by the discovery agent when
`the agent is activated, and the typical time interval between
`activations of the discovery agent. An exemplary table of
`discovery agents 40 is illustrated in FIG. 3, and discussed
`below.
`Discovery engine 16 also includes a table of discovery
`rules 42. Table 42 contains the name (or other unique
`identifier) of each discovery rule contained in the client, and
`information regarding the data required to execute each
`discovery rule. As discussed above, a particular discovery
`rule may require one or more data elements, which are
`collected by one or more discovery agents. An exemplary
`table of discovery rules 42 is illustrated in FIG. 4, and
`discussed below.
`Discovery engine 16 also includes a scheduler module 44.
`Particular discovery agents may require activation and peri(cid:173)
`odic time intervals (e.g., activated once every two seconds
`or once every minute). Scheduler module 44 maintains the
`information regarding the periodic activation of the discov(cid:173)
`ery agents contained in the client. The scheduler module
`may maintain its own table or register of information
`regarding the next activation of each discovery agent, or that
`information may be stored in the table of discovery agents
`40. When a particular discovery agent is scheduled to be
`activated, scheduler module 44 causes a discovery agent
`activation module 46 to perform the steps necessary to
`activate the discovery agent. Additionally, discovery agent
`activation module 46 may receive requests to activate a
`particular discovery agent from an external source (such as
`an activity or an event) other than the expiration of a time
`interval. These external activities or events may be received
`from another device coupled to a common network.
`Additionally, the external activities or events can be gener(cid:173)
`ated by the local system (i.e., the device implementing the
`information collection system). Module 46 is able to deter(cid:173)
`mine whether or not a particular discovery agent should be
`activated when an activation signal is received from sched(cid:173)
`uler module 44 or another event.
`In certain situations, the scheduler module 44 or other
`event may indicate that a discovery agent should be acti(cid:173)
`vated. However, discovery agent activation module 46 may
`override the activation request based on other factors. For
`example, the data collected by a particular discovery agent
`may not be required by any currently active discovery rule.
`In this situation, although a discovery agent may be sched(cid:173)
`uled to be activated, any data collected by the discovery
`agent would not be used. Therefore, the activation of the
`discovery agent is unnecessary, and module 46 prevents the
`activation of the discovery agent.
`Discovery engine 16 also includes a discovery rule execu(cid:173)
`tion module 48, which is used to apply the various discovery
`rules contained in the client to the data collected by the
`discovery agents (and received by discovery engine 16).
`Based on the results of the discovery rule execution, module
`48 may activate one or more activities or operations (e.g.,
`displaying a message to the user of the client). Additionally,
`the results of the discovery rule execution may activate other
`agents or rules.
`Discovery engine 16 also includes a data collection mod(cid:173)
`ule 50, which receives the data collected by the various
`discovery agents coupled to discovery engine 16. Data
`collection module 50 may be a register or other storage
`device capable of storing the collected data until the dis(cid:173)
`covery rule has been executed. At that time, the data used by
`the discovery rule is discarded; unless needed by another
`
`Petitioners Old Republic Gen'l Insur. Group., et al.
`Ex. 1001, p. 10
`
`
`
`US 6,519,581 B1
`
`7
`discovery rule being executed or a discovery rule causes the
`data to be saved. Generally, after all discovery rules requir(cid:173)
`ing a particular data element have been executed, the data
`element is discarded. Thus, the collected data from the
`discovery agents is discarded after the rules have been
`executed, thereby reducing the storage requirements of the
`information discovery system.
`FIG. 3 illustrates an embodiment of a table of discovery
`agents 40 that identifies discovery agents and the data
`collected by each discovery agent. The table illustrated in 10
`FIG. 3 contains information regarding six discovery agents.
`A particular table of discovery agents may contain any
`number of entries, based on the number of discovery agents
`contained in the client. For example, a particular information
`discovery system may contain hundreds or thousands of
`discovery agents, and a corresponding number of entries in
`the table of discovery agents.
`Referring to the example of FIG. 3, a hardware configu(cid:173)
`ration discovery agent (HWConfiguration) collects data
`regarding the processor manufacturer, the processor model,
`the processor speed, the installed memory, and information
`regarding the various devices contained in or connected to
`the client. Table 40 also contains information regarding the
`interval between activations of each discovery agent. In this
`example, the hardware configuration discovery agent is
`activated every five minutes. Since the hardware configu(cid:173)
`ration is not likely to change on a frequent basis, the interval
`between activations of the discovery agent can be relatively
`large. However, the memory status of the client may change
`regularly, such that the memory information discovery agent
`(Memory Info) is activated every five seconds.
`In an alternate embodiment of table 40, the hardware
`configuration discovery agent (HWConfiguration) does not
`collect information regarding the various devices contained
`in or connected to the client. In this embodiment, the
`hardware configuration discovery agent may have an acti(cid:173)
`vation interval of "once at startup." Since the processor
`manufacturer, processor model, and processor speed do not
`generally change while the device is operating, the agent
`only needs to be activated when the device is powered-up. 40
`The time between discovery agent activations may be
`contained within the discovery agent itself and communi(cid:173)
`cated to the discovery engine when the discovery agent is
`initialized or first activated. Thus, the developer of the
`discovery agent may define the time interval between sue- 45
`cessive activations of the discovery agent. However, the user
`or administrator of the client may change the time interval
`based on their own knowledge of the system or their own
`requirements or priorities. Therefore, the interval identified
`in table 40 may not correspond to the interval provided in the 50
`discovery agent by the developer of the discovery agent.
`The hardware configuration agent and the memory infor(cid:173)
`mation agent are examples of agents that collect information
`passively; i.e., without requiring the interaction of the user
`of the client. These passive agents monitor system activity 55
`and system configuration automatically, and collect infor(cid:173)
`mation without requiring user interaction. Table 40 also
`contains a personal information agent (Personallnfo) that
`contains information regarding the user's hobbies,
`occupation, and other personal information. This personal 60
`information agent is an example of an active discovery agent
`that collects information actively; i.e., by specifically asking
`questions of the user through a dialog box or similar
`mechanism. This type of active discovery agent requires
`interaction by the user to provide the requested information. 65
`In alternative embodiments of table 40 shown in FIG. 3,
`each discovery agent contains information regarding
`
`8
`whether the discovery agent is currently active (i.e., whether
`one or more discovery rules require