11 research outputs found
The handbook of engineering self-aware and self-expressive systems
When faced with the task of designing and implementing a new self-aware and self-expressive computing system, researchers and practitioners need a set of guidelines on how to use the concepts and foundations developed in the Engineering Proprioception in Computing Systems (EPiCS) project. This report provides such guidelines on how to design self-aware and self-expressive computing systems in a principled way. We have documented different categories of self-awareness and self-expression level using architectural patterns. We have also documented common architectural primitives, their possible candidate techniques and attributes for architecting self-aware and self-expressive systems. Drawing on the knowledge obtained from the previous investigations, we proposed a pattern driven methodology for engineering self-aware and self-expressive systems to assist in utilising the patterns and primitives during design. The methodology contains detailed guidance to make decisions with respect to the possible design alternatives, providing a systematic way to build self-aware and self-expressive systems. Then, we qualitatively and quantitatively evaluated the methodology using two case studies. The results reveal that our pattern driven methodology covers the main aspects of engineering self-aware and self-expressive systems, and that the resulted systems perform significantly better than the non-self-aware systems
DATESSO: Self-Adapting Service Composition with Debt-Aware Two Levels Constraint Reasoning
The rapidly changing workload of service-based systems can easily cause
under-/over-utilization on the component services, which can consequently
affect the overall Quality of Service (QoS), such as latency. Self-adaptive
services composition rectifies this problem, but poses several challenges: (i)
the effectiveness of adaptation can deteriorate due to over-optimistic
assumptions on the latency and utilization constraints, at both local and
global levels; and (ii) the benefits brought by each composition plan is often
short term and is not often designed for long-term benefits -- a natural
prerequisite for sustaining the system. To tackle these issues, we propose a
two levels constraint reasoning framework for sustainable self-adaptive
services composition, called DATESSO. In particular, DATESSO consists of a re
ned formulation that differentiates the "strictness" for latency/utilization
constraints in two levels. To strive for long-term benefits, DATESSO leverages
the concept of technical debt and time-series prediction to model the utility
contribution of the component services in the composition. The approach embeds
a debt-aware two level constraint reasoning algorithm in DATESSO to improve the
efficiency, effectiveness and sustainability of self-adaptive service
composition. We evaluate DATESSO on a service-based system with real-world
WS-DREAM dataset and comparing it with other state-of-the-art approaches. The
results demonstrate the superiority of DATESSO over the others on the
utilization, latency and running time whilst likely to be more sustainable.Comment: Accepted to the SEAMS '20. Please use the following citation: Satish
Kumar, Tao Chen, Rami Bahsoon, and Rajkumar Buyya. DATESSO: Self-Adapting
Service Composition with Debt-Aware Two Levels Constraint Reasoning. In
IEEE/ACM 15th International Symposium on Software Engineering for Adaptive
and Self-Managing Systems, Oct 7-8, 2020, Seoul, Kore
Self-awareness for dynamic knowledge management in self-adaptive volunteer services
Engineering volunteer services calls for novel self-adaptive approaches for dynamically managing the process of selecting volunteer services. As these services tend to be published and withdrawn without restrictions, uncertainties, dynamisms and 'dilution of control' related to the decisions of selection and composition are complex problems. These services tend to exhibit periodic performance patterns, which are often repeated over a certain time period. Consequently, the awareness of such periodic patterns enables the prediction of the services performance leading to better adaptation. In this paper, we contribute to a self-adaptive approach, namely time-awareness, which combines self-aware principles with dynamic histograms to dynamically manage the periodic trends of services performance and their evolution trends. Such knowledge can inform the adaptation decisions, leading to increase in the precision of selecting and composing services. We evaluate the approach using a volunteer storage composition scenario. The evaluation results show the advantages of dynamic knowledge management in self-adaptive volunteer computing in selecting dependable services and satisfying higher number of requests
A Survey and Taxonomy of Self-Aware and Self-Adaptive Cloud Autoscaling Systems
Autoscaling system can reconfigure cloud-based services and applications, through various configurations of cloud software and provisions of hardware resources, to adapt to the changing environment at runtime. Such a behavior offers the foundation for achieving elasticity in a modern cloud computing paradigm. Given the dynamic and uncertain nature of the shared cloud infrastructure, the cloud autoscaling system has been engineered as one of the most complex, sophisticated, and intelligent artifacts created by humans, aiming to achieve self-aware, self-adaptive, and dependable runtime scaling. Yet the existing Self-aware and Self-adaptive Cloud Autoscaling System (SSCAS) is not at a state where it can be reliably exploited in the cloud. In this article, we survey the state-of-the-art research studies on SSCAS and provide a comprehensive taxonomy for this field. We present detailed analysis of the results and provide insights on open challenges, as well as the promising directions that are worth investigated in the future work of this area of research. Our survey and taxonomy contribute to the fundamentals of engineering more intelligent autoscaling systems in the cloud
Synergizing domain expertise with self-awareness in software systems:a patternized architecture guideline
To promote engineering self-aware and self-adaptive software systems in a
reusable manner, architectural patterns and the related methodology provide an
unified solution to handle the recurring problems in the engineering process.
However, in existing patterns and methods, domain knowledge and engineers'
expertise that is built over time are not explicitly linked to the self-aware
processes. This linkage is important, as the knowledge is a valuable asset for
the related problems and its absence would cause unnecessary overhead, possibly
misleading results and unwise waste of the tremendous benefit that could have
been brought by the domain expertise. This paper highlights the importance of
synergizing domain expertise and the self-awareness to enable better
self-adaptation in software systems, relying on well-defined expertise
representation, algorithms and techniques. In particular, we present a holistic
framework of notions, enriched patterns and methodology, dubbed DBASES, that
offers a principled guideline for the engineers to perform difficulty and
benefit analysis on possible synergies, in an attempt to keep
"engineers-in-the-loop". Through three tutorial case studies, we demonstrate
how DBASES can be applied in different domains, within which a carefully
selected set of candidates with different synergies can be used for
quantitative investigation, providing more informed decisions of the design
choices.Comment: Accepted manuscript to the Proceedings of the IEEE. Please use the
following citation: Tao Chen, Rami Bahsoon, and Xin Yao. 2020. Synergizing
Domain Expertise with Self-Awareness in Software Systems: A Patternized
Architecture Guideline. Proc. IEEE, in pres
Engineering self-awareness with knowledge management in dynamic systems: a case for volunteer computing
The complexity of the modem dynamic computing systems has motivated software engineering researchers to explore new sources of inspiration for equipping such systems with autonomic behaviours. Self-awareness has recently gained considerable attention as a prominent property for enriching the self-adaptation capabilities in systems operating in dynamic, heterogeneous and open environments. This thesis investigates the role of knowledge and its dynamic management in realising various levels of self-awareness for enabling selfadaptivity with different capabilities and strengths. The thesis develops a novel multi-level dynamic knowledge management approach for managing and representing the evolving knowledge. The approach is able to acquire 'richer' knowledge about the system's internal state and its environment in addition to managing the trade-offs arising from the adaptation conflicting goals.
The thesis draws on a case from the volunteer computing, as an environment characterised by openness, heterogeneity, dynamism, and unpredictability to develop and evaluate the approach. This thesis takes an experimental approach to evaluate the effectiveness of the of the dynamic knowledge management approach. The results show the added value of the approach to the self-adaptivity of the system compared to classic selfadaptation capabilities