Akka.js: towards a portable actor runtime environment

Multiple mature implementations of the actor model of concurrency exist. Besides several ones available for the Java Virtual Machine, there are others, for example, written in SmallTalk or in C++, targeting native platforms or other virtual machines. Recently, runtime environments for platforms such as GPUs have also appeared. However, so far, no full-featured, distributed actor runtime environment has allowed actor programs to run, unchanged, on both Java and JavaScript virtual machines. This paper describes our ongoing effort in providing a portable implementation of the widely-used Akka actor framework.

[1]  Jason Maassen,et al.  An efficient implementation of Java's remote method invocation , 1999, PPoPP '99.

[2]  Liuba Shrira,et al.  Promises: linguistic support for efficient asynchronous procedure calls in distributed systems , 1988, PLDI '88.

[3]  Lambert M. Surhone,et al.  Node.js , 2010 .

[4]  Philipp Haller,et al.  On the integration of the actor model in mainstream technologies: the scala perspective , 2012, AGERE! 2012.

[5]  Joe aRmstRonG,et al.  Erlang , 2010, Commun. ACM.

[6]  Michael Philippsen,et al.  More efficient serialization and RMI for Java , 2000 .

[7]  Stuart Halloway,et al.  Programming Clojure , 2009 .

[8]  Martin Odersky,et al.  Instant pickles: generating object-oriented pickler combinators for fast and extensible serialization , 2013, OOPSLA.

[9]  Martin Odersky,et al.  Functional programming for all! scaling a MOOC for students and professionals alike , 2014, ICSE Companion.

[10]  Michael Philippsen,et al.  More efficient serialization and RMI for Java , 2000, Concurr. Pract. Exp..

[11]  Carl Hewitt,et al.  Viewing Control Structures as Patterns of Passing Messages , 1977, Artif. Intell..

[12]  Thomas C. Schmidt,et al.  CAF - the C++ Actor Framework for Scalable and Resource-Efficient Applications , 2014, AGERE! '14.

[13]  John K. Ousterhout,et al.  In Search of an Understandable Consensus Algorithm , 2014, USENIX ATC.

[14]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[15]  Erik Meijer Your Mouse is a Database , 2012, ACM Queue.

[16]  Martin Odersky,et al.  Scala Actors: Unifying thread-based and event-based programming , 2009, Theor. Comput. Sci..

[17]  Martin Odersky,et al.  Unifying functional and object-oriented programming with Scala , 2014, Commun. ACM.

[18]  Frank Yellin,et al.  The Java Virtual Machine Specification , 1996 .

[19]  Gul A. Agha,et al.  ACTORS - a model of concurrent computation in distributed systems , 1985, MIT Press series in artificial intelligence.

[20]  C. Hewitt,et al.  Comments on C. Hewitt, viewing control structures as patterns of passing messages, Artificial Intelligence 8 (1977) 323¿364 , 1978 .