US2005251811A1PendingUtilityA1

Distributed messaging system supporting stateful

47
Assignee: IBMPriority: May 7, 2004Filed: May 7, 2004Published: Nov 10, 2005
Est. expiryMay 7, 2024(expired)· nominal 20-yr term from priority
H04L 67/56H04L 67/565H04L 67/288G06F 9/542
47
PatentIndex Score
0
Cited by
0
References
0
Claims

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.

Claims

exact text as granted — not AI-modified
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.    
     
     
         2 . The method of  claim 1 , wherein the output message updates a subscribed state requested by the subscriber.  
     
     
         3 . The method of  claim 2 , wherein the subscribed state is defined using a declarative specification.  
     
     
         4 . The method of  claim 3 , further comprising: 
 compiling the declarative specification into a hypergraph of incremental transform and view objects.    
     
     
         5 . The method of  claim 4 , further comprising: 
 deploying the hypergraph on a network of broker machines.    
     
     
         6 . The method of  claim 3 , wherein the declarative specification includes a relational algebraic specification.  
     
     
         7 . The method of  claim 1 , further comprising: 
 storing the plurality of input messages in a stable storage.    
     
     
         8 . The method of  claim 1 , wherein the transform includes an incremental evaluator for one of a set of common relational algebraic operations.  
     
     
         9 . The method of  claim 7 , wherein the set of common relational algebraic operations includes at least one of sum, count, min, max, select, project, group-by, and join.  
     
     
         10 . The method of  claim 1 , wherein receiving a plurality of input messages includes receiving a tuple from a database as an input message.  
     
     
         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.    
     
     
         13 . The apparatus of  claim 12 , wherein the output message updates a subscribed state requested by the subscriber.  
     
     
         14 . The apparatus of  claim 13 , wherein the subscribed state is defined using a declarative specification.  
     
     
         15 . The apparatus of  claim 14 , further comprising: 
 means for compiling the declarative specification into a hypergraph of incremental transform and view objects.    
     
     
         16 . The apparatus of  claim 15 , further comprising: 
 means for deploying the hypergraph on a network of broker machines.    
     
     
         17 . The apparatus of  claim 14 , wherein the declarative specification includes a relational algebraic specification.  
     
     
         18 . The apparatus of  claim 12 , further comprising: 
 means for storing the plurality of input messages in a stable storage.    
     
     
         19 . The apparatus of  claim 12 , wherein the transform includes an incremental evaluator for one of a set of common relational algebraic operations.  
     
     
         20 . The apparatus of  claim 18 , wherein the set of common relational algebraic operations includes at least one of sum, count, min, max, select, project, group-by, and join.  
     
     
         21 . The apparatus of  claim 12 , wherein the means for receiving a plurality of input messages includes means for receiving a database tuple from a fixed database as an input message.  
     
     
         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.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.