An important requirement for software-based systems is the ability to adapt themselves at run time to handle such things as resource variability, changing user needs, and system faults. In the past, systems that supported self-management were rare, confined mostly to domains like telecommunications switches or deep-space control software, where taking a system down for upgrades was not an option, and where human intervention was not always feasible. However, today more and more systems have this requirement, including e-commerce systems and mobile embedded systems.The topic of self-managed and self-healing systems has been studied in a large number of specific areas, including robotics planning software, control systems, programming-language design, software architecture, fault-tolerant computing, and neural networks. The 2002 ACM Workshop on Self-Healing Systems (WOSS 02) initiated a forum for discussion of these topics from the perspective of software engineering.This second ACM workshop on the topic, the 2004 ACM SIGSOFT Workshop on Self-Managed Systems (WOSS 04), has changed the title to reflect a broader view of the problem. However, once again it brings together researchers and practitioners from diverse areas to discuss the fundamental principles, state of the art, and critical challenges of self-managed systems, focusing specifically on the software engineering aspects of systems, including the software languages, techniques, and mechanisms that can be used to support dynamic adaptive behavior.Topics represented by the participants in the workshop include:•language support for self-adaptation (including exception handling, reflection, aspectoriented programming, adaptive virtual machines, and mobility)•software architectures that support self-management (including use of architectures for run time adaptation)•algorithms for system adaptation (including machine learning and neural networks)•artificial intelligence (including autonomous robotics)•mobile computing (including service location and discovery)•software solutions to fault tolerance•adaptive components•constraint-based approaches to adaptation and self-organizing systems•autonomic computing•assurance for self-managed systems.The broad representation of topics should lead to a productive and stimulating workshop, allowing the participants to compare research approaches and to better understand the fundamental research issues that underlie this important emerging subfield of software engineering.
Proceeding Downloads
A control-based framework for self-managing distributed computing systems
This paper describes an online control framework to design self-managing distributed computing systems that continually optimize their performance in response to changing computing demands and environmental conditions. An online control technique is ...
A planning based approach to failure recovery in distributed systems
Failure recovery in distributed systems poses a difficult challenge because of the requirement for high availability. Failure scenarios are usually unpredictable so they can not easily be foreseen. In this research we propose a planning based approach ...
A selection mechanism based upon the explicit expression of preference
One way to improve the flexibility and robustness of a system is to enable a range of behaviours to be supported and to select that which is most appropriate to the prevailing conditions during run time. This paper considers the issue of effecting ...
Support for feedback and change in self-adaptive systems
- Dharini Balasubramaniam,
- Ron Morrison,
- Kath Mickan,
- Graham Kirby,
- Brian Warboys,
- Ian Robertson,
- Bob Snowdon,
- R. Mark Greenwood,
- Wykeen Seet
Self-adaptive systems modify their own behaviour in response to stimuli from their operating environments. The major policy considerations for such systems are determining what, when and how adaptations should be carried out. This paper presents ...
Resource-based approach to feature interaction in adaptive software
This paper proposes the RAFTING approach (Resource-based Approach to FeaTure InteractioN) to address the feature interaction problem in the context of dynamically adapted software. RAFTING focuses on the resources used by features, rather than the ...
A survey of self-management in dynamic software architecture specifications
As dynamic software architecture use becomes more widespread, a variety of formal specification languages have been developed to gain a better understanding of the foundations of this type of software evolutionary change. In this paper we survey 14 ...
Towards preserving correctness in self-managed software systems
Currently, paradigms such as component-based software development and service-oriented software architectures promote modularization of software systems into highly decoupled and reusable software components and services. In addition, to improve ...
Self-managed decentralised systems using K-components and collaborative reinforcement learning
Components in a decentralised system are faced with uncertainty as how to best adapt to a changing environment to maintain or optimise system performance. How can individual components learn to adapt to recover from faults in an uncertain environment? ...
Architecture differencing for self management
Traditionally, software models are associated with development and maintenance related activities. This paper demonstrates that models also serve a vital purpose in supporting the self awareness and management of software systems in their deployed ...
Combining statistical monitoring and predictable recovery for self-management
Complex distributed Internet services form the basis not only of e-commerce but increasingly of mission-critical network-based applications. What is new is that the workload and internal architecture of three-tier enterprise applications presents the ...
Task-based self-adaptation
Recently there has been increasing interest in developing systems that can adapt dynamically to cope with changing environmental conditions and unexpected system errors. Most efforts for achieving self-adaptation have focused on the mechanisms for ...
Towards a knowledge-based approach to architectural adaptation management
Self-adaptive software continually evaluates and modifies its own behavior to meet changing demands. One of the key issues in constructing such software is that of planning when and what kinds of adaptations are appropriate. In this paper, we present an ...
Encapsulation of structural adaptation by composite components
Component-based software engineering offers a way to partition complex systems into well-defined parts. Adaptation mechanisms are crucial to enable run-time reconfiguration and to increase the reuse of these parts in other applications and environments. ...
Self-adaptation for everyday systems
The use of handheld networked devices to access information systems by people moving around is spreading rapidly. Systems being used in this way typically face dynamic variation in their operating environment. In order to maintain the usability and ...
Exploiting architectural prescriptions for self-managing, self-adaptive systems: a position paper
We propose a high-level approach to software architecture that bridges the gap between system requirements (in the problem space) and the architectural design (in the solution space). We use abstract constraint- and intent-based architectural ...
Using model trees to characterize computer resource usage
Continuous numeric prediction techniques known as model trees which build decision trees and then use linear regression at the terminal nodes are used to characterize resource consumption in a computer system. An advantage of model trees over time ...
Online model-based adaptation for optimizing performance and dependability
Constructing adaptive software that is capable of changing behavior at runtime is a challenging software engineering problem. However, the problem of determining when and how such a system should adapt, i.e., the system's adaptation policy, can be even ...
Instrumentation in software dynamic translators for self-managed systems
Self-managed software requires monitoring and code changes to an executing program. One technology that enables such self management is software dynamic translation (SDT), which allows a program's execution to be intercepted and controlled by a separate ...
An extensible framework for autonomic analysis and improvement of distributed deployment architectures
A distributed software system's deployment architecture can have a significant impact on the system's properties, which depend on various system parameters, such as network bandwidth, frequencies of software component interactions, and so on. Recent ...
Self-healing mechanisms for kernel system compromises
Increasing demands for reliability and dependability clash with the reality of escalating security compromises and vulnerability discoveries. Improvements in attack methodologies such as polymorphic viruses, tampering of source code repositories, and ...
Design of self-managing dependable systems with UML and fault tolerance patterns
The development of dependable software systems is a costly undertaking. Fault tolerance techniques as well as self-repair capabilities usually result in additional system complexity which can even spoil the intended improvement with respect to ...
Patterns of self-management
Although each application of self-management techniques encounters problems and solutions unique to the application domain, there are several cross-cutting "patterns of self-management" that can be discerned. Much like programming patterns, these ...
Cited By
- Hirsch D, Kramer J, Magee J and Uchitel S Modes for software architectures Proceedings of the Third European conference on Software Architecture, (113-126)
-
Garlan D, Litoiu M, Muller H, Mylopoulos J, Smith D and Wong K DEAS 2005: workshop on the design and evolution of autonomic application software 27th International Conference on Software Engineering, 2005. ICSE 2005., 10.1109/ICSE.2005.1553669, 1-59593-963-2, (699-699)
- Proceedings of the 1st ACM SIGSOFT workshop on Self-managed systems