Gryphon project focuses on the design and development of
highly scalable, available and secure publish/subscribe
systems. A publish/subscribe system contains information
producers, which publish events to the system, and
information consumers, which subscribe to particular
categories of events within the system. The system ensures
the timely delivery of published events to all interested
subscribers. In addition to supporting many-to-many
communication, the primary requirement met by
publish/subscribe systems is that producers and consumers of
messages are anonymous to each other, so that the number of
publishers and subscribers may dynamically change, and
individual publishers and subscribers may evolve without
disrupting the entire system.
earliest publish/subscribe systems were subject-based.
In these systems, each message belongs to one of a fixed set
of subjects (also known as groups, channels, or topics).
Publishers are required to label each message with a subject;
consumers subscribe to all the messages within a particular
subject. For example a subject-based publish/subscribe system
for stock trading may define a group for each stock issue;
publishers may post information to the appropriate group, and
subscribers may subscribe to information regarding any issue.
An alternative to subject-based systems is content-based
messaging systems. A significant restriction with
subject-based publish/subscribe is that the selectivity of
subscriptions is limited to the predefined subjects.
Content-based systems support a number of information spaces,
where subscribers may express a "query" against the
content of messages published.
designed and implemented the Gryphon system to provide
content-based publish/subscribe functionality using the fast,
scalable routing algorithms that we have invented. The system
is structured as a redundant overlay network of
routing brokers. Clients access the system through our
implementation of the Java
Message Service (JMS) API.
The system supports best-effort and guaranteed delivery, and
both normal and durable subscriptions. We have paid
particular attention to scalability, availability, and
Brokers may be added into the network to provide support for additional
clients. We used this approach to provide capacity for almost 100,000 concurrently
connected clients for Wimbledon 2001. Our configuration support is flexible
enough to efficiently support geographic distribution of brokers.
Server farms in multiple geographies may be linked through a number of
explicit links rather than requiring NxN connectivity between all brokers.
Gryphon responds to the failure of one broker in a network
by rerouting traffic around the failed broker.
Reconfiguration is automatic and requires no intervention by
Gryphon supports access controls for limiting who may
publish and subscribe to portions of the information
space. Different secrecy and integrity policies can be
specified for different parts of the information space.
Multiple authentication mechanisms can be used to verify
client identity: simple password (e.g. telnet), mutual
secure password authentication (password is never sent over
the wire), asymmetric SSL (password sent over a secure SSL
connection to the server) and symmetric SSL (both client and
server use certificates to authenticate each other).
The Gryphon project was initiated in the spring of 1997 as a two-person
exploratory project on publish/subscribe technology. In fall 1997, it was
identified as one of 5 projects to receive exploratory research funding
via the prestigious ASSR program at IBM's T. J. Watson research center.
The Gryphon system has been deployed over the Internet for real-time sports
score distribution at the Grand Slam Tennis events, Ryder Cup, and for
monitoring and statistics reporting at the Sydney Olympics.
Mark Astley, Sumeer Bhola, Robert Saccone, Ignacio
Silva-Lepe, Michael J. Ward, Yuanyuan Zhao.
Joshua Auerbach, Gerry Buttner, Kevan Miller, Rob Strom, Daniel Sturman, and