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.