Monitoring information technology (IT) systems during operation is one of the few methods that help administrators track the health of the monitored system, predict and detect faults, and assist in system repair and error prevention. However, current implementations impose architectural and functional constraints on monitored systems that result in less flexibility in deployment and operation. While excellent monitoring systems exist for some use cases, others are not adequately supported, having no monitoring system available at all for very specific use cases. In addition, most monitoring software specializes in specific data formats, protocols, data collection mechanisms, etc., further limiting its flexibility. As a result, individuals and organizations struggle to find the right combination of features to support their monitoring needs in a single monitoring system, forcing them to use multiple monitoring systems instead in order to support all of their use cases. The role-based approach to software modeling and implementation promises an intuitive way to increase flexibility in modeling and implementing IT systems. In conjunction with technology from the field of self-adaptive systems, this thesis describes a framework for context-sensitive control loops with roles that can be used to overcome these limitations. We present a novel approach to building a flexible role-based monitoring system based on that framework. Our approach allows for context-specific implementation of monitoring capabilities to support a variety of application domains, while maintaining a derived architecture of well-defined roleplaying components that inherently support distribution and scalability. To this end, important background knowledge from the areas of self-adaptive systems, control loops, the role concept, as well as role-based modeling and implementation is first presented. In addition, important related work from the areas of flexible system design and monitoring systems is presented. Then, a framework for context-sensitive control loops with roles is introduced and applied to the monitoring application domain in modeling and implementation. Based on a common use case for monitoring systems (i.e., monitoring and autoscaling of a web service infrastructure), the resulting Role-based Monitoring Approach (RBMA) is compared to two state-of-the-art monitoring toolkits. This is followed by a qualitative and quantitative evaluation of RBMA, showing that it is more flexible and, at the same time, provides reasonable performance at no additional cost compared to the state-of-the-art tools. Finally, it is explained how this thesis’ contributions can be applied to another monitoring use case (i.e., network device monitoring) as well as to another application domain (i.e., embedded systems monitoring) and its extension (i.e., the Internet of Things domain). This thesis concludes with a summary of the contributions and a presentation of important topics for future work.:Preface iv
Statement of Authorship . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
Publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii
The RoSI Research Training Group . . . . . . . . . . . . . . . . . . . . . . . . . . x
1 Introduction 1
1.1 Thesis Topic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Thesis Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Research Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Background 5
2.1 Principles of Self-adaptation . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.1 The MAPE-K Control Loop . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.2 MAPE-K Patterns for Distributed Self-adaptive Systems . . . . . . 12
2.1.3 MAPE-K Control Loop in Monitoring Systems . . . . . . . . . . . 16
2.2 The Notion of Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3 The Compartment Role Object Meta-Model . . . . . . . . . . . . . . . . . . 24
2.4 The ObjectTeams Java Programming Model . . . . . . . . . . . . . . . . . . 26
2.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3 Related Work 31
3.1 Design Patterns for Flexibility in Software . . . . . . . . . . . . . . . . . . . 31
3.1.1 Strategy Pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.1.2 Template Method Pattern . . . . . . . . . . . . . . . . . . . . . . . . 34
3.1.3 Using Delegation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.1.4 Role-object Pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.2 Classifying Flexibility in Monitoring Systems . . . . . . . . . . . . . . . . . 39
3.2.1 Criteria for Flexibility in Monitoring Systems . . . . . . . . . . . . 40
3.2.2 Classification of Flexibility in Monitoring Systems . . . . . . . . . 44
3.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4 The Role-based Monitoring Approach 47
4.1 Framework and Model for Context-sensitive Control Loops with Roles . 48
4.2 Evaluation Scenario: Autoscaling of Web Service Infrastructures . . . . . 54
4.2.1 Version 1: Role-based Monitoring Approach . . . . . . . . . . . . . 59
4.2.2 Version 2: Prometheus with Alertmanager . . . . . . . . . . . . . . 70
4.2.3 Version 3: Elasticsearch with Kibana . . . . . . . . . . . . . . . . . . 73
iii
Contents
4.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5 Evaluation 77
5.1 Quantitative Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.1.1 First Experiment (Correct Functionality) . . . . . . . . . . . . . . . 78
5.1.2 Second Experiment (Idle Performance) . . . . . . . . . . . . . . . . 80
5.1.3 Third Experiment (Performance under Load) . . . . . . . . . . . . 80
5.2 Qualitative Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.3 Additional Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.3.1 Monitoring Network Devices . . . . . . . . . . . . . . . . . . . . . . 87
5.3.2 Flexible Embedded Systems Management . . . . . . . . . . . . . . 90
5.3.3 Managing Internet of Things Devices . . . . . . . . . . . . . . . . . 92
6 Conclusion and Future Work 95
6.1 Summary of Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
6.2 Topics for Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Bibliography 99
List of Figures 107
List of Tables 109
List of Listings 110
List of Abbreviations 111
A Implementation, Compilation, and Execution of RBMA 113
A.1 Implementation of Base Classes . . . . . . . . . . . . . . . . . . . . . . . . . 113
A.2 Implementation of Team- and inner Role Classes . . . . . . . . . . . . . . . 121
A.3 Implementation of Auxiliary Classes . . . . . . . . . . . . . . . . . . . . . . 139
A.4 Compilation of RBMA with Eclipse OT/J . . . . . . . . . . . . . . . . . . . 144
A.5 Execution of RBMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
B Additional Information: Autoscaling of Web Service Infrastructures 145
B.1 Setup of the Slave-level Clusters (Versions 1, 2, and 3) . . . . . . . . . . . . 145
B.2 RBMA: Setup of the Master-level Cluster (Version 1) . . . . . . . . . . . . 156
B.3 Prometheus: Setup of Master-level Cluster (Version 2) . . . . . . . . . . . 160
B.4 Elastic Stack: Setup of the Master-level Cluster (Version 3) . . . . . . . . . 165
B.5 Auxiliary Tutorials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
C Large Figures 179
Identifer | oai:union.ndltd.org:DRESDEN/oai:qucosa:de:qucosa:84013 |
Date | 08 March 2023 |
Creators | Shmelkin, Ilja |
Contributors | Schill, Alexander, Linnhoff-Popien, Claudia, Technische Universität Dresden |
Source Sets | Hochschulschriftenserver (HSSS) der SLUB Dresden |
Language | English |
Detected Language | English |
Type | info:eu-repo/semantics/publishedVersion, doc-type:doctoralThesis, info:eu-repo/semantics/doctoralThesis, doc-type:Text |
Rights | info:eu-repo/semantics/openAccess |
Relation | info:eu-repo/grantAgreement/Deutsche Forschungsgemeinschaft/GRK 1907/1907//Rollenbasierte Software-Infrastrukturen für durchgängig-kontextsensitive Systeme/RoSI |
Page generated in 0.0029 seconds