Patent ID: 7822801

Claim:
A method for propagating subscriptions to published messages across a network, the method comprising: receiving subscriptions from a plurality of subscribers at a plurality of subscriber brokers in an overlay network comprising the plurality of subscriber brokers, a plurality of publisher brokers and a plurality of intermediate brokers disposed in a hierarchy between the plurality of subscriber brokers and the plurality of publisher brokers, each subscription comprising local conjunctions identifying a set of published messages; aggregating the logical conjunctions at each subscriber broker associated with the subscriptions received at that subscriber broker into a separate directed acyclic graph for that subscriber broker that comprises a plurality of nodes representing the logical conjunctions associated with the received subscriptions; identifying, for each directed acyclic graph at each subscriber broker, uncovered logical conjunctions in the logical conjunctions, the set of published messages associated with each uncovered logical conjunction is not a subset of any other set of published messages defined by other logical conjunctions; identifying covered logical conjunctions in the logical conjunction, the set of published messages associated with each covered logical conjunction is a subset of one of the published messages defined by one of the uncovered logical conjunctions; propagating, only the uncovered logical conjunctions through the hierarchy of intermediate brokers to the publisher brokers; maintaining separate directed acyclic graphs comprising the propagated logical conjunctions at each intermediate broker and each publisher broker; receiving messages from a plurality of publishers at the plurality of publisher brokers; using the directed acyclic graphs located at each publisher broker, intermediate broker and subscriber broker to route the received messages from the publisher brokers through the intermediate brokers to the subscriber brokers by determining based on the directed acyclic graph located at a given publisher broker, intermediate broker or subscriber broker if that publisher broker, intermediate broker or subscriber broker has sufficient subscription information to match a given received message to subscriptions and to route the given received message to downstream brokers or to not match the given received message and to route the given received message to all downstream brokers; and delivering the messages from the subscriber brokers to appropriate subscribers.