Note that this is just an illustrative example. The way to represent Deployment
Policies and the Client Environment is often much richer than what is represented in
Figure 2.1 illustrates the basic role of the AH, that of the interface between the client and the
Deployment Server. Given this role, it is natural to think of the AH as being charged with the
Resolution Phase. This is not always the case. Indeed, often the Resolution Phase is shared
between the AH and the Deployment Server. Generally speaking, the amount of responsibility
to give to the AH is a typical matter of client-server load balancing, as we will see in Chapter
4, “Designing for Deployment.”
(ex. Java APIS)
F IGURE 2.1
The Application Helper role.
What we will do now is to basically use the AH for defining a whole class of deployment cir-
cuits that will be the concrete base for our deployment lifecycle model.
The Model Basics
We will introduce our model incrementally. First of all, we will introduce the main stages that
form the essential steps in all software deployments. In turn, we will detail each of these
phases, reaching the complete picture.
In Figure 2.2, the deployment process is divided into six major steps. The subject that mainly
executes is in charge of that phase is shown on the right side.
Deployment begins from software analysis (for example, to define the Deployment Policies)
and design, as you will see in the second part of this topic. After the software is developed and
released, the next step is to publish it. The outcomes of the Publication stage are all the pieces
(and the instructions on how to deploy them) ready for the Distribution Phase. The Distributor
takes care of correctly dispensing the right pieces to the right clients in order to build a prop-
erly running application. In order to do so, it needs the pieces themselves (JAR and other files)
properly described, as well as the required Deployment Policies (the instructions to who and