• No results found

Engineering Decentralized Learning in Self-Adaptive Systems

N/A
N/A
Protected

Academic year: 2022

Share "Engineering Decentralized Learning in Self-Adaptive Systems"

Copied!
178
0
0

Loading.... (view fulltext now)

Full text

(1)

Linnaeus University Dissertations

No 414/2021

Mirko D’Angelo

Engineering Decentralized Learning in Self-Adaptive Systems

linnaeus university press Lnu.se

isbn: 978-91-89283-72-5 (print), 978-91-89283-73-2 (pdf)

En gineer in g Dec ent ra liz ed Lea rnin g in Sel f-Ad ap tiv e S ys tems ko D’An gel o

(2)
(3)

Engineering Decentralized Learning

in Self-Adaptive Systems

(4)
(5)

No 414/2021

E NGINEERING D ECENTRALIZED

L EARNING IN S ELF -A DAPTIVE S Y STEMS

M IRKO D’A NGELO

LINNAEUS UNIVERSITY PRESS

(6)

Engineering Decentralized Learning in Self-Adaptive Systems Doctoral Dissertation, Department of Computer Science and Media Technology, Linnaeus University, Växjö, 2021

ISBN: 978-91-89283-72-5 (print), 978-91-89283-73-2 (pdf)

Published by: Linnaeus University Press, 351 95 Växjö

Printed by: Holmbergs, 2021

(7)

D’Angelo, Mirko (2021). Engineering Decentralized Learning in Self-Adaptive Systems, Linnaeus University Dissertations No 414/2021, ISBN: 978-91-89283- 72-5 (print), 978-91-89283-73-2 (pdf).

Future computing environments are envisioned to be populated by myriads of pervasive real-world things, which collaborate to offer boundless opportunities to industry and society - e.g., smart cities, and intelligent transportation systems.

In this setting, an application can be considered as a network-based system where applications dynamically emerge as opportunistic assemblies of services.

This class of applications is likely characterized by high dynamism, with services joining and leaving the network and changing their quality attributes. Indeed, dynamic introduces uncertainty, which in turn may alter the system's functionalities and harm the system's quality of service.

Although self-adaptation and machine learning techniques are proposed as viable approaches to address run-time uncertainties and support resilience, engineering effectively these systems is undoubtedly complex, since their peculiarities demand decentralized solutions.

To this end, this thesis addresses the critical challenges for engineering decentralized learning in self-adaptive systems in three steps. First, it examines, classifies, and distills knowledge from research related to self-adaptive systems using learning techniques as means of addressing uncertainty. Then, it presents a reasoning framework that supports architecting and implementation activities with capabilities to evaluate architectural decisions. Finally, leveraging the solutions devised by addressing the aforementioned challenges, it proposes an approach to build and maintain over time a resilient assembly of services that are collectively able to deliver quality of service.

Evaluation is performed through an extensive set of simulation experiments to assess the effectiveness of the approach. The results show that the devised solution, including self-adaptation and reinforcement learning as key elements, can cope with unpredictably variable operating environments and guarantee quality of service and resilience.

Keywords

Self-adaptive systems, Service assembly, Resiliency, Decentralized control

architecture, Machine learning, Reasoning framework

(8)
(9)
(10)
(11)

Future computing environments are envisioned to be populated by myriads of pervasive real-world things, which collaborate to offer boundless opportu- nities to industry and society – e.g., smart cities, and intelligent transportation systems. In this setting, an application can be considered as a network-based system where applications dynamically emerge as opportunistic assemblies of services. This class of applications is likely characterized by high dynamism, with services joining and leaving the network and changing their quality attributes.

Indeed, dynamic introduces uncertainty, which in turn may alter the system’s functionalities and harm the system’s quality of service.

Although self-adaptation and machine learning techniques are proposed as viable approaches to address run-time uncertainties and support resilience, engi- neering effectively these systems is undoubtedly complex, since their peculiarities demand decentralized solutions.

To this end, this thesis addresses the critical challenges for engineering decentralized learning in self-adaptive systems in three steps. First, it examines, classifies, and distills knowledge from research related to self-adaptive systems using learning techniques as means of addressing uncertainty. Then, it presents a reasoning framework that supports architecting and implementation activities with capabilities to evaluate architectural decisions. Finally, leveraging the solutions devised by addressing the aforementioned challenges, it proposes an approach to build and maintain over time a resilient assembly of services that are collectively able to deliver quality of service.

Evaluation is performed through an extensive set of simulation experiments to assess the effectiveness of the approach. The results show that the devised solution, including self-adaptation and reinforcement learning as key elements, can cope with unpredictably variable operating environments and guarantee quality of service and resilience.

Keywords: Self-adaptive systems, Service assembly, Resiliency, Decentralized control architecture, Machine learning, Reasoning framework

ix

(12)
(13)

This thesis would not have been possible without the guidance and support of many important people.

First of all, I would like to thank my supervisor, Mauro Caporuscio, that with his passion for research inspired me to become a curious (and hopefully better) researcher. Mauro provided me with continuous and invaluable support during my Ph.D. studies and I am extremely grateful to have shared with him an immense amount of time talking about software engineering, technology, writing papers, and teaching courses. I could not have wished for a better supervisor.

I would like to thank my co-supervisor, Jesper Andersson. His deep expertise in software engineering helped me to think systematically about problems and solutions. Jesper was also the head of the department that welcomed me as an integral part of the group from day one. I have always received maximum support from him and the department during these years.

I would like to thank Vincenzo Grassi for the invaluable time that we spent collaborating and sharing ideas. Vincenzo is not only a big source of inspiration for me but he is also my former professor at the University of Rome “Tor Vergata”

and the link between me and Mauro.

I would like to thank Raffaela Mirandola. I have started collaborating with Raffaela during my master’s thesis work in Italy and continued over the last six years. She is not only a great researcher but also a very supportive and empathetic person.

I would also like to thank my examiner, Danny Weyns, and my colleagues with whom I shared not only the informal everyday at the university but also research and teaching responsibilities. Diego, Francesco, and Lorenzo, from the

“Fika Group” and what is (hopefully) known as “the Italian table”, Diana for all the work and non-work related help I received from her, my office roommates, but also all the other fellow (and in some case former) Ph.D. students that shared with me their journey.

Last, but not least, I would like to thank my family for the invaluable support during my studies. My mother always encouraged me to follow my dreams and was always on my side. Same for my brother, my uncles, and grandmother. A special mention also to all my friends that despite being so distant have always been near to me.

xi

(14)
(15)

Table of Contents

Abstract ix

Acknowledgments xi

Table of Contents xiii

List of Figures xv

List of Tables xvii

List of Publications xix

1 Introduction 1

1.1 Problem Definition . . . 3

1.2 Scope of the Research . . . 4

1.3 Scientific Approach . . . 5

