Transparent First-class Futures and Distributed Components

Futures are special kind of values that allow the synchronisation of different processes. Futures are in fact identifiers for promised results of function calls that are still awaited. When the result is necessary for the computation, the process is blocked until the result is returned. We are interested in this paper in transparent first-class futures, and their use within distributed components. We say that futures are transparent if the result is automatically and implicitly awaited upon the first access to the value; and that futures are first-class if they can be transmitted between components as usual objects. Thus, because of the difficulty to identify future objects, analysing the behaviour of components using first-class transparent futures is challenging. This paper contributes with first a static representation for futures, second a means to detect local deadlocks in a component system with first class futures, and finally extensions to interface definitions in order to avoid such deadlocks.

[1]  Matthias Felleisen,et al.  The Semantics of Future and an Application , 1999, J. Funct. Program..

[2]  Denis Caromel,et al.  ProActive: an integrated platform for programming and running applications on Grids and P2P systems , 2006 .

[3]  Denis Caromel,et al.  A theory of distributed objects - asynchrony, mobility, groups, components , 2005 .

[4]  Akinori Yonezawa,et al.  Modelling and programming in an object-oriented concurrent language ABCL/1 , 1987 .

[5]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[6]  Ludovic Henrio,et al.  Verification of Distributed Hierarchical Components , 2006, Electron. Notes Theor. Comput. Sci..

[7]  Radu Mateescu,et al.  Efficient Diagnostic Generation for Boolean Equation Systems , 2000, TACAS.

[8]  Mario Tokoro,et al.  Object-oriented concurrent programming , 1987 .

[9]  Theo D'Hondt,et al.  Ambient-oriented programming in ambientTalk , 2005, OOPSLA '05.

[10]  Radu Mateescu,et al.  An overview of CADP 2001 , 2001 .

[11]  André Arnold,et al.  Finite transition systems - semantics of communicating systems , 1994, Prentice Hall international series in computer science.

[12]  Jean-Claude Royer,et al.  The STSLib Project: Towards a Formal Component Model Based on STS , 2008, FACS.

[13]  André Arnold,et al.  Finite transition systems , 1994 .

[14]  Joseph Sifakis,et al.  Fairness and related properties in transition systems — a temporal logic to deal with fairness , 1983, Acta Informatica.

[15]  Robert H. Halstead,et al.  MULTILISP: a language for concurrent symbolic computation , 1985, TOPL.

[16]  Theo D'Hondt,et al.  Ambient-Oriented Programming in AmbientTalk , 2006, ECOOP.

[17]  Shirley Dex,et al.  JR 旅客販売総合システム(マルス)における運用及び管理について , 1991 .

[18]  Ludovic Henrio,et al.  Behavioural models for distributed Fractal components , 2009, Ann. des Télécommunications.

[19]  Denis Caromel,et al.  GCM: a grid extension to Fractal for autonomous distributed components , 2009, Ann. des Télécommunications.

[20]  Iso. Lotos,et al.  A Formal Description Technique Based on the Temporal Ordering of Observational Behaviour , 1985 .

[21]  Denis Caromel,et al.  A Theory of Distributed Objects , 2005 .

[22]  Frank S. de Boer,et al.  A Complete Guide to the Future , 2007, ESOP.

[23]  Joachim Niehren,et al.  A concurrent lambda calculus with futures , 2005, Theor. Comput. Sci..