Method and system for efficiently matching events with subscribers in a content-based publish-subscribe system
First Claim
Patent Images
1. A method for matching a published event with one or more subscribers in a content-based publish-subscribe system in a computer network, each subscriber having one or more predetermined predicates, the method comprising:
- creating a virtual Direct Acyclic Graph (DAG) including one or more arbitrary boolean tests representing the predetermined predicates;
eliminating, upon publishing the event, one or more subscribers, at least one of whose predicates is not satisfied while the DAG is traversed; and
identifying at least one matching subscriber if all the predicates of the matching subscriber are satisfied, wherein the DAG has a root node, one or more leaf nodes representing subscribers, and one or more non-leaf nodes representing the boolean tests which are formed by boolean connectors and wherein the step of creating further includes constructing the DAG in a top-down fashion so that common predicates shared by the subscribers are examined first and a minimal number of boolean tests are conducted to identify the matching subscribers.
14 Assignments
0 Petitions
Accused Products
Abstract
A method is provided for efficiently solving the matching problem in content-based publish-subscribe systems. Subscribers may define arbitrary boolean predicates as conditions to subscribe to the published event. The subscribers and their predicates can be organized in the form of a virtual Direct Acyclic Graph (DAG) such that a traversal of the DAG yields one or more matching subscribers. The present invention improves upon the conventional method of linearly matching individual subscribers against an event.
45 Citations
12 Claims
-
1. A method for matching a published event with one or more subscribers in a content-based publish-subscribe system in a computer network, each subscriber having one or more predetermined predicates, the method comprising:
-
creating a virtual Direct Acyclic Graph (DAG) including one or more arbitrary boolean tests representing the predetermined predicates;
eliminating, upon publishing the event, one or more subscribers, at least one of whose predicates is not satisfied while the DAG is traversed; and
identifying at least one matching subscriber if all the predicates of the matching subscriber are satisfied, wherein the DAG has a root node, one or more leaf nodes representing subscribers, and one or more non-leaf nodes representing the boolean tests which are formed by boolean connectors and wherein the step of creating further includes constructing the DAG in a top-down fashion so that common predicates shared by the subscribers are examined first and a minimal number of boolean tests are conducted to identify the matching subscribers. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer program for matching a published event with one or more subscribers in a content-based publish-subscribe system in a computer network, each subscriber having one or more predetermined predicates, the program comprising programs for:
-
creating in a top-down fashion a virtual Direct Acyclic Graph (DAG) including one or more arbitrary boolean tests representing the predetermined predicates so that common predicates shared by the subscribers are examined first and a minimum number of boolean tests are thus conducted to identify the matching subscriber;
eliminating, upon publishing the event, one or more subscribers wherein at least one of whose predicates is not satisfied while the DAG is travesed; and
identifying at least one matching subscriber if all the predicates of the matching subscriber are satisfied, wherein the DAG has a root node, one or more leaf nodes representing subscribers, and one or more non-leaf nodes representing the boolean tests formed by boolean connectors. - View Dependent Claims (8, 9, 10, 11, 12)
-
Specification