1.4 Contributions . . . 7

1.5 Thesis Overview . . . 7

2 Research Background and Related Works 9 2.1 Self-Adaptive Systems . . . 9

2.2 Related Approaches . . . 11

2.3 Summary . . . 18

3 The Vision of Future Computing Environments 19 3.1 Everything as a Service . . . 20

3.2 Requirements of Service Assembly Applications . . . 22

3.3 Design Space of Self-Adaptive Systems . . . 23

3.4 Challenges and Objectives . . . 28

3.5 Summary . . . 29

4 Reasoning on Learning Techniques 31 4.1 Learning in Decentralized Self-Adaptive Systems . . . 33

4.2 Systematic Literature Review: Results and Analysis . . . 37

xiii

(16)

4.4 Data-driven Reasoning . . . 57

4.5 Summary . . . 61

5 Reasoning on Control Architectures 63 5.1 Model-based Reasoning Framework . . . 64

5.2 Modeling Control Architectures . . . 69

5.3 Evaluating Control Architectures . . . 75

5.4 Architectural Reasoning . . . 77

5.5 Summary . . . 79

6 Decentralized Learning for Self-Adaptive Service Assembly 81 6.1 Structural Model . . . 82

6.2 QoS Model . . . 84

6.3 Social Welfare Indexes . . . 87

6.4 System Operations . . . 89

6.5 Summary . . . 96

7 Evaluation 97 7.1 Simulation Models . . . 98

7.2 Experimental Settings . . . 98

7.3 Simulation Results . . . 100

7.4 Analysis . . . 109

7.5 Summary . . . 109

8 Conclusions and Future Work 111 8.1 Research Findings . . . 112

8.2 Threats to Validity . . . 113

8.3 Ethical Considerations . . . 114

8.4 Future Work . . . 115

Appendices 117 A Appendix A . . . 117

B Appendix B . . . 140

Bibliography 141

xiv

(17)

List of Figures

1.1 Scientific approach - design science research methodology . . . . 6

2.1 MAPE-K reference model for self-adaptive systems . . . 10

3.1 Service assembly scenario - social sensing application . . . 20

4.1 Multi-stage search and selection process . . . 35

4.2 Canonical view of the learning process of a SAS agent . . . 48

4.3 Silhouette values . . . 51

4.4 HAC result - visualization of dendrograms for a given K . . . 52

4.5 Design dimensions mapped to HAC . . . 53

4.6 Variance retained by MCA dimensions . . . 55

4.7 Contribution of design dimensions to MCA dimensions . . . 56

4.8 Decision tree representation of reasoning knowledge . . . 57

4.9 Design dimensions as decision nodes . . . 58

5.1 Decision process . . . 65

5.2 DECOR reasoning framework . . . 66

5.3 Extended architectural reasoning framework . . . 67

5.4 Tool-supported reasoning . . . 68

5.5 MAPE-K control architecture meta-model . . . 70

5.6 Relation between FORMS and the MAPE-K control architecture meta-model . . . 71

5.7 Control architecture modeling environment - information sharing 73 5.8 Example MAPE-K patterns . . . 74

5.9 Co-simulation environment . . . 75

5.10 Overview of the envisioned architecture . . . 77

6.1 Service assembly examples - same dependencies but different fully resolved assemblies . . . 83

6.2 Detailed system architecture . . . 89

6.3 From learning steps to time . . . 91

7.1 P/S architecture - unstructured gossip-based . . . 101

xv

(18)

7.3 Learning scalability . . . 103

7.4 Self-adapting to nodes leaving and joining the system - 2HRL . . 104

7.5 Self-adapting to nodes leaving and joining the system - 2HRL . . 106

7.6 Quality functions change . . . 106

7.7 Self-adapting to nodes changing the local quality function - different rules . . . 107

7.8 Self-adapting to nodes changing the local quality function - 2HRL 108 .1 Intelligent transportation system . . . 127

.2 ITS - control architectures . . . 128

.3 ITS - average travel time ambulances . . . 129

.4 ITS - average travel time cars . . . 129

.5 ITS - average Number of Messages per Vehicle . . . 129

.6 ITS - average adaptation time . . . 130

.7 Power Grid Model - Nordic 32 bus system . . . 132

.8 SPG - control architecture . . . 133

.9 SPG - voltage after failure . . . 134

.10 SPG - voltage after recovery . . . 134

.11 SPG - number of messages . . . 135

.12 Cloud computing . . . 137

.13 Cloud computing - control architecture . . . 137

.14 Cloud computing - scaling, g=1; q=5,10,15 . . . 139

.15 Cloud computing - scaling, g=1,2,3; q=5 . . . 139

xvi

(19)

List of Tables

3.1 Design dimension - observation . . . 23

3.2 Design dimension - representation . . . 24

3.3 Design dimension - control . . . 25

3.4 Design dimension - identification . . . 26

3.5 Design dimension - enacting adaptation . . . 27

4.1 List of included venues . . . 34

4.2 Inclusion (IC) and exclusion (EC) criteria . . . 36

4.3 Design dimensions of learning-based SAS . . . 37

4.4 Classification based on application domain . . . 38

4.5 Classification based on autonomy, knowledge access, and behavior 40 4.6 Classification based on learning technique . . . 44

4.7 Classification based on triggers . . . 46

4.8 Bootstrap analysis . . . 51

6.1 Service assembly examples - types and dependencies . . . 84

xvii

(20)
(21)

This dissertation is based on the following refereed publications:

1. Mirko D’Angelo, Mauro Caporuscio, Vincenzo Grassi and Raffaela Mi- randola. Decentralized Learning for Self-adaptive QoS-Aware Service Assembly. In Future Generation Computer Systems, volume 108, 2020, pp.

210-227, ISSN 0167-739X, doi:10.1016/j.future.2020.02.027.

2. Mirko D’Angelo, Simos Gerasimou, Sona Ghahremani, Johannes Grohmann, Ingrid Nunes, Evangelos Pournaras and Sven Tomforde. On Learning in Collective Self-Adaptive Systems: State of Practice and a 3D Framework. In 2019 IEEE/ACM 14th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS), Montreal, QC, Canada, 2019, pp. 13-24, doi:10.1109/SEAMS.2019.00012.

3. Mirko D’Angelo, Sona Ghahremani, Simos Gerasimou, Johannes Grohmann, Ingrid Nunes, Sven Tomforde and Evangelos Pournaras. Learn- ing to Learn in Collective Adaptive Systems: Mining Design Patterns for Data-driven Reasoning. In IEEE International Conference on Autonomic Computing and Self-Organizing Systems Companion (ACSOS-C), Washington, DC, USA, 2020, pp. 121-126, doi:10.1109/ACSOS-C51401.2020.00042.

4. Mirko D’Angelo, Mauro Caporuscio and Annalisa Napolitano. Model- Driven Engineering of Decentralized Control in Cyber-Physical Systems.

