IP Library Granted Patent US 9,634,951
Granted Patent B1
US 9,634,951 · App. 14/303,431 · Granted Apr 25, 2017

Autonomous agent messaging

Inventors: Gwendolyn Meredith Hunt (Portland, OR); Benjamin John Jansen (Tigard, OR); Eric Lee Delaney (Portland, OR)
Assignee: Tripwire, Inc.
H04L47/50
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,634,951
App. No.
14/303,431
Granted
Apr 25, 2017
Kind
B1
Abstract

Apparatus and methods are disclosed for generating, sending, and receiving messages in a networked environment using autonomous (or semi-autonomous) agents. In one example of the disclosed technology, a method of collecting data from an agent executing on a host computer connected to one or more agent data consumers via a network connection includes collecting host data, the collecting occurring whether or not the agent can currently send data via the network connection. When the agent cannot send data via the network connection, the agent spools at least a portion of the collected host data in a spooler. When the agent can send data via the computer network, the agent sends at least a portion of the spooled host data to at least one of the agent data consumers.

Claims (80)

1. A method of collecting data from an agent executing on a host computer, the host computer being connected to one or more agent data consumers via a network connection, the method comprising:

with the agent, searching for one or more software plugins among a plurality of plugins available on the host computer;

with the agent, loading at least one of the one or more software plugins for execution on the host computer by the agent;

with the agent, receiving a request for host data from an agent bridge via the network connection;

based at least in part on the request, selecting at least one of the loaded software plugins to collect the requested host data and invoking the selected plugin on the host computer;

collecting the host data with the agent using the selected software plugin on the host computer, the collecting occurring whether or not the agent can currently send data via the network connection;

when the agent cannot send data via the network connection, storing at least a portion of the collected host data in a spooler hosted by the agent; and

when the agent can send data via the network connection, sending at least a portion of the spooled host data to at least one of the agent data consumers.

2. The method of claim 1 , wherein a rate at which spooled data is sent to the agent data consumers is increased or decreased based at least in part on lag of the spooler.

3. The method of claim 1 , wherein a rate at which data is spooled and/or a rate at which the spooled data is sent to the one or more agent data consumers is based at least in part on currently-available resources of the host computer.

4. The method of claim 1 , wherein:

one or more plugins executable on the host computer collect the host data;

the agent sends data to the plugins indicating lag of the spooler; and

the plugins adjust a rate of collecting host data based at least in part on the indicated spooler lag.

5. The method of claim 1 , wherein:

the host data is collected by one or more plugins executable on the host computer when the agent cannot send data via the network connection; and

wherein the spooled host data is sent to the at least one of the agent data consumers via a bridge executing on an agent platform server.

6. The method of claim 1 , wherein a point in time at which the spooled host data is sent to the at least one of the agent data consumers is based at least in part on a pseudorandom or random number.

7. The method of claim 1 , further comprising sending a shutdown message to one or more plugins executing on the host computer based on currently-available data capacity of the spooler.

8. The method of claim 1 , wherein:

the spooler comprises a first-in-first-out (FIFO) queue and a last-in-first-out queue (LIFO); and

at least a portion of data in the LIFO queue is sent before data in the FIFO queue, the sent LIFO queue data being generated at a later point in time than at least a portion of the FIFO queue data.

9. The method of claim 1 , wherein the agent data consumers are first agent data consumers, and wherein the method further comprises, after the collecting, the spooling, and the sending:

sending at least a portion of the spooled host data to a second one or more agent data consumers, wherein the second agent data consumers are different than the first data agent consumers.

10. The method of claim 1 , wherein each of the plugins is associated with a different set of one or more spool files controlled by the spooler.

11. The method of claim 1 , further comprising:

receiving a request from the agent bridge for a description of data that can be generated by the plugins; and

responsive to receiving the request, sending a description of messages that can be produced by the agent from one or more of the plugins to the agent bridge, wherein the plugins associated with the described messages is identified in the description.

12. One or more non-transitory computer-readable storage media storing computer-readable instructions that when executed by a host computer, cause the host computer to perform a method of collecting data from an agent executing on the host computer, the computer being connected to one or more agent data consumers via a network connection, the method comprising:

