Configuration management for highly-customizable services

The recent surge of configurable operating systems, database systems, and communication subsystems has demonstrated the importance of customization. Customization has a number of advantages, most notably performance improvements, code reuse, and meeting the quality of service requirements of the system users. One typical approach for constructing such services is to implement the service functionality as separate modules that can be configured in different combinations. Typically, ad hoc methods are used to determine which modules may be combined. Such methods require a system configurer to have intimate knowledge about the modules and their interactions or the configuration will not behave as expected. We present a methodology for configuring custom variants of configurable services. The methodology is based on identifying the relations between software modules that dictate which combinations are correct and providing configuration support tools that allow only correct configurations to be created.

[1]  Mary Shaw,et al.  Abstractions for Software Architecture and Tools to Support Them , 1995, IEEE Trans. Software Eng..

[2]  Gul A. Agha,et al.  Concurrent object-oriented programming , 1993, CACM.

[3]  Edward H. Bersoff,et al.  Software Configuration Management , 1978, SIGMETRICS Perform. Evaluation Rev..

[4]  Don S. Batory,et al.  GENESIS: An Extensible Database Management System , 1988, IEEE Trans. Software Eng..

[5]  Santosh K. Shrivastava,et al.  An overview of the Arjuna distributed programming system , 1991, IEEE Software.

[6]  Silvano Maffeis Design and implementation of a configurable mixed-media file system , 1994, OPSR.

[7]  James M. Purtilo,et al.  The POLYLITH software bus , 1994, TOPL.

[8]  Richard D. Schlichting,et al.  A system for constructing configurable high-level protocols , 1995, SIGCOMM '95.

[9]  Larry L. Peterson,et al.  The x-Kernel: An Architecture for Implementing Network Protocols , 1991, IEEE Trans. Software Eng..

[10]  Matti A. Hiltunen,et al.  Constructing a configurable group RPC service , 1995, Proceedings of 15th International Conference on Distributed Computing Systems.

[11]  Robbert van Renesse,et al.  Horus: a flexible group communication system , 1996, CACM.

[12]  Michael Stonebraker,et al.  The design of POSTGRES , 1986, SIGMOD '86.

[13]  Darlene A. Stewart,et al.  Commercial realtime software needs different configuation management , 1989, SCM.

[14]  Karsten Schwan,et al.  Adaptive, Reliable Software for Distributed and Parallel Real-Time Systems , 1987, SRDS.

[15]  Shivakant Mishra,et al.  Consul: a communication substrate for fault-tolerant distributed programs , 1993, Distributed Syst. Eng..

[16]  Judith Bishop,et al.  Connectors in configuration programming languages: are they necessary? , 1996, Proceedings of International Conference on Configurable Distributed Systems.

[17]  Michael N. Nelson,et al.  Extensible file systems in spring , 1994, SOSP '93.

[18]  John S. Heidemann,et al.  Performance of cache coherence in stackable filing , 1995, SOSP.

[19]  Matti Aarno Hiltunen,et al.  Configurable fault-tolerant distributed services , 1996 .

[20]  John S. Heidemann,et al.  File-system development with stackable layers , 1994, TOCS.

[21]  Richard A. Golding,et al.  Weak-consistency group communication and membership , 1992 .

[22]  Sam Toueg,et al.  Unreliable failure detectors for reliable distributed systems , 1996, JACM.

[23]  Douglas C. Schmidt,et al.  ADAPTIVE: A dynamically assembled protocol transformation, integration and evaluation environment , 1993, Concurr. Pract. Exp..

[24]  Hamid Pirahesh,et al.  Extensibility in the Starburst Database System , 1986, OODBS.

[25]  Dawson R. Engler,et al.  Exokernel: an operating system architecture for application-level resource management , 1995, SOSP.

[26]  Calton Pu,et al.  The Synthesis Kernel , 1988, Comput. Syst..

[27]  Brian N. Bershad,et al.  Extensibility safety and performance in the SPIN operating system , 1995, SOSP.

[28]  Naranker Dulay,et al.  Regis: a constructive development environment for distributed programs , 1994, Distributed Syst. Eng..

[29]  Calton Pu,et al.  Quaject composition in the Synthesis kernel , 1991, Proceedings 1991 International Workshop on Object Orientation in Operating Systems.

[30]  Matti A. Hiltunen,et al.  Coyote: a system for constructing fine-grain configurable communication services , 1998, TOCS.