scispace - formally typeset
Search or ask a question

Showing papers by "David Garlan published in 2009"


Proceedings ArticleDOI
18 May 2009
TL;DR: This paper makes Znn.com and the associated evaluation tools available to the community so that other researchers can use it to evaluate their own systems and the community can compare different systems.
Abstract: Rainbow is a framework for engineering a system with run-time, self-adaptive capabilities to monitor, detect, decide, and act on opportunities for system improvement. We applied Rainbow to a system, Znn.com, and evaluated its effectiveness to self-adapt on three levels: its effectiveness to maintain quality attribute in the face of changing conditions, run-time overheads of adaptation, and the engineering effort to use it to add self-adaptive capabilities to Znn.com. We make Znn.com and the associated evaluation tools available to the community so that other researchers can use it to evaluate their own systems and the community can compare different systems. In this paper, we report on our evaluation experience, reflect on some principles for benchmarking self-adaptive systems, and discuss the suitability of our evaluation tools for this purpose.

139 citations


Book ChapterDOI
01 Jan 2009
TL;DR: Rainbow provides an engineering approach and a framework of mechanisms to monitor a target system and its environment, reflect observations into a system’s architecture model, detect opportunities for improvement, select a course of action, and effect changes in a closed loop.
Abstract: Increasingly, systems must have the ability to self-adapt to meet changes in their execution environment. Unfortunately, existing solutions require human oversight, or are limited in the kinds of systems and the set of quality-of-service concerns they address. Our approach, embodied in a system called Rainbow, uses software architecture models and architectural styles to overcome existing limitations. It provides an engineering approach and a framework of mechanisms to monitor a target system and its environment, reflect observations into a system’s architecture model, detect opportunities for improvement, select a course of action, and effect changes in a closed loop. The framework provides general and reusable infrastructures with well-defined customization points, allowing engineers to systematically customize Rainbow to particular systems and concerns.

118 citations


Proceedings ArticleDOI
23 Oct 2009
TL;DR: What is meant by an evolution style is defined, and how it can be used to provide automated assistance for expressing architectural evolution, and for reasoning about both the correctness and quality of evolution paths is shown.
Abstract: As new market opportunities, technologies, platforms, and frameworks become available, systems require large-scale and systematic architectural restructuring to accommodate them. Today's architects have few tools and techniques to help them plan this architecture evolution. In particular, they have little assistance in planning alternative evolution paths, trading off various aspects of the different paths, or knowing best practices for particular domains. In this paper we describe an approach for assisting architects in developing and reasoning about architectural evolution paths. The key insight of our approach is that, architecturally, many system evolutions follow certain common patterns — or evolution styles. We define what we mean by an evolution style, and show how it can be used to provide automated assistance for expressing architectural evolution, and for reasoning about both the correctness and quality of evolution paths.

100 citations


Journal ArticleDOI
TL;DR: Garlan, Allen, and Ockerbloom as discussed by the authors discuss the state of architectural mismatch, a term coined in their 1995 IEEE Software article, "Architectural Mismatch: Why Reuse Is So Hard".
Abstract: In this article, David Garlan, Robert Allen, and John Ockerbloom reflect on the state of architectural mismatch, a term they coined in their 1995 IEEE Software article, "Architectural Mismatch: Why Reuse Is So Hard." Although the nature of software systems has changed dramatically since the earlier article was published, the challenge of architectural mismatch remains an important concern for the software engineering field.

94 citations


Journal ArticleDOI
TL;DR: An extension of existing software architecture tools to model physical systems, their interconnections, and the interactions between physical and cyber components and a new CPS architectural style is introduced to support the principled design and evaluation of alternative architectures for cyber-physical systems (CPS).
Abstract: This paper presents an extension of existing software architecture tools to model physical systems, their interconnections, and the interactions between physical and cyber components. A new CPS architectural style is introduced to support the principled design and evaluation of alternative architectures for cyber-physical systems (CPSs). The implementation of the CPS architectural style in AcmeStudio includes behavioral annotations on components and connectors using either finite state processes (FSP) or linear hybrid automata (LHA) with plug-ins to perform behavior analysis using the Labeled Transition System Analyzer (LTSA) or Polyhedral Hybrid Automata Verifier (PHAVer), respectively. The CPS architectural style and analysis plug-ins are illustrated with an example.

49 citations


Book ChapterDOI
10 Jun 2009
TL;DR: It is argued that self-adaptation can be improved by adopting an anticipatory approach in which predictions are used to inform adaptation strategies and it is shown how such an approach can be incorporated into an architecture-based adaptation framework and the benefits of the approach.
Abstract: An increasingly important concern for modern systems design is how best to incorporate self-adaptation into systems so as to improve their ability to dynamically respond to faults, resource variation, and changing user needs. One promising approach is to use architectural models as a basis for monitoring, problem detection, and repair selection. While this approach has been shown to yield positive results, current systems use a reactive approach: they respond to problems only when they occur. In this paper we argue that self-adaptation can be improved by adopting an anticipatory approach in which predictions are used to inform adaptation strategies. We show how such an approach can be incorporated into an architecture-based adaptation framework and demonstrate the benefits of the approach.

44 citations


Proceedings ArticleDOI
16 May 2009
TL;DR: A tool is demonstrated to enable architects to describe evolution paths, associate properties with elements of the paths, and perform tradeoff analysis over these paths.
Abstract: Architecture evolution is a key feature of most software systems. There are few tools that help architects plan and execute these evolutionary paths. We demonstrate a tool to enable architects to describe evolution paths, associate properties with elements of the paths, and perform tradeoff analysis over these paths.

36 citations


