Results 1 - 10
of
168
Architecture-based runtime software evolution
, 1998
"... Continuous availability is a critical requirement for an important class of software systems. For these systems, runtime system evolution can mitigate the costs and risks associated with shutting down and restarting the system for an update. We present an architecture-based approach to runtime softw ..."
Abstract
-
Cited by 185 (16 self)
- Add to MetaCart
Continuous availability is a critical requirement for an important class of software systems. For these systems, runtime system evolution can mitigate the costs and risks associated with shutting down and restarting the system for an update. We present an architecture-based approach to runtime software evolution and highlight the role of software connectors in supporting runtime change. An initial implementation of a tool suite for supporting the runtime modification of software architectures, called ArchStudio, is presented. 1
Dynamic structure in software architectures
- In Proceedings of the Fourth ACM SIGSOFT Symposium on the Foundations of Software Engineering
, 1996
"... Much of the recent work on Architecture Description Languages (ADL) has concentrated on specifying organisations of components and connectors which are static. When the ADL specification is used to drive system construction, then the structure of the resulting system in terms of its component instan ..."
Abstract
-
Cited by 182 (5 self)
- Add to MetaCart
Much of the recent work on Architecture Description Languages (ADL) has concentrated on specifying organisations of components and connectors which are static. When the ADL specification is used to drive system construction, then the structure of the resulting system in terms of its component instances and their interconnection is fixed. This paper examines ADL features which permit the description of dynamic software architectures in which the organisation of components and connectors may change during system execution. The paper outlines examples of language features which support dynamic structure. These examples are taken from Darwin, a language used to describe distributed system structure. An operational semantics for these features is presented in the n-calculus, together with a discussion of their advantages and limitations. The paper discusses some general approaches to dynamic architecture description suggested by these examples. 1
Structuring Parallel and Distributed Programs
- Software Engineering Journal
, 1993
"... The paper presents a structuring language, The paper presents a structuring language, Darwin Darwin , which allows distributed , which allows distributed and parallel programs to be structured in terms of groups of process instances and parallel programs to be structured in terms of groups of proces ..."
Abstract
-
Cited by 90 (10 self)
- Add to MetaCart
The paper presents a structuring language, The paper presents a structuring language, Darwin Darwin , which allows distributed , which allows distributed and parallel programs to be structured in terms of groups of process instances and parallel programs to be structured in terms of groups of process instances which communicate by message passing. In addition to expressing static which communicate by message passing. In addition to expressing static structure, Darwin can be used to express structures which change dynamically structure, Darwin can be used to express structures which change dynamically as execution progresses. The paper presents a set of examples illustrating the as execution progresses. The paper presents a set of examples illustrating the use of Darwin in constructing parallel programs. Since processes can be use of Darwin in constructing parallel programs. Since processes can be considered to be an abstraction of physical processors, Darwin can also be used considered...
An Infrastructure for the Rapid Development of XML-based Architecture Description Languages
- In Proceedings of the 24th International Conference on Software Engineering (ICSE2002
, 2002
"... Research and experimentation in software architectures over the past decade have yielded a plethora of software architecture description languages (ADLs). Continuing innovation indicates that it is reasonable to expect more new ADLs, or at least ADL features. This research process is impeded by the ..."
Abstract
-
Cited by 81 (13 self)
- Add to MetaCart
Research and experimentation in software architectures over the past decade have yielded a plethora of software architecture description languages (ADLs). Continuing innovation indicates that it is reasonable to expect more new ADLs, or at least ADL features. This research process is impeded by the difficulty and cost associated with developing new notations. An architect in need of a unique set of modeling features must either develop a new architecture description language from scratch or undertake the daunting task of modifying an existing language. In either case, it is unavoidable that a significant effort will be expended in building or adapting tools to support the language. To remedy this situation, we have developed an infrastructure for the rapid development of new architecture description languages. Key aspects of the infrastructure are its XML-based modular extension mechanism, its base set of reusable and customizable architectural modeling constructs, and its equally important set of flexible support tools. This paper introduces the infrastructure and demonstrates its value in the context of several real-world applications.
Methodical Analysis of Adaptive Load Sharing Algorithms
- IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS
, 1992
"... This paper presents a method for qualitative and quantitative analysis of load sharing algorithms, using a number of well known examples as illustration. Algorithm design choices are considered with respect to the main activities of information dissemination and allocation decision making. We argue ..."
Abstract
-
Cited by 67 (2 self)
- Add to MetaCart
This paper presents a method for qualitative and quantitative analysis of load sharing algorithms, using a number of well known examples as illustration. Algorithm design choices are considered with respect to the main activities of information dissemination and allocation decision making. We argue that nodes must be capable of making local decisions, and for this efficient state dissemination techniques are necessary. Activities related to remote execution should be bounded and restricted to a small proportion of the activity in the system. The quantitative analysis provides both performance and efficiency measures, including consideration of the load and delay characteristics of the environment. To assess stability, which is also a precondition for scalability,we introduce and measure load sharing hit-ratio, the ratio of remote execution requests concluded successfully. Using our analysis method, we are able to suggest improvements to some published algorithms.
A Formal Framework for On-line Software Version Change
- IEEE Transactions on Software Engineering
, 1996
"... The usual way of installing a new version of a software system is to shut down the running program and then install the new version. This necessitates a sometimes unacceptable delay during which service is denied to the users of the software. An on-line software replacement system replaces parts of ..."
Abstract
-
Cited by 66 (1 self)
- Add to MetaCart
The usual way of installing a new version of a software system is to shut down the running program and then install the new version. This necessitates a sometimes unacceptable delay during which service is denied to the users of the software. An on-line software replacement system replaces parts of the software while it is in execution, thus eliminating the shutdown. While a number of implementations of on-line version change systems have been described in the literature, little investigation has been done on its theoretical aspects. In this paper, we describe a formal framework for studying on-line software version change. We give a general definition of validity of an on-line change, show that it is in general undecidable and then develop sufficient conditions for ensuring validity for a procedural language. Keywords--- On-line software version change, validity of change, process, state, reachable state, data flow analysis, functional enhancement I. Introduction It is now well kno...
Self-Organising Software Architectures for Distributed Systems
, 2002
"... A self-organising software architecture is one in which components automatically configure their interaction in a way that is compatible with an overall architectural specification. The objective is to minimise the degree of explicit management necessary for construction and subsequent evolution whi ..."
Abstract
-
Cited by 65 (5 self)
- Add to MetaCart
A self-organising software architecture is one in which components automatically configure their interaction in a way that is compatible with an overall architectural specification. The objective is to minimise the degree of explicit management necessary for construction and subsequent evolution whilst preserving the architectural properties implied by its specification. This paper examines the feasibility of using architectural constraints as the basis for the specification, design and implementation of self-organising architectures for distributed systems. Although we focus on organising the structure of systems, we show how component state can influence reconfiguration via interface attributes.
Highly Reliable Upgrading of Components
- In Proceedings of the 21st International Conference on Software Engineering
, 1999
"... After a system is deployed, fixes, enhancements, and modifications all occur that change the components that make up the system. Unfortunately, new versions of components can introduce new errors and break existing, depended-upon behavior. When this happens, the old component version could have prov ..."
Abstract
-
Cited by 53 (6 self)
- Add to MetaCart
After a system is deployed, fixes, enhancements, and modifications all occur that change the components that make up the system. Unfortunately, new versions of components can introduce new errors and break existing, depended-upon behavior. When this happens, the old component version could have provided the correct behavior, but it is no longer part of the system. We propose a framework for upgrading system components that, instead of removing the old version of the component, keeps multiple versions of a component running. Doing so allows behavior to be utilized from all versions, and maintains system integrity and correctness even in the presence of newly introduced errors. This framework ensures that the move towards dynamic, configurable software systems does not lessen, but rather provides capabilities to enhance, the reliability that software will achieve through the next century. 1 INTRODUCTION Users fear upgrades. This unfortunate but true statement reflects the current para...
Towards Architecture-Based Self-Healing Systems
- In Proceedings of the first workshop on Self-healing systems
, 2002
"... Our approach to creating self-healing systems is based on software architecture, where repairs are done at the level of a software system’s components and connectors. In our approach, event-based software architectures are targeted because they offer significant benefits for run-time adaptation. Bef ..."
Abstract
-
Cited by 51 (4 self)
- Add to MetaCart
Our approach to creating self-healing systems is based on software architecture, where repairs are done at the level of a software system’s components and connectors. In our approach, event-based software architectures are targeted because they offer significant benefits for run-time adaptation. Before an automated planning agent can decide how to repair a self-healing system, a significant infrastructure must be in place to support making the planned repair. Specifically, the self-healing system must be built using a framework that allows for run-time adaptation, there must be a language in which to express the repair plan, and there must be a reconfiguration agent that can execute the repair plan once it is created. In this paper, we present tools and methods that implement these infrastructure elements in the context of an overall architecture-based vision for building self-healing systems. The paper concludes with a gap analysis of our current infrastructure vs. the overall vision, and our plans for fulfilling that vision. 1.

