Middleware Systems Research Group, University of Toronto, Canada

PADRES Subscription Language

The PADRES subscription language is based on the traditional predicate-based language used in several existing content-based publish/subscribe systems, but also implements extensions that support more powerful matching semantics.

Predicate-based Matching

PADRES supports a popular content-based publish/subscribe semantic in which publications are a set of {attribute, value} pairs, and subscriptions are a conjunct of {attribute, operator, value} predicates that specify a constraint over the content of publications.

The system places no restrictions on the number or names of attributes in publications or subscriptions allowing applications to develop their own schemas and semantics are required.

For example, a publication representing an accident report might look like this:

[class, accident][city, Toronto][severity, 3][victim, John Doe]

A subscription that expresses interest in certain accident reports may look like this:

[class, eq, accident][city, eq, Toronto][severity, >, 2]

Being able to specify contraints on the content of publications is a distinguishing and powerful feature of content-based publish/subscribe systems. It allows for fine-grained filtering of data, and supports complex interaction styles, from one-to-one to many-to-many communication all using the same publish/subscribe primitives..

Notice that the PADRES publish/subscribe semantics ignore attributes in the publication that are not specified in the subscription, such as the victim attribute above. This allows applications to extend their schema easily. For example, newer versions of the accident reporting application may include additional attributes, such as the GPS coordinates of the accident location, and type of personnel required (ambulance, police, fire, etc.). Old and new versions of the reports can coexist in the system since both will be matched by the original subscription.

Language Extensions

  • Composite subscriptions are a PADRES extension that allows subscribers to express an interest in a set of events correlated in a specified manner.
  • Historic subscriptions are another extension, in which subscribers may query publications both from the past and from the future.