Institute for Software Research
School of Computer Science, Carnegie Mellon University


Attentiveness: Reactivity at Scale

Gregory S. Hartman

December 2010

Ph.D. Thesis


Keywords: Reactive systems, responsiveness, state consistency, concurrency, distributed systems, data race detection, cancel, rollback

Clients of reactive systems often change their priorities. For example, a human user of an email viewer may attempt to display a message while a large attachment is downloading. To the user, an email viewer that delayed display of the message would exhibit a failure similar to priority inversion in real-time systems.

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.

151 pages

Return to: SCS Technical Report Collection
School of Computer Science homepage

This page maintained by