Engineering Self-Adaptive Collective Processes for Cyber-Physical Ecosystems
The pervasiveness of computing and networking is creating significant opportunities
for building valuable socio-technical systems. However, the scale, density, heterogeneity,
interdependence, and QoS constraints of many target systems pose severe operational
and engineering challenges. Beyond individual smart devices, cyber-physical collectives
can provide services or solve complex problems by leveraging a “system effect” while coordinating and adapting to context or environment change. Understanding and building
systems exhibiting collective intelligence and autonomic capabilities represent a prominent research goal, partly covered, e.g., by the field of collective adaptive systems. There-
fore, drawing inspiration from and building on the long-time research activity on coordination, multi-agent systems, autonomic/self-* systems, spatial computing, and especially
on the recent aggregate computing paradigm, this thesis investigates concepts, methods,
and tools for the engineering of possibly large-scale, heterogeneous ensembles of situated
components that should be able to operate, adapt and self-organise in a decentralised
fashion. The primary contribution of this thesis consists of four main parts. First,
we define and implement an aggregate programming language (ScaFi), internal to the
mainstream Scala programming language, for describing collective adaptive behaviour,
based on field calculi. Second, we conceive of a “dynamic collective computation” abstraction, also called aggregate process, formalised by an extension to the field calculus,
and implemented in ScaFi. Third, we characterise and provide a proof-of-concept implementation of a middleware for aggregate computing that enables the development
of aggregate systems according to multiple architectural styles. Fourth, we apply and
evaluate aggregate computing techniques to edge computing scenarios, and characterise
a design pattern, called Self-organising Coordination Regions (SCR), that supports adjustable, decentralised decision-making and activity in dynamic environments.