This chapter will cover existing ready-to-use solutions aimed at the deployment of Java soft-
ware for industry-quality programs.
Deployment solutions can be thought of as being divided into two main groups: one group is
specific only to Java programs; the other is suitable for other technologies as well, including
Java. We will focus on Java-specific deployment solutions because they are the only ones that
assure the better exploitation of Java's features. There are also many general deployment and
application management solutions that are suitable for Java deployment. These include
Marimba's Castanet, NetDeploy, and many others that we won't discuss here—to keep us
strictly focused on our main topic, deployment.
When choosing a deployment solution, there are many parameters to consider, including tech-
nical ones (scalability, deployment lifecycle coverage, and so on) and commercial ones (price,
licensing, and so on). In this chapter, we will cover only technical details, for the purpose of
illustrating the current commercial state-of-the-art in the field, rather than proposing any partic-
ular opinion on products.
We will take advantage of the abstract model described in Chapter 2, “An Abstract Model for
Deployment,” in order to present all the systems in a coherent and more precise way.
The most important JNLP implementation, and the reference implementation as well, is the
Java Web Start from Sun. Other JNLP client implementations are still immature as products, or
need to be better known among developers (JavaURL, or OpenJNLP for instance). JNLP server
implementations are mentioned as well.
Java Web Start
The idea behind Web Start (see its home page at http://java.sun.com/products/
javawebstart ) and the underlying JNLP protocol is the use of an Application Helper that can
interact with the Web browser, but is also usable without it. The Application Helper provides
runtime services to the launched application. Web Start supports the deployment of applets as
well. In the following discussion, we will refer to Figure 3.1 (in which we omitted the DS
Management Phase because we are interested in client issues). For more detailed topics, we
refer to Figure 2.5.