On the left side of the figure are reported the various roles for each involved platform, with the
digital information flow linking the various machines. Focusing on the server side of this dia-
gram, we have always mentioned a conceptually unique Deployment Server. Of course, it is an
abstraction, both because several groups of servers could deploy a given set of applications
only, and because all classic server-side techniques such as load-balancing, data replication,
proximity detection, discovery mechanisms and the rest are suitable in this scenario.
Nevertheless, given our client-centric approach, we won't cover these issues in detail.
However, we will cover them in Chapter 12, “Server-Side Support” (regarding JNLP), and par-
tially in Chapter 7 for more general, home-grown deployment solutions. In both cases, they
will be covered only from a developer, high-level viewpoint. Again, Figure 2.9 describes only
an aspect of our deployment model. It focuses on the Internet approach, whereas the model can
handle other more general cases as well.
Now we are ready for a more in-depth discussion on the proposed deployment model's details.
Discussing the Model
In this section, we will get into the detail of the more important aspects of our deployment
model. The rest of the topic will concretely show the topics we are going to introduce now.
This is a two-fold model. On one side, it describes concrete, real-world deployment
solutions; on the other side, it can be used as a design tool to set out the whole Java
deployment problem. We will see its usage as a design tool in the second part.
Let's begin by taking a step back to examine deployment lifecycle issues.
Java Deployment Lifecycle Issues
In the following section, we will see some of the details related with the concepts described in
the lifecycle of Figure 2.5. We have already discussed the Resolution Phase, leaving out the
details of its inputs. It is now time to fill this gap.
The Deployment Policies are needed in order to define the intended detailed behavior of the
whole deployment process. They can contain the following information:
• Connection Policies As discussed before, connections play an important role in modern
software deployment, and the capability to fine-tune their properties is very desirable.