Configuration Management Papers


     A Framework for Analyzing Configurations of Deployable Software Systems
     Specifying the Deployable Software Description Format in XML
     A Cooperative Approach to Support Software Deployment Using the Software Dock
     A Reusable, Distributed Repository for Configuration Management Policy Programming
     Evaluating Software Deployment Languages and Schema
     Software Deployment: Extending Configuration Management Support into the Field
     Software Deployment Languages and Schema
     Software Release Management
     An Architecture for Post-Development Configuration Management in a Wide-Area Network
     The Software Dock: A Distributed, Agent-based Software Deployment System
     Software Deployment in a Wide-Area Setting Using A Distributed Agent-based Architecture
     A Generic, Peer-to-Peer Repository for Distributed Configuration Management
     Does Configuration Management Research Have a Future?


A Framework for Analyzing Configurations of Deployable Software Systems

D. Heimbigner, R.S. Hall and, A.L. Wolf

Configuring and deploying a large software system is complicated when the system is composed of components and when there are numerous possible configurations for the system. In such a scenario, it is difficult for end-users to specify and install an appropriate configuration for their specific environment. Defining all valid configurations of a software system is challenging, and can be addressed through a concise specification that can generate all of the possible configurations. The Deployable Software Description (DSD), part of the University of Colorado Software Dock project, is one such specification format. But using the DSD runs the risk that the set of generated configurations includes some that are invalid with respect to constraints defined independently of the DSD. This paper describes a framework to support the analysis of DSD specifications to help developers detect potentially invalid configurations. This analysis assumes that the system components are annotated with properties, and an analysis tool is provided that takes a specific configuration and analyzes it for conflicts with respect to some set of constraints. Using the DSD, we can enumerate and analyze configurations to verify their validity. The results can be used to modify the DSD to avoid future generation of invalid configurations.

Proceedings of the Fifth IEEE International Conference on Engineering of Complex Computer Systems (ICECCS), Las Vegas, Nevada, 18-22 October 1999

Retrieve publication as Acrobat (PDF).


Specifying the Deployable Software Description Format in XML

R.S. Hall, D. Heimbigner, and A.L. Wolf

Large network environments, such as enterprise Intranets and the Internet, have moved to the center stage in the field of software deployment. The connectivity inherent in these environments provides a new tool that deployment solutions can leverage to perform a comprehensive software deployment life cycle. This life cycle covers a wide range of deployment tasks, including release, install, update, reconfigure, adapt, and remove. But network solutions place a premium on task automation, which requires complete, concise descriptions of the deployment requirements for software systems. The deployment information to be captured for a software system includes its dependencies, constraints, and alternative configurations. This paper presents the Deployable Software Description (DSD) format, a standard schema for describing deployment requirements for the purpose of automating the tasks of the software deployment life cycle. The DSD format is described and compared to other technologies addressing many of the same concerns.

SERL Technical Report CU-SERL-207-99, Software Engineering Research Laboratory, Department of Computer Science University of Colorado, March 1999.

Retrieve publication as Acrobat (PDF).


A Cooperative Approach to Support Software Deployment Using the Software Dock

R.S. Hall, D. Heimbigner, and A.L. Wolf

Software deployment is an evolving collection of interrelated processes such as release, install, adapt, reconfigure, update, activate, deactivate, remove, and retire. The connectivity of large networks, such as the Internet, is affecting how software deployment is being performed. To take full advantage of this connectivity, new software deployment technologies must be introduced in order to support these processes. The Software Dock research project is creating a distributed, agent-based deployment framework to support the ongoing cooperation and negotiation among software producers themselves and among software producers and software consumers. This deployment framework is enabled by the use of a standardized semantic schema for describing software systems, called the Deployable Software Description (DSD) format. The Software Dock employs agents to traverse between software producers and consumers and to perform software deployment activities by interpreting the semantic descriptions of the software systems. The Software Dock infrastructure enables software producers to offer high-level deployment services that were previously not possible to their customers.

Proc. of ICSE'99: The 1999 Int'l Conf. on Software Engineering, Los Angeles, CA, May 1999, pp. 174-183.

Retrieve publication as pdf or Microsoft Word.

(Note: This paper was also published as a technical report: gzip Postscript or Microsoft Word)


A Reusable, Distributed Repository for Configuration Management Policy Programming

A. van der Hoek, A. Carzaniga, D. Heimbigner, and A.L. Wolf

