- Java Network Launching Protocol
-
Java Network Launching Protocol (JNLP) es una especificación usada por Java Web Start. Esta especificación, permite tener centralizado en un servidor web un programa, evitando los problemas de distribución e instalación.
Contenido
Qué hace
Al instalar cualquier aplicación, normalmente se dan una serie de pasos:
- Se descarga de Internet o se introduce en un medio extraíble (disco compacto, DVD, memoria USB, etc.)
- Se instala.
- Se ejecuta.
El programa javaws permite hacer esto de un modo más fácil y transparente para el usuario, ya que podemos realizar estos pasos simplemente pinchando sobre un enlace mientras estamos utilizando nuestro navegador, de modo que descarga, instalación y ejecución se realizan de modo transparente al usuario.
JavaWS no usa applets, ya que descarga aplicaciones Java normales y necesita, por tanto, de una máquina virtual. Además, viene incluido en el Java Runtime Environment (JRE) de Java desde la versión 1.4.
Cómo funciona
Cualquier enlace JNLP, al iniciar el proceso de ejecución, pide autorización al usuario. Además, las aplicaciones pueden estar firmadas (firma electrónica) para asegurar el remitente de la aplicación de modo que pueden seguir el modelo de seguridad de la plataforma Java 2 para asegurar la integridad de los datos que obtenemos a través de la red, de forma que no se produzcan ataques de tipo Man in the Middle, DNS cache poisoning, o corrupción de datos.
Estructura de un archivo JNLP
Un archivo JNLP es un XML especialmente formado compuesto por:
- Una cabecera XML típica:
<?xml version="1.0" encoding="conjunto de caracteres"?>
Donde "conjunto de caracteres" puede ser cualquier conjunto válido: utf-8, ISO-8859-1...
- Una ruta predeterminada para que los archivos puedan ser llamados desde una ruta relativa.
<jnlp spec="1.0+" codebase="http://URL/directorio/del/programa" href="NombreDelArchivoJNLP.jnlp">
- Una o más etiquetas information en el que se colocan varias informaciones (ver ejemplo).
- Una etiqueta security (con información variada).
- Una etiqueta resources (con información variada).
- Una etiqueta application-desc con la clase predeterminada a ejecutar.
Ejemplo
El siguiente es un breve ejemplo de un archivo típico JNLP. No incluye todas las posibles opciones.
<?xml version="1.0" encoding="utf-8"?> <jnlp spec="1.0+" codebase="http://es.wikipedia.org/wiki/JNLP:8080/ElPrograma/" href="jnlp.jnlp"> <information> <title>Ejemplo de un JNLP wikipédico</title> <vendor>Anónimo</vendor> <homepage href="http://es.wikipedia.org/Portada" /> <description> Ejemplo de un JNLP muy wikipédico</description> <description kind="short"> Esta es una breve información, repito, muy wikipédica. </description> <icon href="NombreImagen.jpg" /> <offline-allowed /> </information> <security> <all-permissions /> </security> <resources> <j2se version="1.4+" /> <jar href="aplicación.jar" /> <jar href="lib1.jar" /> <jar href="lib2.jar" /> </resources> <application-desc main-class="org.wikipedia.es.JNLP" /> </jnlp>
Enlaces externos
Wikimedia foundation. 2010.