IP Library Granted Patent US 10,313,257
Granted Patent B1
US 10,313,257 · App. 14/818,169 · Granted Jun 4, 2019

Agent message delivery fairness

Inventors: Gwendolyn Meredith Hunt (Portland, OR); Benjamin J. Jansen (Tigard, OR); Eric L. Delaney (Portland, OR); Ryan Larson (Keizer, OR); Mitch Thomas (Portland, OR); Brian McFeely (Orinda, CA)
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 10,313,257
App. No.
14/818,169
Granted
Jun 4, 2019
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 controlling message flow in a computer network comprising a plurality of agents, agent data consumers, and an agent message bridge configured to send messages by receiving a set of messages, at least some of the messages including a message type, queuing the set of messages in a spooler that includes an indication of the respective message type for each of the messages, receive an indication that sending some of the messages queued in the spooler should be delayed for one or more indicated message types, and sending at least one of the messages to a selected one or more of the agent data consumers, the sent messages not being of the indicated message types.

Claims (42)

1. A method of controlling message flow in a computer network, the network comprising a plurality of agents, a plurality of agent data consumers, and an agent message bridge configured to send messages between the agents and the agent data consumers via the network, the method comprising:

at an agent of the plurality of agents, generating a set of messages, at least some of the messages including a message type,

at the agent, queuing the set of messages in a spooler at the agent, wherein the spooler includes an indication of a respective message type for each of the at least some of the messages, and

at the agent, receiving an indication from the agent message bridge via the network that sending of one or more, but not all, of the messages queued in the spooler should be delayed for one or more indicated message types;

at the agent message bridge, mapping the agent to one of the two or more agent data consumers,

at the agent message bridge, receiving a de-spooled message from the agent via the network, the de-spooled message not being of the indicated message type, and

at the agent message bridge, sending at least one of the received, de-spooled messages to the mapped agent data consumer via the network.

2. The method of claim 1 , wherein the indication is sent based on a queue depth reported by a message broker.

3. The method of claim 1 , wherein the indication is sent to the agent message bridge responsive to determining that one or more of the agent data consumers are not receiving messages.

4. The method of claim 1 , wherein the spooler includes distinct spools for queuing the set of messages, wherein each message of the set of messages is placed in a selected one of the distinct spools based on the type of the message.

5. The method of claim 1 , wherein the mapped agent data consumer is determined using an affinity service.

6. The method of claim 1 , wherein the mapping is based on at least one or more of the following: a geographic location of one or more of the agents and/or the agent data consumers, a load level of one or more of the agent data consumers, and/or a functional role of one of the agents and/or one of the agent data consumers.

7. The method of claim 1 , further comprising sending an indication that the sending of the delayed messages queued in the spooler can be resumed.

8. The method of claim 1 , wherein the method further comprises:

with the agent message bridge, monitoring a plurality of message topics or queues, each of the message topics or queues having a distinct type, each of the message topics or queues being configured to temporarily store messages received from the agents;

when a number of messages queued in a first message topic or queue of the plurality of message topics or queues exceeds a predefined stop sending level, sending an advisory message from the agent message bridge to the agents indicating that messages of a corresponding type should not be sent; and

after sending the stop sending advisory message, when a number of messages queued in the first message topic or queue reaches a predefined restart sending level, sending an advisory message from the message bridge to the agents indicating that sending of messages of the corresponding type can be resumed.

9. One or more computer-readable storage media storing computer-readable instructions that when executed by a processor, cause the processor to perform a method, the instructions comprising:

instructions that cause the processor to send an indication to a plurality of agents via a computer network that transmission of messages of an indicated message type should be delayed;

instructions that cause the processor to receive de-spooled messages from at least one of the plurality of agents via the computer network, the de-spooled messages not being encoded with the indicated message type;

instructions that cause the processor to map the de-spooled messages to a selected one of a plurality of agent data consumers based on a mapping table; and

instructions that cause the processor to send the mapped messages to the selected agent data consumer via the computer network.

10. The computer-readable storage media of claim 9 , wherein the indication is sent based on a queue depth reported by a message broker.

11. The computer-readable storage media of claim 9 , wherein the indication is sent to the agents responsive to determining that one or more of the agent data consumers are not receiving messages.

12. The computer-readable storage media of claim 9 , wherein the messages are spooled in a spooler that includes distinct spools for queuing the set of messages, wherein each of the messages is placed in a selected one of the distinct spools based on the type of the message.

13. The computer-readable storage media of claim 9 , wherein the mapped agent data consumer is determined using an affinity service.

14. The computer-readable storage media of claim 9 , wherein the mapping is based on at least one or more of the following: a geographic location of one or more of the agents and/or the agent data consumers, a load level of one or more of the agent data consumers, and/or a functional role of one of the agents and/or one of the agent data consumers.

15. The computer-readable storage media of claim 9 , further comprising instructions that cause the processor to send an indication that transmission of the delayed messages queued can be resumed.

16. The computer-readable storage media of claim 9 , further comprising:

instructions that cause the processor to monitor a plurality of message topics or queues, each of the message topics or queues having a distinct type, each of the message topics or queues being configured to temporarily store messages received from the agents;

instructions that cause the processor to, when a number of messages queued in a first message topic or queue of the plurality of message topics or queues exceeds a predefined stop sending level, send an advisory message via the computer network to the agents indicating that messages of a corresponding type should not be sent; and

instructions that cause the processor to, after sending the stop sending advisory message, when a number of messages queued in the first message topic or queue reaches a predefined restart sending level, send an advisory message via the computer network to the agents indicating that sending of messages of the corresponding type can be resumed.

17. A system, comprising:

one or more agent data consumers comprising at least one processor and memory;

one or more agent platform servers comprising at least one processor and memory, each of the agent platform servers including an agent bridge, the agent bridge being configured to send an indication to one or more agents that sending of one or more, but not all, of the messages queued in a spooler at the agent should be delayed for one or more indicated message types;

the one or more agents, the agents being configured to execute on computing hosts comprising at least one processor and memory, the computing hosts being separate from the agent platform servers, the agents being further configured to, responsive to receiving the indication from the agent bridge, delay sending messages of the indicated message types to a respective one of the agent platform servers, the agent bridge sending the indication responsive to determining that one or more of the agent data consumers are not receiving messages; and

wherein each respective agent bridge is configured to perform a method, the method comprising:

mapping the agents to a respective one or more of the agent data consumers,

receiving a message previously delayed and stored in a respective agent spooler, and

send the previously-delayed message to the respectively mapped agent data consumers.

18. The system of claim 17 , wherein the method further comprises sending an indication to the agents that the sending of the previously-delayed messages in the spooler can be resumed.

19. The system of claim 17 , wherein the mapping is based on at least one or more of the following: a geographic location of the sending agent and/or the agent data consumers, a load level of one or more of the agent data consumers, or a UUID of the sending agent.

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 Aug 4, 2015
From: HUNT, GWENDOLYN MEREDITH; JANSEN, BENJAMIN J.; DELANEY, ERIC L.; LARSON, RYAN; THOMAS, MITCH; MCFEELY, BRIAN
To: TRIPWIRE, INC.
Reel/Frame 036251/0816 →
Continuity (2)
Continuation In Part 14303431 · Jun 12, 2014
Provisional Application 62032975 · Aug 4, 2014
Cited By (3)
US 12,289,278 US 12,380,222 US 12,395,448