In IEEE 2nd International Workshops on Foundations and Applications of Self*

Systems (FAS*W), Tucson, AZ, USA, 2017, pp. 7-12, doi:10.1109/FAS-W.

2017.113.

5. Mirko D’Angelo, Annalisa Napolitano and Mauro Caporuscio. CyPhEF:

A Model-Driven Engineering Framework for Self-Adaptive Cyber-Physical Systems. In IEEE/ACM 40th International Conference on Software Engineering:

Companion (ICSE-Companion), Gothenburg, Sweden, 2018, pp. 101-104, doi:10.1145/3183440.3183483.

All authors contributed equally to this work, which is the outcome of the GI Dagstuhl Seminar

“Software Engineering for Intelligent and Autonomous Systems (SEfIAS)” (2018). In this systematic literature review Mirko was one of the two reviewers who conducted the preliminary study selection, sampled the studies and inspected the results. Regarding writing tasks, Mirko was in charge of the

“Learning Techniques” section.

xix

(22)

1. Mauro Caporuscio, Mirko D’Angelo, Vincenzo Grassi and Raffaela Miran- dola. Decentralized Architecture for Energy-Aware Service Assembly. In European Conference on Software Architecture. Lecture Notes in Computer Science, L’Aquila, Italy, 2020, pp.57-72, doi:10.1007/978-3-030-58923-3_4.

2. Mauro Caporuscio, Mirko D’Angelo, Vincenzo Grassi and Raffaela Miran- dola. Reinforcement Learning Techniques for Decentralized Self-adaptive Service Assembly. In European Conference on Service-Oriented and Cloud Com- puting, Vienna, Austria, 2016, pp 53-68, doi:10.1007/978-3-319-44482- 6_4.

3. Antonio Bucchiarone, Mirko D’Angelo, Danilo Pianini, Giacomo Cabri, Martina De Sanctis, Mirko Viroli, Roberto Casadei and Simon Dobson. On the Social Implications of Collective Adaptive Systems. In IEEE Technology and Society Magazine, volume 39, no. 3, Sept. 2020, pp. 36-46, doi:

10.1109/MTS.2020.3012324.

4. Mirko D’Angelo, Lorenzo Pagliari, Mauro Caporuscio, Raffaela Mirandola and Catia Trubiani. Towards a Continuous Model-Based Engineering Process for QoS-Aware Self-adaptive Systems. In Software Engineering and Formal Methods. SEFM 2019. Lecture Notes in Computer Science, volume 12226, pp. 69-76, doi:10.1007/978-3-030-57506-9_6.

5. Francesco Flammini, Stefano Marrone, Roberto Nardone, Mauro Caporuscio, Mirko D’Angelo. Safety Integrity through Self-Adaptation for Multi-Sensor Event Detection: Methodology and Case-Study. In Future Generation Computer Systems, volume 112, 2020, pp 965-981, doi:10.1016/j.future.

2020.06.036.

xx

(23)

Introduction

Contents

1.1 Problem Definition . . . 3 1.2 Scope of the Research . . . 4 1.2.1 Class of problems . . . 4 1.2.2 Assumption . . . 4 1.3 Scientific Approach . . . 5 1.4 Contributions . . . 7 1.5 Thesis Overview . . . 7

Future computing environments are envisioned to be populated by myriads of distributed, pervasive, and connected real-world things, which collaborate with each other to offer boundless opportunities to industry and society – e.g., smart cities, intelligent transportation systems, and industrial manufacturing. In this setting, an application can be considered as a network-based system [200]

where a large open-ended collection of autonomous and heterogeneous services dynamically interact with each other to provide users with rich functionalities [25].

Indeed, applications dynamically emerge as opportunistic assemblies of services of interest available at any given time.

This class of applications is likely characterized by Quality of Service (QoS) issues concerning attributes such as response time, reliability, availability, and cost. In fact, the high dynamism of the environment, characterized by services joining and leaving the network and changing their quality attributes, introduces uncertainties [78, 169], which in turn may both disrupt the correct functionality and harm the QoS of the system. In this context, the main critical challenge is to provide the system with the ability to be resilient to these uncertainties with minimal, or without human intervention to facilitate the assembly of software applications.

Self-adaptation has been proposed as a viable mechanism to support resilience by addressing uncertainties at runtime and maintaining the system’s goals [48].

Self-adaptive systems (SAS) are conceptually organized as a managed system that implements the main functionality, and a managing system that implements

1

(24)

the adaptation logic through a control architecture, composed according to the well established MAPE-K model [125], with Monitor (M), Analyze (A), Plan (P) and Execute (E) components, plus a Knowledge (K) that maintains relevant information for the other components.

An important challenge in self-adaptive systems concerns the implementation of the adaptation logic that establishes “when” and “how” the system should adapt itself. Anticipating all the potential environmental changes that the system might face at run-time and shall self-adapt in response to is in most cases infeasible [164, 176]. In this context, Machine Learning (ML) techniques provide the ability to learn, improve, and make decisions autonomously in order to achieve resiliency [22]. One of the key features fostering the adoption of machine learning in self-adaptive software systems is that these techniques are fundamentally dealing with uncertainty, while traditional software is essentially hiding uncertainty [161, 216]. However, despite the increasing adoption of machine learning techniques, there is no body of knowledge about best practices to adopt for engineering learning-based adaptation logic, leaving researchers and practitioners without guidance on how to mitigate this recurrent concern.

Second, when systems are large and distributed, centralizing the control architecture might not be sufficient for realizing the adaptation logic. Maintaining a global knowledge consistent, timely analyzing it, and distributing adaptation decisions through a centralized component in distributed systems is not feasible.

Decentralize the control architecture and deploying multiple, coordinated, MAPE- K feedback loops is the intuitive solution [222]. However, designing and evaluating decentralized control architectures is a grand challenge: engineers should consider many different, and inter-dependent, design dimensions to devise a control architecture able to timely perform the correct adaptations and make the system meet its goals. Finding a solution to this problem requires an approach that supports architecting and implementation activities with capabilities to evaluate architectural decisions, reason, and make informed design choices.

Finally, although learning-based decentralized self-adaptation is a key enabler for resilient service assemblies, engineering effectively these systems is undoubt- edly complex. On the one side, the lack of best practices for selecting learning models and techniques hinders the concrete adoption of machine learning to realize the adaptation logic. On the other side, the inherent complexity of design- ing and evaluating self-adaptive systems perplexes the engineers and requires a systematic approach that supports reasoning on functional and non-functional aspects of the system to be.

This thesis addresses these critical challenges in three steps. First, it examines, classifies, and distills knowledge from research related to self-adaptive systems using learning techniques as means of addressing uncertainty. Then, it presents a reasoning framework that supports architecting and implementation activities with capabilities to evaluate architectural decisions. Finally, leveraging the

