In association with heise online

Deployment: Getting the FX out there

Deployment for Java on the web has often been regarded as a combination of a maze and a disaster area. The first model of application deployment was the much maligned applet. Applets were unevenly supported, ran in the browser, sometimes dragging the browsers performance to a crawl and were hard to integrate with the browser. Despite and on top of all that, a large Java Runtime Environment had to be downloaded and installed. And in the interests of backwards compatibility, old versions of Java could live alongside each other, which could be confusing. All of this lead to Java in the browser getting a bad reputation, despite steady progress over the years to fix those issues.

Java Web Start was one of those fixes, which allowed application developers to deploy desktop Java applications, with automatic updating over the web. A developer could make their application web start by creating a JNLP file, which would be picked up by the users local Java, in turn download the application's jar files, create a desktop shortcut and manage the launching of the application. JNLP though didn't work within the browser, so it didn't let applications be embedded into web pages.

The other part of the JavaFX story is addressing all those problems. A large part of the changes were incorporated in Java 6 Update 10, which was released earlier in the year. Java6U10, for the first time, became a modular download, with a smaller Java "kernel" being all that needed to be downloaded and installed by users. The "kernel" can then download any components needed automatically. Java6U10 also saw a move to eliminate multiple old versions of Java, by patch-in-place updates of the Java runtime.

This addressed many issues, but Java 6 Update 10 also reworked the deployment story by merging applets and web start. Now, an applet can refer not to a raw jar file on a server but to a JNLP file, allowing the applet to be saved and updated on the client browser. The updating can also be deferred and run as a background process, allowing the new style applets to always start up immediately, without making the user wait for an update to download. Applets also now run outside the browser, so no more dragging down the browsers performance. A small headless JVM now runs in the browser acting as a thin server layer, with a separate JVM running the actual applet code. The practice of process isolation is becoming more common within browsers, so in some ways, Java is just keeping up with browsers.

Print Version | Permalink:
  • Twitter
  • Facebook
  • submit to slashdot
  • StumbleUpon
  • submit to reddit

  • July's Community Calendar

The H Open

The H Security

The H Developer

The H Internet Toolkit