Themes » Aggregate Computing

Aggregate Computing

Short Intro

Aggregate programming provides an alternate approach to the standard device-centered development methodology, aiming to dramatically simplify the design, creation, and maintenance of complex and large scale software systems, specifically in the context of IoT, cyber-physical systems, pervasive computing, robotic swarms, and large-scale situated systems in general. Under this approach, the reference computing machine is no longer the single device, but is instead the aggregate collection of devices that cooperatively carry out a computational process: the details of behaviour, position and number of devices are largely abstracted away, to be replaced with a space-filling computational environment. Hence, with aggregate programming the availability of large, heterogeneous sets of devices becomes less of a concern and more an opportunity to increase the quality (e.g., soundness, stability, efficacy). In fact, standard software engineering (and software quality) best practices can then be applied at the aggregate level, there including: modularity/compositionality of specification/libraries, tractability of property analysis, and so on.

People

Close reseachers involved in this research activity include:

Stack of models and technologies

  • Computational fields: maps from devices to values; in our approach "everything is a field"
  • Computational Field Calculus: a tiny language, amenable to formal treatment, describing computations over fields
  • Protelis language: a Java-oriented, Java-enabled programming language to construct aggregate computations based on the computational field calculus
  • Alchemist: a fast simulator, with ability (among the others) of running Protelis, other than importing maps, GPS traces, images and so on 
  • ScaFi: a Scala-based DSL and library for building simulators and systems adopting the Aggregated Computing view

News

Bibliography primer

Bibliography categories

Background

Field Calculus

Aggregate Computing Methodology