Distributed configuration management is intended to support the activities of projects that span multiple sites. NUCM is a testbed that we are developing to help explore the issues of distributed configuration management. NUCM separates configuration management repositories (i.e., the stores for versions of artifacts) from configuration management policies (i.e., the procedures according to which the versions are manipulated) by providing a generic model of a distributed repository and an associated programmatic interface. Specific configuration management policies are programmed as unique extensions to the generic interface, but the underlying distributed repository is reused across different policies. In this paper, we describe the repository model and its interface, discuss their implementation in NUCM, and present how NUCM has been used to implement several, rather different, configuration management policies.

Technical Report CU-CS-864-98, Department of Computer Science, University of Colorado, September 1998.

Retrieve publication as Postscript.


Evaluating Software Deployment Languages and Schema

R.S. Hall, D. Heimbigner, and A.L. Wolf

Software distribution is evolving from a physical media approach to one where it is practical and advantageous to leverage the connectivity of networks. Network distribution of software systems provides timeliness and continuity of evolution not possible with physical media distribution methods. To support network-based software distribution, companies and organizations such as Microsoft, Marimba, and the Desktop Management Task Force (DMTF) are strengthening their efforts to package software systems in a way that is conducive to network distribution and management. The result of these efforts has led to the creation of software description languages and schema such as the Open Software Description format created by Microsoft and Marimba and the Management Information Format created by DMTF. While these efforts are steps in the right direction, they do not address deployment issues in a complete and systematic fashion. The contribution of this paper is to evaluate these leading software description technologies.

Proceedings of the International Conference on Software Maintenance, November 1998.

Retrieve publication as gzip Postscript.


Software Deployment: Extending Configuration Management Support into the Field

A. van der Hoek, R.S. Hall, A. Carzaniga, D. Heimbigner, and A.L. Wolf

Traditionally, configuration management has only addressed the needs of the software development process. Once a software system leaves the development environment and enters the field, however, there still is a significant role for configuration management. Activities such as release, installation, activation, update, adapation, deactivation, and de-release constitute the "deployment lifecycle"; these activities need careful coordination and planning in their own right. This article discusses the dimensions of software deployment, argues why current solutions are not sufficient, and presents two research systems that specifically address software deployment.

Crosstalk, The Journal of Defense Software Engineering, volume 11, number 2, February 1998.

Retrieve publication as Postscript.


Software Deployment Languages and Schema

R.S. Hall, D. Heimbigner, and A.L. Wolf

Software distribution is evolving from a physical media approach to one where it is practical and advantageous to leverage the connectivity of networks. Network distribution of software systems provides timeliness and continuous evolution that is not possible with physical media distribution methods. To support network-based software distribution, companies and organizations such as Microsoft, Marimba, and the Desktop Management Task Force (DMTF) are strengthening their efforts to package software systems in a way that is conducive to network distribution. The result of these efforts has led to the creation of software description languages and schema, such as the Open Software Description (OSD) format created by Microsoft and Marimba and the Management Information Format (MIF) created by DMTF. This paper explores software system description languages and schema by introducing the software deployment life cycle. Using the software deployment life cycle as a guide, the issues and requirements of a language or schema intended to support software deployment are discussed. Both OSD and MIF are then presented and critiqued with regards to their ability to support the software deployment life cycle.

Technical Report CU-SERL-204-08, Department of Computer Science, University of Colorado, December 1997.

Retrieve publication as on-line HTML or gzipped Postscript.


Software Release Management

A. van der Hoek, R.S. Hall, D. Heimbigner, and A.L. Wolf

A poorly understood and underdeveloped part of the software process is software release management, which is the process through which software is made available to and obtained by its users. Complicating software release management is the increasing tendency for software to be constructed as a ``system of systems'', assembled from pre-existing, independently produced, and independently released systems. Both developers and users of such software are affected by these complications. Developers need to accurately document complex and changing dependencies among the systems constituting the software. Users will be heavily involved in the location, retrieval, and assembly process of the systems in order to appropriately configure the software to their particular environment. In this paper we identify the issues encountered in software release management, and present an initial set of requirements for a software release management tool. We then describe a prototype of such a tool that supports both developers and users in the software release management process.

