In this chapter, we will study how JNLP is supported by a remote Server, which acts as a
deployment server, as described in Chapter 2, “An Abstract Model for Deployment.” We
already discussed some server side deployment in Chapter 5, “Deployment Options for Non-
J2SE Clients;” here, we will focus on servlet deployment adapted to support JNLP clients.
An implementation of the server-side JNLP protocol that makes use of servlet technology (and
thus can be used in any servlet container) has been provided by the author and is freely
available for downloads at this address:
Readers interested in providing version-based download or other non-basic JNLP server sup-
port to their JNLP applications, or are simply interested in the details of a JNLP server should
read this chapter.
In this section, we discuss the differences between basic and full JNLP server support. For
brevity, we will imply that a server is a JNLP-enabled Web server that can accomplish success-
fully all the requests formulated by a JNLP client (from here on, the client).
Table 12.1 shows the main JNLP features and the required server support. With basic support,
we mean simple file download via a Web server. With advanced support instead, we refer to
servlets and other server-side code (CGI, scripting, and so on) beside basic file download capa-
T ABLE 12.1. Server-side Support Needed for the Main JNLP Features.
Simple JAR Download
Ve rsion-Based Download
Indeed, attribute-based and version-based downloads are basically the same kind of requests to
the server (a request for a file accompanied by a series of attributes that identify the needed
resource). We distinguish them because the version-based download needs an elaborate version
description, whereas other attributes have simpler values.
To summarize Table 12.1, we can say that the advanced support comprises all attribute-based
requests: versioned downloads, JAR file differencing, and extensions download.