DeepAI AI Chat
Log In Sign Up

Computation Against a Neighbour

by   Giorgio Audrito, et al.

Recent works in contexts like the Internet of Things (IoT) and large-scale Cyber-Physical Systems (CPS) propose the idea of programming distributed systems by focussing on their global behaviour across space and time. In this view, a potentially vast and heterogeneous set of devices is considered as an "aggregate" to be programmed as a whole, while abstracting away the details of individual behaviour and exchange of messages, which are expressed declaratively. One such a paradigm, known as aggregate programming, builds on computational models inspired by field-based coordination. Existing models such as the field calculus capture interaction with neighbours by a so-called "neighbouring field" (a map from neighbours to values). This requires ad-hoc mechanisms to smoothly compose with standard values, thus complicating programming and introducing clutter in aggregate programs, libraries and domain-specific languages (DSLs). To address this key issue we introduce the novel notion of "computation against a neighbour", whereby the evaluation of certain subexpressions of the aggregate program are affected by recent corresponding evaluations in neighbours. We capture this notion in the neighbours calculus (NC), a new field calculus variant which is shown to smoothly support declarative specification of interaction with neighbours, and correspondingly facilitate the embedding of field computations as internal DSLs in common general-purpose programming languages – as exemplified by a Scala implementation, called ScaFi. This paper formalises NC, thoroughly compares it with respect to the classic field calculus, and shows its expressiveness by means of a case study in edge computing, developed in ScaFi.


Time-Fluid Field-Based Coordination through Programmable Distributed Schedulers

Emerging application scenarios, such as cyber-physical systems (CPSs), t...

Aggregate Graph Statistics

Collecting statistic from graph-based data is an increasingly studied to...

Field-based Coordination with the Share Operator

Field-based coordination has been proposed as a model for coordinating c...

Aggregate Processes as Distributed Adaptive Services for the Industrial Internet of Things

The Industrial Internet of Things (IIoT) promises to bring many benefits...

On Distributed Runtime Verification by Aggregate Computing

Runtime verification is a computing analysis paradigm based on observing...

Writing Internet of Things Applicatations with Task-Oriented Programming

The Internet of Things (IoT) is growing fast. In 2018, there was approxi...

Pure Pattern Calculus à la de Bruijn

It is well-known in the field of programming languages that dealing with...