About
104
Publications
8,703
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
2,153
Citations
Introduction
Skills and Expertise
Publications
Publications (104)
Today's distributed and pervasive computing addresses large-scale cyber-physical ecosystems, characterised by dense and large networks of devices capable of computation, communication and interaction with the environment and people. While most research focuses on treating these systems as “composites” (i.e., heterogeneous functional complexes), rec...
The popularity of multi-paradigm languages is on the rise, enabling developers to select the most appropriate paradigm for each task. While object-oriented and functional programming are commonly combined, other paradigms can also be hybridized. This paper introduces JaKtA, an internal Domain-Specific Language designed to support the definition of...
We are witnessing the rise of autonomous cars, which will likely revolutionize the way we travel. Arguably, the maritime domain lags behind, as ships operate on many more degrees of freedom (thus, a much larger search space): there is less physical infrastructure, and rules are less consistent and constraining than what is found on roads. The probl...
Today's distributed and pervasive computing addresses large-scale cyber-physical ecosystems, characterised by dense and large networks of devices capable of computation, communication and interaction with the environment and people. While most research focusses on treating these systems as "composites" (i.e., heterogeneous functional complexes), re...
Ushered by competition and technological change, a growing number of human activities are situated in environments requiring situation recognition and dynamic response to unpredicted events. This chapter presents the vision and structure of a novel computational model, called Bidirectional Responsive IoT Collaboration and Knowledge System (BRICKS),...
This chapter addresses coordination challenges in emerging application scenarios, such as cyber-physical systems (CPSs), the Internet of Things (IoT), and edge computing, through a Fluidware-based approach to field-based coordination, showing how data structures distributed in space and time (fields) can be extended towards fluidity. In time, we ch...
Deployment-level concerns strongly impact on the system performance and, hence, often influence the design and implementation phases, slowing down the entire development process. This is particularly true in the Edge–Cloud Continuum (ECC) where the heterogeneity of actors, resource availability, and requirement is intrinsically high with respect to...
A recurrent task in coordinated systems is managing (estimating, predicting, or controlling) signals that vary in space, such as distributed sensed data or computation outcomes. Especially in large-scale settings, the problem can be addressed through decentralised and situated computing systems: nodes can locally sense, process, and act upon signal...
Multi-paradigm languages are becoming more and more popular, as they allow developers to choose the most suitable paradigm for each task. Most commonly, we observe the combination of object-oriented (OOP) and functional programming (FP), however, in principle, other paradigms could be hybridised. In this paper, we present JaKtA, an internal DSL add...
The ability to monitor and steer the behaviour of complex distributed systems is an increasingly hot research topic, fostered by the growing adoption of hybrid cloud-edge technologies that constitute a computational continuum. One key feature of these systems is the ability to scale in size, embracing a wide number of heterogeneous devices and appl...
Supported by current socio-scientific trends, programming the global behaviour of whole computational collectives makes for great opportunities, but also significant challenges. Recently, aggregate computing has emerged as a prominent paradigm for so-called collective adaptive systems programming. To shorten the gap between such research endeavours...
A recurrent task in coordinated systems is managing (estimating, predicting, or controlling) signals that vary in space, such as distributed sensed data or computation outcomes. Especially in large-scale settings, the problem can be addressed through decentralised and situated computing systems: nodes can locally sense, process, and act upon signal...
Research trends are pushing artificial intelligence (AI) across the Internet of Things (IoT)–edge–fog–cloud continuum to enable effective data analytics, decision making, as well as the efficient use of resources for QoS targets. Approaches for collective adaptive systems (CASs) engineering, such as aggregate computing, provide declarative programm...
We focus on the online multi-object k -coverage problem (OMOkC), where mobile robots are required to sense a mobile target from k diverse points of view, coordinating themselves in a scalable and possibly decentralised way. There is active research on OMOkC, particularly in the design of decentralised algorithms for solving it. We propose a new tak...
A recurrent task in coordinated systems is managing (estimating, predicting, or controlling) signals that vary in space, such as distributed sensed data or computation outcomes. Especially in large-scale settings, the problem can be addressed through decentralised and situated computing systems: nodes can locally sense, process, and act upon signal...
The engineering of large-scale cyber-physical systems (CPS) increasingly relies on principles from self-organisation and collective computing, enabling these systems to cooperate and adapt in dynamic environments. CPS engineering also often leverages digital twins that provide synchronised logical counterparts of physical entities. In contrast, sen...
Emerging application scenarios, such as cyber-physical systems (CPSs), the
Internet of Things (IoT), and edge computing, call for coordination approaches
addressing openness, self-adaptation, heterogeneity, and deployment
agnosticism. Field-based coordination is one such approach, promoting the idea
of programming system coordination declaratively...
A key goal of edge computing is to achieve “distributed sensing” out of data continuously generated from a multitude of interconnected physical devices. The traditional approach is to gather information into sparse collector devices by relying on hop-by-hop accumulation, but issues of reactivity and fragility naturally arise in scenarios with high...
Many interesting systems in several disciplines can be modeled as networks of nodes that can store and exchange data: pervasive systems, edge computing scenarios, and even biological and bio-inspired systems. These systems feature inherent complexity, and often simulation is the preferred (and sometimes the only) way of investigating their behavior...
Field-based coordination is a model for expressing the coordination logic of large-scale adaptive systems, composing functional blocks from a global perspective. As for any coordination model, a proper toolchain must be developed to support its adoption across all development phases. Under this point of view, the ScaFi toolkit provides a coordinati...
Collecting statistics from graph-based data is an increasingly studied topic in the data mining community. We argue that they can have great value in the coordination of dynamic IoT systems as well, especially to support complex coordination strategies related to distributed situation recognition.
Thanks to a mapping to the field calculus, a distri...
Edge computing promotes the execution of complex computational processes without the cloud, i.e., on top of the heterogeneous, articulated, and possibly mobile systems composed of IoT and edge devices. Such a pervasive smart fabric augments our environment with computing and networking capabilities. This leads to a complex and dynamic ecosystem of...
Emerging application scenarios, such as cyber-physical systems (CPSs), the Internet of Things (IoT), and edge computing, call for coordination approaches addressing openness, self-adaptation, heterogeneity, and deployment agnosticism. Field-based coordination is one such approach, promoting the idea of programming system coordination declaratively...
Emerging cyber-physical systems, such as robot swarms, crowds of augmented people, and smart cities, require well-crafted self-organizing behavior to properly deal with dynamic environments and pervasive disturbances. However, the infrastructures providing networking and computing services to support these systems are becoming increasingly complex,...
Many Collect ive Adaptive Systems (CASs) exist in nature: think of ant colonies, where large collectives of ants operate autonomously but interact with other ants and the environment to provide resilient global behaviors that sustain their colony. Following scientific studies that were aimed at understanding and predicting the evolution of these sy...
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 Syste...
Emerging application scenarios, such as cyber-physical systems (CPSs), the Internet of Things (IoT), and edge computing, call for coordination approaches addressing openness, self-adaptation, heterogeneity, and deployment agnosticism. Field-based coordination is one such approach, promoting the idea of programming system coordination declaratively...
Field-based coordination has been proposed as a model for coordinating collective adaptive systems, promoting a view of distributed computations as functions manipulating data structures spread over space and evolving over time, called computational fields. The field calculus is a formal foundation for field computations, providing specific constru...
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...
Design patterns are key in software engineering, for they capture the knowledge of recurrent problems and associated solutions in specific design contexts. Emerging distributed computing scenarios, such as the Internet of Things, Cyber-Physical Systems, and Edge Computing, define a novel and still largely unexplored application context, where ident...
Engineering distributed applications and services in emerging and open computing scenarios like the Internet of Things, cyber-physical systems and pervasive computing, calls for identifying proper abstractions to smoothly capture collective behaviour, adaptivity, and dynamic injection and execution of concurrent distributed activities. Accordingly,...
Recent work in the area of coordination models and collective adaptive systems promotes a view of distributed computations as functions manipulating computational fields (data structures spread over space and evolving over time), and introduces the field calculus as a formal foundation for field computations. With the field calculus, evolution (tim...
Technological advances have recently fostered the Internet of Things vision, in which systems of situated entities perceive and act upon the world, and interact with one another to provide novel kinds of services, which are inherently cyber-physical, increasingly contextual and opportunistic in nature, and possibly span different scales and domains...
Computational fields have been proposed as an effective abstraction to fill the gap between the macro-level of distributed systems (specifying a system’s collective behaviour) and the micro-level (individual devices’ actions of computation and interaction to implement that collective specification), thereby providing a basis to better facilitate th...
The widespread adoption of digital technologies and computational devices, along with their pervasiveness in our everyday life, is going to make them hugely impact over all key processes in human societies-including the democratic one. The last decade has witnessed the emergence of many tools and platforms for digital democracy. However, also becau...
Aggregate Computing is a promising paradigm for coordinating large numbers of possibly situated devices, typical of scenarios related to the Internet of Things, smart cities, drone coordination, and mass urban events. Currently, little work has been devoted to study and improve security in aggregate programs, and existing works focus solely on appl...
The Internet of Things (IoT) is emerging as a ubiquitous and dense ecosystem in which novel devices and smart objects interoperate to establish smart cities, smart buildings, etc. In such application contexts, a plethora of innovative services are expected to stand out, deeply impacting our daily routine. In particular, real IoT drivers will be cyb...
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...
We introduce Spatial Tuples, an extension of the basic tuple‐based model for distributed multi‐agent system coordination where (a) tuples are conceptually placed in regions of the physical world and possibly move anchored to a mobile computational device, (b) the behaviour of standard Linda coordination primitives is extended so as to depend on the...
The 1st workshop on Architectures, Languages and Paradigms for IoT (ALP4IoT 2017), was held in Turin on September 19th, 2017. ALP4IoT was a satellite event of the 13th International Conference on integrated Formal Methods (iFM 2017). The workshop aimed at critically reviewing the state-of-the-art and the state-of-the-practice of formal techniques a...
Collective adaptive systems are an emerging class of networked computational systems particularly suited for application domains such as smart cities, complex sensor networks, and the Internet of Things. These systems tend to feature large-scale, heterogeneity of communication model (including opportunistic peer-to-peer wireless interaction) and re...
Collective adaptive systems are an emerging class of networked computational systems, particularly suited in application domains such as smart cities, complex sensor networks, and the Internet of Things. These systems tend to feature large scale, heterogeneity of communication model (including opportunistic peer-to-peer wireless interaction), and r...
We introduce Spatial Tuples, an extension of the basic tuplebased model for distributed multi-agent system coordination where (i) tuples are conceptually placed in the physical world and possibly move, (ii) the behaviour of coordination primitives may depend on the spatial properties of the coordinating agents, and (iii) the tuple space can be conc...
A key problem when coordinating the behaviour of spatially situated networks, like those typically found in the Internet of Things (IoT), is adaptation to changes impacting network topology, density, and heterogeneity. Computational goals for such systems, however, are often dependent on geometric properties of the continuous environment in which t...
The complexity of large-scale distributed systems, particularly when deployed in physical space, calls for new mechanisms to address composability and reusability of collective adaptive behaviour. Computational fields have been proposed as an effective abstraction to fill the gap between the macro-level of such systems (specifying a system's collec...
The complexity of large-scale distributed systems, particularly when deployed in physical space, calls for new mechanisms to address composability and reusability of collective adaptive behaviour. Computational fields have been proposed as an effective abstraction to fill the gap between the macro-level of such systems (specifying a system's collec...
Recent works in the context of large-scale adaptive systems, such as those based on opportunistic IoT-based applications , promote aggregate programming, a development approach for distributed systems in which the collectivity of devices is directly targeted, instead of individual ones. This makes the resulting behaviour highly insensitive to netwo...
Aggregate computing is proposed as a computational model and associated toolchain to engineer adaptive large-scale situated systems, including IoT and wearable computing systems. Though originated in the context of WSN-like (peer-to-peer and fully distributed) systems, we argue it is a model that can transparently fit a variety of execution platfor...
Gossip protocols are a fast and effective strategy for computing a wide class of aggregate functions involving coordination of large sets of nodes. The monotonic nature of gossip protocols, however, mean that they can typically only adjust their estimate in one direction unless restarted, which disrupts the values being returned. We propose to impr...
Whereas Multi-Agent Based Simulation (MABS) is emerging as a reference approach for complex system simulation, the event-driven approach of Discrete-Event Simulation (DES) is the most used approach in the simulation mainstream. In this paper we elaborate on two intuitions: (i) event-based systems and multi-agent systems are amenable of a coherent i...
Recent works foster the idea of engineering distributed situated systems by taking an aggregate stance: design and development are better conducted by abstracting away from individuals’ details, directly programming overall system behaviour instead. Concerns like interaction protocols, self-organisation, adaptation, and large-scaleness, are automat...
Through field calculus constructs and building-block APIs, aggregate programming could help unlock the IoT's true potential by allowing complex distributed services to be specified succinctly and by enabling such services to be safely encapsulated, modulated, and composed with one another.
Recently, two different techniques emerged that are tailored to environments pervaded of computational devices. On the one hand, aggregate programming, and especially computational fields-based programming, is a promising abstraction for coordinating the activities of multiple situated devices. On the other hand, augmented reality is emerging as ne...
The complexity of pervasive computing systems is rapidly increasing, and this calls for service models and coordination approaches intrinsically manifesting self-organisation of component interactions. The goal of this paper is to provide a coordination model (formalised as a process algebra) capturing the relevant aspects of such systems. It shoul...
Self-organisation mechanisms, in which simple local interactions result in robust collective behaviors, are a useful approach to managing the coordination of large-scale adaptive systems. Emerging pervasive application scenarios, however, pose an openness challenge for this approach, as they often require flexible and dynamic deployment of new code...
The notion of a computational field has been proposed as a unifying abstraction for developing distributed systems, focusing on the computations and coordination of aggregates of devices instead of individual behavior. Prior field-based languages, however, have suffered from a number of practical limitations that have posed barriers to adoption and...
Pervasive systems are intended to make use of services and components that they encounter in their environment. Such systems are naturally spatial in that they can only be understood in terms of the ways in which components meet and interact in space. Rather than treating spatiality separately from system components, researchers are starting to dev...
HPC normally refers to the aggregation of computational capabilities in such a way that intense computations can be executed in a much shorter time than it would require on a classic end-user machine. In this paper, we propose a different point of view on such matter: focussing on situated self-organising systems, i.e. systems in which myriads of n...
The chemical-inspired programming approach is an emerging paradigm for defining the behavior of densely distributed and context-aware devices (e.g., in ecosystems of displays tailored to crowd steering, or to obtain profile-based coordinated visualization). Typically, the evolution of such systems cannot be easily predicted, thus making of paramoun...
Human mobility behavior emerging in social events involving huge masses of individuals bears potential hazards for irrational social densities. We study the emergence of such phenomena in the context of very large public sports events, analyzing how individual mobility decision making induces undesirable mass effects. A time series based approach i...