Systems and methods for client-side filtering of subscribed messages
First Claim
1. A system for filtering messages between servers on a message channel, comprising:
- a message broker component adapted to allow servers to publish messages to a message channel;
a message filter on each servers, each message filter containing a filter value for at least one servers on the message channel; and
a query component on each servers, each query component adapted to extract data from a message to be published, whereby the extracted data is compared with the filter value in order to determine whether to send a subscriber the message;
wherein the message broker accesses an indication in memory of whether any of the servers is capable of doing a dynamic subscription to the message channel, if so, the message broker accesses a database to get the message filter, if not the message broker access a cache memory to get the message filter.
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.
111 Citations
11 Claims
-
1. A system for filtering messages between servers on a message channel, comprising:
-
a message broker component adapted to allow servers to publish messages to a message channel; a message filter on each servers, each message filter containing a filter value for at least one servers on the message channel; and a query component on each servers, each query component adapted to extract data from a message to be published, whereby the extracted data is compared with the filter value in order to determine whether to send a subscriber the message; wherein the message broker accesses an indication in memory of whether any of the servers is capable of doing a dynamic subscription to the message channel, if so, the message broker accesses a database to get the message filter, if not the message broker access a cache memory to get the message filter. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer implemented method for filtering messages between subscribers to a message channel, comprising:
-
querying a message to be published to a message channel in order to extranet information from the message; comparing the extracted information against a filter value for a subscriber to the message channel; and in response to the comparison publishing the message to the subscriber wherein the extracted information matches the filter value for that subscriber; a message broker accesses an indication in memory of whether any of the servers is capable of doing a dynamic subscription to the message channel, if so, the message broker accesses a database to get the message falter, if not the message broker access a cache memory to get the message filter.
-
-
8. A computer-readable storage 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 file message channel; and means in response to the comparison for publishing the message to the subscriber wherein the extracted information matches the filter value for that subscriber; a message broker accesses an indication in memory of whether any of the servers is capable of doing a dynamic subscription to the message channel, if so, the message broker accesses a database to get the filter value, if not the message broker access a cache memory to get the message filter.
-
-
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 in response to the comparison for publishing the message to the subscriber wherein the extracted information matches the filter value for that subscriber; a message broker accesses an indication in memory of whether any of the servers is capable of doing a dynamic subscription to the message channel, if so, the message broker accesses a database to get the filter value, if not the message broker access a cache memory to get the message filter.
-
-
10. A computer implemented system for faltering 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 in response to the comparison for publishing the message to the subscriber wherein the extracted information matches the filter value for that subscriber; a message broker accesses an indication in memory of whether any of the servers is capable of doing a dynamic subscription to the message channel, if so, the message broker accesses a database to get the filter value, if not the message broker access a cache memory to get the message filter.
-
-
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 in response to the comparison publish the message to the subscriber wherein the extracted information matches the filter value for that subscriber; a message broker accesses an indication in memory of whether any of the servers is capable of doing a dynamic subscription to the message channel, if so, the message broker accesses a database to get the filter value, if not the message broker access a cache memory to get the message filter.
- a processor;
Specification