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:
- operate on a variety of platforms and network environments,
ranging from single sites to the entire Internet,
- provide a semantic model for describing a wide range
of software systems in order to facilitate some level of
software deployment process automation,
- provide a semantic model of target sites for deployment
in order to describe the context in which deployment
processes occur, and
- provide decentralized control for both software producers
and consumers.
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:
- Lockheed Martin
- Dassault Systems
- Nortel Networks
- Mitre
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
Related Links

Figure 1. Software Deployment Lifecycle

Figure 2. Software Dock Architecture.
©1998 Software Engineering Research Laboratory (SERL)
Last updated: September 14, 1999