Scalable Content Based Event Multicast Platform

Information

  • Patent Application
  • 20070198629
  • Publication Number
    20070198629
  • Date Filed
    February 21, 2006
    18 years ago
  • Date Published
    August 23, 2007
    17 years ago
Abstract
In an infrastructure solution for content-based forwarding, filter pipelining enables handling of the high-rate message streams. Documents are distributed in the network by forwarding from publisher proxy servers to attribute trees associated with particular attributes in the message. The trees filter the messages based on attribute values, and deliver the messages to subscriber proxy servers for predicate-based distribution to subscribers. To maximize throughput, the attribute trees utilize the concept of weak filtering, wherein a message may be delivered to a node in the attribute tree that is associated with a range of attribute values that does not include the attribute value of the message.
Description

BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1A is a schematic diagram showing a prior art content-based routing architecture.



FIG. 1B is a block diagram showing an example flow through the architecture of FIG. 1A.



FIG. 2 is a schematic diagram showing a network architecture according to an embodiment of the present invention.



FIG. 3 is a block diagram showing a subscription process according to an embodiment of the present invention.



FIG. 4 is a block diagram showing a message flow according to an embodiment of the present invention.



FIG. 5 is a schematic diagram showing a tree structure according to an embodiment of the present invention.



FIG. 6A is a chart showing example multicast groups according to an embodiment of the present invention.



FIG. 6B is another chart showing example multicast groups according to an embodiment of the present invention.



FIG. 7 is a chart mapping multicast groups and filters according to an embodiment of the present invention.



FIG. 8 is a schematic diagram showing a tree structure according to an embodiment of the present invention.



FIG. 9 is a schematic diagram showing a subscription matching according to an embodiment of the present invention.



FIG. 10 is a plot showing processing time versus number of attributes in a system of the invention under stressful load.



FIG. 11 is a plot showing processing time versus number of attributes in a system of the invention under general conditions.



FIG. 12 is a plot showing throughput ratio versus message arrival rate in a system of the invention.



FIG. 13 is a plot showing per-message processing time versus number of subscriptions in a system of the invention.



FIG. 14 is a plot showing throughput ratio versus message arrival rate in a system of the invention with an increased number of subscriptions.



FIG. 15 is a plot showing percent maximum throughput achieved versus percent increase in incoming traffic for three time ratios in a system of the invention.



FIG. 16 is a plot showing percent maximum achievable throughput versus range width in a system of the invention.



FIG. 17 is a plot showing percent maximum throughput achieved versus percent increase in incoming traffic for three subscription widths in a system of the invention.


Claims
  • 1. A method for distribution of a document in a network, the method comprising the steps of: receiving at an attribute-based forwarding server a message including an attribute and an associated value;forwarding the message to a root of a value-based forwarding tree, the tree corresponding to the attribute and no other attribute;from the root, forwarding the message to at least one intermediate router of the value-based forwarding tree corresponding to a first range of values including the value associated with the attribute in the message;from the at least one intermediate router, forwarding the message to a predicate-based forwarding server corresponding to a second range of values including the value associated with the attribute in the message, the second range being encompassed by the first range; andat the predicate-based forwarding server, matching the message to a user subscription and forwarding the message to a user.
  • 2. The method of claim 1, further comprising the step of: parsing the message at the attribute-based forwarding server to identify the attribute.
  • 3. The method of claim 2, further comprising the step of: attaching to the message at the attribute-based forwarding server a label identifying the value associated with the attribute.
  • 4. The method of claim 3, wherein the label is a pointer to a location of the value in the message.
  • 5. The method of claim 3, wherein the label further contains a unique message ID.
  • 6. The method of claim 1, wherein the message is an XML message.
  • 7. The method of claim 1, further comprising the step of: from the root or from one of the at least one intermediate routers, forwarding the message to an intermediate router corresponding to a third range of values that does not include the value associated with the attribute in the message.
  • 8. The method of claim 1, further comprising the step of: dynamically adding an intermediate router between the root and the predicate-based forwarding server.
  • 9. The method of claim 8, wherein the added intermediate router reduces a number of messages forwarded to an intermediate router corresponding to a range of values that does not include a value associated with an attribute in the forwarded message.
  • 10. The method of claim 8, wherein the step of dynamically adding an intermediate router is predicated on a popularity of the value of the attribute.
  • 11. The method of claim 10, further comprising the step of: determining the popularity of the value by keeping aggregate arrival statistics at an intermediate node.
  • 12. The method of claim 1, wherein the step of matching the message to a user subscription and forwarding the message to a user further comprises the steps of: determining a total number of attributes associated with the subscription;counting a number of instances of the message received at the predicate-based forwarding server; andmatching the message to a user subscription when the number of received instances of the message equals the total number of attributes associated with the subscription.
  • 13. The method of claim 1, wherein the step of forwarding the message to a predicate-based forwarding server further comprises the step of: appending a label to the message including an identification of the forwarding tree.
  • 14. A method for accepting a subscription to receive messages in a content-based network; the method comprising the steps of: receiving at a subscriber proxy server a plurality of subscriptions, each subscription containing an attribute and a subscription range of values associated with the attribute;aggregating the subscriptions by determining end points of non-overlapping ranges for the attribute, each non-overlapping range corresponding to a portion of at least one subscription, the end points corresponding to intersections of subscription ranges;forwarding the end points to a root of an attribute tree corresponding to the attribute and no other attribute;at the root, determining minimum and maximum values of a union of the end points together with other end points from other subscriber proxy servers; andforwarding the minimum and maximum values to a predicate-based forwarding server for determining which messages are to be sent to the root.
  • 15. The method of claim 14, further comprising the step of: storing the attribute and the range of values at the predicate-based forwarding server.
  • 16. The method of claim 14, further comprising the step of: computing a set of non-overlapping filters for use in forwarding messages from the root to leaf nodes in the attribute tree.
  • 17. The method of claim 16, wherein the step of computing non-overlapping filters comprises optimizing ranges of the filters to minimize a number of sent messages having an attribute value outside an attribute range of a receiving node.
  • 18. The method of claim 14, wherein each subscription contains a plurality of attributes and associated values, and wherein the step of forwarding the end points to a root of an attribute tree is performed for less than all the attributes contained in the subscription.
  • 19. The method of claim 18, further comprising the step of: determining the attributes and associated values for which the forwarding step is to be performed, based on a degree of filtering benefit provided by the attribute.
  • 20. The method of claim 14, further comprising the step of: dynamically adding an intermediate router between the root and the predicate-based forwarding server.
  • 21. The method of claim 20, wherein the step of adding an intermediate router results in a reduced a number of messages forwarded to an intermediate router that corresponds to a range of values that does not include a value associated with an attribute in the forwarded message.
  • 22. The method of claim 14, wherein the messages are XML messages.