Dewayne E. Perry. Abstract. An important ingredient in meeting today's market demands

Similar documents
Parametric and provisioning approaches are again obviously useful for various

Originating Port. Switch Fabric. Destination Port

Dewayne E. Perry. Abstract. Much of the work in conguration management has addressed

Global Scheduler. Global Issue. Global Retire

Technische Universitat Munchen. Institut fur Informatik. D Munchen.

Natural Semantics [14] within the Centaur system [6], and the Typol formalism [8] which provides us with executable specications. The outcome of such

Enhancing Integrated Layer Processing using Common Case. Anticipation and Data Dependence Analysis. Extended Abstract

and easily tailor it for use within the multicast system. [9] J. Purtilo, C. Hofmeister. Dynamic Reconguration of Distributed Programs.

compute event display

Constraint Objects. Abstract. We describe the Constraint Object Data Model (CODM),

Why Consider Implementation-Level Decisions in Software Architectures?

Architectural Design Rewriting as Architectural Description Language

Assignment 4. Overview. Prof. Stewart Weiss. CSci 335 Software Design and Analysis III Assignment 4

User Interface Modelling Based on the Graph Transformations of Conceptual Data Model

On the Role of Connectors in Modeling and Implementing Software Architectures

Towards Software Architecture at Runtime

Using Architectural Models at Runtime: Research Challenges

Software Component Relationships. Stephen H. Edwards. Department of Computer Science. Virginia Polytechnic Institute and State University

Software Architectures

A SIMULATION ARCHITECTURE DESCRIPTION LANGUAGE FOR HARDWARE-IN-LOOP SIMULATION OF SAFETY CRITICAL SYSTEMS

Stackable Layers: An Object-Oriented Approach to. Distributed File System Architecture. Department of Computer Science

SCR*: A Toolset for Specifying and. Analyzing Software Requirements? Constance Heitmeyer, James Kirby, Bruce Labaw and Ramesh Bharadwaj

Handling Multiple Instances of Symbols in. Pictorial Queries by Image Similarity

Steering. Stream. User Interface. Stream. Manager. Interaction Managers. Snapshot. Stream

Adaptive Methods for Distributed Video Presentation. Oregon Graduate Institute of Science and Technology. fcrispin, scen, walpole,

On-Line Software Version Change Using State. Transfer Between Processes. Deepak Gupta. Pankaj Jalote. Department of Computer Science and Engineering

Outline. Computer Science 331. Information Hiding. What This Lecture is About. Data Structures, Abstract Data Types, and Their Implementations

Khoral Research, Inc. Khoros is a powerful, integrated system which allows users to perform a variety

Shigeru Chiba Michiaki Tatsubori. University of Tsukuba. The Java language already has the ability for reection [2, 4]. java.lang.

Thunks (continued) Olivier Danvy, John Hatcli. Department of Computing and Information Sciences. Kansas State University. Manhattan, Kansas 66506, USA

1. Discovering Important Nodes through Graph Entropy The Case of Enron Database

Reinforcement Control via Heuristic Dynamic Programming. K. Wendy Tang and Govardhan Srikant. and

Software Architecture and Design I

A taxonomy of race. D. P. Helmbold, C. E. McDowell. September 28, University of California, Santa Cruz. Santa Cruz, CA

Internet Performance and Reliability Measurements

2 Texts and Text Styles The texts considered for generation in the current stage of the AGILE project are simplied versions of routine passages occurr

KeyNote: Trust Management for Public-Key. 180 Park Avenue. Florham Park, NJ USA.

Proc. XVIII Conf. Latinoamericana de Informatica, PANEL'92, pages , August Timed automata have been proposed in [1, 8] to model nite-s

Centre for Parallel Computing, University of Westminster, London, W1M 8JS

DAVID M. MALON, EDWARD N. MAY. University of Illinois at Chicago Chicago, IL, USA. Lawrence Berkeley National Laboratory Berkeley, CA, USA

Capturing Design Expertise in Customized Software Architecture Design Environments

Capturing Product Line Architectures

i=1 i=2 i=3 i=4 i=5 x(4) x(6) x(8)

Reid Baldwin and Moon Jung Chung. Michigan State University. unit (task) in a owmap has input and output ports indicating

ARQo: The Architecture for an ARQ Static Query Optimizer

Automatic Code Generation for Non-Functional Aspects in the CORBALC Component Model

MaDcAr: an Abstract Model for Dynamic and Automatic (Re-)Assembling of Component-Based Applications

