Software Dock


R. Hall, D. Heimbigner, and A.L.Wolf
* Description * Retrieving Software Dock * Publications

Description

Currently there is little support for software configuration and deployment in a distributed environment. Developers have no standard mechanisms for announcing their software as it becomes available and end-users have no unified means of browsing or finding software of interest. In addition, it is difficult for developers to ascertain the configuration of the system where the software is to be deployed and there is no way to make the software dependency information visible. This leads to software that is difficult for the end-user to install since it cannot adapt to the underlying system, nor can the end-user understand its requirements.

Further, there is a need to expand the definition of deployment. In the past, it was largely defined as the installation of a software system; a view of software deployment that is simplistic and incomplete. Software deployment is actually a collection of interrelated activities that form the software deployment life cycle. This life cycle, as defined by this research, is an evolving collection of processes that include release, retire, install, activate, deactivate, reconfigure, update, adapt, and remove.

New software deployment technologies are necessary if software producers are expected to accept more responsibility for the long-term operation of their software systems. In order to support software deployment, new deployment technologies must:

Deployable Software Descriptions (DSD)

The deployment of a given software system is controlled through a declarative description of the possible configurations of that software. This is encoded in the Deployable Software Description (DSD), which an XML encoding of the configuration information. The DSD describes a family, which is the set of all versions and variants of a given software system. This is similar to the notion of a product-line.

Software Dock Architecture

The Software Dock architecture consists of the following components that together address our requirements for a modern deployment infrastructure.

Release Dock

The release dock is a server residing within a software producing organization. Its purpose is to serve as a release repository for the software systems provided by a software producer. Client software can browse the software available and initiate installation by retrieving the desired software's A complete system description for each software system to be deployed is recorded in the release dock's release registry and deployment agents use this information to perform specific deployment tasks, such as installation.

In the current implementation, the release dock is a simple HTTP server that is also capable of communicating via siena.

Field Dock

The field dock is a server residing at a software consumer site. Its purpose is to serve as an interface to the consumer site and to provide information about a consumer site's resources and configuration; this information provides the context into which software systems from a release dock are deployed. The field dock can be viewed as an interpreter for DSDs capable of performing configuration management (e.g., installations) and reactive configuration management (e.g., patches, dependency changes) .

Administrator's Workbench

The workbench server contains a global view of the consumer organization, such as site domains and global services. With the workbench, administration tasks are simplified and more complicated deployment scenarios are addressable, such as those of distributed, coordinated software systems.

Siena

Siena is a communication substrate that binds the other three components together. Siena is especially beneficial in the area of Internet-scale event propagation. Coupling agent software with the event propagation technology of Siena allows software systems to have an adaptive deployment life-cycle, updating their configuration as their environment changes. For more information on Siena, refer to http://www.cs.colorado.edu/serl/dot/siena.html.

Technology Transfer

The Software Dock prototype has been transferred to several organizations for use in technology evaluations. These organizations include the following:

Retrieving Software Dock

Version 4.0: http://www.cs.colorado.edu/~dennis/softwaredock-4.0.jar

To install a version of the softwaredock, unjar the .jar file and follow the instructions in the file doc/install.txt.

The primary maintainer for the Software Dock softare is Dennis Heimbigner.

Publications

     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
     Evaluating Software Deployment Languages and Schema
     A Characterization Framework for Software Deployment Technologies
     Software Deployment: Extending Configuration Management Support into the Field
     Software Deployment Languages and Schema
     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

Related Links

     The Software Dock: An Architecture for Wide-Area Software Deployment (ICDCS '97 presentation)




Figure 1. Software Deployment Lifecycle



Figure 2. Software Dock Architecture.



SERL Home ©1998 Software Engineering Research Laboratory (SERL)
Last updated: September 14, 1999