Results 1 - 10
of
35
Specifying Distributed Software Architectures
, 1995
"... There is a real need for clear and sound design specifications of distributed systems at the architectural level. This is the level of the design which deals with the high-level organisation of computational elements and the interactions between those elements. The paper presents the Darwin notation ..."
Abstract
-
Cited by 312 (21 self)
- Add to MetaCart
There is a real need for clear and sound design specifications of distributed systems at the architectural level. This is the level of the design which deals with the high-level organisation of computational elements and the interactions between those elements. The paper presents the Darwin notation for specifying this high-level organisation. Darwin is in essence a declarative binding language which can be used to define hierarchic compositions of interconnected components. Distribution is dealt with orthogonally to system structuring. The language supports the specification of both static structures and dynamic structures which may evolve during execution. The central abstractions managed by Darwin are components and services. Services are the means by which components interact. In addition to its use in specifying the architecture of a distributed system, Darwin has an operational semantics for the elaboration of specifications such that they may be used at runtime to di...
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
A Constructive Development Environment for Parallel and Distributed Programs
- In Proceedings of the International Workshop on Configurable Distributed Systems
, 1994
"... Regis is a programming environment aimed at supporting the development and execution of parallel and distributed programs. It embodies a constructive approach to the development of programs based on separating program structure from communication and computation. The emphasis is on constructing prog ..."
Abstract
-
Cited by 96 (12 self)
- Add to MetaCart
Regis is a programming environment aimed at supporting the development and execution of parallel and distributed programs. It embodies a constructive approach to the development of programs based on separating program structure from communication and computation. The emphasis is on constructing programs from multiple parallel computational components which cooperate to achieve the overall goal. The environment is designed to easily accommodate multiple communication mechanisms and primitives. Both the computational and communication elements of Regis programs are programmed in the Object Oriented programming language C++. The elements are combined into parallel and distributed programs using the configuration language Darwin. The paper describes programming in Regis through a set of small example programs. Keywords parallel programming, distributed programming, inter-process communication, parallel programming language, software development environment. 1. Introduction The Regis en...
Regis: A Constructive Development Environment for Distributed Programs
- Distributed Systems Engineering Journal
, 1994
"... Regis is a programming environment aimed at supporting the development and execution of distributed programs. It embodies a constructive approach to the development of programs based on separating program structure from communication and computation. The emphasis is on constructing programs from mul ..."
Abstract
-
Cited by 87 (20 self)
- Add to MetaCart
Regis is a programming environment aimed at supporting the development and execution of distributed programs. It embodies a constructive approach to the development of programs based on separating program structure from communication and computation. The emphasis is on constructing programs from multiple parallel computational components which cooperate to achieve the overall goal. The environment is designed to easily accommodate multiple communication mechanisms and primitives. Both the computational and communication elements of Regis programs are programmed in the Object Oriented programming language C++. The elements are combined into distributed programs using the configuration language Darwin. The paper describes programming in Regis through a set of small example programs drawn from the implementation of an Active Badge system. Keywords configuration programming, dynamic reconfiguration, inter-process communication, distributed programming language, software development enviro...
Dynamic Reconfiguration of Distributed Applications
, 1993
"... Applications requiring concurrency or access to specialized hardware are naturally written as distributed applications, where each software component (module) can execute on a different machine, and modules interact via bindings. In order to make changes to very long-running applications or those th ..."
Abstract
-
Cited by 32 (0 self)
- Add to MetaCart
Applications requiring concurrency or access to specialized hardware are naturally written as distributed applications, where each software component (module) can execute on a different machine, and modules interact via bindings. In order to make changes to very long-running applications or those that must be continuously available, we must dynamically change the application. Dynamic reconfiguration of a distributed application is the act of changing the configuration of the application as it executes. Examples of configuration changes are replacing a module, moving a module to another machine, and adding or removing modules from the application. The most challenging aspect of dynamic reconfiguration is that an application in execution has state information, both within the modules and within the communication channels between modules. This state information may need to be transferred from the old configuration to the new in order to reach an application state compatible with the new c...
A Dynamic Reconfiguration Service for CORBA
- In 4th Intl. Conf. on Configurable Dist. Systems
, 1998
"... Providing software qualities such as availability, adaptability and maintenability to long-running distributed applications, forms a major challenge for the configuration management of a software system. Modifications of system 's structure are expected to happen on-the-fly, to cause minimum executi ..."
Abstract
-
Cited by 31 (4 self)
- Add to MetaCart
Providing software qualities such as availability, adaptability and maintenability to long-running distributed applications, forms a major challenge for the configuration management of a software system. Modifications of system 's structure are expected to happen on-the-fly, to cause minimum execution disruption, and to be effected in a way that preserves a consistent state of the participating entities. This paper presents a novel algorithm for performing consistent dynamic reconfiguration of CORBA applications, where consistency refers to RPC integrity. The novelty of the algorithm is that it passivates the links affected by the reconfiguration, which causes the node activities that use them to block, but does not result in blocking the entire node. The consequent execution disruption is minimal, a fact that is practically verified by a performance evaluation done in a number of different reconfiguration scenarios. Keywords: Consistency, CORBA application, Dynamic Reconfiguration, E...
The Role of Software Architecture in Constraining Adaptation in Component-based Middleware Platforms
, 2000
"... . Future middleware platforms will need to be more configurable in order to meet the demands of a wide variety of application domains. Furthermore, we believe that such platforms will also need to be re-configurable, for example to enable systems to adapt to changes in the underlying systems inf ..."
Abstract
-
Cited by 31 (5 self)
- Add to MetaCart
. Future middleware platforms will need to be more configurable in order to meet the demands of a wide variety of application domains. Furthermore, we believe that such platforms will also need to be re-configurable, for example to enable systems to adapt to changes in the underlying systems infrastructure. A number of technologies are emerging to support this level of configurability and re-configurability, most notably middleware platforms based on the concepts of open implementation and reflection. One problem with this general approach is that widespread changes can often be made to the middleware platform, potentially jeopardizing the integrity of the overall system. This paper discusses the role of software architecture in maintaining the overall integrity of the system in such an environment. More specifically, the paper discusses extensions to the Aster framework to support the re-configuration of a reflective (component-based) middleware platform in a constrained m...
Distributed Application Configuration
- Proc. of 16th IEEE Intl. Conf. on Distributed Computing Systems, Hong-Kong
, 1996
"... : This paper presents Olan, a language and a run time support intended to facilitate the design, configuration and evolution of distributed applications made up of heterogeneous software components. Configuration covers two phases: for the application builder, the identification of the software comp ..."
Abstract
-
Cited by 25 (3 self)
- Add to MetaCart
: This paper presents Olan, a language and a run time support intended to facilitate the design, configuration and evolution of distributed applications made up of heterogeneous software components. Configuration covers two phases: for the application builder, the identification of the software components and the description of their interconnections and communications; for the application administrator, the accurate use of system resources provided by the target environment; for the deployment of the application on the target environment. The main benefit of Olan is to provide a single unified description of distributed applications, adequate for construction, management, and evolution. The overall description is independent from the components' implementation, so that the configuration process, e.g. the production of different versions of an implementation, is decoupled from the programming process. The features of the configuration language and the functions of the runtime support...
Implementing interactive configuration management for distributed systems
- In Proceedings of 3rd International Conference on Configurable Distributed Systems (ICCDS
, 1996
"... This paper describes an environment for interactive configuration management of the software components comprising a distributed enterprise application. The environment permits one or more managers to view and modify the structure of components in terms of component instances, their allocation to ha ..."
Abstract
-
Cited by 16 (2 self)
- Add to MetaCart
This paper describes an environment for interactive configuration management of the software components comprising a distributed enterprise application. The environment permits one or more managers to view and modify the structure of components in terms of component instances, their allocation to hardware nodes and the bindings between their interfaces. Our graphical management is based upon the Darwin configuration language which can be used to create the initial system. It supports hierarchical composition of CORBA components to form a composite distributed application or service. When this structure has been modified interactively, a persistent specification of the configuration can be saved to backing store. This can be used to determine unreachable or failed components and, if

