A scientific experiment control system includes a main controller for
high-level control, an experimental manager for lower-level control of
scientific experiments, and a roll-up engine for automatically
propagating modifications (or "changes") within the system to ensure
consistency across the system and instruments which are linked to it in
an automatic and dynamic manner. When any of experiment control objects
automatically detects a change event as defined by any of the metrics
inherited from the metric objects it transmits a notification to an
interface. The latter automatically instantiates a change event object,
which is managed in a queue by an input interface of the roll-up engine.
The roll-up engine automatically interrogates the network of objects
contained in the program object to determine the identity of every object
in the hierarchy down to the notifying object which is involved in
performance of the current experiment run. It then automatically
transmits a notification to each of these identified objects.