Partitioned integration and coordination via the self-organising coordination regions pattern
- Self-organising Coordination Regions (SCR) is a design pattern for decentralised self-integration in dynamic environments.
- SCR captures recurrent design approaches in a variety of domains including swarm control, resource management, and service orchestration.
- SCR consists of a dynamic process involving leader election, coalition formation, and feedback loops between leaders and subordinates.
- SCR can be straightforwardly implemented as continuous collective workflows in Aggregate Programming languages.
- SCR is versatile, as shown through case studies in edge computing and hierarchical, heterogeneous networks.
In software engineering, knowledge about recurrent problems, along with blueprints of associated solutions for diverse design contexts, are often captured in so-called design patterns. Identifying design patterns is particularly valuable for novel and still largely unexplored application contexts such as the Internet of Things, Cyber–Physical Systems, and Edge Computing, as it would help keeping a balanced trade-off between generality and applicability, guiding the mainstream development of language mechanisms, algorithms, architectures, and supporting platforms. Based on recurrence of related solutions found in the literature, in this work we present a design pattern for self-adaptive systems, named Self-organising Coordination Regions (SCR): its goal is to organise a process of interconnecting devices into teams, to solve local tasks in cooperation. Specifically, it is a decentralised coordination pattern for partitioned integration and coordination of devices, which relies on continuous adaptivity to context change to provide resilient distributed decision-making in large-scale situated systems. It leverages the divide-and-conquer principle, partitioning (in a self-organising fashion) the network of devices into regions, where internal coordination activities are regulated via feedback/control flows among leaders and subordinate nodes. We present the pattern, provide a template implementation in the Aggregate Computing framework, and evaluate it through simulation of two case studies in edge computing and hierarchical, heterogeneous networks.