Proceedings Article
01 Jan 2009
TL;DR: An architecture based on Service-Oriented Architectures that is applied in the domain of socio-cultural information analysis to convert large bodies of unstructured data to human-usable knowledge is reported on.
Abstract: An emergent domain that raises some unique engineering challenges is that of software architectures to convert large bodies of unstructured data to human-usable knowledge, such as in the domain of socio-cultural information analysis. We report on an architecture based on Service-Oriented Architectures that we are applying in this domain. We list the requirements that such an architecture must support, describe our architecture for addressing them, and outline what we believe are the important engineering and research issues that must still be overcome.

22 citations


Proceedings ArticleDOI
17 May 2009
TL;DR: This paper argues that architecture evolution must be engineered — based on rational decisions that are supported by formal models and objective analyses, and presents a conceptual framework in which an architecture evolutionary trajectory is modeled as a sequence of steps, each captured by an operator.
Abstract: Architecture evolution, a key aspect of software evolution, is typically done in an ad hoc manner, guided only by the competence of the architect performing it. This process lacks the rigor of an engineering discipline. In this paper, we argue that architecture evolution must be engineered — based on rational decisions that are supported by formal models and objective analyses. We believe that evolutions of a restricted form — close-ended evolution, where the starting and ending design points are known a priori — are amenable to being engineered. We discuss some of the key challenges in engineering close-ended evolution. We present a conceptual framework in which an architecture evolutionary trajectory is modeled as a sequence of steps, each captured by an operator. The goal of our framework is to support exploration and objective evaluation of different evolutionary trajectories. We conclude with open research questions in developing this framework.

20 citations


Book ChapterDOI
14 Sep 2009
TL;DR: This paper improves on existing practice through an approach in which adaptations can be preempted to allow for other time-critical adaptations to be scheduled, based on an algorithm that maximizes time-related utility for a set of concurrently executing adaptations.
Abstract: One common approach to self-adaptive systems is to incorporate a control layer that monitors a system, supervisorily detects problems, and applies adaptation strategies to fix problems or improve system behavior. While such approaches have been found to be quite effective, they are typically limited to carrying out a single adaptation at a time, delaying other adaptations until the current one finishes. This in turn leads to a problem in which a time-critical adaptation may have to wait for an existing long-running adaptation to complete, thereby missing a window of opportunity for that adaptation. In this paper we improve on existing practice through an approach in which adaptations can be preempted to allow for other time-critical adaptations to be scheduled. Scheduling is based on an algorithm that maximizes time-related utility for a set of concurrently executing adaptations.

18 citations


Proceedings ArticleDOI
16 May 2009
TL;DR: The SEAMS workshop series consolidates the interests in the software engineering community on self-adaptive and self-managing systems and provides a forum for researchers to share new results, raise awareness, and promote collaboration.
Abstract: With the rapid growth of web services and the continuous evolution from software-intensive systems to socio-technical ecosystems, the management of modern computing systems with many uncertainties in their environments presents significant challenges and risks for businesses. End-users increasingly demand software systems that are resilient, dependable, fault-tolerant, energy-efficient, or self-healing. One of the most promising approaches to engineering these properties is to equip software systems with feedback control to address the management of inherent system dynamics. The resulting self-adapting and self-managing computing systems are better able to cope with and even accommodate changing contexts and environments, shifting requirements, and computing-on-demand needs. The SEAMS workshop series consolidates the interests in the software engineering community on self-adaptive and self-managing systems. SEAMS provides a forum for researchers to share new results, raise awareness, and promote collaboration. SEAMS 2009 builds on the success of the SEAMS ICSE workshops of 2008 in Leipzig, Germany, 2007 in Minneapolis, USA, and 2006 in Shanghai, China.

01 Jan 2009
TL;DR: The nature of software systems has changed dramatically since the earlier article was published, but the challenge of architectural mismatch remains an important concern for the software engineering field.

Proceedings ArticleDOI
16 May 2009
TL;DR: RAIDE enables adaptation engineers to customize the Rainbow framework, simulate adaptation behavior, and deploy Rainbow run-time components.
Abstract: Rainbow is an approach for engineering self-adaptive systems, with run-time, closed-loop control over target systems to monitor, detect, decide, and act on opportunities for system improvement. RAIDE enables adaptation engineers to customize the Rainbow framework, simulate adaptation behavior, and deploy Rainbow run-time components.

Journal ArticleDOI
TL;DR: This paper develops a framework for architecture-based software evolution planning for the class of deterministic evolution plans by defining and relating various essential concepts and developing its valuation Mechanism so that a plan with the greatest value among candidate plans can be selected as an optimal plan.
Abstract: Software architecture allows us to make many decisions about a software system and analyze it even before it exists in order to make systematic and planned development possible. Similarly, architecture-based software evolution planningmakes planned evolution possible by allowing us to make many decisions about evolution of a software system and analyze its evolution at the level of architecture design before software evolution is realized. In this paper, we develop a framework for architecture-based software evolution planning for the class of deterministic evolution plans by defining and relating various essential concepts and developing its valuationmechanism so that a plan with the greatest value among candidate plans can be selected as an optimal plan. A case study is conducted for explicating the framework and exemplifying its usage.


ReportDOI
01 Jul 2009
TL;DR: A technique for analyzing architectural models that exhibit probabilistic behavior is presented and the systemic properties that can be identified through this form of analysis are discussed.
Abstract: : The concepts and technique that underlie architectural analysis are well understood in the research community. However, many of these approaches do not incorporate uncertainty into their techniques. This forces the architect to specify precisely properties that are not well defined or to analyze the system qualitatively, providing an imprecise representation of the properties the system will exhibit. This paper presents a technique for analyzing architectural models that exhibit probabilistic behavior and discusses the systemic properties that can be identified through this form of analysis.