with the agent, searching for one or more plugins software plugins among a plurality of available on the host computer;

with the agent, loading at least one of the one or more software plugins for execution on the host computer by the agent;

with the agent, receiving a request for host data from an agent bridge via the network connection;

based at least in part on receiving the request, invoking one or more of the loaded plugins on the host computer;

collecting host data with the invoked agents using the plugins executing on the host computer, the collecting occurring whether or not the invoked agents can currently send data via the network connection;

if the invoked agents cannot send currently data via the network connection, storing at least a portion of the collected host data in a spooler hosted by the invoked agent; and

if the invoked agents can currently send data via the network connection, sending at least a portion of the spooled host data to at least one of the agent data consumers via the network connection.

13. The computer-readable storage media of claim 12 , wherein a rate at which spooled data is sent to the agent data consumers is increased or decreased based at least in part on lag of the spooler.

14. The computer-readable storage media of claim 12 , wherein a rate at which data is spooled and/or a rate at which the spooled data is sent to the one or more agent data consumers is based at least in part on currently-available resources of the host computer.

15. The computer-readable storage media of claim 12 , wherein:

one or more plugins executable on the host computer collect the host data;

the agent sends data to the plugins indicating lag of the spooler; and

the plugins adjust a rate of collecting host data based at least in part on the indicated spooler lag.

16. The computer-readable storage media of claim 12 , wherein:

the host data is collected by one or more plugins executable on the host computer when the agent cannot send data via the network connection; and

wherein the spooled host data is sent to the at least one of the agent data consumers via a bridge executing on an agent platform server.

17. The computer-readable storage media of claim 12 , wherein a point in time at which the spooled host data is sent to the at least one of the agent data consumers is based at least in part on a pseudorandom or random number.

18. The computer-readable storage media of claim 12 , wherein the method further comprises sending a shutdown message to one or more plugins executing on the host computer based on currently-available data capacity of the spooler.

19. The computer-readable storage media of claim 12 , wherein:

the spooler comprises a first-in-first-out (FIFO) queue and a last-in-first-out queue (LIFO); and

at least a portion of data in the LIFO queue is sent before data in the FIFO queue, the sent LIFO queue data being generated at a later point in time than at least a portion of the FIFO queue data.

20. The computer-readable storage media of claim 12 , wherein the agent data consumers are first agent data consumers, and wherein the method further comprises, after the collecting, the spooling, and the sending:

sending at least a portion of the spooled host data to a second one or more agent data consumers, wherein the second agent data consumers are different than the first data agent consumers.

21. The computer-readable storage media of claim 12 , wherein each of the plugins is associated with a different set of one or more spool files controlled by the spooler.

22. The computer-readable storage media of claim 12 , wherein the method further comprises:

receiving a request from the agent bridge for a description of data that can be generated by the plugins; and

responsive to receiving the request, sending a description of messages that can be produced by the agent from one or more of the plugins to the agent bridge, wherein the plugins associated with the described messages is identified in the description.

23. A system, comprising:

a first computer system hosting one or more agent data consumers, the first computer system comprising one or more processors and memory;

a second computer system hosting one or more agent platform servers, each of the agent platform servers including an agent bridge, the second computer system comprising one or more processors and memory; and

a network connection coupling one or more agents to a respective at least one of the agent data consumers via at least one of the agent platform servers, the agents being configured to execute on respective computing hosts, each of the computing hosts including one or more computer-readable storage media storing computer-readable instructions that when executed, cause the respective agent's computing host to perform a method, the method comprising:

searching for one or more software plugins among a plurality of plugins available on the computer;

with the agent, loading at least one of the one or more software plugins for execution on the agent's respective host computer by the agent;

receiving a request for host data from an agent bridge via the network connection;

based at least in part on the request, selecting at least one of the loaded plugins to collect the requested host data and invoking the selected plugin on the host computer;

collecting host data, the collecting occurring whether or not the at least one agent can currently send data via the network connection;

when the at least one agent cannot send data via the network connection, storing at least a portion of the collected host data in a spooler hosted by the at least one agent; and

when the at least one agent can send data via the network connection, sending at least a portion of the spooled host data to at least one of the agent data consumers via at least one of the agent platform servers.

