Check out the new USENIX Web site. next up previous
Next: Properties Up: Subscription Languages Previous: Subscription Languages


In systems like SIENA [Car98], ELVIN [SA97] or GRYPHON [BCM+99,SBS98],[*] event notifications are viewed as flat structures, i.e., records with several fields . A subscription language is used to impose ranges of values for those fields. Figure 1 outlines this concept schematically. Relying on attribute-value pairs enables very efficient realizations, since computational overhead is reduced by directly accessing attributes. This approach however bears several dangers:

Violation of object encapsulation:
In the example outlined in Figure 1, the from attribute is used as subscription criterion, and is consequently directly accessed when the object is queried.
Syntax errors violating the subscription grammar are only seized once a pattern is parsed, i.e., at runtime. Another more malign type of errors result from badly typed attribute names. Subscription patterns containing such errors do not violate the syntax grammar, and might remain undetected without type checks.

Learning phase:
Subscription syntaxes are often very complex and used with a single publish/subscribe middleware. This reduces portability of applications.

To increase portability of applications some engines implement standardized API's like the OMG's CORBA NOTIFICATION SERVICE [OMG00], which repairs certain lacks [SV97] of the CORBA EVENT SERVICE [OMG98]. Among the new features in [OMG00] are a content-based subscription scheme based on a simplified kind of typed events, replacing the typed events of the ancestor. These structured events are roughly composed of two types of fields, namely (1) fixed fields and (2) variable fields consisting of name-value pairs, to which applications map their specific needs. The fields of messages are seen as their attributes and are directly accessed through filter objects for content-based filtering - violating encapsulation. Patterns are expressed by strings following the DEFAULT FILTER CONSTRAINT LANGUAGE, a complex subscription language which extends the TRADER CONSTRAINT LANGUAGE.

Message m public class ChatMsg {

public String from;

Criteria ``message sent by Tom''
Argument String criteria = "from is Tom";
Evaluation m.from.equals("Tom")

Figure 1: Subscription Language

next up previous
Next: Properties Up: Subscription Languages Previous: Subscription Languages
Patrick Eugster