(25)

solutions devised by addressing the aforementioned challenges, it proposes an approach to build and maintain over time a resilient assembly of services that are collectively able to deliver quality of service.

1.1 Problem Definition

The main research question that we tackle in this thesis is formulated as follows:

RQ: How to engineer resilient applications as dynamic assembly of services?

From the characteristics of the applications and corresponding challenges discussed above, we identify three research objectives:

O1: Analyze how to select suitable learning techniques

O2: Devise a process to design and evaluate control architectures O3: Design an approach for resilient service assembly

O1 focuses on understanding the state of practice in developing learning- based decentralized SAS. In learning-based decentralized self-adaptive systems single agents within the collective must be designed with learning capabilities, allowing them both to instantiate learning models using the knowledge acquired from observing the environment and their peers to mitigate runtime uncertainties.

However, the use of different types of learning models in SAS is still a handcrafted process that relies heavily on domain expertise. In the literature, there is no body of knowledge about best practices in learning-based decentralized SAS. This is the research gap that we aim at tackling. We focus on examining and classifying research related to decentralized SAS that use learning techniques and models as a mean of enabling agents to address uncertainty and adapt their behavior when encountering scenarios unanticipated at design time.

O2aims at investigating the engineering support aspect related to control design in SAS. Several works challenge the effectiveness of centralized adaptation control and conclude that it is not feasible for distributed large-scale systems [34, 41, 43, 56, 57, 128, 172, 221, 222]. The adoption of a decentralized architecture for this type of systems is highly suggested. However, designing, implementing, and evaluating architectural decisions is an exceptional challenge. It requires a systematic approach that support engineers in making informed design choices for the system under development. That is a systematic engineering approach is required. This is the second research gap that we aim at tackling. We propose a reasoning framework that supports architecting and implementation activities with capabilities to evaluate architectural decisions.

Finally, O3 addresses the problem of how to build and maintain over time an assembly of services that are collectively able to deliver QoS. The intrinsic

(26)

dynamism of the environment in which these applications are situated, makes each assembly potentially unstable, which is then required to self-adapt – i.e., to autonomously modify its structure over time – according to the changing environment. To deal efficiently with these challenges we aim at designing a QoS-aware approach to the service assembly problem that is resilient, scalable and decentralized. Building on the best practices derived with O1 and the method- ology devised with O2, we propose an approach for resilient service assembly based on the combined use of reinforcement learning (RL) and decentralized control.

1.2 Scope of the Research

We divide the scope of this thesis in two categories: (i) the class of problems that our research focuses on, and (ii) the assumptions that restrict the scope of the research.

1.2.1 Class of problems

We focus on applications that are constructed as service assembly (O3). This class of applications, despite being highly representative of the typical software systems operating in future computing environments, do not represent the full set of (possibly) existing decentralized SAS applications. On the other hand, the artifacts resulting from O1 and O2 have a wider generality and can be used to reason on any type of decentralized self-adaptive system (learning-based SAS in the case of O1).

For the class of applications that we are considering, we target adaptation problems that require to satisfy functional and non-functional properties. Regard- ing functional properties we focus on the system’s architecture, i.e., the assembly of services. Regarding non-functional properties we focus in particular on quality attributes such as response time, reliability, availability, and cost. Other type of properties such as, privacy and security are out of the scope of this thesis.

1.2.2 Assumption

We adopt the so called everything-as-a-service (XaaS) paradigm, which allow for uniformly representing physical things, hardware resources and software applications as independent and isolated entities offering services. This approach has become popular over the years as a way to implement distributed, loosely coupled systems, because it offers features such as standardization, platform independence and well-defined interfaces. Following this paradigm, we focus on service management aspects, assuming that suitable solutions for interoperability exist. Moreover, we assume that the available services are stateless. Service

(27)

statelessness is a design principle, applied within the service-oriented design paradigm, to design scalable services by separating them from their state data whenever possible [74]. Service stateless is currently the norm in cloud and edge applications [52, 75].

We follow the MAPE-K reference model to realize feedback loops. The MAPE-K reference model, introduced by IBM [125], is the de-facto standard for developing autonomous self-adaptive systems. Finally, we assume that the dynamics of the environment are slower than the time required by the MAPE-K loops to adapt the system.

1.3 Scientific Approach

The scientific approach and content of this thesis follow the design science research methodology [168]. The design process (see the dotted boxes in Figure 1.1) comprises six steps: problem identification and motivation, definition of the objectives for a solution, design and development, demonstration, evaluation, and communication.

The first step defines the specific research problem and justifies the value of a solution. To realize this, see the solid boxes in Figure 1.1, we analyze the research background and related work that affect our main research question.

Then we identify the three research objectives for the definition of a solution. We use different research methods for each of the objectives.

In order to address O1 and obtain a systematic understanding of current research on learning models and techniques used in decentralized SAS we perform a systematic literature review following the guidelines from [127]. A systematic literature review is an established method to collect and analyze data within a particular area of interest. In addition, we rely on a systematic data-driven approach to reason about the design choices and patterns of learning-based SAS using the data that we collected.

In order to address O2 and devise a process for supporting the design and evaluation of control architectures we leverage reasoning frameworks [17] and model-based systems engineering [146]. On the one hand, reasoning frame- works allow for evaluating specific quality attributes of the architecture under development through the use of well defined analytic theories. On the other hand, model-based systems engineering, promotes the systematic use of models as first-class elements and allows for reducing the development complexity by means of a generative approach.

To address the last objectives O3 and design an approach for resilient service assembly, we follow the design guidelines extracted with O1 and the method- ological artifact devised with O2. The outcome of the previous objectives allow us to perform informed design decisions on the design dimensions characterizing the adopted learning model and decentralized control pattern to use for this

(28)

Problem Identificationand motivation RQ: How to engineer resilient applications as dynamic assembly of services? Definition of the objectives for a solution

O1: Analyzehow to select suitable learning techniques

O2: Devise a process to design and evaluate control architectures

O3: Design an approach for resilient service assembly Design & Development DemonstrationEvaluationCommunication

Thesis Service Assembly Scenario Service assembly approach Reasoning framework to design and evaluate decentralized SAS Systematic approach to reason on learning-based SAS Experimetal results Research Backgroundand Related Work

Publication List

Figure1.1:Scientificapproach-designscienceresearchmethodology.

(29)

class of applications. In order to carefully evaluate the proposed approach, see Figure 1.1, we run a large number of controlled experiments simulating the different scenarios that characterize the environment. In simulation methods, models are evaluated numerically and the experimental results gathered in order to estimate the desired characteristic of the model [132].

Finally, still referring to Figure 1.1, the communication step of the design science research methodology is the set of published research papers that together contribute to this monograph thesis.

1.4 Contributions

By fulfilling the research objectives, this thesis presents three major contributions:

