Systems and methods for client-side filtering of subscribed messages
First Claim
1. A system for filtering messages between subscribers to a message channel, comprising:
- a message broker component adapted to allow subscribers to publish messages to a message channel;
a message filter on each subscriber, each message filter containing a filter value for at least one subscriber on the message channel; and
a query component on each subscriber, each query component adapted to extract data from a message to be published, whereby the extracted data can be compared with the filter value in order to determine whether a subscriber should receive the message.
2 Assignments
0 Petitions
Accused Products
Abstract
A message broker can allow any server in a cluster to publish to, and subscribe, to a message channel. A server subscribing to a channel can set up a message filter such that XQuery expressions can be used to filter against the messages arriving on the channel A message broker can also utilize a unique filtering algorithm to optimize data access. Static subscription information can be captured in order for a message broker to do client-side filtering. A message broker can also construct and maintain at least one table in memory that indicates whether any server in the cluster may ever do a dynamic subscription. For dynamic subscriptions, the publishing server can extract the information from a database, such as by executing a DBMS select on a subscription table using a primary key lookup.
This description is not intended to be a complete description of, or limit the scope of, the invention. Other features, aspects, and objects of the invention can be obtained from a review of the specification, the figures, and the claims.
141 Citations
12 Claims
-
1. A system for filtering messages between subscribers to a message channel, comprising:
-
a message broker component adapted to allow subscribers to publish messages to a message channel;
a message filter on each subscriber, each message filter containing a filter value for at least one subscriber on the message channel; and
a query component on each subscriber, each query component adapted to extract data from a message to be published, whereby the extracted data can be compared with the filter value in order to determine whether a subscriber should receive the message. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A system according to clam 1, further comprising:
a database lookup component, wherein subscribers can be dynamic subscribers, and each database component can access information for a dynamic subscriber.
-
7. A method for filtering messages between subscribers to a message channel, comprising:
-
querying a message to be published to a message channel in order to extract information from the message;
comparing the extracted information against a filter value for a subscriber to the message channel; and
publishing the message to the subscriber if the extracted information matches the filter value for that subscriber.
-
-
8. A computer-readable medium, comprising:
-
means for querying a message to be published to a message channel in order to extract information from the message;
means for comparing the extracted information against a filter value for a subscriber to the message channel; and
means for publishing the message to the subscriber if the extracted information matches the filter value for that subscriber.
-
-
9. A computer program product for execution by a server computer for filtering messages between subscribers to a message channel, comprising:
-
computer code for querying a message to be published to a message channel in order to extract information from the message;
computer code for comparing the extracted information against a filter value for a subscriber to the message channel; and
computer code for publishing the message to the subscriber if the extracted information matches the filter value for that subscriber.
-
-
10. A system for filtering messages between subscribers to a message channel, comprising:
-
means for querying a message to be published to a message channel in order to extract information from the message;
means for comparing the extracted information against a filter value for a subscriber to the message channel; and
means for publishing the message to the subscriber if the extracted information matches the filter value for that subscriber.
-
-
11. A computer system comprising:
- a processor;
object code executed by said processor, said object code configured to;
query a message to be published to a message channel in order to extract information from the message;
compare the extracted information against a filter value for a subscriber to the message channel; and
publish the message to the subscriber if the extracted information matches the filter value for that subscriber.
- a processor;
-
12. A computer data signal embodied in a transmission medium, comprising:
-
a code segment including instructions to query a message to be published to a message channel in order to extract information from the message;
a code segment including instructions to compare the extracted information against a filter value for a subscriber to the message channel; and
a code segment including instructions to publish the message to the subscriber if the extracted information matches the filter value for that subscriber.
-
Specification