Composing atomic features

  • Authors:
  • Patrick Eugster;Sebastien Vaucouleur

  • Affiliations:
  • Purdue University, Department of Computer Science, West Lafayette;IT University of Copenhagen, Software Development Group, Rued Langgaards Vej, Denmark

  • Venue:
  • Science of Computer Programming - Special issue: Synchronization and concurrency in object-oriented languages
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

SCOOP (Simple Concurrent Object-Oriented Programming) is a model of concurrency that builds on the concept of contracts for synchronizing accesses to objects. This model is based on a pessimistic concurrency control scheme whose reservation semantics avoids race conditions altogether -- alas at the expense of parallelism. In this paper we propose to extend the initial SCOOP model by adding transactional semantics, aspiring to an increase of performance but also reliability of distributed object-oriented programs executing in the presence of partial failures.Our solution consists in programming language support for the specification of atomicity properties of particular features (routines or attributes). With such support, the application programmer is assisted by the compiler in composing atomic features, which substantially alleviates the task of constructing reliable distributed software. We investigate the impact of concepts such as nesting, inheritance, polymorphism, and contracts in such a statically typed approach, illustrated in the context of the Eiffel programming language. In particular, we depict how our solution enables the composition of atomic features from not only elementary atomic features (such as updates applied to variables which can be rolled back -- backward recovery) but also from non-atomic ones by making use of compensation mechanisms (forward recovery).