21 |
Adaptive Routing for Challenging NetworksIrigon de Irigon, José 28 October 2021 (has links)
Disruption-Tolerant Networks (DTN) allow communication between devices that lack end-to-end connectivity. Even though the mobility of devices in a DTN is frequently dynamic, most proposed DTN protocols are not adaptive. This work presents an ongoing research project that aims to find out to which extent context-based adaptation may be useful to improve DTN performance. We are convinced that, in highly predictive networks, metadata exchange is a crucial factor in supporting routing decisions and recognize context changes. This paper summarizes the efforts we have made so far and presents the next steps we plan to take towards the design and implementation of an adaptive framework.
|
22 |
A Pure Embedding of Roles: Exploring 4-dimensional Dispatch for Roles in Structured ContextsLeuthäuser, Max 15 August 2017 (has links)
Present-day software systems have to fulfill an increasing number of requirements, which makes them more and more complex. Many systems need to anticipate changing contexts or need to adapt to changing business rules or requirements. The challenge of 21th-century software development will be to cope with these aspects. We believe that the role concept offers a simple way to adapt an object-oriented program to its changing context. In a role-based application, an object plays multiple roles during its lifetime. If the contexts are represented as first-class entities, they provide dynamic views to the object-oriented program, and if a context changes, the dynamic views can be switched easily, and the software system adapts automatically. However, the concepts of roles and dynamic contexts have been discussed for a long time in many areas of computer science. So far, their employment in an existing object-oriented language requires a specific runtime environment. Also, classical object-oriented languages and their runtime systems are not able to cope with essential role-specific features, such as true delegation or dynamic binding of roles. In addition to that, contexts and views seem to be important in software development. The traditional code-oriented approach to software engineering becomes less and less satisfactory. The support for multiple views of a software system scales much better to the needs of todays systems. However, it relies on programming languages to provide roles for the construction of views.
As a solution, this thesis presents an implementation pattern for role-playing objects that does not require a specific runtime system, the SCala ROles Language (SCROLL). Via this library approach, roles are embedded in a statically typed base language as dynamically evolving objects. The approach is pure in the sense that there is no need for an additional compiler or tooling. The implementation pattern is demonstrated on the basis of the Scala language. As technical support from Scala, the pattern requires dynamic mixins, compiler-translated function calls, and implicit conversions. The details how roles are implemented are hidden in a Scala library and therefore transparent to SCROLL programmers. The SCROLL library supports roles embedded in structured contexts. Additionally, a four-dimensional, context-aware dispatch at runtime is presented. It overcomes the subtle ambiguities introduced with the rich semantics of role-playing objects. SCROLL is written in Scala, which blends a modern object-oriented with a functional programming language. The size of the library is below 1400 lines of code so that it can be considered to have minimalistic design and to be easy to maintain. Our approach solves several practical problems arising in the area of dynamical extensibility and adaptation.
|
23 |
A Family of Role-Based LanguagesKühn, Thomas 24 March 2017 (has links)
Role-based modeling has been proposed in 1977 by Charles W. Bachman, as a means to model complex and dynamic domains, because roles are able to capture both context-dependent and collaborative behavior of objects. Consequently, they were introduced in various fields of research ranging from data modeling via conceptual modeling through to programming languages. More importantly, because current software systems are characterized by increased complexity and context-dependence, there is a strong demand for new concepts beyond object-oriented design. Although mainstream modeling languages, i.e., Entity-Relationship Model, Unified Modeling Language, are good at capturing a system's structure, they lack ways to model the system's behavior, as it dynamically emerges through collaborating objects. In turn, roles are a natural concept capturing the behavior of participants in a collaboration. Moreover, roles permit the specification of interactions independent from the interacting objects. Similarly, more recent approaches use roles to capture context-dependent properties of objects. The notion of roles can help to tame the increased complexity and context-dependence. Despite all that, these years of research had almost no influence on current software development practice.
To make things worse, until now there is no common understanding of roles in the research community and no approach fully incorporates both the context-dependent and the relational nature of roles. In this thesis, I will devise a formal model for a family of role-based modeling languages to capture the various notions of roles. Together with a software product line of Role Modeling Editors, this, in turn, enables the generation of a role-based language family for Role-based Software Infrastructures (RoSI).:I Review of Contemporary Role-based Languages
1 Introduction
1.1 Background
1.2 Motivation
1.3 Problem Definition
1.4 Outline
2 Nature of Roles
2.1 Running Example
2.2 Behavioral Nature
2.3 Relational Nature
2.4 Context-Dependent Nature
2.5 Constraints in Role-Based Languages
2.6 Classification of Roles
3 Systematic Literature Review
3.1 Method
3.2 Results
3.3 Discussion
4 Contemporary Role-Based Modeling Languages
4.1 Behavioral and Relational Modeling Languages
4.1.1 Lodwick
4.1.2 The Generic Role Model
4.1.3 Role-Based Metamodeling Language (RBML)
4.1.4 Role-Based Pattern Specification
4.1.5 Object-Role Modeling (ORM) 2
4.1.6 OntoUML
4.2 Context-Dependent Modeling Languages
4.2.1 Metamodel for Roles
4.2.2 E-CARGO Model
4.2.3 Data Context Interaction (DCI)
4.3 Combined Modeling Languages
4.3.1 Taming Agents and Objects (TAO)
4.3.2 Information Networking Model (INM)
4.3.3 Helena Approach
5 Contemporary Role-based Programming Languages
5.1 Behavioral Programming Languages
5.1.1 Chameleon
5.1.2 Java with Roles (JAWIRO)
5.1.3 Rava
5.1.4 JavaStage
5.2 Relational Programming Languages
5.2.1 Rumer
5.2.2 First Class Relationships
5.2.3 Relations
5.3 Context-Dependent Programming Languages
5.3.1 EpsilonJ and NextEJ
5.3.2 Role/Interaction/Communicative Action (RICA)
5.3.3 ObjectTeams/Java
5.3.4 PowerJava
5.3.5 Scala Roles
6 Comparison of Role-based Languages
6.1 Comparison of Role-Based Modeling Languages
6.2 Comparison of Role-Based Programming Languages
6.3 Results and Findings
II Family of Role-Based Modeling Languages
7 Foundations of Role-Based Modeling Languages
7.1 Ontological Foundation
7.1.1 Metaproperties
7.1.2 Classifying Modeling Concepts
7.2 Graphical Notation
7.2.1 Model Level Notation
7.2.2 Graphical Modeling Constraints
7.2.3 Instance Level Notation
7.3 Formalization of Roles
7.3.1 Model Level
7.3.2 Instance Level
7.3.3 Constraint Level
7.4 Reintroducing Inheritance
7.4.1 Extending the Banking Application
7.4.2 Model Level Extensions
7.4.3 Instance Level Extensions
7.4.4 Constraint Level Extensions
7.5 Reference Implementation
7.5.1 Translation of Logical Formulae
7.5.2 Structure of the Reference Implementation
7.5.3 Specifying and Verifying Role Models
7.6 Full-Fledged Role Modeling Editor
7.6.1 Software Architecture
7.6.2 Illustrative Example
7.6.3 Additional Tool Support
8 Family of Role-Based Modeling Languages
8.1 Family of Metamodels for Role-Based Modeling Languages
8.1.1 Feature Model for Role-Based Languages
8.1.2 Feature Minimal Metamodel
8.1.3 Feature Complete Metamodel
8.1.4 Mapping Features to Variation Points
8.1.5 Implementation of the Metamodel Generator
8.2 First Family of Role Modeling Editors
8.2.1 Dynamic Feature Configuration
8.2.2 Architecture of the Dynamic Software Product Line
8.2.3 Applicability of the Language Family Within RoSI
9 Conclusion
9.1 Summary
9.2 Contributions
9.3 Comparison with Contemporary Role-Based Modeling Languages
9.4 Future Research
|
24 |
A Rollback Mechanism to Recover from Software Failures in Role-based Adaptive Software SystemsTaing, Nguonly, Springer, Thomas, Cardozo, Nicolás, Schill, Alexander 23 June 2021 (has links)
Context-dependent applications are relatively complex due to their multiple variations caused by context activation, especially in the presence of unanticipated adaptation. Testing these systems is challenging, as it is hard to reproduce the same execution environments. Therefore, a software failure caused by bugs is no exception. This paper presents a rollback mechanism to recover from software failures as part of a role-based runtime with support for unanticipated adaptation. The mechanism performs checkpoints before each adaptation and employs specialized sensors to detect bugs resulting from recent configuration changes. When the runtime detects a bug, it assumes that the bug belongs to the latest configuration. The runtime rolls back to the recent checkpoint to recover and subsequently notifes the developer to fix the bug and re-applying the adaptation through unanticipated adaptation. We prototype the concept as part of our role-based runtime engine LyRT and demonstrate the applicability of the rollback recovery mechanism for unanticipated adaptation in erroneous situations.
|
25 |
A Dynamic Instance Binding Mechanism Supporting Run-Time Variability of Role-Based Software SystemsTaing, Nguonly, Springer, Thomas, Cardozo, Nicolás, Schill, Alexander 01 July 2021 (has links)
Role-based approaches gain more and more interest for modeling and implementing variable software systems. Role models clearly separate static behavior represented by players and dynamic behavior modeled as roles which can be dynamically bound and unbound to players at run time. To support the execution of role-based systems, a dynamic binding mechanism is required. Especially, since instances of the same player type can play different roles in a single context, the binding mechanism is required to operate at instance level. In this paper, we introduce a mechanism called dynamic instance binding for implementing a runtime for role-based systems. It maintains a look-up table that allows the run-time system to determine and invoke the currently active role binding at instance level. We explain dynamic instance binding mechanism in detail and demonstrate that it is flexible enough to support both adaptation and evolution of software systems at run time.
|
26 |
A Metamodel Family for Role-Based Modeling and Programming LanguagesKühn, Thomas, Leuthäuser, Max, Götz, Sebastian, Seidl, Christoph, Aßmann, Uwe 05 July 2021 (has links)
Role-based modeling has been proposed almost 40 years ago as a means to model complex and dynamic domains, because roles are able to capture both context-dependent and collaborative behavior of objects. Unfortunately, while several researchers have introduced the notion of roles to modeling and programming languages, only few have captured both the relational and the context-dependent nature of roles. In this work, we classify various proposals since 2000 and show the discontinuity and fragmentation of the whole research field. To overcome discontinuity, we propose a family of metamodels for role-based modeling languages. Each family member corresponds to a design decision captured in a feature model. In this way, it becomes feasible to generate a metamodel for each role-based approach. This allows for the combination and improvement of the different role-based modeling and programming languages and paves the way to reconcile the research field.
|
27 |
Run-time Adaptation of Role-based Software SystemsWeißbach, Martin 06 September 2018 (has links)
Self-adaptive software systems possess the ability to modify their own structure or behavior in response to changes in their operational environment.
Access to sensor data providing information on the monitored environment is a necessary prerequisite in such software systems.
In the future, self-adaptive software systems will be increasingly distributed and interconnected to perform their assigned tasks, e.g., within smart environments or as part of autonomous systems.
Adaptations of the software systems\\\' structure or behavior will therefore have to be performed consistently on multiple remote subsystems.
Current approaches, however, do not completely support the run-time adaptation of distributed and interconnected software systems.
Supported adaptations are local to a specific device and do not require further coordination or the execution of such adaptations is controlled by a centralized management system.
Approaches that support the decentralized adaptation process, help to determine a stable state, e.g., defined by quiescence, of one adaptable entity without central knowledge ahead of the actual adaptation process.
The execution of complex adaptation scenarios comprising several adaptations on multiple computational devices is currently not supported.
Consequently, inherent properties of a distributed system such as intermittent connectivity or local adaptation failures pose further challenges on the execution of adaptations affecting system parts deployed to multiple devices.
Adaptation operations in the current research landscape cover different types of changes that can be performed upon a self-adaptive software system.
Simple adaptations allow the modification of bindings between components or services as well as the removal or creation and integration of such components or services into the system.
Semantically more expressive operations allow for the relocation of behavioral parts of the system.
In this thesis, a coordination protocol is presented that supports the decentralized execution of multiple, possibly dependent adaptation operations and ensures a consistent transition of the software system from its source to a desired target configuration.
An adaptation operation describes exactly one behavioral modification of the system, e.g., the addition or replacement of a component representing a behavioral element of the system\\\'s configuration.
We rely on the notion of Roles as an abstraction to define the software system\\\'s static and dynamic, i.e., context-dependent, parts.
Roles are an intuitive means to describe behavioral adaptations in distributed, context-dependent software systems due to their behavioral, relational and context-dependent nature.
Adaptation operations therefore utilize the Role concept to describe the intended run-time modifications of the software system.
The proposed protocol is designed to maintain a consistent transition of the software system from a given source to a target configuration in the presence of link failures between remote subsystems, i.e., messages used by the protocol to coordinate the adaptation process are lost on transmission, and in case of local failures during the adaptation process.
The evaluation of our approach comprises two aspects:
In one step, the correctness of the coordination protocol is formally validated using the model checking tool PRISM.
The protocol is shown to be deadlock-free even in the presence of coordination message losses and local adaptation failures.
In a second step, the approach is evaluated with the help of an emulated execution environment in which the degree of coordination message losses and adaptation failures is varied.
The adaptation duration and the partial unavailability of the system, i.e., the time roles are passive due to ongoing adaptations, is measured as well as the success rate of the adaptation process for different rates of message losses and adaptation failures.
|
28 |
Role-based Context-sensitive Monitoring of Distributed SystemsShmelkin, Ilja 08 March 2023 (has links)
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
|
29 |
PSpace Reasoning for DLs with Qualifying Number RestrictionsTobies, Stephan 20 May 2022 (has links)
The description logic ALCQI extends the 'standard' description logic ALC by qualifying number restrictions and converse roles. We show that conept satisfiability for this DL is still decidable in polynomial space. The presented algorithm combines techniques from [Tob99a] to deal with qualifying number restrictions and from [HST99] to deal with converse roles. Additionally, we extend the result to ALCQIR, which extends ALCQI by role intersections. This solves an open problem from [DLNN97]. The result for ALCQI has already been presented in the seperate technical report [Tob99b]. In this report we use the same techniques to obtain the stronger result for ALCQIR.
|
30 |
Tofauti ya dhana ya mwanamke katika jamii: mifano kutoka katika taarab (mipasho) na nyimbo za KibenaMnenuka, Angelus 06 March 2013 (has links) (PDF)
Kutokana na tofauti za mazingira, tabia ya nchi na hali ya hewa, binadamu wamekuwa na tamaduni zinazotofautiana na kufanana kwa viwango mbalimbali. Miongoni mwa masuala yanayotofautiana na kufanana ni majukumu yanayofanywa kwa kuzingatia misingi ya jinsi. Kutokana na umuhimu wa suala hilo, kumezaliwa taaluma ya jinsia inayohusu uhusiano uliopo baina ya wanaume na wanawake. Taaluma hiyo inaitwa ujinsia. Kwa miaka ya hivi karibuni msisitizo mkubwa kwa wanataaluma wengi, hasa wanaharakati wanaopigania haki na usawa wa wanawake dhidi ya ukandamizaji unaofanywa na wanaume, umekuwa ukidadisi mgawanyo wa majukumu kati ya wanawake na wanaume. Majukumu hayo yameenea karibu katika kila kona ya maisha ya binadamu toka katika siasa, uchumi na majukumu ya kijamii kwa ujumla. Imekuwa ikidaiwa kuwa katika uhusiano baina ya wanawake na wanaume, wanawake wamekuwa wakinyanyaswa na kukandamizwa. Kwa maneno mengine, uhusiano kati ya wanawake na wanaume haujajengwa katika misingi ya usawa kwa sababu wanaume wananufaika zaidi kuliko wanawake. Makala hii inachunguza namna mawazo hayo yanavyosawiriwa katika muziki wa taarab (mipasho) na nyimbo za ngoma ya Kibena iitwayo Mtuli. Tunachunguza namna majukumu ya mwanamke yanavyosawiriwa yakidokeza mgawanyo wa majukumu katika jamii zitumiazo sanaa hizo.
|
Page generated in 0.0426 seconds