Elsevier

Science of Computer Programming

Volume 168, 15 December 2018, Pages 71-93
Science of Computer Programming

AErlang: Empowering Erlang with attribute-based communication

https://doi.org/10.1016/j.scico.2018.08.006Get rights and content
Under an Elsevier user license
open archive

Highlights

  • A prototype implementation of attribute-based communication in Erlang.

  • Evaluation of the efficiency and scalability of the prototype.

  • The proposed approach outperforms state-of-the-art solutions on large-sized instances.

  • Evaluation of different forwarding strategies for attribute-based message passing.

  • Alternative forwarding strategies exhibit better scalability vs broadcast on two case studies.

Abstract

Attribute-based communication provides a novel mechanism to dynamically select groups of communicating entities by relying on predicates over their exposed attributes. This paradigm represents an interesting alternative to broadcasting and one-to-one communication, and has potential applications in modelling and analysing complex open-ended systems. In this paper, we study the impact of attribute-based communication by enriching a concurrency-oriented language, i.e., Erlang, with attribute-based primitives to obtain what we call AErlang. We also study the impact of using different implementation strategies for exchanging messages while evaluating the sending and receiving predicates. To evaluate our proposal, we consider two case studies and analyse them from the point of view of efficiency and scalability. The outcome shows that broadcasting is very inefficient and not suitable to handle large systems and that other implementation strategies, whose choice depends on the specific class of problems under consideration, are definitely preferable. We also use one of the case studies to compare AErlang's implementation with that of pure Erlang and X10. The experiments confirm that the overhead resulting from the new communication primitives is acceptable, and that our prototype successfully preserves Erlang's efficiency and scalability.

Keywords

Attribute-based communication
Erlang
Concurrency
Distributed programming
Collective adaptive systems
Stable Marriage

Cited by (0)

This is a revised and extended version of a paper presented at COORDINATION 2017 [1].