With these graphical installation programs came the complexity, both perceived and real. The
very idea of an additional “helper” application that supports our application software on the
client machine sounds dangerously complex. In some ways, it is, especially when you consider
the extra code that must be written just to handle the deployment issue. Also, these applica-
tions force us to address distributed software issues in the whole life cycle of our application,
from the very first design.
The problem is that all this complexity is rarely ever really needed. Cool deployment technol-
ogy has always been perceived as an extra, with a very low priority level. There was the user,
after all, who could always stand some additional dialogs for choosing proxy settings, current
OS builds, version numbers, and the like. As we will see, this perspective has radically
changed with the advent of the Internet.
Another kind of cost is related to what we described earlier. Placing a form of application
helper on all the client platforms, even the more diverse, could be expensive. Given the plat-
form-neutral nature of Java this becomes even more difficult, if not impossible. As we will see,
the concept of an application helper will be an important part of our deployment abstract
model, detailed in Chapter 2, “An Abstract Model For Deployment.”
Some Benefits of Deployment
Deployment techniques were intended to support the installation of software, in a once-and-
for-all fashion. Now things are changing, because devices are increasingly connecting to each
other, and deployment is becoming a kind of established service, where software is released
more often, maintained, customized, and even billed over the network. We will see how
deployment can be used as a marketing instrument, or as a means to lower development costs,
or again to add value and services to the software being deployed.
This section introduces some topics that will be fully expanded upon in Chapter 3. Here the
aim is to offer an intuitive introduction to concepts that will be described later using the
abstract model in Chapter 2.
How has the problem of deploying Java software been attacked so far? We will introduce some
simple scenarios that will be detailed in the following chapters.
Good Old Applets
In the early days of Java, applets were all the rage. An incredible amount of literature was writ-
ten about them, and developers were told about the incredibly easy Java development for the