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.

AErlang: Empowering Erlang with attribute-based communication

De Nicola, Rocco;
2018-01-01

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.
2018
Attribute-based communication, Collective adaptive systems, Concurrency, Distributed programming, Erlang, Stable Marriage, Software
File in questo prodotto:
File Dimensione Formato  
main.pdf

non disponibili

Tipologia: Versione Editoriale (PDF)
Licenza: Nessuna licenza
Dimensione 773.65 kB
Formato Adobe PDF
773.65 kB Adobe PDF   Visualizza/Apri   Richiedi una copia

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/20.500.11771/11995
Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus 9
social impact