The data protocol used by Supermon was chosen to provide a low impact way to move data from sources to consumers while enforcing LowPerturbation, extensibility, and composability. It is based on SymbolicExpressions, a data format familiar to LISP and Scheme programmers, with structural similarities to XML.

In this context, we define extensibility and composability as follows:

The protocol is easily extended to include new, arbitrarily complex data types, structures and elements. Such extensions do not require modifications to the transport layers in the SupermonArchitecture.
Given a set of samples from multiple sources, they can be combined into a single sample composed of the original disjoint samples.

The protocol contains two portions: a descriptive portion and a data portion. The descriptive portion provides an explanation to clients of the structure to expect when sampling data. The data portion is the data itself.


Updated 08-13-2008