Ambient transactors

Extensions to the actor model have been proposed to ease the development of mobile ad hoc applications. However, programming in the actor model is still difficult as it does not provide abstractions to synchronously coordinate multiple actors. Thus, when programmers want to coordinate two or more actors they have to do it by hand. Additionally, programmers need to write failure recovery code for failures caused by the concurrent access to the actors they are using. Coding this manually is error prone and might even be not feasible. We propose a language abstraction based on software transactional memory to coordinate actors. We show that the integration of software transactional memory with the actor model makes writing failure recovery code superfluous. Moreover, we show that our system even handles those cases where manually writing the failure recovery code is not feasible.

[1]  D. B. Lomet Process structuring, synchronization, and recovery using atomic actions , 1977 .

[2]  Keir Fraser,et al.  Language support for lightweight transactions , 2003, SIGP.

[3]  Michael Stonebraker,et al.  A Formal Model of Crash Recovery in a Distributed System , 1983, IEEE Transactions on Software Engineering.

[4]  Carl Hewitt,et al.  The incremental garbage collection of processes , 1977, Artificial Intelligence and Programming Languages.

[5]  Maurice Herlihy,et al.  Transactional Memory: Architectural Support For Lock-free Data Structures , 1993, Proceedings of the 20th Annual International Symposium on Computer Architecture.

[6]  Simon L. Peyton Jones,et al.  Composable memory transactions , 2005, CACM.

[7]  Jessie Dedecker,et al.  AmbientTalk: Object-oriented Event-driven Programming in Mobile Ad hoc Networks , 2007, XXVI International Conference of the Chilean Society of Computer Science (SCCC'07).