A formal actor-based model for streaming the future

Asynchronous Actor-based programming has gained increasing attention as a model of concurrency and distribution. The Abstract Behavioral Specification (ABS) language is an actor-based programming language that has been developed for both the modeling and formal analysis of distributed systems. In ABS, actors are modeled as concurrent objects that communicate by asynchronous method calls. Return values are also communicated asynchronously via return statements and so-called futures. Many modern distributed software applications require a form of continuous interaction between their components which consists of streaming data from a server to its clients. In this paper, we extend the ABS language in order to support the streaming of data. We introduce the notion of “future-based data streams” by augmenting the syntax, type system, and operational semantics of ABS. As a proof of concept, we further discuss a prototype implementation for supporting future-based data streams on top of ABS, and discuss the impact of the use of these data streams in ABS on the performance in the implementation of a distributed application for the generation of social networks.

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

[2]  Reiner Hähnle,et al.  ABS: A Core Language for Abstract Behavioral Specification , 2010, FMCO.

[3]  Anne-Marie Kermarrec,et al.  The many faces of publish/subscribe , 2003, CSUR.

[4]  Marjan Sirjani,et al.  Rebeca: Theory, Applications, and Tools , 2006, FMCO.

[5]  Cosimo Laneve,et al.  A framework for deadlock detection in core ABS , 2015, Software & Systems Modeling.

[6]  Eli Upfal,et al.  Stochastic models for the Web graph , 2000, Proceedings 41st Annual Symposium on Foundations of Computer Science.

[7]  Frank S. de Boer,et al.  Distributed Network Generation Based on Preferential Attachment in ABS , 2017, SOFSEM.

[8]  David Gelernter,et al.  Generative communication in Linda , 1985, TOPL.

[9]  Erik P. de Vink,et al.  Deadlock Detection for Actor-Based Coroutines , 2018, FM.

[10]  Frank S. de Boer,et al.  A high-level and scalable approach for generating scale-free graphs using active objects , 2016, SAC.

[11]  Frank S. de Boer,et al.  ABS: A High-Level Modeling Language for Cloud-Aware Programming , 2016, SOFSEM.

[12]  Andrew P. Black,et al.  Towards Haskell in the cloud , 2012 .

[13]  Christos Faloutsos,et al.  Dynamics of large networks , 2008 .

[14]  Gordon D. Plotkin,et al.  A structural approach to operational semantics , 2004, J. Log. Algebraic Methods Program..

[15]  Frank S. de Boer,et al.  On Futures for Streaming Data in ABS - (Short Paper) , 2017, FORTE.

[16]  Joe Armstrong,et al.  Concurrent programming in ERLANG , 1993 .

[17]  Jonathan M. Smith,et al.  A taxonomy-based comparison of several distributed shared memory systems , 1990, OPSR.

[18]  David A. Bader,et al.  Parallel Algorithms for Evaluating Centrality Indices in Real-world Networks , 2006, 2006 International Conference on Parallel Processing (ICPP'06).

[19]  Albert,et al.  Emergence of scaling in random networks , 1999, Science.

[20]  Paul Hudak,et al.  Memory coherence in shared virtual memory systems , 1986, PODC '86.

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