Results 1 - 10
of
25
DiscoTect: A System for Discovering Architectures from Running Systems
- In Proc. 26th International Conference on Software Engineering
, 2004
"... One of the challenging problems for software developers is guaranteeing that a system as built is consistent with its architectural design. In this paper we describe a technique that uses run time observations about an executing system to construct an architectural view of the system. With this tech ..."
Abstract
-
Cited by 25 (7 self)
- Add to MetaCart
One of the challenging problems for software developers is guaranteeing that a system as built is consistent with its architectural design. In this paper we describe a technique that uses run time observations about an executing system to construct an architectural view of the system. With this technique we develop mappings that exploit regularities in system implementation and architectural style. These mappings describe how low-level system events can be interpreted as more abstract architectural operations. We describe the current implementation of a tool that uses these mappings, and show that it can highlight inconsistencies between implementation and architecture.
Discovering Architectures from Running Systems: Lessons Learned
, 2004
"... Abstract—One of the challenging problems for software developers is guaranteeing that a system as built is consistent with its architectural design. In this paper, we describe a technique that uses runtime observations about an executing system to construct an architectural view of the system. In th ..."
Abstract
-
Cited by 20 (11 self)
- Add to MetaCart
Abstract—One of the challenging problems for software developers is guaranteeing that a system as built is consistent with its architectural design. In this paper, we describe a technique that uses runtime observations about an executing system to construct an architectural view of the system. In this technique, we develop mappings that exploit regularities in system implementation and architectural style. These mappings describe how low-level system events can be interpreted as more abstract architectural operations and are formally defined using Colored Petri Nets. In this paper, we describe a system, called DiscoTect, that uses these mappings and we introduce the DiscoSTEP mapping language and its formal definition. Two case studies showing the application of DiscoTect suggest that the tool is practical to apply to legacy systems and can dynamically verify conformance to a preexisting architectural specification. Index Terms—Software architecture discovery, reverse engineering, architecture design tools and analyses. Ç
Retrofitting autonomic capabilities onto legacy systems
, 2006
"... Autonomic computing—self-configuring, self-healing, self-managing applications, systems and networks—is a promising solution to ever-increasing system complexity and the spiraling costs of human management as systems scale to global proportions. Most results to date, however, suggest ways to archite ..."
Abstract
-
Cited by 18 (3 self)
- Add to MetaCart
Autonomic computing—self-configuring, self-healing, self-managing applications, systems and networks—is a promising solution to ever-increasing system complexity and the spiraling costs of human management as systems scale to global proportions. Most results to date, however, suggest ways to architect new software designed from the ground up as autonomic systems, whereas in the real world organizations continue to use stovepipe legacy systems and/or build “systems of systems ” that draw from a gamut of disparate technologies from numerous vendors. Our goal is to retrofit autonomic computing onto such systems, externally, without any need to understand, modify or even recompile the target system’s code. We present an autonomic infrastructure that operates similarly to active middleware, to explicitly add autonomic services to pre-existing systems via continual monitoring and a feedback loop that performs reconfiguration and/or repair as needed. Our lightweight design and separation of concerns enables easy adoption of individual components for use with a variety of target systems, independent of the rest of the full infrastructure. This work has been validated by several case studies spanning multiple real-world application domains.
Automatic Performance Management in Component Based Software Systems
- In ICAC ’04: Proceedings of the First International Conference on Autonomic Computing (ICAC’04
"... A framework for automatic performance tuning of component-based enterprise applications is presented. A non-intrusive monitoring and diagnosis module is employed by an application adaptation module that automatically chooses optimal component implementations for different execution contexts. Both ..."
Abstract
-
Cited by 12 (0 self)
- Add to MetaCart
A framework for automatic performance tuning of component-based enterprise applications is presented. A non-intrusive monitoring and diagnosis module is employed by an application adaptation module that automatically chooses optimal component implementations for different execution contexts. Both modules can optimize their overhead by automatically focusing on the application hot-spots, making the framework suitable for long-running systems. Currently, implementation work is targeted at J2EE systems.
Assessing the Robustness of Self-Managing Computer Systems under Highly Variable Workloads
, 2004
"... Computer systems are becoming extremely complex due to the large number and heterogeneity of their hardware and software components, the multi-layered architecture used in their design, and the unpredictable nature of their workloads. Thus, performance management becomes difficult and expensive when ..."
Abstract
-
Cited by 11 (5 self)
- Add to MetaCart
Computer systems are becoming extremely complex due to the large number and heterogeneity of their hardware and software components, the multi-layered architecture used in their design, and the unpredictable nature of their workloads. Thus, performance management becomes difficult and expensive when carried out by human beings. A new approach, called self-managing computer systems, is to build into the systems the mechanisms required to self-adjust configuration parameters so that the Quality of Service requirements of the system are constantly met. In this paper, we evaluate the robustness of such methods when the workload exhibits high variability in terms of the inter-arrival time and service times of requests. Another contribution of this paper is the assessment of the use of workload forecasting techniques in the design of QoS controllers.
Flexible Instrumentation for Software Dynamic Translation
"... Software dynamic translators have been used for many purposes, such as dynamic code optimization, profiling, and security. Many of these applications need to instrument a program’s binary code to gather run-time information about the program. Such instrumentation is varied, with different software d ..."
Abstract
-
Cited by 11 (9 self)
- Add to MetaCart
Software dynamic translators have been used for many purposes, such as dynamic code optimization, profiling, and security. Many of these applications need to instrument a program’s binary code to gather run-time information about the program. Such instrumentation is varied, with different software dynamic translator applications requiring different kinds of information. Hence, there is a need for a flexible mechanism for information gathering and instrumentation in software dynamic translators. In this paper, we describe our approach to providing flexible instrumentation. We also experimentally evaluate our approach and investigate its overhead and demonstrate its flexibility for different software dynamic translation systems.
Engineering self-adaptive systems through feedback loops
- In Software Engineering for Self-Adaptive Systems
, 2009
"... Abstract. To deal with the increasing complexity of software systems and uncertainty of their environments, software engineers have turned to self-adaptivity. Self-adaptive systems are capable of dealing with a continuously changing environment and emerging requirements that may be unknown at design ..."
Abstract
-
Cited by 9 (3 self)
- Add to MetaCart
Abstract. To deal with the increasing complexity of software systems and uncertainty of their environments, software engineers have turned to self-adaptivity. Self-adaptive systems are capable of dealing with a continuously changing environment and emerging requirements that may be unknown at design-time. However, building such systems cost-effectively and in a predictable manner is a major engineering challenge. In this paper, we explore the state-of-the-art in engineering self-adaptive systems and identify potential improvements in the design process. Our most important finding is that in designing self-adaptive systems, the feedback loops that control self-adaptation must become first-class entities. We explore feedback loops from the perspective of control engineering and within existing self-adaptive systems in nature and biology. Finally, we identify the critical challenges our community must address to enable systematic and well-organized engineering of self-adaptive and self-managing software systems. 1
An Architecture for Coordinating Multiple Self-Management Systems
- IEEE/IFIP Conference on Software Architecture
, 2004
"... A common approach to adding self-management capabilities to a system is to provide one or more external control modules, whose responsibility is to monitor system behavior, and adapt the system at run time to achieve various goals (configure the system, improve performance, recover from faults, etc. ..."
Abstract
-
Cited by 8 (2 self)
- Add to MetaCart
A common approach to adding self-management capabilities to a system is to provide one or more external control modules, whose responsibility is to monitor system behavior, and adapt the system at run time to achieve various goals (configure the system, improve performance, recover from faults, etc.). An important problem arises when there is more than one such self-management module: how can one make sure that they are composed to provide consistent and complementary benefits? In this paper we describe a solution that introduces a self-management coordination architecture and infrastructure to support such composition. We focus on the problem of coordinating self-configuring and self-healing capabilities, particularly with respect to global configuration and incremental repair. We illustrate the approach in the context of a self-managing video teleconference system that composes two pre-existing adaptation modules to achieve synergistic benefits of both. 1
On the Use of Online Analytic Performance Models in Self-Managing and Self-Organizing Computer Systems
- In Self-* Properties in Complex Information Systems
, 2005
"... Current computing environments are becoming increasingly complex in nature and exhibit unpredictable workloads. These environments create challenges to the design of systems that can adapt to changes in the workload while maintaining desired QoS levels. This paper focuses on the use of online an ..."
Abstract
-
Cited by 7 (2 self)
- Add to MetaCart
Current computing environments are becoming increasingly complex in nature and exhibit unpredictable workloads. These environments create challenges to the design of systems that can adapt to changes in the workload while maintaining desired QoS levels. This paper focuses on the use of online analytic performance models in the design of self-managing and self-organizing computer systems. A general approach for building such systems is presented along with the algorithms used by a Quality of Service (QoS) controller. The robustness of the approach with respect to the variability of the workload and service time distributions is evaluated. The use of an adaptive controller that uses workload forecasting is discussed. Finally, the paper shows how online performance modelscanbeusedtodesignQoS-awareserviceorientedarchitectures.
PAC-MEN: Personal Autonomic Computing Monitoring Environment
, 2004
"... The overall goal of this research is to improve the `environment awareness' aspect of personal autonomic computing. Personal Computing offers unique challenges for self-management due to its multiequipment, multi-situation, and multi-user nature. The aim is to develop a support architecture for mult ..."
Abstract
-
Cited by 5 (1 self)
- Add to MetaCart
The overall goal of this research is to improve the `environment awareness' aspect of personal autonomic computing. Personal Computing offers unique challenges for self-management due to its multiequipment, multi-situation, and multi-user nature. The aim is to develop a support architecture for multiplatform working, based on autonomic computing concepts and techniques. Of particular interest is collaboration among personal systems to take a shared responsibility for environment awareness. Concepts mirroring human mechanisms, such as 'reflex reactions' and the use of 'vital signs' to assess operational health, are used in designing and implementing the personal computing architecture. A proof of concept self-healing tool is considered and lessons learned used for the requirements specification of the community-based environment awareness prototype environment---PACMEN (Personal Autonomic Computing Monitor ENvironment).

