A dynamic platform for run-time adaptation

  • Authors:
  • Hubert Pham;Justin Mazzola Paluska;Umar Saif;Chris Stawarz;Chris Terman;Steve Ward

  • Affiliations:
  • MIT Computer Science and Artificial Intelligence Laboratory, Cambridge, MA, USA;MIT Computer Science and Artificial Intelligence Laboratory, Cambridge, MA, USA;LUMS Computer Science Department, Lahore, Pakistan;MIT Computer Science and Artificial Intelligence Laboratory, Cambridge, MA, USA;MIT Computer Science and Artificial Intelligence Laboratory, Cambridge, MA, USA;MIT Computer Science and Artificial Intelligence Laboratory, Cambridge, MA, USA

  • Venue:
  • Pervasive and Mobile Computing
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

We present a middleware platform for assembling pervasive applications that demand fault-tolerance and adaptivity in distributed, dynamic environments. Unlike typical adaptive middleware approaches, in which sophisticated component model semantics are embedded into an existing, underlying platform (e.g., CORBA, COM, EJB), we propose a platform that imposes minimal constraints for greater flexibility. Such a tradeoff is advantageous when the platform is targeted by automatic code generators that inherently enforce correctness by construction. Applications are written as simple, single-threaded programs that assemble and monitor a set of distributed components. The approach decomposes applications into two distinct layers: (1) a distributed network of interconnected modules performing computations, and (2) constructor logic that assembles that network via a simple block-diagram construction API. The constructor logic subsequently monitors the configured system via a stream of high-level events, such as notifications of resource availability or failures, and consequently provides a convenient, centralized location for reconfiguration and debugging. The component network is optimized for performance, while the construction API is optimized for ease of assembly. Microbenchmarks indicate that our runtime incurs minimal overhead. In addition to describing the programming model, platform implementation, and a variety of pervasive applications built using our system, this paper also extends our previous work with a thorough analysis of remote objects and tracking techniques, new contributions in distributed component liveness-monitoring approaches, and expanded microbenchmarks.