Aggregate Programming: From Foundations to Applications

   page       BibTeX_logo.png   
Jacob Beal, Mirko Viroli
Marco Bernardo, Rocco De Nicola, Jane Hillston (eds.)
Formal Methods for the Quantitative Evaluation of Collective Adaptive Systems, pages 233–260
Lecture Notes in Computer Science 9700

We live in a world with an ever-increasing density of computing devices, pervading every aspect of our environment. Programming these devices is challenging, due to their large numbers, potential for frequent and complex network interactions with other nearby devices, and the open and evolving nature of their capabilities and applications. Aggregate programming addresses these challenges by raising the level of abstraction, so that a programmer can operate in terms of collections of interacting devices. In particular, field calculus provides a safe and extensible model for encapsulation, modulation, and composition of services. On this foundation, a set of resilient “building block” operators support development of APIs that can provide resilience and scalability guarantees for any service developed using them. We illustrate the power of this approach by discussion of several recent applications, including crowd safety at mass public events, disaster relief operations, construction of resilient enterprise systems, and network security.

keywordsAggregate programming; Pervasive computing; Field calculus; Distributed systems; Domain-specific languages