¿Qué es Java WebStart y cómo utilizarlo?

Cuando desarrollamos software siempre llega el momento de actualizar nuestra aplicación. Ya sea porque debemos resolver errores presentes en la versión anterior, o porque acabamos de introducir mejoras importantes. Antiguamente esto se hacía de manera manual. Pedíamos a los usuarios que descargasen la última versión desde nuestro servidor y rezábamos para que el proceso fuera lo más rápido posible para evitar problemas. También era habitual que un técnico instalador pasara por cada oficina de nuestros clientes a llevar la nueva versión en un disco. Esto estaba bien para una empresa pequeña de cinco o diez ordenadores, pero cuando llegaba el momento de actualizar una gran empresa con cientos de puestos en red la cosa podía hacerse excesivamente larga a la par de incomoda.

Ventajas y desventajas de Java Web Start

  • Transparencia: El usuario únicamente tiene que pinchar un enlace en su navegador y la aplicación se descarga, se instala y se ejecuta de manera automática.
  • Mantenibilidad: ya no es necesario copiar la misma aplicación a todos los usuarios de una red cada vez que se realiza una pequeña modificación en la misma, sino que con actualizarla en el servidor web es suficiente para que los usuarios puedan utilizar la última versión de la misma.
  • Control de versiones: Java Web Start se encarga automáticamente de realizar el control de versiones de las aplicaciones, comprueba en el servidor web que no exista una versión más avanzada de la misma, en cuyo caso actualizará la vieja versión por la nueva automáticamente.
  • Independencia del servidor web y del navegador: Java Web Start puede funcionar en cualquier servidor web tan sólo añadiendo el tipo MIME correspondiente a los ficheros con extensión .jnlp.
  • Independencia del sistema operativo.

Requerimientos y consideraciones

Para poder beneficiarnos de esta tecnología debemos disponer de un servidor Web donde podamos subir el contenido de nuestra aplicación, por ejemplo Apache Tomcat, un archivo .Jar ejecutable y siempre es recomendable incluir un certificado de firma digital para dicho archivo.

Esto último puede parecer una tontería pero piensa por un segundo qué puede pasar por la cabeza de un administrador de sistemas cuando hablamos de bajar archivos ejecutables con un solo clic. Suena a “Pesadilla en Elm Street” ¿verdad? Por eso es un requisito de Java WebStart que cada archivo .Jar se encuentre firmado gracias a un certificado digital para que pueda ser verificado.

Ejecutar una aplicación mediante Java WebStart

Una aplicación puede ser ejecutada mediante Java Web Start de las siguientes maneras:

  1. Desde un navegador haciendo clic en un enlace a un fichero JNLP. Si el sistema pregunta con qué programa abrir este tipo de fichero debemos buscarlo dentro de la instalación de Java, por ejemplo en “/opt/jdk1.5.0_05/jre/javaws”
  2. Creando un acceso directo en el escritorio o en el menú de inicio. Java WebStart preguntará si se desea crear un acceso directo y en caso de responder afirmativamente todas las ejecuciones posteriores de la aplicación podrán realizarse sin necesidad de un navegador.
  3. Desde el visualizador de la memoria caché de aplicaciones de Java, para aplicaciones ya descargadas. En Windows se llega a él desde el Panel de control haciendo doble clic en el icono de Java.
  4. Desde el símbolo del sistema en Windows o una shell en Linux haciendo javaws jnlp_url, donde jnlp_url es la URL del archivo JNLP de la aplicación. En caso de que el binario javaws no esté incluido en el PATH del sistema será necesario proporcionar la ruta completa al mismo.

Archivo JNPL

Una vez que hemos subido nuestro archivo .jar firmado a nuestro servidor web es necesario crear el archivo JNPL. Básicamente este archivo no es más que un archivo xml típico con etiquetas bastante claras. En dicho archivo se describirán nuestra aplicación, información del vendedor, etc. Aunque lo mejor es que veamos un ejemplo:

<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="http://ultrastudio.org/upload" href="">
    <information>
        <title>Launch applet with Web Start</title>
        <vendor>Foo Bar Inc.</vendor>
        <offline-allowed/>
    </information>
    <resources>
        <j2se version="1.5+" href="http://java.sun.com/products/autodl/j2se"/>
        <jar href="Test-1.0.jar" main="true" />
    </resources>
    <applet-desc name="Ray diagram applet" main-class="raydiagramsapplet.Main" width="300" height="200">
    </applet-desc>
  <update check="background"/>
</jnlp>

Como se puede ver en dicho fichero debe aparecer la ruta desde donde alojaremos nuestro programa y el archivo JNPL y la versión.

Por ejemplo, podemos definir una nueva versión para actualizar nuestra aplicación a través de WebStart cambiando donde dice <jar href="Test-1.0.jar" /> por  <jar href="Test-2.0.jar" /> Esto será más que suficiente para que el control de versiones entienda que hay una nueva versión disponible de nuestra aplicación. ¿Puede ser más sencillo?

Así la próxima vez que un usuario ejecute Java WebStart éste detectará los cambios y procederá a sugerirnos descargar y lanzar la nueva actualización de manera transparente al usuario. Tanto si eres administrador de sistemas o técnico de soporte agradecerás el poder que brinda esta tecnología de implementación de aplicaciones. Tan solo imagina su potencial. Desde ahora podemos descargar e iniciar aplicaciones, como un programa completo de hoja de cálculo o un cliente de chat de Internet, sin pasar por complicados procedimientos de instalación. Tan solo un clic de ratón y podemos seguir trabajando.

 

Guía de Posibilidades Profesionales en el Ecosistema de Java