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.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.