The document discusses engineering computational ecosystems through self-organizing pervasive devices and services that interact without central control. It describes challenges in designing rules to promote cooperation and control collective behavior. The SAPERE project aims to develop live semantic annotations and eco-laws to govern interactions in pervasive ecosystems inspired by chemical and biological systems. Simulation of large ecosystems requires techniques like Alchemist that can model mobility, connectivity, and complex interactions efficiently.
Self-organising pervasive ecosystems of devices are set to become a major vehicle for delivering infrastructure and end-user services. The inherent complexity of such systems poses new challenges to those who want to dominate it by applying the principles of engineering.
The recent growth in number and distribution of devices with decent computational and communicational abilities, that suddenly accelerated with the massive diffusion of smartphones and tablets, is delivering a world with a much higher density of devices in space. Also, communication technologies seem to be focussing on short-range device-to-device (P2P) interactions, with technologies such as Bluetooth and Near-Field Communication gaining greater adoption.
Locality and situatedness become key to providing the best possible experience to users, and the classic model of a centralised, enormously powerful server gathering and processing data becomes less and less efficient with device density. Accomplishing complex global tasks without a centralised controller responsible of aggregating data, however, is a challenging task. In particular, there is a local-to-global issue that makes the application of engineering principles challenging at least: designing device-local programs that, through interaction, guarantee a certain global service level. In this thesis, we first analyse the state of the art in coordination systems, then motivate the work by describing the main issues of pre-existing tools and practices and identifying the improvements that would benefit the design of such complex software ecosystems.
The contribution can be divided in three main branches. First, we introduce a novel simulation toolchain for pervasive ecosystems, designed for allowing good expressiveness still retaining high performance. Second, we leverage existing coordination models and patterns in order to create new spatial structures. Third, we introduce a novel language, based on the existing ``Field Calculus'' and integrated with the aforementioned toolchain, designed to be usable for practical aggregate programming.
Gradient-based Self-organisation Patterns of Anticipative AdaptationDanilo Pianini
The self-organisation Gradient pattern is known to be a key spatial data structure to make information local to its source become global knowledge, and to dynamically and adaptively steer agents to that source even in mobile and faulty environments – e.g. when obstacles unpredictably appear. In this paper we conceive new self-organisation mechanisms built upon this pattern to tackle anticipative adaptation. We ensure that the retrieval of a target of interest proactively reacts to locally-available information about future events, namely, the knowledge about future obstacles (e.g., expected jams or road interruption in a traffic control scenario) is used to emergently compute alternative and faster paths.
Towards a comprehensive approach to spontaneous self-composition in pervasive...Danilo Pianini
Pervasive service ecosystems are emerging as a new paradigm for understanding and designing future pervasive computing systems featuring high degrees of scale, openness, adaptivity and toleration of long-term evolution. A key issue in this context is making certain patterns of behaviour emerge without any supervision or design-time intention, and a primary example is the fully-spontaneous composition of services, possibly at multiple levels. We argue that this can be successfully achieved only by a comprehensive approach exploiting together the main ingredients proposed so far in literature: (i) existence of intel- ligent components finding proper (semantic) matches of service descriptions, (ii) use of distributed evolutionary techniques to dynamically select appropriate ways of composing services, and (iii) approaches in which rating quality of composition is solely based on their successful exploitation. This proposal is presented through an example of spontaneous composition in crowd steering services.
Extending the Gillespie's Stochastic Simulation Algorithm for Integrating Dis...Danilo Pianini
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 talk, we elaborate on two intuitions: 1) event-based systems and multi-agent systems are amenable of a coherent interpretation within a unique conceptual framework; 2) integrating MABS and DES can lead to a more expressive and powerful simulation framework.
Accordingly, we propose a computational model integrating DES and MABS, based on an extension of the Gillespie's stochastic simulation algorithm.
Then, we discuss a case of a simulation platform (Alchemist) specifically targeted at such a kind of complex models, and show an example of urban crowd steering simulation.
From Engineer to Alchemist, There and Back Again: An Alchemist TaleDanilo Pianini
When computer science meets (bio)chemistry, a new world of possibilities emerges. Taking inspiration from mechanisms that exist in nature, and empowering them with the magic of computation, engineers become alchemists: they create new worlds, ruled by their own (bio)chemical rules. We will call such virtual worlds"computational ecosystems". In this talk we introduce Alchemist, a simulator developed by our research group in order to let us experiment with this complexity. Alchemist takes inspiration from chemical simulators and ABMs, trying to grab the best of both worlds by providing a fast, reliable and extensible framework. We will have a flyby of the simulator features, showing some case studies: crowd steering, crowd evacuation, morphogenesis, anticipative adaptation. The final part of the talk will frame the future activities, offering a pool of opportunities to those interested in this research area
Simulating Large-scale Aggregate MASs with Alchemist and ScalaDanilo Pianini
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 network size, density, and topology, and as such, intrinsically robust to failures and changes to working conditions (e.g., location of computational load, communication technology, and computational infrastructure).
Most specifically, we argue that aggregate programming is particularly suitable for building models and simulations of complex large-scale reactive MASs.
Accordingly, in this paper we describe Scafi (Scala Fields), a Scala-based API and DSL for aggregate programming, and its integration with the Alchemist simulator, and usage scenarios in the context of smart mobility.
Simulation video available at https://vid.me/BNVx
Presented at Multi Agent Systems & Simulation 2016, Gdansk, Poland
A quick guide through the wonders of dependency management, build automation, teamwork with distributed version control systems, and continuous integration.
Self-organising pervasive ecosystems of devices are set to become a major vehicle for delivering infrastructure and end-user services. The inherent complexity of such systems poses new challenges to those who want to dominate it by applying the principles of engineering.
The recent growth in number and distribution of devices with decent computational and communicational abilities, that suddenly accelerated with the massive diffusion of smartphones and tablets, is delivering a world with a much higher density of devices in space. Also, communication technologies seem to be focussing on short-range device-to-device (P2P) interactions, with technologies such as Bluetooth and Near-Field Communication gaining greater adoption.
Locality and situatedness become key to providing the best possible experience to users, and the classic model of a centralised, enormously powerful server gathering and processing data becomes less and less efficient with device density. Accomplishing complex global tasks without a centralised controller responsible of aggregating data, however, is a challenging task. In particular, there is a local-to-global issue that makes the application of engineering principles challenging at least: designing device-local programs that, through interaction, guarantee a certain global service level. In this thesis, we first analyse the state of the art in coordination systems, then motivate the work by describing the main issues of pre-existing tools and practices and identifying the improvements that would benefit the design of such complex software ecosystems.
The contribution can be divided in three main branches. First, we introduce a novel simulation toolchain for pervasive ecosystems, designed for allowing good expressiveness still retaining high performance. Second, we leverage existing coordination models and patterns in order to create new spatial structures. Third, we introduce a novel language, based on the existing ``Field Calculus'' and integrated with the aforementioned toolchain, designed to be usable for practical aggregate programming.
Gradient-based Self-organisation Patterns of Anticipative AdaptationDanilo Pianini
The self-organisation Gradient pattern is known to be a key spatial data structure to make information local to its source become global knowledge, and to dynamically and adaptively steer agents to that source even in mobile and faulty environments – e.g. when obstacles unpredictably appear. In this paper we conceive new self-organisation mechanisms built upon this pattern to tackle anticipative adaptation. We ensure that the retrieval of a target of interest proactively reacts to locally-available information about future events, namely, the knowledge about future obstacles (e.g., expected jams or road interruption in a traffic control scenario) is used to emergently compute alternative and faster paths.
Towards a comprehensive approach to spontaneous self-composition in pervasive...Danilo Pianini
Pervasive service ecosystems are emerging as a new paradigm for understanding and designing future pervasive computing systems featuring high degrees of scale, openness, adaptivity and toleration of long-term evolution. A key issue in this context is making certain patterns of behaviour emerge without any supervision or design-time intention, and a primary example is the fully-spontaneous composition of services, possibly at multiple levels. We argue that this can be successfully achieved only by a comprehensive approach exploiting together the main ingredients proposed so far in literature: (i) existence of intel- ligent components finding proper (semantic) matches of service descriptions, (ii) use of distributed evolutionary techniques to dynamically select appropriate ways of composing services, and (iii) approaches in which rating quality of composition is solely based on their successful exploitation. This proposal is presented through an example of spontaneous composition in crowd steering services.
Extending the Gillespie's Stochastic Simulation Algorithm for Integrating Dis...Danilo Pianini
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 talk, we elaborate on two intuitions: 1) event-based systems and multi-agent systems are amenable of a coherent interpretation within a unique conceptual framework; 2) integrating MABS and DES can lead to a more expressive and powerful simulation framework.
Accordingly, we propose a computational model integrating DES and MABS, based on an extension of the Gillespie's stochastic simulation algorithm.
Then, we discuss a case of a simulation platform (Alchemist) specifically targeted at such a kind of complex models, and show an example of urban crowd steering simulation.
From Engineer to Alchemist, There and Back Again: An Alchemist TaleDanilo Pianini
When computer science meets (bio)chemistry, a new world of possibilities emerges. Taking inspiration from mechanisms that exist in nature, and empowering them with the magic of computation, engineers become alchemists: they create new worlds, ruled by their own (bio)chemical rules. We will call such virtual worlds"computational ecosystems". In this talk we introduce Alchemist, a simulator developed by our research group in order to let us experiment with this complexity. Alchemist takes inspiration from chemical simulators and ABMs, trying to grab the best of both worlds by providing a fast, reliable and extensible framework. We will have a flyby of the simulator features, showing some case studies: crowd steering, crowd evacuation, morphogenesis, anticipative adaptation. The final part of the talk will frame the future activities, offering a pool of opportunities to those interested in this research area
Simulating Large-scale Aggregate MASs with Alchemist and ScalaDanilo Pianini
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 network size, density, and topology, and as such, intrinsically robust to failures and changes to working conditions (e.g., location of computational load, communication technology, and computational infrastructure).
Most specifically, we argue that aggregate programming is particularly suitable for building models and simulations of complex large-scale reactive MASs.
Accordingly, in this paper we describe Scafi (Scala Fields), a Scala-based API and DSL for aggregate programming, and its integration with the Alchemist simulator, and usage scenarios in the context of smart mobility.
Simulation video available at https://vid.me/BNVx
Presented at Multi Agent Systems & Simulation 2016, Gdansk, Poland
A quick guide through the wonders of dependency management, build automation, teamwork with distributed version control systems, and continuous integration.
Engineering computational ecosystems (2nd year PhD seminar)Danilo Pianini
This tutorial will introduce the research field of pervasive computing, with particular focus on spatial computing and pervasive ecosystems. It will show the applicative domain with a focus on pervasive displays, analysing the main challenges such systems present to software engineers. It will also show how relevant is the role of the simulation and properties checking in this area, in which a complete system deployment prior to release is almost impossible.
A Framework to Specify and Verify Computational Fields for Pervasive Computin...Danilo Pianini
Pervasive context-aware computing networks call for designing algorithms for information propagation and reconfiguration that promote self-adaptation, namely, which can guarantee – at least to a probabilistic extent – certain reliability and robustness properties in spite of unpredicted changes and conditions. The possibility of formally analyzing their properties is obviously an essential engineering requirement, calling for general-purpose models and tools. As proposed in recent works, several such algorithms can be modeled by the notion of computational field: a dynamically evolving spatial data structure mapping every node of the network to a data value. Based on this idea, as a contribution toward formally verifying properties of pervasive computing systems, in this article we propose a specification language to model computational fields, and a framework based on PRISM stochastic model checker explicitly targeted at supporting temporal property verification. By a number of pervasive computing examples, we show that the proposed approach can be effectively used for quantitative analysis of systems running on networks composed of hundreds of nodes.
Democratic process and electronic platforms: concerns of an engineerDanilo Pianini
Digital technology and computer science are more and more widespread, and they are set to become a major player in the democratic process. Some valuable tools that allow for such decision process to happen already exist. However, several concerns typical of the engineering process remain apparently uncovered. For instance, in a classic software engineering process, one or more artifacts are produced in the analysis phase that represent a formal, possibly machine understandable, model of the domain. Looking at the most common e-democracy platforms, this step is seemingly missing, along with others that concur at building a solid engineering process. This talk arise questions (and provide no answers) about the current status of the e-democracy under a software engineering point of view: how can a democratic process get formally modeled? Is the democratic process shaping the tools we have, or viceversa? Is there a trade-off between transparency and security? And if so, how to determine which level of observability should the system allow?
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 use. We address these limitations by introduction of Protelis, a functional language based on computational fields and embedded in Java, thereby enabling the construction of widely reusable components of aggregate systems. We demonstrate the simplicity of Protelis integration and programming through two examples: simulation of a pervasive computing scenario in the Alchemist simulator, and coordinated management of a network of services.
Course on "Nature-inspired Coordination Models for Complex Distributed Systems", Part I.
CUSO Seminar on Coordination Models, 20 - 21 November 2014, Fribourg, CH
Course on "Nature-inspired Coordination Models for Complex Distributed Systems", Part II.
CUSO Seminar on Coordination Models, 20 - 21 November 2014, Fribourg, CH
Nature-inspired Coordination for Complex Distributed SystemsAndrea Omicini
Originating from closed parallel systems, coordination models and technologies gained in expressive power so to deal with open distributed systems. In particular, nature-inspired models of coordination emerged in the last decade as the most effective approaches to tackle the complexity of pervasive, intelligent, and self-* systems. In this talk we survey the most relevant nature-inspired coordination models, discuss the main open issues, and explore the potential for their future development.
[Invited Talk @ IDC 2012, Calabria, Italy, 26/9/2012]
A Compact Representation for Topological Decompositions of Non-Manifold ShapesDavid Canino
These slides have been presented at the VISIGRAPP 2013, February 21-24, 2013, Barcelona, Spain.
Simplicial complexes are extensively used for discretizing digital shapes in several applications. A structural description of a non-manifold shape can be obtained by decomposing the input shape into a collection of meaningful components with a simpler topology. Here, we consider a unique and dimension-independent decomposition of a non-manifold shape into nearly manifold components, known as the Manifold-Connected (MC-) decomposition. We present the Compact Manifold-Connected (MC-) graph, an efficient graph-based representation for the MC-decomposition, which can be combined with any topological data structure for encoding the underlying components. We present the main properties of this representation as well as algorithms for its generation. We also show that this representation is more compact than several topological data
structures, which do not explicitly describe the non-manifold structure of a shape.
Web version (better rendering): https://danysk.github.io/Slides-2020-Coordination-TimeFluid/
Printed version of the slides presented by Danilo Pianini at the 22nd International Conference on Coordination Models and Languages (part of the 15th International Federated Conference on Distributed Computing Techniques)
Engineering the Aggregate - Talk at Software Engineering for Intelligent and ...Danilo Pianini
A distributed system can be seen as a single computational machine rather than a collection of multiple communicating machines, as it is usually perceived. Reasoning on the aggregate of situated devices under this privileged point of view can lead to interesting engineering solutions that allow for abstracting away the networking protocols, and focusing on producing advanced, self-stabilizing coordination algorithms.
Productive parallel teamwork: Decentralized Version Control SystemsDanilo Pianini
How to productively use git (or another decentralized version control system) in your development team. From the PhD course in "Developing, maintaining, and sharing software tools for research".
Computational Fields meet Augmented Reality: Perspectives and ChallengesDanilo Pianini
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 new means of interaction with both software and physical entities. We note that both computational fields and augmented reality are tightly bound to the physical world, and that they both enrich it, with collective computation and augmented information respectively. This work presents an initial analysis of possible future research directions that involve these techniques, discussing some possible ways of integrating them.
Practical Aggregate Programming with Protelis @ SASO2017Danilo Pianini
Collective adaptive systems are an emerging class of networked and situated computational systems with a wide range of applications, such as in the Internet of Things, wireless sensor networks, and smart cities.
Engineering such systems poses a number of challenges, and in particular many approaches, based upon designing the machine-to-machine interaction directly, suffer from a local-to-global abstraction problem.
In this tutorial, we introduce the aggregate computing approach, rooted in the field calculus and practically available through the Protelis programming language, as a means to build collective, situated adaptive systems.
The approach focuses on programming the overall aggregate behaviour, making use of a ``resilience API,'' while leaving to these libraries and the language machinery the responsibility of mapping this to the behavior of individual devices.
This tutorial was first presented at the 11th IEEE International Conference on Self-Adaptive and Self-Organizing Systems (SASO 2017) in Tucson, AZ, USA.
Engineering computational ecosystems (2nd year PhD seminar)Danilo Pianini
This tutorial will introduce the research field of pervasive computing, with particular focus on spatial computing and pervasive ecosystems. It will show the applicative domain with a focus on pervasive displays, analysing the main challenges such systems present to software engineers. It will also show how relevant is the role of the simulation and properties checking in this area, in which a complete system deployment prior to release is almost impossible.
A Framework to Specify and Verify Computational Fields for Pervasive Computin...Danilo Pianini
Pervasive context-aware computing networks call for designing algorithms for information propagation and reconfiguration that promote self-adaptation, namely, which can guarantee – at least to a probabilistic extent – certain reliability and robustness properties in spite of unpredicted changes and conditions. The possibility of formally analyzing their properties is obviously an essential engineering requirement, calling for general-purpose models and tools. As proposed in recent works, several such algorithms can be modeled by the notion of computational field: a dynamically evolving spatial data structure mapping every node of the network to a data value. Based on this idea, as a contribution toward formally verifying properties of pervasive computing systems, in this article we propose a specification language to model computational fields, and a framework based on PRISM stochastic model checker explicitly targeted at supporting temporal property verification. By a number of pervasive computing examples, we show that the proposed approach can be effectively used for quantitative analysis of systems running on networks composed of hundreds of nodes.
Democratic process and electronic platforms: concerns of an engineerDanilo Pianini
Digital technology and computer science are more and more widespread, and they are set to become a major player in the democratic process. Some valuable tools that allow for such decision process to happen already exist. However, several concerns typical of the engineering process remain apparently uncovered. For instance, in a classic software engineering process, one or more artifacts are produced in the analysis phase that represent a formal, possibly machine understandable, model of the domain. Looking at the most common e-democracy platforms, this step is seemingly missing, along with others that concur at building a solid engineering process. This talk arise questions (and provide no answers) about the current status of the e-democracy under a software engineering point of view: how can a democratic process get formally modeled? Is the democratic process shaping the tools we have, or viceversa? Is there a trade-off between transparency and security? And if so, how to determine which level of observability should the system allow?
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 use. We address these limitations by introduction of Protelis, a functional language based on computational fields and embedded in Java, thereby enabling the construction of widely reusable components of aggregate systems. We demonstrate the simplicity of Protelis integration and programming through two examples: simulation of a pervasive computing scenario in the Alchemist simulator, and coordinated management of a network of services.
Course on "Nature-inspired Coordination Models for Complex Distributed Systems", Part I.
CUSO Seminar on Coordination Models, 20 - 21 November 2014, Fribourg, CH
Course on "Nature-inspired Coordination Models for Complex Distributed Systems", Part II.
CUSO Seminar on Coordination Models, 20 - 21 November 2014, Fribourg, CH
Nature-inspired Coordination for Complex Distributed SystemsAndrea Omicini
Originating from closed parallel systems, coordination models and technologies gained in expressive power so to deal with open distributed systems. In particular, nature-inspired models of coordination emerged in the last decade as the most effective approaches to tackle the complexity of pervasive, intelligent, and self-* systems. In this talk we survey the most relevant nature-inspired coordination models, discuss the main open issues, and explore the potential for their future development.
[Invited Talk @ IDC 2012, Calabria, Italy, 26/9/2012]
A Compact Representation for Topological Decompositions of Non-Manifold ShapesDavid Canino
These slides have been presented at the VISIGRAPP 2013, February 21-24, 2013, Barcelona, Spain.
Simplicial complexes are extensively used for discretizing digital shapes in several applications. A structural description of a non-manifold shape can be obtained by decomposing the input shape into a collection of meaningful components with a simpler topology. Here, we consider a unique and dimension-independent decomposition of a non-manifold shape into nearly manifold components, known as the Manifold-Connected (MC-) decomposition. We present the Compact Manifold-Connected (MC-) graph, an efficient graph-based representation for the MC-decomposition, which can be combined with any topological data structure for encoding the underlying components. We present the main properties of this representation as well as algorithms for its generation. We also show that this representation is more compact than several topological data
structures, which do not explicitly describe the non-manifold structure of a shape.
Web version (better rendering): https://danysk.github.io/Slides-2020-Coordination-TimeFluid/
Printed version of the slides presented by Danilo Pianini at the 22nd International Conference on Coordination Models and Languages (part of the 15th International Federated Conference on Distributed Computing Techniques)
Engineering the Aggregate - Talk at Software Engineering for Intelligent and ...Danilo Pianini
A distributed system can be seen as a single computational machine rather than a collection of multiple communicating machines, as it is usually perceived. Reasoning on the aggregate of situated devices under this privileged point of view can lead to interesting engineering solutions that allow for abstracting away the networking protocols, and focusing on producing advanced, self-stabilizing coordination algorithms.
Productive parallel teamwork: Decentralized Version Control SystemsDanilo Pianini
How to productively use git (or another decentralized version control system) in your development team. From the PhD course in "Developing, maintaining, and sharing software tools for research".
Computational Fields meet Augmented Reality: Perspectives and ChallengesDanilo Pianini
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 new means of interaction with both software and physical entities. We note that both computational fields and augmented reality are tightly bound to the physical world, and that they both enrich it, with collective computation and augmented information respectively. This work presents an initial analysis of possible future research directions that involve these techniques, discussing some possible ways of integrating them.
Practical Aggregate Programming with Protelis @ SASO2017Danilo Pianini
Collective adaptive systems are an emerging class of networked and situated computational systems with a wide range of applications, such as in the Internet of Things, wireless sensor networks, and smart cities.
Engineering such systems poses a number of challenges, and in particular many approaches, based upon designing the machine-to-machine interaction directly, suffer from a local-to-global abstraction problem.
In this tutorial, we introduce the aggregate computing approach, rooted in the field calculus and practically available through the Protelis programming language, as a means to build collective, situated adaptive systems.
The approach focuses on programming the overall aggregate behaviour, making use of a ``resilience API,'' while leaving to these libraries and the language machinery the responsibility of mapping this to the behavior of individual devices.
This tutorial was first presented at the 11th IEEE International Conference on Self-Adaptive and Self-Organizing Systems (SASO 2017) in Tucson, AZ, USA.
Towards a Foundational API for Resilient Distributed Systems DesignDanilo Pianini
Engineering resilient distributed systems remains extremely challenging, particularly in mapping from collective specifications to individual device behavior. Aggregate programming aims to address this problem using a computational field abstraction to provide inherent guarantees of resilience, scalability, and safe composition. These capabilities are provided, however, by an expressive but terse set of operators too low-level for pragmatic use in complex systems development. We thus present an API to raise the level of abstraction, thereby providing an accessible and user-friendly interface for construction of complex resilient distributed systems. In particular, we capture and organize a large, heterogeneous collection of algorithms and use patterns into a unified framework, including methods for common tasks such as leader election, distance and state estimation, and gossip-based information dissemination. We demonstrate how the expressiveness of this library reduces the abstraction gap required to engineer scenarios of large-scale pervasive computing, while introducing the novel multiInstance pattern enabling an unanticipated composition of computational fields.
A quick guide through the wonders of teamwork with distributed version control systems, dependency management, build automation, and continuous integration and delivery.
1. Engineering computational ecosystems
Ing. Dott. Danilo Pianini
danilo.pianini@unibo.it
Alma Mater Studiorum—Universit` di Bologna a Cesena
a
Vieni via con noi - Cesena 2012
Danilo Pianini (UniBo / DISI) Computational ecosystems November 6, 2012 1 / 34
2. (Near) Future city scenario
Danilo Pianini (UniBo / DISI) Computational ecosystems November 6, 2012 2 / 34
3. (Near) Future city scenario
Danilo Pianini (UniBo / DISI) Computational ecosystems November 6, 2012 3 / 34
4. (Near) Future city scenario
Danilo Pianini (UniBo / DISI) Computational ecosystems November 6, 2012 4 / 34
5. (Near) Future city scenario
Danilo Pianini (UniBo / DISI) Computational ecosystems November 6, 2012 5 / 34
6. Pervasive Devices
Image courtesy of Alois Ferscha (Pervasive Computing Group, Johannes Kepler Universit¨t Linz)
a
Danilo Pianini (UniBo / DISI) Computational ecosystems November 6, 2012 6 / 34
7. Pervasive Devices
Image courtesy of Alois Ferscha (Pervasive Computing Group, Johannes Kepler Universit¨t Linz)
a
Danilo Pianini (UniBo / DISI) Computational ecosystems November 6, 2012 7 / 34
8. Pervasive Devices
Image courtesy of Alois Ferscha (Pervasive Computing Group, Johannes Kepler Universit¨t Linz)
a
Danilo Pianini (UniBo / DISI) Computational ecosystems November 6, 2012 8 / 34
10. Pervasive Displays
Image courtesy of Alois Ferscha (Pervasive Computing Group, Johannes Kepler Universit¨t Linz)
a
→
Danilo Pianini (UniBo / DISI) Computational ecosystems November 6, 2012 10 / 34
11. Pervasive Displays
Image courtesy of Alois Ferscha (Pervasive Computing Group, Johannes Kepler Universit¨t Linz)
a
. . . . . . .
Danilo Pianini (UniBo / DISI) Computational ecosystems November 6, 2012 11 / 34
12. Pervasive Ecosystems
Miriads of interacting devices and services as individuals in an ecosystem
No central control is involved
Actions are driven by the context
The system heals itself
Nature does it since hundreds of millions years
Danilo Pianini (UniBo / DISI) Computational ecosystems November 6, 2012 12 / 34
13. Self organisation in nature: ants
Danilo Pianini (UniBo / DISI) Computational ecosystems November 6, 2012 13 / 34
14. Self organisation in nature: termites
Danilo Pianini (UniBo / DISI) Computational ecosystems November 6, 2012 14 / 34
15. Self organisation in nature: birds
Danilo Pianini (UniBo / DISI) Computational ecosystems November 6, 2012 15 / 34
16. Self organisation in nature: humans
Danilo Pianini (UniBo / DISI) Computational ecosystems November 6, 2012 16 / 34
17. Self organisation in nature: biochemistry
Danilo Pianini (UniBo / DISI) Computational ecosystems November 6, 2012 17 / 34
18. Pervasive Ecosystems
Challenges for ICT engineers
Design the rules for the ecosystem in a way that:
Fruitful cooperation is promoted
New services are created by combining the existing
Unwanted interactions are limited
Overall collective behaviour can be (formally) predicted and controlled
The system smoothly evolves with time
Danilo Pianini (UniBo / DISI) Computational ecosystems November 6, 2012 18 / 34
19. The SAPERE Project
http://www.sapere-project.eu
Danilo Pianini (UniBo / DISI) Computational ecosystems November 6, 2012 19 / 34
20. Eco-laws and Live Semantic Annotations
Live Semantic Annotations (LSA)
A unified description for devices, data, services
Is about interface, status, and behaviour of a component
It provides semantic information, and it is dynamic
Eco-Laws
They resemble chemical reactions
They take some reagent LSA, and provide some product LSA
They can diffuse an LSA in the neighborhood
They can aggregate LSAs like in chemical bonding
They form a small & fixed set of natural eco-laws
Danilo Pianini (UniBo / DISI) Computational ecosystems November 6, 2012 20 / 34
22. Pervasive displays: multiple view
Image courtesy of Alois Ferscha (Pervasive Computing Group, Johannes Kepler Universit¨t Linz)
a
Danilo Pianini (UniBo / DISI) Computational ecosystems November 6, 2012 22 / 34
23. Pervasive displays: local sharing
Image courtesy of Alois Ferscha (Pervasive Computing Group, Johannes Kepler Universit¨t Linz)
a
Danilo Pianini (UniBo / DISI) Computational ecosystems November 6, 2012 23 / 34
24. Pervasive displays: steering
Image courtesy of Alois Ferscha (Pervasive Computing Group, Johannes Kepler Universit¨t Linz)
a
Danilo Pianini (UniBo / DISI) Computational ecosystems November 6, 2012 24 / 34
25. Pervasive displays: case studies
Image courtesy of Alois Ferscha (Pervasive Computing Group, Johannes Kepler Universit¨t Linz)
a
Danilo Pianini (UniBo / DISI) Computational ecosystems November 6, 2012 25 / 34
26. Pervasive displays: crowd steering
Image courtesy of Alois Ferscha (Pervasive Computing Group, Johannes Kepler Universit¨t Linz)
a
Danilo Pianini (UniBo / DISI) Computational ecosystems November 6, 2012 26 / 34
27. Computational ecosystems: functional guarantees
Houston, we’ve got a problem.
Prediction difficulties
Thousands-devices scale system
Autonomous devices
Interaction plays a huge role
Formal proof
Mathematical guarantee
Only tackles simple cases
Model checking
Space state explosion for non-trivial cases
Danilo Pianini (UniBo / DISI) Computational ecosystems November 6, 2012 27 / 34
28. Computational ecosystems: simulation
How to simulate a (bio)chemical inspired computational ecosystem?
Classic Agent Based simulators
High expressiveness
Sub optimal level of abstraction
Non optimized
Classic chemical Kinetic Monte Carlo simulators
Extremely fast
No mobility
Extremely low-level
Danilo Pianini (UniBo / DISI) Computational ecosystems November 6, 2012 28 / 34
29. Computational ecosystems: Alchemist
Alchemist
Kinetic Monte Carlo engine
Mobility support
Dynamic connectivity support
Complex data items
Reaction-like programming allowed
Classic (weak) agents supported (Java-written)
Built from scratch
Danilo Pianini (UniBo / DISI) Computational ecosystems November 6, 2012 29 / 34
34. References
Engineering computational ecosystems
Ing. Dott. Danilo Pianini
danilo.pianini@unibo.it
Alma Mater Studiorum—Universit` di Bologna a Cesena
a
Vieni via con noi - Cesena 2012
Danilo Pianini (UniBo / DISI) Computational ecosystems November 6, 2012 34 / 34