Title: A Cooperative Approach to Support Software Deployment Using the Software Dock
1A Cooperative Approach to Support Software
Deployment Using the Software Dock
2Contents
- Software Deployment Life Cycle
- Requirements of New Deployment Technologies
- Software Dock Architecture
- Deployable Software Description Format
- Software Dock Processes
- Discussion
3Software Deployment Life Cycle (1/2)
- In the past, just defined as the installation of
a software system (e.g. CD-ROM) - The connectivity of large networks is affecting
the way of software deployment - Requires much co-operation and negotiation among
software producers and consumers - Allows software producers to offer their
consumers high-level deployment services
4Software Deployment Life Cycle (2/2)
Update
Reconfigure
Adapt
Software Producers
Software Consumers
Release
Retire
Install
Activate
Deactivate
Remove
5Producer-Side Processes
- Release
- Consists of all activities needed to package,
prepare, provide, and advertise a software system - Contains both software components and a
description of a software system - Retire
- Withdraws support for a software system
- Distinct from the consumer-side remove process
6 Consumer-Side Processes (1/2)
- Install
- Initial deployment activity performed by a
consumer - Interprets the description of a software system
and the information about the target consumer
site - Activate
- Responsible for making a deployed software system
executable - Deactivate
- Inverse of Activate process
7Consumer-Side Processes (2/2)
- Update
- Deploys a new, previously unavailable
configuration of a deployed software system - Reconfigure
- Selects a different configuration of a deployed
software system from its existing description - Adapt
- Maintains the consistency of the current
configuration of a deployed software system - Remove
- Undo all of the changes to the consumer site,
caused by a given software system
8Contents
- Software Deployment Life Cycle
- Requirements of New Deployment Technologies
- Software Dock Architecture
- Deployable Software Description Format
- Software Dock Processes
- Discussion
9Requirements of New Deployment technologies
- Operate on a variety of platforms and network
environments - Provide a semantic model for describing a wide
range of software systems - Provide a semantic model of target sites for
deployment - Provide decentralized control for both software
producers and consumers
10Contents
- Software Deployment Life Cycle
- Requirements of New Deployment Technologies
- Software Dock Architecture
- Deployable Software Description Format
- Software Dock Processes
- Discussion
11Software Dock Architecture (1/4)
12Software Dock Architecture (2/4)
- Release dock
- Serves as a release repository for software
systems - Each software release is described using a
standard deployment schema - Each software release is accompanied with generic
agents that perform deployment processes - Provides an interface for agents to access its
services and content - Generates events as changes are made to the
software releases
13JDK 1.1Release
Install Agent
Publish events
Requests the precise set of artifacts
JDK 1.1Release
Subscribes for the events
Install Agent
Update Agent
Informationabout the site
14Software Dock Architecture (3/4)
- Field dock
- Serves as an interface to the consumer site
- Provides information about the state of the
consumer sites resources and configuration - Agents from release docks dock themselves at the
field dock of the target consumer site - The interface provided is the only interface
available to an agent
15Software Dock Architecture (4/4)
- Similarities between release and field docks
- Server where agents can dock and perform
activities - Manages a standardized, hierarchical registry of
information - Nested collections of attribute-value pairs
- Any change to a registry generates an event
16Contents
- Software Deployment Life Cycle
- Requirements of New Deployment Technologies
- Software Dock Architecture
- Deployable Software Description Format
- Software Dock Processes
- Discussion
17DSD Format (1/2)
- Required for automating software deployment
processes - Standardized hierarchical schema for describing
a software system - Models software systems as collections of
properties - Five classes of semantic information
- Configuration
- Describes revisions and variants of a software
system and resources provided by the software
system
18DSD Format (2/2)
- Five classes of semantic information
- Assertions
- Describe constraints on consumer-side properties
that must be true - Dependencies
- Describe constraints on consumer-side properties
where a resolution is possible if not satisfied - Artifacts
- Describe the actual physical artifacts comprising
the software system - Activities
- Describe any specialized activities beyond the
range of deployment processes
19Property Name Version Type String
Description Version information of a software
system Property Name Online Help
Type Boolean Description Include online
help (More definitions of software system
properties) Configuration Title Java
Development Kit Version 1.2 Online Help
true Assertion Condition (OS
Solaris) (OS WinXP) Description
Test for supported operating systems
Artifacts Guard (Online Help true)
Artifact Guard (OS Solaris)
SourceName help.html Source
/proj/doc DestinationName help.html
Destination doc Mutable false
Artifact Guard (OS WinXP)
SourceName help.hlp Source
/proj/doc DestinationName help.hlp
Destination doc Mutable false
An Example of DSD Formats
20Contents
- Software Deployment Life Cycle
- Requirements of New Deployment Technologies
- Software Dock Architecture
- Deployable Software Description Format
- Software Dock Processes
- Discussion
21Software Dock Processes (1/4)
- Generic deployment process definition
- Install, update, reconfigure, adapt, remove
processes - Characterized as the transformation of one
configuration into another valid configuration - Given a new set of valid property values,
- Transform its current configuration into the new
configuration by performing differential
processing - E.g. version change from 1.0 to 1.1
22Software Dock Processes (2/4)
- Specific deployment process definition
- Install agent
- First, retrieve the current DSD specification for
a software - Then, query the field dock and the user to
determine the configuration of the software
release - Finally, perform the actions of testing
assertions, resolving dependencies, retrieving
artifacts
Configuration editor for users
23Software Dock Processes (3/4)
- Update agent
- Deploy a new, previously unavailable
configuration of a deployed software - The new configuration is provided in an updated
DSD specification - Retrieve the new DSD specification from its
release dock
24Software Dock Processes (4/4)
- Reconfigure agent
- Not retrieving a new DSD specification
- Manipulates the existing DSD specification of the
deployed software - Adapt agent
- Maintains the consistency of a deployed software
release - Remove agent
- Responsible for removing a deployed software
release
25Contents
- Software Deployment Life Cycle
- Requirements of New Deployment Technologies
- Software Dock Architecture
- Deployable Software Description Format
- Software Dock Processes
- Discussion
26Discussion (1/2)
- Pros.
- Suggested and explained the life cycle of
software deployment that hasnt been considered
before - The first work to consider the large network
connectivity in deploying software systems - Cons.
- Not dealing with security issues enough
- Not considering the overhead of the deployment
framework - How to deploy distributed, coordinated software
systems
27Discussion (2/2)
- Relevance to embedded systems
- How to update the configuration of a deployed
software system in highly distributed
environments - Need more lightweight deployment framework in
resource constrained portable devices - How to redeploy software components interacting
each other over resource constrained portable
devices during runtime - Based on network reliability, battery power
- In real time systems, is the event-based system
for update process appropriate?
28A particular access point
Publish events
Subscribes for the events
Install Agent
Update Agent
29Battery 20
Battery 80
Battery 70
A sample deployment architecture with 5 hosts and
40 components (from Sam Maleks paper)