Institute for Software Research
School of Computer Science, Carnegie Mellon University
Attentiveness: Reactivity at Scale
Gregory S. Hartman
We propose a new quality attribute, attentiveness, that provides a unified way to model the forms of redirection offered by application-level reactive systems to accommodate the changing priorities of their clients, which may be either humans or system components. Modeling attentiveness as a quality attribute provides systems designers with a single conceptual framework for policy and architectural decisions to address trade-offs among criteria such as responsiveness, overall performance, behavioral predictability, and state consistency.
At the policy level, the framework models diverse redirection options including cancel, undo, defer, checkpoint, and ignore. At the architectural level, the framework includes concepts such as: distinguishing "short" operations (e.g., an event notification) from "long" operations (e.g., unbounded data transfer over a network); encapsulating long operations to prevent interference with redirection; enabling use of light-weight checkpoints to support redirection while executing "long" operations; and consolidating responsibility for redirection to a small group of components in the system. Policy and architecture come together in the form of a set of positive and negative patterns for realizing attentive systems. These patterns are derived from case studies of attentiveness failures and successes, several of which are presented and evaluated in this paper.
The value of the framework has been tested through experiments involving both new development and re-engineering existing projects. We present two of these experiments in this paper, including both human-system interaction in a document editor and system-system interaction in a client-server application. These experiments illustrate that our modeling framework can guide incremental attentiveness improvements in existing reactive systems.