• Outcome of O1: (i) A systematic literature review on learning in decentral- ized SAS that provide a comprehensive view on the use of learning models and techniques used to design adaptation in decentralized systems. Based on this analysis, (ii) a systematic approach to reason about the design choices and patterns of learning-based SAS is introduced. Reasoning is performed with a novel application of data-driven methodologies such as clustering, multiple correspondence analysis and decision trees.

• Outcome of O2: DECOR: a reasoning framework for modeling and evalu- ating control architectures. In particular, DECOR provides (i) modeling support for reasoning about properties of interest at both the control architecture and the managed system, (ii) a modeling environment for specifying control architectures as multiple and interacting MAPE-K loops, and (iii) a co-simulation environment for simulating both the devised con- trol architecture and the managed system, and estimating quality attributes of interest.

• Outcome of O3: A fully decentralized self-adaptive service assembly ap- proach whose main features are: (i) self-assembly, i.e., the ability to operate autonomously, (ii) online-learning, i.e., the ability to dynamically learn from experience, (iii) QoS-awareness, i.e., the inclusion of QoS require- ments as driving forces for self-assembly, (iv) resilience, i.e., the ability to maintain the persistence of service delivery when facing unexpected changes (e.g., in the number and/or quality of services), and (v) scalability, i.e., the ability to cope with a large number of services.

1.5 Thesis Overview

This thesis is organized as follows:

(30)

Chapter 2provides the research background and discusses related works.

Chapter 3 presents a motivating scenario for service assembly applications, derives the corresponding requirements, and details the research challenges to deal with.

Chapter 4deals with the first objective of this thesis by discussing reasoning on learning techniques. In particular, this chapter presents a systematic literature review that investigates the research efforts in learning-based decentralized SAS and introduces a systematic data-driven approach to reason about design choices and patterns of learning-based solutions.

Chapter 5deals with the second objective of this thesis by discussing reasoning on control architectures. In particular, this chapter introduces a model-based reasoning framework for designing and evaluating control architectures in self- adaptive systems.

Chapter 6tackles the third and final objective of this thesis by illustrating the learning-based approach to realize resilient service assemblies.

Chapter 7 presents an extensive set of simulation experiments to assess the effectiveness of the service assembly approach previously devised.

Chapter 8summarizes the overall contribution of this thesis by discussing its findings and examines threat to validity, ethical considerations and future work.

(31)

Research Background and Related Works

Contents

2.1 Self-Adaptive Systems . . . 9 2.1.1 MAPE-K Reference Model . . . 10 2.1.2 Decentralized Self-Adaptive Systems . . . 11 2.2 Related Approaches . . . 11 2.2.1 Learning Techniques in Self-Adaptive Systems . . . 12 2.2.2 Engineering Self-adaptive Systems . . . 12 2.2.3 Service Assembly Approaches . . . 14 2.3 Summary . . . 18

In this chapter, we discuss the research background and related works that underlie our research. We start by introducing the principles of self-adaptation, highlight the MAPE-K reference model, and emphasizing the role of decentralized SAS. After that, we discuss a number of approaches that are related to our work.

We explore the state of the art on frameworks for engineering SAS and analyze the literature related to approaches dealing with service assembly applications.

2.1 Self-Adaptive Systems

Self-adaptation enables modern large-scale software systems – e.g., service- oriented systems, cyber-physical systems – with capabilities to autonomously mitigate system life-cycle uncertainty [48]. Examples of such uncertainties are the dynamic availability of software resources and the dynamic quality (e.g., QoS) that such resources provide.

In this thesis we rely on a classical approach to realize self-adaptation, where the system is separated into managed system, that is the part of the system subject to adaptation, and managing system, which contains the adaptation logic. The managing system is responsible for realizing a feedback loop that, at runtime,

9

(32)

Managed System Managing System

Analyze Plan

Monitor Knowledge Execute

Environment

Actuators Sensors

Figure 2.1: MAPE-K reference model for self-adaptive systems [125].

monitors the managed system and adapts it according to the emerging conditions by hence mitigating uncertainties.

Hereafter, we discuss the reference model that we use in our research, that is the MAPE-K reference model.

2.1.1 MAPE-K Reference Model

SAS are conceptually organized as a managed system that implements the main functionalities, and a managing system that implements the adaptation logic through a control architecture. In the MAPE-K reference model, introduced by IBM in 2003, the managing system consists of 5 inner components: Monitor, Analyze, Plan, Execute and Knowledge organized as MAPE-K feedback-loop [125].

In this model, see Figure 2.1, the environment represents the part of the external world the SAS is situated and provides context to the managed system.

The managed and managing systems are connected through sensors and actuators to sense and adapt, respectively, the managed system when necessary. Finally, the MAPE-K components of the managing system perform the following tasks:

Monitor:The monitor component is responsible for collecting and aggregating data from the sensors.

Analyze:The analyzing component is responsible for analyzing the data collected from the monitor component to determine when adaptation is necessary.

Plan:The plan component is responsible for planning the actions that are needed to adapt the managed system.

(33)

Execute: The execute component is responsible for executing the plan adapting the managed system.

Knowledge: The knowledge component maintains relevant knowledge (e.g., historical data of the managed system) that is used by the other components to perform their tasks.

2.1.2 Decentralized Self-Adaptive Systems

The feasibility of effective self-adaptation in distributed systems through cen- tralized control is questionable [34, 57, 222]. Indeed, using a single autonomic manager, i.e., a single closed MAPE-K loop, to monitor a distributed system and act upon system resources typically depends on unrealistic assumptions. These assumptions include but are not limited to, the autonomic manager’s ability to obtain consistent and complete global knowledge, and its capacity to process this information, reason, and distribute the decisions on time.

Providing self-adaptive capabilities to each component of a distributed system can address the challenges faced by centralized control [34, 172, 219]. Indeed, adaptation must be collective: multiple distributed components must adapt in a way that addresses critical runtime uncertainty while preserving the benefits of the collaborative interdependencies.

In the literature, different communities deal with adaptation in decentralized systems, i.e., self-adaptive systems [216], collective adaptive systems (CAS) [149], multi-agent systems [85] (MAS), and self-organizing systems [231] (SOS). Common assumptions in these communities are that different components/agents: (i) can interact with other components/agents either directly or indirectly; (ii) does not individually possess system-wide knowledge; (iii) can make decisions based on collective or aggregated knowledge from some of its peers.

Abstracting from specific communities, we focus on these properties and investigate systems that are inherently distributed, autonomous, and aim at tackling highly dynamic environments. Hence, in this thesis, to avoid ambiguity issues, we will use the term “decentralized SAS” to indicate the class of systems we are interested in.

2.2 Related Approaches

In this section, we discuss several key approaches that are closely related to our research. We first briefly summarize existing surveys on machine learning techniques for realizing decentralized adaptation. Then we explore existing works that tackle the problem of how to engineer SAS. Finally, we look at existing service assembly approaches proposed in the literature.

