Distributed messaging system supporting stateful
First Claim
1. A method for delivering content, the method comprising:
- receiving at least one specification for a transform;
receiving a plurality of input messages associated with input streams from one or more publishers;
applying the transform to the plurality of input messages to form an output message, wherein the output message depends on at least two input messages from the plurality of input messages; and
delivering the output message to a subscriber.
1 Assignment
0 Petitions
Accused Products
Abstract
A distributed messaging system supporting stateful subscriptions is provided. A stateful publish-subscribe system extends the functionality of the content-based approach to include more general state-valued expressions. Stateful subscriptions may refer to one or more message histories and may include more complex expressions. Therefore, subscribers may receive different information than that provided in the published messages. A plurality of broker machines is provided to deliver messages sent by publishing clients toward subscribing clients based upon the contents of the messages and stateful transformations requested by the subscribing clients. Subscription specifications are analyzed by a compiler and converted into a collection of transform objects and view objects. The messaging system builds a structure containing all transform objects and view objects needed for all intermediate and subscribed views of all subscriptions. This messaging system uses this structure to allocate transform objects and view objects to broker machines in the overlay network.
46 Citations
22 Claims
-
1. A method for delivering content, the method comprising:
-
receiving at least one specification for a transform;
receiving a plurality of input messages associated with input streams from one or more publishers;
applying the transform to the plurality of input messages to form an output message, wherein the output message depends on at least two input messages from the plurality of input messages; and
delivering the output message to a subscriber. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. An apparatus for implementing a stateful subscription service, the apparatus comprising:
-
an overlay network including a plurality of broker machines;
a plurality of publishing clients that publish messages to published message streams;
a deployment service that deploys a hypergraph defining transform objects and view objects to the plurality of broker machines, wherein at least one transform object defined by the hypergraph has at least one message delivered to its output stream that depends on more than one input message from an input stream of the transform object; and
a plurality of execution engines running on the plurality of broker machines, wherein each execution engine within the plurality of execution engine receives input messages, processes the input messages using the transform objects, and routes output messages toward subscribers.
-
-
12. An apparatus for delivering content, the apparatus comprising:
-
means for receiving at least one specification for a transform;
means for receiving a plurality of input messages associated with one or more input streams from one or more publishers;
means for applying the transform to the plurality of input messages to form an output message, wherein the output message depends on at least two input messages from the plurality of input messages; and
means for delivering the output message to a subscriber. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A computer program product, in a computer readable medium, for delivering content, the computer program product comprising:
-
instructions for receiving at least a specification for a transform;
instructions for receiving a plurality of input messages associated with an input stream from one or more publishers;
instructions for applying the transform to the plurality of input messages to form an output message, wherein the output message depends on at least two input messages from the plurality of input messages; and
instructions for delivering the output message to a subscriber.
-
Specification