16.07.2013 Views

jsr-56 - Java Community Process Program

jsr-56 - Java Community Process Program

jsr-56 - Java Community Process Program

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!