The SUN counterpart to the CORBA NOTIFICATION SERVICE is the
JAVA MESSAGE SERVICE (JMS) API [HBS98]. The JMS covers
topic-based publish/subscribe (all-of-n) as well as message queuing
(one-of-n) [BHL95,DEC94,Sys00,Mic97]. Content-based filters can be applied with both
interaction schemes. The filtering is based
on attributes of the message headers, and on properties (name-value
pairs), which are explicitly attached to message objects. Subscription
patterns are expressed as JAVA strings. The specification includes a subscription grammar that
these strings must respect.
Properties explicitly attached to message objects are artificial and in practice strongly redundant with the information carried by those objects. In many cases, the properties are faithful duplicates of the attributes of the message objects, which leads to violating encapsulation.