Dynamic Classes: Modular Asynchronous Evolution of Distributed Concurrent Objects

  • Authors:
  • Einar Broch Johnsen;Marcel Kyas;Ingrid Chieh Yu

  • Affiliations:
  • Department of Informatics, University of Oslo, Norway;Department of Computer Science, Freie Universität Berlin, Germany;Department of Informatics, University of Oslo, Norway

  • Venue:
  • FM '09 Proceedings of the 2nd World Congress on Formal Methods
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

Many long-lived and distributed systems must remain available yet evolve over time, due to, e.g., bugfixes, feature extensions, or changing user requirements. To facilitate such changes, formal methods can help in modeling and analyzing runtime software evolution. This paper presents an executable object-oriented modeling language which supports runtime software evolution. The language, based on Creol, targets distributed systems by active objects, asynchronous method calls, and futures. A dynamic class construct is proposed in this setting, providing an asynchronous and modular upgrade mechanism. At runtime, class redefinitions gradually upgrade existing instances of a class and of its subclasses. An upgrade may depend on previous upgrades of other classes. For asynchronous runtime upgrades, the static picture may differ from the actual runtime system. An operational semantics and a type and effect system are given for the language. The type analysis of an upgrade infers and collects dependencies on previous upgrades. These dependencies are exploited as runtime constraints to ensure type safety.