Abstract. provide substantial improvements in performance on a per application basis. We have used architectural customization

The Design of an Open System with. Distributed Real-Time Requirements. Abstract

Predicting Architectural Styles from Component Specification

Solve the Data Flow Problem

TEMPORAL AND SPATIAL SEMANTIC MODELS FOR MULTIMEDIA PRESENTATIONS ABSTRACT

University of Utrecht. 1992; Fokker, 1995), the use of monads to structure functional programs (Wadler,

Truth vs Knowledge: The Difference Between What a Component Does and What We Know It Does

reasonable to store in a software implementation, it is likely to be a signicant burden in a low-cost hardware implementation. We describe in this pap

Implementing Architectures

JOURNAL OF OBJECT TECHNOLOGY

Techniques. IDSIA, Istituto Dalle Molle di Studi sull'intelligenza Articiale. Phone: Fax:

Reusing Off-the-Shelf Components to Develop a Family of Applications in the C2 Architectural Style

The Avalanche Myrinet Simulation Package. University of Utah, Salt Lake City, UT Abstract

Visualisation of ATM network connectivity and. topology.

1 From Distributed Objects to Distributed Components

Meta Architecting: Towered a New Generation of Architecture Description Languages

An Editor for the Rapid Prototyping of. Cadlab, Fuerstenalle 11, Paderborn, Germany

Flight Systems are Cyber-Physical Systems

Power Functions and Their Use In Selecting Distance Functions for. Document Degradation Model Validation. 600 Mountain Avenue, Room 2C-322

UMIACS-TR December, CS-TR-3192 Revised April, William Pugh. Dept. of Computer Science. Univ. of Maryland, College Park, MD 20742

SAMOS: an Active Object{Oriented Database System. Stella Gatziu, Klaus R. Dittrich. Database Technology Research Group

Two Image-Template Operations for Binary Image Processing. Hongchi Shi. Department of Computer Engineering and Computer Science

A Multidatabase Platform to Support. Prototyping Environments. Omar Boucelma, Jean-Claude Franchitti, and Roger King.

KNOWLEDGE-BASED MULTIMEDIA ADAPTATION DECISION-TAKING

Derivation of Feature Component Maps by means of Concept Analysis

highest cosine coecient [5] are returned. Notice that a query can hit documents without having common terms because the k indexing dimensions indicate

Brouillon d'article pour les Cahiers GUTenberg n?? February 5, xndy A Flexible Indexing System Roger Kehr Institut fur Theoretische Informatik

DBMS Environment. Application Running in DMS. Source of data. Utilization of data. Standard files. Parallel files. Input. File. Output.

Super-Key Classes for Updating. Materialized Derived Classes in Object Bases

Reducing the collision probability of Alleged. Abstract. Wagner, Goldberg and Briceno have recently published an

Transport protocols are of practical. login, le transfer, and remote procedure. calls. will operate on and therefore are generally

Workshops. 1. SIGMM Workshop on Social Media. 2. ACM Workshop on Multimedia and Security

Architecture Viewpoint Template for ISO/IEC/IEEE 42010

Reuse of Off-the-Shelf Constraint Solvers in C2-Style Architectures

However, no results are published that indicate the applicability for cycle-accurate simulation purposes. The language RADL [12] is derived from earli

Network. Department of Statistics. University of California, Berkeley. January, Abstract

Software Connectors and Refinement in Family Architectures

Effects of Technology Mapping on Fault Detection Coverage in Reprogrammable FPGAs

Submitted to the 11th International Symposium on Visual Languages, Darmstadt, Germany, September David Wetherall

Localization in Graphs. Richardson, TX Azriel Rosenfeld. Center for Automation Research. College Park, MD

COMPOSABILITY, PROVABILITY, REUSABILITY (CPR) FOR SURVIVABILITY

Using Z as a Substrate for an Architectural Style Description Language 1. September 17, Technical Report CS

Siemens TREC-4 Report: Further Experiments with Database. Merging. Ellen M. Voorhees. Siemens Corporate Research, Inc.

Two Problems - Two Solutions: One System - ECLiPSe. Mark Wallace and Andre Veron. April 1993

The Mobility Workbench User's Guide. Polyadic version Bjorn Victor. October 9, Introduction 2. 2 Input syntax 2

Timer DRAM DDD FM9001 DRAM

Construction of Application Generators Using Eli. Uwe Kastens, University of Paderborn, FRG. Abstract

Introduction to Modeling

Dynamic Software Evolution and The K-Component Model

Constraint-based Generation of Connectors

Using semantic causality graphs to validate MAS models

Describing the architecture: Creating and Using Architectural Description Languages (ADLs): What are the attributes and R-forms?

Digital Archives: Extending the 5S model through NESTOR

Transcription:

Maintaining Consistent, Minimal Congurations Dewayne E. Perry Software Production Research, Bell Laboratories 600 Mountain Avenue, Murray Hill, NJ 07974 USA dep@research.bell-labs.com Abstract. An important ingredient in meeting today's market demands is the ability to respond quickly to a customer's changing needs. One way of responding to this pressure is to capitalize ones' software assets by means of generic, domain specic, or product line architectures. Within that context, an extremely important aspect of meeting those changing needs is the ability to dynamically recongure a system rather than resorting to the current individual customization. Given cost pressures, it is useful to be able to do this reconguration as eciently as possible, loading and keeping only what is needed. We provide algorithms for adding only the minimal and removing the maximal sets of components. We also note that in addition to semantic consistency of congurations, we must now also consider the architectural consistency of the evolving congurations. 1 Introduction and Context One of the major trends in building modern software{based systems is that of domain{specic, generic, or product{line architectures [1]. The underlying reason for this trend is the need to capitalize on both hardware and software assets. Dening a generic, domain{specic, or product{line architecture enables the developers to dene both the range of products buildable from that architectural style [10] and the assets needed for their implementations. These assets are divided into three kinds: those which are unique to each architectural instance, those for which the implementation is shared across all architectural instances and those for which the shape is shared across all architectural instances. In the last case, it is the denition of the component's interface and behavior that is important even though its implementations may vary from instance to instance. It is this set of components with which we build the various architectural instances. In this paper we look specically at aspects of a generic architecture and consider the range of the parameters that are needed within the applicable range of products. Currently each product is built individually according to customer specications. When the customer's needs change and the specic products need to be changed to reect those changes in requirements, a new product has to be built for those altered specications.

The goal, then, is to build a generic set of products each of which maybe individualized according to customer requirements and altered dynamically as customer needs change. From the hardware point of view, the various interchangeable components must be standardized and plug compatible. From the software point of view, there are two interdependent things needed to achieve this goal: dynamic (re{)conguration and a distribution independent generic software architecture. Underlying both of these is the need for an object request broker (ORB) [6]. An ORB provides the necessary substrate for dynamically changing the software conguration: the new components can be dynamically registered to replace those components that are no longer used. The ORB also provides us with the means of making our architecture distribution independent since it hides the locations of the various components and acts as the intermediary in the communication among the various software components. An important consideration in implementing dynamic (re{)conguration is the system cost. To keep these costs as competitive as possible the hardware components will be those that are just sucient to support the software driving the products. This means that, among other things, that system storage space is likely to be limited to just that needed for each class of instances in the generic architecture. Because of this storage limitation we cannot aord to accumulate software components that have been replaced in reconguring the system and thus are no longer used. We need a way to maintain a conguration of only those components that are needed for the current conguration. Moreover, to minimize the time needed for dynamic reconguration, we want to load only those components that are needed but not already available in the system. In the remainder of the paper, we present the algorithms for removing components no longer needed and for loading only those components that are not already present in the current conguration. In short, we present a way of maintaining the minimal conguration for any dened set of architectural components. We also note that in addition to the necessity of maintaining the semantic consistency of the new conguration we must maintain the architectural consistency. Finally, we summarize the results of our work. 2 Minimal Congurations The basis for both the addition and removal of recongured components is a dependency graph. We rst discuss the dependencies that we exploit and then present the minimal addition of components for reconguration and the maximal removal of components not longer in the new conguration. 2.1 Component Dependencies Let the set Comp be the set of all components that can possibly be used to construct an architectural instance of our generic architecture. The set Dep is a

set of tuples (a; b) where a 2 Compandb 2 Comp that is, a is dependent on b.thus, Dep is the subset of Comp Comp that represents the dependencies of each element incomp. For example, in a system built using C, the dependencies are dened by the #include statements. Let TC(ci) where ci 2 Comp be the transitive closure of ci in Dep that is, TC(ci) is the transitive closure of dependencies dened in Dep beginning with component ci. For convenience, let us consider the set of basic architectural components, AComp, as bases for dening congurations. Since they are in Comp and their dependencies are dened in Dep, we suer no loss of generality in the ensuing discussion. An architecture conguration AC is a set fac1:::acng where aci 2 AComp that is, a conguration is a set of architectural components. A build conguration BC is the union of the transitive closures of each element in an architectural conguration BC(AC) = S n i=1 TC(aci) where aci 2 AC 2.2 Minimal Addition Given an architectural conguration Current and a new architectural conguration New to be added to conguration Current, the following is the algorithm for determining the minimal set of components to dynamically add to the existing system. Note that the addition of a single component reduces to an architectural conguration with one element. M inimumadd = BC(N ew), BC(Current) Current = Current [ New Thus, M inimumadd is the set of components that are needed in the new build conguration determined by the architectural conguration New that are not already in the build conguration determined by Current. 2.3 Maximal Removal Given an architectural conguration Current and an architectural conguration Remove to be removed from the conguration Current, the following is the algorithm for determining the maximal set of components to dynamically remove from the existing system. Note that the removal of a single component reduces to an architectural conguration with one element. M aximalremove = BC(Remove), BC(Current, Remove) Current = Current, Remove Thus, M aximalremove is the set of components that are no longer needed in the build conguration determined by the architectural conguration Current, Remove.

2.4 Replacement For replacing one architectural conguration for another, simply do the addition rst to get the minimal set of build components to add to the system and the removal second. This ordering of operations is needed to avoid removing and adding the same component. 3 Architectural Consistency In previous work, we concentrated on the semantic consistency of building and evolving congurations from components [7] [8] [9]. In addition to having to reason about the semantic consistency of the dynamic recongurations, we must also reason about the architectural consistency of the instances with respect to the specied generic architecture. Perry and Wolf [10] proposed a model for software architecture that we use to consider the notion of consistency between a generic architecture and its various instances. Software Architecture = f Elements, Form, Rationale g Architectural elements are either processing, data or connecting elements; the form species the properties and relationships of and among these elements; and the rationale provides the justication for both the set of elements and the form of the architecture. We consider a generic architecture to be an architectural style that is it is an abstraction from a set of specic architectures. A typical approach in dening an architectural style abstracts various kinds of elements by dening their properties and relationships. We note the following dierent kinds of formal aspects that may be used to dene an architectural style: { properties of individual elements { relationships among elements { constraints on properties { constraints on relationships It is these properties, relationships and constraints that must be maintained by each instance of the desired generic architecture. Some examples of work that utilizes constraints for various forms of reasoning about architectures are [5] [2] [3] [4]. 4 Summary We have provided an approach that minimizes the components that must be added and maximizes the components to be removed in evolving a conguration dynamically. The current implementation consists of the use of shell scripts and

the sort and join operations. This approach is not very eecient but for the time being works quite satisfactorily. Should a more ecient approach be needed, we have the design for an approach in which we generate a set of programs that are then compiled and executed. References 1. David Garlan and Dewayne E. Perry. \Introduction to the Special Issue on Software Architecture", IEEE Transactions on Software Engineering, 21:4 (April 1995). 2. Je Magee and Je Kramer. \Dynamic Structure in Software Architectures", Proceedings Engineering, San Francisco, CA, October 1996. pp. 3-14 3. Daniel Le Metayer. \Software Architecture Styles as Graph Grammars", Proceedings Engineering, San Francisco, CA, October 1996. pp. 15-23 4. Nenad Medvidovic, Payman Oreizy, Jason E. Roberts and Richard N. Taylor. \Using Object{Oriented Typing to Support Architectural Design in the C2 Style", Proceedings Engineering, San Francisco, CA, October 1996. pp. 24-32. 5. Naftaly H. Minsky. \Law{governed systems", The IEE Software Engineering Journal, September 1991. 6. Object Management Group. \The Common Object Request Broker: Architecture and Specication", Revision 2.0, July 1995, available from http:www.omg.orgcorbask.htm. 7. Dewayne E. Perry. \Software Interconnection Models", Proceedings of the 9th International Conference on Software Engineering, Monterey, CA, March 1987. pp 61-69. 8. Dewayne E. Perry. \Version Control in the Inscape Environment", Proceedings of the 9th International Conference on Software Engineering, March 30 - April 2, 1987, Monterey CA. 9. Dewayne E. Perry, \System Compositions and Shared Dependencies", Proceedings of the ICSE'96 SCM{6 Workshop, Berlin Germany, March 1996. 10. Dewayne E. Perry and Alexander L. Wolf. \Foundations for the Study of Software Architecture", ACM SIGSOFT Software Engineering Notes, 17:4 (October 1992). This article was processed using the LaT E X macro package with LLNCS style