Proceedings of the 6th European Software Engineering Conference (held jointly with SIGSOFT'97, Foundations of Software Engineering), Zurich, Switzerland, September 1997.

Retrieve publication as Postscript.


An Architecture for Post-Development Configuration Management in a Wide-Area Network

R.S. Hall, D. Heimbigner, A. van der Hoek, and A.L. Wolf

Few tools exist to address the post-development activities of configuring, releasing, installing, updating, reconfiguring, and even de-installing a software system. Certainly there is no unified approach for all of these activities, and none that can take full advantage of a wide-area network. The Software Dock represents an architecture for supporting post-development activities in such a setting. It is designed as a system of loosely-coupled, cooperating, distributed components that are bound together by a wide-area messaging and event system. In this paper we describe the Software Dock architecture and discuss the use of a prototype in deploying a complex system.

Proceedings of the 17th International Conference on Distributed Computing Systems, Baltimore, USA, May 1997.

Retrieve publication as Postscript.


The Software Dock: A Distributed, Agent-based Software Deployment System

R.S. Hall, D. Heimbigner, A. van der Hoek, and A.L. Wolf

Few tools exist to address the post-development activities of configuring, releasing, installing, updating, reconfiguring, and even de-installing a software system. Certainly there is no unified approach for all of these activities, and none that can take full advantage of a wide-area network. The Software Dock represents an architecture for supporting post-development activities in such a setting. It is designed as a system of loosely-coupled, cooperating, distributed components that are bound together by a wide-area messaging and event system. The components include {\em field docks\/} for maintaining site-specific configuration information by consumers, {\em release docks\/} for managing the configuration and release of software systems by producers, and a variety of {\em agents\/} for automating the activities. Its mechanisms of consistent access to a site's configuration information and resources, standardized methods for making software releases available and visible, and a global event system give software producers and consumers new leverage in managing complex software systems. In this paper we describe the Software Dock architecture and discuss the use of a prototype implementation of that architecture in deploying a complex system.

Technical Report CU-CS-832-97, Department of Computer Science, University of Colorado, 1997.

Retrieve publication as Postscript.


Software Deployment in a Wide-Area Setting Using a Distributed Agent-based Architecture

R.S. Hall

Until recently there has been little research effort directed towards software deployment. Software deployment includes activities such as releasing, configuring, installing, updating, adapting, de-installing, and even de-releasing a software system. Modern software systems are increasing the complexity of these tasks as more sophisticated architectural models, such as system of systems and coordinated distributed systems, become commonplace. Our research direction focuses on two main areas with respect to the support of software deployment. The first of these is the definition and implementation of an architecture that supports software deployment activities in a global, uniform manner. The second area is to use this architecture to create standard, generic schemas and processes to perform software deployment activities. This standardization will allow software producers to deploy their software more fully and with less effort than the current ad-hoc methods. The goal of this research is to make software deployment an integral part of software development.

Thesis Proposal, July 1997.

Retrieve publication as on-line HTML or gzipped Postscript.


A Generic, Peer-to-Peer Repository for Distributed Configuration Management

A. van der Hoek, D. Heimbigner, and A.L. Wolf

Distributed configuration management is intended to support the activities of projects that span multiple sites. NUCM is a testbed that we are developing to help us explore the issues of distributed configuration management. NUCM separates configuration management repositories (i.e., the stores for versions of artifacts) from configuration management policies (i.e., the procedures by which the versions are manipulated) by providing a generic model of a distributed repository and an associated programmatic interface. This paper describes the model and the interface, presents an initial repository distribution mechanism, and sketches how NUCM can be used to implement two, rather different, configuration management policies, namely check-in/check-out and change sets.

Proceedings of the 18th International Conference on Software Engineering, Berlin, Germany, March 1996.

Retrieve publication as Postscript.


Does Configuration Management Research Have a Future?

A. van der Hoek, D. Heimbigner, and A.L. Wolf

In this position paper we raise the question of whether Configuration Management (CM) research has a future. The new standard in CM systems--typified by commercial products such as Adele, ADC, ClearCase, Continuus/CM, and CCC/Harvest--largely satisfies the CM functionality requirements posed by Dart. This implies that research in the area of CM is either unnecessary or that we must find new challenges in CM on which to focus. We believe that these challenges indeed exist. Here we present some areas that we feel are good opportunities for new or continued CM research, and therefore conclude that CM research does have a future.

Proceedings of the 5th International Software Configuration Management Workshop, Seattle, USA, April 1995.

Retrieve publication as Postscript.


SERL Home ©1998 Software Engineering Research Laboratory (SERL)
Last updated: 09-29-98