(34)

2.2.1 Learning Techniques in Self-Adaptive Systems

Machine learning techniques have been recognized as key enablers for imple- menting and improving the adaptation logic in SAS, e.g., through learning new rules [130]. Hence, over the past years, ML has been increasingly adopted to deal with the challenge of predicting runtime conditions and addressing uncertainties in SAS [77, 189]. However, although learning has been explored to implement the adaptation logic in many self-adaptive applications, e.g., [97,172,174,179], there is no body of knowledge about best practices in learning-based decentralized SAS.

In fact, regarding works related to O1, existing surveys on learning are restricted to reviewing alternative techniques proposed in this context [108, 165, 233]. In particular, the benefits of using self-organization to address the challenging research issues in MAS are studied in [233]. Cooperative and competitive multi-agent techniques are investigated in [165], while [108] analyzes the differences between these techniques. In contrast, in this thesis, we focus on understanding the state of practice in developing learning-based decentralized SAS.

2.2.2 Engineering Self-adaptive Systems

Establishing paths from design space to system implementation, via architectural patterns, frameworks, and middleware, is recognized as one of the main research gaps for SAS [26]. To this end, several different approaches have been recently proposed.

Abbas et al. [3] propose an engineering methodology called Autonomic Software Product Lines engineering (ASPLe). ASPLe provides developers with process support to implement product lines of SAS with reuse at the managing system level. This thesis leverages on ASPLe and provides for reasoning on decentralized self-adaptation.

The Rainbow architectural framework [93] makes use of architectural models to reason about the system’s dynamic behavior and allows the explicit specification of reusable adaptation strategies for multiple concerns in a centralized SAS. In particular, by using the external control approach [185], the framework aims at monitoring the system’s runtime properties, evaluates violation of the architectural model, and if a problem occurs performs adaptation. The authors recognize the coordination and other distributed computing issues as a challenge for future research. On the other hand, we aim at supporting engineers with a reasoning framework for managing and managed system design and evaluation.

One of the most complete works is FESAS [130], a framework focused on reusability aspects of the components defining the managing architecture of a SAS. The framework supports the decentralization of the adaptation logic via the concept of adaptation logic managers. In FESAS the communication between the distributed MAPE elements is realized via a publish/subscribe

(35)

system implemented over a middleware for pervasive computing. On the other hand, we aim at investigating how control architectures, as well as uncertainties in the networked environment, affect the system’s requirements.

Malek et al. [140] propose a software architecture-based framework that provides support for engineering mobile software systems. At design time, the framework is used to assess the quality attributes of the system’s initial architecture. At runtime, the framework continuously monitors and calculates the most suitable architecture. Similarly to this thesis, the proposed framework offers complete life-cycle engineering support and envisions an integrated start-to-finish tool suite for it. However, the scope of the work is restricted to mobile software systems, whereas we aim at embracing the more general class of decentralized SAS. Moreover, unlike [140], we embrace the principle of MAPE-K components as first-class modeling abstractions for SAS.

FUSION [73] aims at analyzing and self-tuning the adaptive behavior of a system in presence of unanticipated changes. The focus of FUSION is on learning the impact of adaptation decisions on the system’s goals at runtime for automatic online tuning of the adaptation logic. FUSION deals with runtime architecture management through a centralized control loop. On the other hand, we aim at providing engineers with a general framework for explicitly designing and evaluating decentralized control architectures.

Bolchini et al. [23] pose the basis for an architectural framework for the representation and design of SAS. The proposed framework supports the designer in specifying what are the characterizing elements for which the system will exhibit self-adaptive properties. Their model offers rigorous support for the identification and management of the aspects that characterize context and self- awareness. On the other hand, we aim at providing support for the design of the system’s decentralized self-adaptation.

Kit et al. [126] advocate the use of component-based abstractions to engineer SAS. The proposed framework allows for simulation of real-time deployments by evaluating the system behavior under different network configurations and settings. The authors provide the architecture abstractions of autonomous components and component ensembles on top of which different adaptation techniques can be deployed. On the other hand, we aim at providing mechanisms for designing and evaluating decentralized control architectures.

Arcaini et al. [12] propose a formal framework for specifying control ar- chitectures of SAS through abstract state machines. The framework permits describing complex MAPE-K loops according to patterns and exploits validation and verification techniques for assuring correctness of components’ behavior and interactions. Despite the similarities with [12], this thesis does not provide support for the specification and formal verification of the MAPE components’

behavior. However, we focus on providing a supporting tool that allows for

(36)

evaluating control architectures and managed systems in combination and derive desired quality attributes measures.

Nzeka et al. [162] use feedback control loops as modeling abstraction to propose a model-driven approach, exploiting the data streaming model [14], for engineering distributed SAS. Similarly to [162], this thesis leverages feedback loops as first-class modeling abstraction to design control architectures. However, we aim at providing a framework that supports not only the design of the control architecture, but also its evaluation.

EUREMA [208] is a model-driven engineering approach providing a domain- specific modeling language and a runtime interpreter for feedback loops based adaptations. The approach is based on the concepts of runtime megamodels, that are kept alive at runtime and by interpreting them, they are directly executed to run feedback loops. DEUREMA [215] extends the former approach by supporting distributed feedback loops coordination. Both of these works provide a modeling language that supports the explicit design of feedback loops. On the other hand, we aim at providing modeling support for reasoning about properties of the control architecture and the managed system.

Finally, we remark that the literature on approaches for engineering SAS is vast. In this section, we reviewed only approaches that are closely related to this thesis. The interested reader is referred to [30] for an extensive survey on approaches for engineering SAS.

In conclusion, the survey of related work on engineering support for design- ing and evaluating SAS indicates a focus on modeling the managing system architecture. In this respect, the approaches are agnostic to the managed system and provide interfaces to be connected to a given managed system. However, besides [140], no related work supports the integrated evaluation of capabilities during architectural reasoning. This constitutes the research gap that we address in this thesis with O2. We propose a framework with comprehensive life-cycle support at the architectural level. Modeling support of managed and managing systems for design and evaluation enables a full-system reasoning capability, which is – to the best of our knowledge – a novel contribution in the field of engineering SAS.

2.2.3 Service Assembly Approaches

The focus of O3 in this thesis lies within the general area of works addressing the service selection-composition problem in a distributed environment [42, 118, 151, 210]. In this respect, we share with most of these works the general assumption that the set of dependencies of a service is known when it is released into its operating environment. This is reasonably true for dependencies concerning infrastructure services like computing power or storage. It holds also for higher- level dependencies that have been defined at service design time, or as a result of

(37)

a previous planning activity that has decomposed some global goal into a set of subgoals delegated to different services that must integrate each other.

