In this talk we provide a brief overview of the ongoing research on the aggregate computing approach for programming the Internet of Things.
The increase of the number of devices in the Internet of Things (IoT) will soon make it infeasible to deploy a global level software functionality by following the current practice of individually programming every single device.
Aggregate computing is an emerging approach to the engineering of complex coordination for distributed systems, based on viewing system interactions in terms of information propagating through collectives of devices, rather than in terms of individual devices and their interaction with their peers and environment.
The foundation of this approach is the distillation of a number of prior approaches, both formal and pragmatic, proposed under the umbrella of field-based coordination, and culminating into the field calculus, a functional programming model for the specification and composition of collective behaviours with equivalent local and aggregate semantics.
This foundation has been elaborated into a layered approach to engineering coordination of complex distributed systems, building up to pragmatic applications through intermediate layers encompassing reusable libraries of provably resilient program components.