# US 8,752,065 B2 · Rules engine for a persistent message store

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,752,065 B2
- Document ID: US8752065B2
- Status: Granted
- Kind: B2
- Application number: 11/894,331
- Filed: 2007-08-20
- Published: 2008-12-04
- Granted: 2014-06-10
- Earliest claimed: 2007-05-31
- Assignees: Red Hat, Inc.
- Applicants: Mark Cameron Little
- Inventors: Mark Cameron Little
- Web page: https://patentgrep.com/patent/US8752065B2

## CPC

- G06Q 10/107: Computer-aided management of electronic mailing [e-mailing]
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR

## Abstract

A method and apparatus for using a persistent message store in a distributed computing system. A message is stored in a persistent message store, wherein the message is a copy of an original message transmitted from a message producer to a message consumer in a distributed computing system. A command is received from a requestor to search the persistent message store for a stored message, the command indicating a search rule. The search rule is processed by a rules engine of the persistent message store to search for the stored message.

## Claims

### Claim 1

A method, comprising:
storing a plurality of messages in a persistent message store, wherein the plurality of messages are copies of original messages transmitted from message producers to message consumers through an enterprise service bus in a distributed computing system, the plurality of messages being stored with keys that are determined from at least one of message headers, message contexts or message bodies;
storing a pre-generated message search rule that comprises a set of search criteria for finding messages with specific attributes that have been transmitted through the enterprise service bus;
receiving, by a processing device executing a rules engine, a command from a remote requestor to search the plurality of messages in the persistent message store for at least one message of the plurality of messages having the specific attributes, the command including a search rule identifier associated with the pre-generated message search rule; and
processing, by the processing device, the pre-generated message search rule based on the search rule identifier to search for the at least one message using the keys associated with the plurality of messages.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
receiving a new search rule from the requestor;
storing the new search rule;
assigning a new rule identifier to the new search rule; and
communicating the new rule identifier to the requestor.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
receiving a search command that includes the new rule identifier; and
processing the new search rule by the rules engine.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
transmitting the at least one message to the requestor if the at least one message is found.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
comparing search rules; and
if duplicate search rules are discovered, deleting the duplicate search rules.

### Claim 6 (depends on 1)

The method of claim 1, wherein the plurality of messages stored in the persistent message store comprises a subset of all messages transmitted through the enterprise service bus, and wherein storing the plurality of messages comprises performing the following for each message of the plurality of messages:
intercepting the message;
determining that the message satisfies a message copy rule; and
copying the message responsive to the determining.

### Claim 7 (depends on 1)

The apparatus of claim 1, wherein the plurality of messages stored in the persistent message store comprises a subset of all messages transmitted through the enterprise service bus, and wherein storing the plurality of messages comprises performing the following for each message of the plurality of messages:
intercepting the message;
determining that the message satisfies a message copy rule; and
copying the message responsive to the determining.

### Claim 8

A non-transitory machine-accessible storage medium including instructions that, when executed by a processing device, cause the processing device to perform operations comprising:
storing a plurality of messages in a persistent message store, wherein the plurality of messages are copies of original messages transmitted from message producers to message consumers through an enterprise service bus in a distributed computing system, the plurality of messages being stored with keys that are determined from at least one of message headers, message contexts or message bodies;
storing a pre-generated message search rule that comprises a set of search criteria for finding messages with specific attributes that have been transmitted through the enterprise service bus;
receiving, by the processing device, a command from a remote requestor to search the plurality of messages in the persistent message store for at least one message of the plurality of messages having the specific attributes, the command including a search rule identifier associated with the pre-generated message search rule; and
processing, by the processing device, the pre-generated message search rule based on the search rule identifier to search for the at least one message using the keys associated with the plurality of messages.

### Claim 9 (depends on 8)

The non-transitory machine-accessible storage medium of claim 8, the operations further comprising:
receiving a new search rule from the requestor;
storing the new search rule;
assigning a new rule identifier to the new search rule; and
communicating the new rule identifier to the requester.

### Claim 10 (depends on 9)

The non-transitory machine-accessible storage medium of claim 9, the operations further comprising:
receiving a search command that includes the new rule identifier; and
processing the new search rule by the rules engine.

### Claim 11 (depends on 8)

The non-transitory machine-accessible storage medium of claim 8, the operations further comprising:
transmitting the at least one message to the requestor if the at least one message is found.

### Claim 12 (depends on 8)

The non-transitory machine-accessible storage medium of claim 8, the operations further comprising:
comparing search rules; and
if duplicate search rules are discovered, deleting the duplicate search rules.

### Claim 13 (depends on 8)

The non-transitory machine-accessible storage medium of claim 8, wherein the plurality of messages stored in the persistent message store comprises a subset of all messages transmitted through the enterprise service bus, and wherein storing the plurality of messages comprises performing the following for each message of the plurality of messages:
intercepting the message;
determining that the message satisfies a message copy rule; and
copying the message responsive to the determining.

### Claim 14

An apparatus, comprising:
a first computing device comprising a router, networked to one or more message producers and one or more message consumers, to intercept a plurality of messages generated by the one or more message producers and to generate copies of the plurality of messages, wherein the router is a component of an enterprise service bus;
a persistent message store, coupled with the first computing device, to store the copies of the plurality of messages, the copies of the plurality of messages being stored with keys that are determined from at least one of message headers, message contexts or message bodies, and to receive a command from a remote requestor to search for messages with specific attributes that have been transmitted through the enterprise service bus, the command including a search rule identifier associated with a pre-generated message search rule that comprises a set of criteria for finding messages with the specific attributes, and
at least one of the first computing device or a second computing device coupled with the persistent message store comprising a rules engine to search the plurality of messages in the persistent message store for at least one message of the plurality of messages having the specific attributes using the pre-generated message search rule associated with the search rule identifier and further using the keys associated with the plurality of messages.

### Claim 15 (depends on 14)

The apparatus of claim 14, wherein at least one of the first computing device or the second computing device further comprises a message store manager to receive the command, the message store manager including the rules engine to search for the copy of the message in the persistent message store.

### Claim 16 (depends on 15)

The apparatus of claim 15, further comprising:
the message store manager to receive a new search rule from the requester, to store the new search rule, to assign a new rule identifier to the new search rule, and to communicate the new rule identifier to the requestor.

### Claim 17 (depends on 16)

The apparatus of claim 16, further comprising:
the message store manager to receive a search command that includes the new rule identifier, and to process the new search rule by the rules engine.

### Claim 18 (depends on 14)

The apparatus of claim 14, wherein the message store to transmit the copy of the message to the requestor if the copy of the message is found.

### Claim 19 (depends on 14)

The apparatus of claim 14, wherein at least one of the first computing device or the second computing device further comprises a comparator to compare search rules, and, if duplicate search rules are discovered, to delete the duplicate search rules.
