jsr-56 - Java Community Process Program
jsr-56 - Java Community Process Program
jsr-56 - Java Community Process Program
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
JNLP File<br />
(application<br />
descriptor)<br />
Icon<br />
Figure 1: JNLP File and External Resources<br />
The JNLP file is, in some sense, similar to a traditional executable format. Traditionally, applications are<br />
delivered as binary platform-dependent files. For example, on Windows, an application is delivered as a<br />
MyApp.exe executable. The executable format is designed so the Windows operating system can load<br />
the application and execute it. It also contains information about external dependencies, such as, e.g.,<br />
MyApp.dll. This format is file-centric; all external references are references to files on the local file<br />
system. In contrast, a JNLP file does not contain any binary data itself, but instead contains URLs to<br />
where they can be obtained from. The JNLP file format is Web-centric; the references to external<br />
resources are URLs, instead of file names.<br />
1.2.2 DOWNLOADING RESOURCES<br />
Jar File<br />
Jar File<br />
JNLP File<br />
(extension<br />
descriptor)<br />
The JNLP Client can download 3 different kind of resources: JAR files, images, and JNLP files. All<br />
resources in a JNLP file are uniquely named using either a URL or a URL/version-id pair. A typical<br />
application deployed using JNLP will consist of a set of JAR files and a set of images 3 . JAR files, images,<br />
and JNLP files can be downloaded using standard HTTP GET requests. For example:<br />
http://www.mysite.com/app/MyApp.jar<br />
Jar File<br />
Jar File<br />
This basic download protocol works from a standard unmodified Web server. This leverages existing Web<br />
server technology, which is important to achieve wide-spread use of a new technology on the Internet.<br />
To provide more control and better utilization of bandwidth, a version-based download protocol is also<br />
supported. The version-based protocol is designed to:<br />
Allow several versions of an application to co-exist on a server at a given time. In particular, this<br />
means that an application that is distributed as several JAR files can be safely upgraded. A JNLP<br />
Client that is downloading JAR files right when a Web server is being updated will never download<br />
JAR files that are a mix between two application versions.<br />
Provide a unique URL for an application independent of its version. This allows a JNLP Client to<br />
automatically detect and flush old versions out of the cache.<br />
Make it possible to incrementally update already-downloaded JAR files. This can substantially<br />
minimize the download requirements for upgrading to a new version.<br />
3 The image files described in the JNLP file are icons that can be used by the JNLP Client to integrate the application into the desktop<br />
environment. They are not for use by the application itself. All application resources, such as images, must generally either be included<br />
in one of the JAR files or be explicitly downloaded using, e.g, an HTTP request.<br />
JSR-<strong>56</strong> - Proposed Final Draft 10 of 74