Content-based publish-subscribe middleware

I have been working at IBM's Thomas J. Watson Research Center in the Distributed Messaging Systems group since December 2000. The group works on a project called Gryphon.

Publish/subscribe (pub/sub) is a paradigm for interconnecting information providers with information subscribers in a distributed environment. Publish- subscribe middleware is currently being deployed for information dissemination in many domains including financial, entertainment and transportation [1,2]. Information providers publish information in the form of events to the pub/sub system, information consumers subscribe to particular category of events with the system, and the system ensures the delivery of the events to all the interested consumers. The providers and consumers are also called publishers and subscribers respectively. Pub/sub systems are a useful tool for application integration in distributed settings because of the anonymity between the publishers and the subscribers - the publishers publish events to an information space without specifying the destinations.

The earliest pub/sub systems were group-based . In these systems, each event is classified as belonging to one of a fixed-set of groups. Publishers label each event with the group to which it belongs. Subscribers subscribe to a group and thereby receive all events in a particular group. For example, a group-based pub-sub system for stock trading may define each issue, such as IBM, as a separate group.

An emerging alternative to group-based systems is content-based subscription systems. These systems support an event schema defining the type of information contained in each event. For example, applications interested in stock trades may use the event schema [issue: string, price: float, volume: integer]. A content-based subscriber can specify filtering criteria along multiple dimensions of the event schema, such as (issue=``IBM'' & price > 100 & volume > 1000). A group-based system by contrast can only select events by the group name and a subscriber in such a system would have to do its own filtering for more specific events. The Gryphon project at IBM Research [3,4] is exploring the content-based model for pub/sub systems. Gryphon uses a network of brokers that are responsible for routing messages between publishers and subscribers. Gryphon addresses the key challenges of efficiency and scalability in content-based pub/sub system through protocols for efficient matching of subscriptions against messages and minimizing message flow through the broker network.


[1] 2001 US Open - About this site http://www.usopen.org/info/ibmtechnology/
[2] TIBExchange - Customer Success Stories http://www.tibcofinance.com/products/exchange/tibexchange/customer.html
[3] "Matching events in a content-based subscription system", PODC 1999.
[4] "An efficient multicast protocol for content-based publish-subscribe systems", ICDCS 1999.

Currently I am working on the following research problems.

  1. Guaranteed exactly-once message delivery in pub-sub systems.
  2. Stateful subscriptions in pub-sub systems.
  3. Dependency analysis in distributed systems using fault injection.

Details

1. Guaranteed Delivery

I am involved with the guaranteed delivery project within Gryphon. The objective is to augment the best-effort publish-subscribe mechanisms with guaranteed exactly-once delivery of messages to subscribers, even in the presence of network and node failures. Current protocols use the store-and-forward approach due to the complexity of the problem in the presence of filtering. Informally, each publisher in the system is the source of an ordered event stream. Guaranteed delivery ensures that any subscriber who remains connected to the system sees a gaplessfiltered subsequence of this stream, starting from a certain point. A subsequence is gapless if for any two adjacent events in this subsequence, there is no event in the original stream that is between these events and matches the subscriber's filter. The guarantee must be honored in the presence of broker and link failures. The service runs a distributed protocol involving all the brokers in the system and uses acks and nacks flowing upstream from the subscribers to the publishers for maintaining liveness. The work also proposed a general knowledge model for propagating information in a pub-sub network - both downstream knowledge from publishers to subscribers, and upstream curiosity from subscribers to publishers.

Current status: The implementation has been completed and some performance studies are being conducted. It is expected to be included in the next release of the Gryphon system.

Fellow researchers: Joshua Auerbach, Sumeer Bhola, Marc Kaplan, Robert Strom, Yuanyuan Zhao.

Publications: (For confidentiality reasons, it is not possible to provide online versions of most of the publications. If you are interested in them, please send me an email.)
1. "Exactly-once Delivery in a Content-based Publish-Subscribe System". In Proceedings of the IEEE International Conference on Dependable Systems and Networks (DSN 02), June 2002.
2. "Design and Evaluation of a Logger-based Recovery Subsystem for Publish-Subscribe Middleware". In Proceedings of the 2002 International Symposium on Performance Evaluation of Computer and Telecommunication Systems (SPECTS 2002), May 2002.
3. "Guaranteed Delivery - Requirements Document". IBM Internal Report, January 2001.
4. "Guaranteed Delivery - Design Document". IBM Internal Report, October 2001.

2. Stateful Subscriptions

The second project I am involved with is the stateful subscription project in the context of the Gryphon system. Stateful pub-sub is a crucial paradigm shift from message-oriented pub-sub, where state updates are delivered to subscribers instead of messages. A stateful subscription is not a request to deliver a selected set of published messages, but instead is a request to deliver a state derived from these published messages. Two main differences between this paradigm and the current Gryphon model are:

Consider a simple motivating example. A publisher publishes stock quotes grouped by issue ("IBM", "Microsoft") and the subscriber wants to obtain the maximum stock price published in that day. The stateful sub-system defines a language that allows the subscriber to define a view containing the information which she needs. The initial issues that we are exploring are:


Current status: A prototype implementation of the stateful system was done in summer, 2001. The prototype was specifically for a stock trading application where the base relation to which the publishers publish are the bids and the trades. The subscribers can define various views, such as the matchable IBM bids. Currently, we are working to generalize the system so that it can be the various objects and operators can be automatically generated from the subscription. Parallely, we are finalizing the language and the protocols for the operators.

Fellow researchers: Murat Demirbas (summer intern in 2001 from Ohio State University), Robert Strom.

Publications:
1. "Gryphon State Subscriptions Requirement". IBM Internal Document, September 2001.
2. "Gryphon State Subscriptions Language". IBM Internal Document, July, 2001.
3. "Stateful Subscriptions Type System". IBM Internal Document, December, 2001.

3. Dependency Analysis

I am involved with a project to perform dependency analysis in distributed systems using fault injection. In large-scale distributed e-commerce systems, problem isolation, reporting and resolution require the understanding of the relations between the various hardware and software resources. The objective is to discover the dependencies in an automated manner. We are exploring the use of fault injection for this purpose. The problem is made challenging by the characteristics of the target systems - meant for e-commerce applications running on heterogeneous platforms and extremely dynamic. The basic approach is to use fault injection to perturb the systems, and discover service dependencies on resources by measuring system output under perturbations.

Current status: The design for the methodology has been completed. A representative system configuration for applying the methodology has been identified. Current work is looking at setting up the testbed and the fault injection tools on it, in collaboration with researchers at the University of Illinois at Urbana-Champaign.

Fellow researchers: Gautam Kar, Joe Hellerstein, Prof. Ravi Iyer (University of Illinois).

Publications:
1. "Dependency Analysis in Distributed Systems using Fault Injection: Application to Problem Determination in an e-commerce Environment". Published in the 12th International Workshop on Distributed Systems: Operations & Management, October 2001.
 
 
 


Home Page

Purdue Home Page

Purdue ECE Home Page

Saurabh Bagchi
Last modified: January 26, 2003