Check out the new USENIX Web site. next up previous
Next: Contributions Up: Introduction Previous: Filter library

Structural reflection

As pointed out in  [Fer89], there are mainly two kinds of reflection. The computational (behavioral) reflection is concerned with the reification of computations and their behaviour. In contrast, structural reflection reifies the structural aspects of a program, such as data types.

As we will show in this paper, structural reflection can be used to express subscription patterns in content-based publish/subscribe the same way it has already been used in object-oriented data management systems to express object queries (e.g., [SO95]). In our particular context, structural reflection can be reduced to a single aspect: the capability of representing structures of objects. This is sufficient to dynamically define the methods that our filters must use to query message objects. The introspection capabilities of JAVA [Sun99a] offer sufficient support for this, and the possibility of modifying data structures is not required.

Patrick Eugster