# Programming the Interactions of Collective Adaptive Systems by Relying on Attribute-based Communication

arXiv: https://arxiv.org/abs/1711.06092 · HTML: https://mlsanity.com/paper/1711.06092/

## Key facts

- Cited by 4 papers in the map (data through 14 Oct 2026).
- First posted on arXiv 26 Oct 2017.

## Built on by (most cited first, 4 of 4)

- [MacroSwarm: A Field-based Compositional Framework for Swarm Programming](https://mlsanity.com/paper/2401.10969/) (2024)
- [Software Engineering for Collective Cyber-Physical Ecosystems](https://mlsanity.com/paper/2406.04780/) (2024)
- [Ensemble-based modeling abstractions for modern self-optimizing systems](https://mlsanity.com/paper/2309.05823/) (2023)
- [Programming Distributed Collective Processes in the eXchange Calculus](https://mlsanity.com/paper/2401.11212/) (2024)

## Abstract (arXiv)

Collective adaptive systems are new emerging computational systems consisting of a large number of interacting components and featuring complex behaviour. These systems are usually distributed, heterogeneous, decentralised and interdependent, and are operating in dynamic and possibly unpredictable environments. Finding ways to understand and design these systems and, most of all, to model the interactions of their components, is a difficult but important endeavour. In this article we propose a language-based approach for programming the interactions of collective-adaptive systems by relying on attribute-based communication; a paradigm that permits a group of partners to communicate by considering their run-time properties and capabilities. We introduce AbC, a foundational calculus for attribute-based communication and show how its linguistic primitives can be used to program a complex and sophisticated variant of the well-known problem of Stable Allocation in Content Delivery Networks. Also other interesting case studies, from the realm of collective-adaptive systems, are considered. We also illustrate the expressive power of attribute-based communication by showing the natural encoding of other existing communication paradigms into AbC.
