Gryphon: An Information Flow Based Approach to Message Brokering

Gryphon is a distributed computing paradigm for message brokering, which is the transferring of information in the form of streams of events from information providers to information consumers. This abstract outlines the major problems in message brokering and Gryphon's approach to solving them.

In Gryphon, the flow of streams of events is described via an information flow graph. The information flow graph specifies the selective delivery of events, the transformation of events, and the generation of derived events as a function of states computed from event histories. For this, Gryphon derives from and integrates the best features of distributed communications technology and database technology.

Message brokering is motivated by the need for efficient delivery of information across a large number of users and applications, in an environment characterized by heterogeneity of computing platforms, anonymity between information producers and consumers, and dynamic change due to system evolution. Within a single business, such as a stock exchange or a weather forecasting agency, there is a dynamically varying number of sub-applications supplying events, and a varying number consuming events. The suppliers and consumers may not necessarily be aware of one another; instead the suppliers may simply be supplying information of a certain type to any interested consumer and each consumer may be interested in subsets of this information having particular properties. For example, in a stock exchange, one consumer may be interested in all stock trades greater than 1000 shares, and another in specific market trends, such as all stock trades representing a drop of more than 10 points from the previous day's high.

There is also a growing need to "glue" together applications within multiple businesses, to support inter-business network commerce or maybe as a result of mergers and acquisitions. For example, a retailer may need to connect to its suppliers and customers, or a customer to various retailers and financial organizations. This may require transforming events from different sources into a compatible form, merging them, and selecting from these events.

Message brokering is an extension of publish-subscribe technology [Powell96]. The Gryphon approach augments the publish-subscribe paradigm with the following features:

  1. Content-based subscription, in which events are selected by predicates on their content rather than by pre-assigned subject categories;
  2. Event transformations, which convert events by projecting and applying functions to data in events;
  3. Event stream interpretation, which allows sequences of events to be collapsed to a state and/or expanded back to a new sequence of events; and
  4. Reflection, which allows system management through meta-events.
Gryphon technology includes a collection of efficient implementations to support this paradigm and still provide scalability, high throughput and low latency.

The Gryphon Model

As mentioned earlier, event processing in Gryphon is described via an information flow graph. An information flow graph is a directed acyclic graph constituting an abstraction of the flow of events in the system. In the example shown in the figure below, stock trades from two information sources, NYSE and NASDAQ, are combined, transformed, filtered and delivered to a client. The two sources produce events of type [price, volume], which are merged into a single stream. The arc labeled transform computes a new stream of events of type [capital], and the arc labeled select filters out events with capital less than $1,000,000.

A Gryphon information flow graph is an abstraction because Gryphon is free to physically implement the flow any way it chooses, possibly radically altering the flow pattern, provided that the consumers see the appropriate streams of events consistent with the incoming events and the transformations specified by the graph. Gryphon optimizes graphs and deploys them over a network of brokers (or servers). The broker network is responsible for handling client connections and for distributing events.

The nodes of the graph are called information spaces. Information spaces are either event histories -- monotonically growing collections of events, e.g., stock trade events of the form [price, volume], or event interpretations -- states representing interpretations of sequences of events, such as a table [latestprice, highestprice]. Each information space has a schema defining the structure of the history or state it contains.

Each arc in the information flow graph defines an operation to derive the information space at the head from that at the tail. Arcs can be one of the following types:

System Research Directions

The Gryphon system consists of several components for efficiently realizing the information flow graph over a large distributed network of brokers. In particular, our current efforts are addressing the following technologies and their integration:

References

[Birman93] K. P. Birman. "The process group approach to reliable distributed computing," pages 36-53, Communications of the ACM, Vol. 36, No. 12, Dec. 1993.

[Powell96] David Powell (Guest editor). "Group Communication", pages 50-97, Communications of the ACM, Vol. 39, No. 4, April 1996.