Different approaches have been proposed to address the service selection- composition problem. In particular, several papers have formulated it as an optimization problem centrally solved by a dedicated broker, assuming a known in advance set of candidate services (e.g., see [42] and references therein). In this section, however, we do not cover the vast amount of literature on QoS service selection and assembly that is not directly related to this thesis. The interested reader can look at the work of Moghaddam et al. [151] for a review of optimization-based approaches for service selection, [210] for a survey on service trust and reputation models taking into account multiple QoS metrics, and [118]

for a review on QoS-aware service composition approaches using computational intelligence mechanisms. Hereafter, we review works closer to ours, that is assuming an open and unknown operating environment, and decentralized service discovery and selection operations.

In Georgiadis et al. [95] a dynamic set of agents cooperate to preserve some architectural constraints. In this work, adaptation actions are not taken autonomously but globally coordinated utilizing a totally ordered broadcast that implements a distributed locking scheme. This global coordination mechanism requires explicit interaction among all agents. The resulting overhead thus limits the scalability of the architecture and its possible adoption in pervasive environments. FlashMob [198] overcomes some of the limits of [95]. The work adopts a gossip-based adaptive decentralized self-assembly procedure.

However, FlashMob requires that each peer maintains and disseminates global state information consisting of the whole assembly of offered and required services. FlashMob also does not explicitly deal with global QoS goals and load-dependent attributes, which are, on the other hand, the object of interest in this thesis.

Filho et al. [88] propose an approach for the autonomous assembly of software components. Similarly to this thesis, the authors aim at tackling environment dynamics through the use of online RL but differently from us assume a central- ized assembly and learning module. Their work experiments through a software prototype the response time of a particular application, blindly exploring to this end different assemblies. On the contrary, in this thesis, we aim at leveraging simulation to take into account scalability and uncertainty aspects. Moreover, we consider a known correlation between the QoS of the components to assemble and the result of the assembly, based on a general load-depended model, which drives the selection of services to be assembled.

Two works adopt decentralized learning techniques to satisfy QoS require- ments and test the scalability of the approach but do not deal with load-depended attributes [154, 211]. In Moustafa et al. [154] the proposed technique employs RL to address large-scale dynamic service environments. However, load-dependent

(38)

QoS attributes are not explicitly taken into consideration and the template of the workflow is known a priori at design-time by the services. Moreover, while the authors of [154] investigate three specific QoS attributes (availability, response time, and reliability), in this thesis we propose a general load-depended QoS model and show its possible instantiation with different QoS attributes. In [211], Wang et al. present an approach for large-scale adaptive service composition.

Their model integrates multi-agent RL to achieve adaptation, and game theory to enable agents to work for a common composition task. Similarly to this thesis, their approach aims at adjusting the selection process by using an RL technique to improve QoS. However, their agents are just service executors in the system that should maximize a common goal by learning different collaboration schemes. Actually, this thesis addresses several scenarios highlighted in their future work. Specifically, in [211] it is stated that the behavior of the designed approaches should be explored when agents may seem competitive if they hog a resource to the detriments of other agents. In this respect, this thesis focuses on how it is possible to improve the global QoS in the case of load-dependent attributes. Moreover, in addition to the QoS constraints, [211] envisions taking trust into consideration in view of the existence of junk services and, to this end, incorporating a reputation mechanism into their approach. In this respect, this thesis aims at exploiting a reputation mechanism, which balances through a trust model the advertised QoS of a service with the actually experienced QoS.

Ben Mahfoudh et al. [139] propose a decentralized composition model for IoT scenarios based on RL and a bio-inspired coordination model. Similarly to this thesis, the service selection process and the resulting coordination are achieved in a fully decentralized way via RL. The authors experiment with a real IoT deployment of five agents, but the investigation of load-dependent non-functional requirements guarantees, maintenance, scalability, and resilience is left for future work.

Caporuscio et al. [41] propose a fully decentralized middleware called GoPrime for the adaptive self-assembly of distributed services. It is based on the use of a gossip protocol to achieve decentralized information dissemination and decision making. With GoPrime it is possible to build and maintain an assembly of services that, besides functional requirements, fulfils also global QoS and structural requirements. On the other hand, this thesis aims at taking into account load-dependent quality attributes and exploits machine learning techniques to achieve resiliency.

Shaerf et al. [187] study the process of multi-agent RL in the context of load balancing in a distributed system, without the use of either central coordination or explicit communication. They consider a system consisting of a certain number of agents using a finite set of resources, each having a time-dependent capacity.

This study is the most similar to ours, as it employs a load-dependent model for the QoS-aware service selection procedure. The presented experimental study

(39)

deals with a relatively small system of 100 agents. The paper considers a scenario with a single type of dependency, and where the agents already know the full set of available resources. On the contrary, this thesis focuses on the more realistic assumption that each node does not know in advance the other nodes (and the services they offer) in the environment, but discovers them dynamically.

Moustafa and Zhang [155] propose an approach based on multi-objective RL to facilitate the QoS-aware service composition problem. In this study, two algorithms are devised to handle different composition scenarios based on user preferences. In [212], an adaptive service composition technique using hierarchical reinforcement learning (HRL) is proposed. Similarly to this thesis, the authors consider multiple and possibly conflicting QoS attributes, and weigh them to obtain a single reward scalar value. An interesting contribution of the paper is the integration of automatic task decomposition and HRL to address the curse of dimensionality problem. Departing from these two works, this thesis aims at dealing with dynamic scenarios and maintain the persistence of service delivery when facing unexpected changes.

Bucchiarone et al. [27] present a framework for the modeling and execution of large-scale service-based SAS, where adaptation needs are solved in a decen- tralized and collective manner. They define a solution, based on the analytic hierarchy process algorithm [184], to solve adaptation issues within an assembly.

On the other hand, this thesis aims at dealing with the QoS of the generated assembly and possible load-dependent QoS attributes.

Fagernes and Couch [82] investigate the impact of altruistic and selfish strategies in a decentralized scenario where agents make independent decisions on resource consumption (i.e., use and adjustment). Their study shows that selfish approaches outperforms altruistic approaches when the collected information about the state of the system does not form the basis of the decisions. This result supports the techniques presented in this thesis, where agents are designed to exploit local information and are designed with selfish behavior (emerging in a global system cooperation). Departing from the aforementioned work, where theoretical scenarios are simulated for 10 agents, this thesis aims at leveraging simulation to experiment with static and dynamic large-scale scenarios.

Moreover, this related work assumes an equal load on all the components of the software system. Vice-versa, the focus of this thesis is on learning at runtime, in a decentralized way, how to assemble a given set of services, exposing load-dependent attributes, to achieve a global goal. In this sense, despite the similarities, this thesis tackles a more complex scenario.

In conclusion, the considered related approaches, besides [187], do not deal with load-dependent QoS attributes, and resilience and scalability requirements are rarely taken into account. This establishes the research gap that we address in this thesis with O3. We propose a resilient approach that leverages machine