24. The system of claim 23 , wherein:

the agents include plugin means for collecting the host data and spooler means for storing data from plugin means; and

the agent platform servers include agent bridge means for sending messages between the agent data consumers and the agents.

25. The system of claim 23 , wherein:

the host data is collected by one or more plugins executable on the host computer when the agent cannot send data via the network connection; and

wherein the spooled host data is sent to the at least one of the agent data consumers via a bridge executing on a computer server hosting an agent platform server.

26. The system of claim 23 , wherein a point in time at which the spooled host data is sent to the at least one of the agent data consumers is based at least in part on a pseudorandom or random number.

27. The system of claim 23 , further comprising sending a shutdown message to one or more plugins executing on the host computer based on currently-available data capacity of the spooler.

28. The system of claim 23 , wherein the agent data consumers are first agent data consumers, and wherein the method further comprises, after the collecting, the spooling, and the sending:

sending at least a portion of the spooled host data to a second one or more agent data consumers, wherein the second agent data consumers are different than the first data agent consumers.

29. The system of claim 23 , wherein the method further comprises:

receiving a request from the agent bridge for a description of data that can be generated by the plugins; and

responsive to receiving the request, sending a description of messages that can be produced by the agent from one or more of plugins to the agent bridge, wherein the plugins associated with the described messages is identified in the description.

Assignments (11)
SECURITY INTEREST Recorded Jan 6, 2026
From: ALERT LOGIC, INC.; DIGITAL GUARDIAN LLC; ECRIME MANAGEMENT STRATEGIES, INC.; FORTRA, LLC; GLOBALSCAPE, INC.; TRIPWIRE, INC.
To: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
Reel/Frame 074233/0632 →
TERMINATION AND RELEASE OF SECOND LIEN INTELLECTUAL PROPERTY SECURITY INTEREST RECORDED AT REEL/FRAME 60306/0365 Recorded Nov 24, 2025
From: JEFFERIES FINANCE LLC
To: TRIPWIRE, INC.
Reel/Frame 074023/0235 →
TERMINATION AND RELEASE OF FIRST LIEN INTELLECTUAL PROPERTY SECURITY INTEREST RECORDED AT REEL/FRAME 60306/0555 Recorded Nov 24, 2025
From: JEFFERIES FINANCE LLC
To: TRIPWIRE, INC.
Reel/Frame 074023/0320 →
EXTENDED RCF FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Nov 21, 2025
From: TRIPWIRE, INC.
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 073663/0639 →
TERMINATION AND RELEASE OF SECOND LIEN INTELLECTUAL PROPERTY SECURITY INTEREST RECORDED AT REEL/FRAME 60306/0649 Recorded Nov 21, 2025
From: ACQUIOM AGENCY SERVICES LLC
To: TRIPWIRE, INC.
Reel/Frame 073663/0698 →
EXTENDED FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Nov 21, 2025
From: TRIPWIRE, INC.
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 073664/0124 →
NEW MONEY FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Nov 21, 2025
From: ALERT LOGIC, INC.; DIGITAL GUARDIAN LLC; ECRIME MANAGEMENT STRATEGIES, INC.; FORTRA, LLC; GLOBALSCAPE, INC.; TRIPWIRE, INC.; VERA SECURITY, INC.
To: ARES CAPITAL CORPORATION, AS COLLATERAL AGENT
Reel/Frame 073683/0534 →
ASSIGNMENT OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Aug 14, 2025
From: GOLUB CAPITAL MARKETS LLC (AS EXISTING AGENT)
To: ACQUIOM AGENCY SERVICES LLC (AS SUCCESSOR COLLATERAL AGENT)
Reel/Frame 072471/0665 →
FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jun 7, 2022
From: TRIPWIRE, INC.
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 060306/0365 →
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jun 7, 2022
From: TRIPWIRE, INC.
To: GOLUB CAPITAL MARKETS LLC, AS COLLATERAL AGENT
Reel/Frame 060306/0649 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 13, 2014
From: HUNT, GWENDOLYN MEREDITH; JANSEN, BENJAMIN JOHN; DELANEY, ERIC LEE
To: TRIPWIRE, INC.
Reel/Frame 033097/0450 →