(40)

learning and decentralized self-adaptation to support QoS-aware, scalable and decentralized assembly of services.

2.3 Summary

In this chapter, we have provided a brief introduction to SAS. We highlighted the MAPE-K reference model and discussed how the class of decentralized SAS differs from centralized adaptation scenarios.

We then discussed works related to this thesis. The analysis of the literature highlights the lack of reasoning support for choosing learning techniques to realize decentralized adaptation (O1) and for designing and evaluating decentralized control architectures (O2). Regarding approaches for realizing service assembly (O3), existing solutions do not deal with load-dependent QoS requirements in decentralized settings by simultaneously dealing with resilience and scalability properties.

In the next chapter, we will formally introduce the set of requirements of the class of applications we want to manage and derive the challenges that we will deal with in the rest of this thesis.

(41)

The Vision of Future Computing Environments

Contents

3.1 Everything as a Service . . . 20 3.2 Requirements of Service Assembly Applications . . . 22 3.3 Design Space of Self-Adaptive Systems . . . 23 3.3.1 Observation . . . 23 3.3.2 Representation . . . 24 3.3.3 Control . . . 25 3.3.4 Identification . . . 26 3.3.5 Enacting Adaptation . . . 27 3.4 Challenges and Objectives . . . 28 3.4.1 Selecting Suitable Learning Techniques . . . 28 3.4.2 Designing and Evaluating Control Architectures . . . 29 3.4.3 Designing an Approach for Resilient Service Assembly . . . 29 3.5 Summary . . . 29

In this chapter, we describe the vision of future computing environments and applications emerging as service assemblies. We present a motivating scenario from which we derive a set of requirements that need to be satisfied in order to engineer this class of applications. Then we leverage a design space to help us shift from the requirement analysis to the envisioned solution. Finally, we present the research challenges to address for engineering these applications.

19

(42)

Root

T4: Wearable Things T2: Ambient Things

T5: History

S17 S6

T1: Aggregator

S11 S2

T3: Social Network

S7 S5

T9: Data Analytics

S8 S10 S18

T8: Storage

S9 S12

T6: Memory

S4 S14 S1

T7: CPU

S15 S13

Figure 3.1: Service assembly scenario - social sensing application.

3.1 Everything as a Service

In future computing environments, an application can be considered as a network- based system where a large open-ended collection of autonomous and pervasive things dynamically interact with each other, to provide users with rich function- alities. Indeed, applications dynamically emerge [88] as opportunistic assemblies of things of interest available at any given time. To achieve this vision, key objectives are (i) to facilitate the design, implementation, and assembly of things irrespectively of their specific nature, and (ii) to facilitate the discovery and opportunistic assembly of things of interest.

To this end, software engineering best practices suggest the exploitation of the so-called everything-as-a-service (XaaS) paradigm, which allows for uniformly representing physical things, hardware resources, and software applications as independent and isolated entities offering services. Besides, the XaaS facilitates the creation of new complex services as an assembly of independent services available within the environment [25].

However, to be actually adopted in a future computing environment, the XaaS paradigm requires effective solutions for problems that include: interoperability (how to make heterogeneous services able to connect and interact with each other) and management (how to build and maintain over time a suitable assembly of services that are collectively able to fulfill a given task). Both problems are not new per se in a XaaS context [25] but are highly exacerbated by the peculiar characteristics of future computing environments: the former by the unprecedented heterogeneity and variety of services to be interconnected, and the latter by the extreme openness, variability, and unpredictability of this environment.

(43)

Service Assembly Scenario.As a motivating scenario, let us consider the social sensing application (e.g., inspired by [148]) shown in Figure 3.1. Its goal is to infer the social situation of a person (attending a meeting, biking, dancing on a dancefloor, etc.) from data coming from different sensors, and to make it available to her friends through social networks. This application can be built from the aggregation of some logically distinct building blocks that likely include:

a “root” module implementing the application’s orchestration logic; a set of different sensors providing data about the person’s context (i.e., Wearable Things and Ambient Things); one or more compute-intensive modules that aggregate data from both these sensors to extract relevant features and draw conclusions about the current situation (i.e., Aggregator); a Social Network module to share the current social situation; a History module to save history data for late (offline) processing.

Besides, these modules require basic Computing, Storage and Memory resources to fulfill their processing, storage and memory needs, respectively. From a XaaS perspective, each of these software modules and the underlying infrastructure resources can be seen as entities that offer services, and that could require to this end services offered by others.

We can easily figure out a deployment scenario for this application where all the dependencies expressed by its modules are resolved by services hosted at a single node (typically, some kind of personal device like a smartphone).

However, in the envisioned network-based system with autonomous and pervasive resources, several alternatives are likely available. For example, sensor data dependencies can be, at least partially, fulfilled by sensors hosted by other personal devices, or dispersed in the environment.

Performance or energy consumption considerations could suggest resolving the computing power dependencies of the data analytics modules by processing services offered by surrounding nodes of an edge computing infrastructure [92].

Different offerings could be available to this end, with different characteristics in terms of performance, energy consumption, cost. These characteristics could not be stable: for example, a computing service that presently qualifies itself as “good” could actually not reveal to be so, if it is contemporarily targeted by requests coming from other applications operating in the same environment that overload it. Moreover, the availability of services could change (e.g., because of mobility, or independent decisions of their owner); this will require restructuring a previously defined assembly.

If we now imagine a crowd of persons using their own instance of the social sensing application we are considering, each of these instances will ultimately result in a set of services that will need other services to collectively resolve their dependencies. Each such service will be likely interested in experiencing a

“good” quality from the services that will be selected to this end. However, the interest of each service should be coordinated with the one of others, to avoid globally unbalanced selections that could actually worsen the delivered quality.

References

Related documents

Linköping Studies in Science and Technology Dissertation No.. 1749, 2016 Department of

In our smart phone model, five templates are involved to simulate different parts of the system: user, application, resource, admission control and the main controller.. First we give

Additionally, we argue that it is important for organisations to ensure that employees are setting up goals both guided by distant goals (e.g. building their career)

 genom virtuella försök visat hur komponent kvalite påverkas av hur smältan beter sig innan 2:a fasen, dock så lyckas inte projektet med detta i de praktiska försöken.

Sammanfattningsvis kan dock nämnas att alla artikelförfattare är överens om att flytande busskörfält i rätt applikationsområde har förmåga att minska restiden för bussar

OTSI (Office of Transport Safety Investigations), 2017. Bus Safety Report – Bus fires in New South Wales in 2016. Bus Fires in Sweden. RISE Research Institutes of Sweden, SP

För att kunna beräkna ett sådant behöver några uppgifter föras över från nollalternativet till Excel-arket för åtgärdsscenariot.. Öppna Excel-arket för