Articulo de referencia

Java Web Start

En informática , Java Web Start (también conocido como JavaWS , javaws o JAWS ) es un framework obsoleto desarrollado por Sun Microsystems (ahora Oracle ) que permite a los usua...

En informática , Java Web Start (también conocido como JavaWS , javaws o JAWS ) es un framework obsoleto desarrollado por Sun Microsystems (ahora Oracle ) que permite a los usuarios ejecutar aplicaciones para la plataforma Java directamente desde Internet mediante un navegador web . Esta tecnología facilita la actualización de versiones sin interrupciones para aplicaciones distribuidas globalmente y un mayor control de la asignación de memoria a la máquina virtual Java .

Java Web Start se distribuyó como parte de la plataforma Java hasta su eliminación en Java SE 11, tras su desuso en Java SE 9. Oracle no publicó el código de Java Web Start como parte de OpenJDK , por lo que OpenJDK originalmente no lo soportaba. IcedTea-Web proporciona una implementación independiente de código abierto de Java Web Start que actualmente desarrollan la comunidad AdoptOpenJDK , Red Hat y Karakun AG , y que se incluye en algunos instaladores de OpenJDK. [ 1 ] Además, OpenWebStart proporciona una implementación de código abierto basada en IcedTea-Web que ofrece más características y opciones de soporte comercial.

Funcionalidad

A diferencia de los applets de Java , las aplicaciones Web Start no se ejecutan dentro del navegador. Por defecto, se ejecutan en el mismo entorno aislado que los applets, con algunas extensiones menores, como permitir cargar y guardar el archivo que el usuario selecciona explícitamente a través del cuadro de diálogo de selección de archivos. Solo las aplicaciones firmadas pueden configurarse para tener permisos adicionales. [ 2 ]

Web Start tiene la ventaja sobre los applets de que supera muchos problemas de compatibilidad con los complementos Java de los navegadores y las diferentes versiones de la JVM . Los programas Web Start ya no son una parte integrada de la página web, sino aplicaciones independientes que se ejecutan en un marco aparte.

Web Start también puede ejecutar applets sin modificar, empaquetados en archivos .jar, escribiendo el archivo JNLP correspondiente. Este archivo también puede pasar los parámetros del applet. Dichos applets se ejecutan en un marco independiente. El lanzador de applets podría no ser compatible con algunos casos específicos, como la carga de clases como recursos.

Al igual que los applets, Java Web Start es multiplataforma .

Deprecación

Con JDK9 , Oracle dejó de dar soporte a varias tecnologías de despliegue, incluyendo applets y Java Web Start. [ 3 ] [ 4 ]

En marzo de 2018, Oracle anunció que no incluiría Java Web Start en Java SE 11 (18.9 LTS) ni versiones posteriores. Los desarrolladores deberán migrar a otras tecnologías de implementación. [ 5 ] Desde entonces, han surgido algunas alternativas independientes .

Implementación

Las primeras versiones de Java Web Start incluían un gestor de aplicaciones donde, por ejemplo, se podían ejecutar las aplicaciones de demostración de Sun.

El desarrollador prepara un archivo XML especial con extensión JNLP. Este archivo describe los requisitos de la aplicación, la ubicación del código, los parámetros y los permisos adicionales (si los hubiera). El navegador descarga este archivo como cualquier otro y (siguiendo su tipo MIME , application/x-java-jnlp-file) lo abre con la herramienta Web Start. La herramienta Web Start descarga todos los recursos necesarios e inicia la aplicación.

Java Web Start proporciona una serie de clases en el paquete javax.jnlp que ofrecen diversos servicios a la aplicación. Sun diseñó la mayoría de estos servicios con el objetivo de permitir un acceso controlado a los recursos (como archivos y el portapapeles del sistema) al tiempo que restringe la aplicación a operaciones autorizadas.

Sun introdujo la versión 1.0 de Web Start en marzo de 2001, [ 6 ] mientras que la compatibilidad con Windows de 64 bits se agregó recién en Java 6 [ 7 ] (después de que Java de 64 bits estuviera disponible por primera vez). Dado que J2SE 1.4 Web Start viene como parte predeterminada del Entorno de ejecución de Java (JRE) llamado javaws, los administradores de computadoras ya no tienen que instalarlo por separado.

Protocolo de lanzamiento de red Java (JNLP)

Los programadores suelen referirse al Protocolo de Lanzamiento de Red Java ( JNLP ) indistintamente con el término "Web Start". El protocolo JNLP, definido mediante un esquema XML , especifica cómo iniciar aplicaciones Java Web Start. JNLP consta de un conjunto de reglas que definen la implementación del mecanismo de lanzamiento. Los archivos JNLP incluyen información como la ubicación del archivo JAR y el nombre de la clase principal de la aplicación, además de otros parámetros del programa. Un navegador correctamente configurado envía los archivos JNLP a un Entorno de Ejecución Java (JRE), que a su vez descarga la aplicación en el equipo del usuario y comienza su ejecución. El desarrollo de JNLP se llevó a cabo bajo el Proceso de la Comunidad Java como JSR 56. Incluye la versión original 1.0, la posterior versión de mantenimiento 1.5 y, a partir de 2006 , la versión de mantenimiento 6.0 pendiente.

Entre las características importantes de Web Start se incluyen la posibilidad de descargar e instalar automáticamente un JRE si el usuario no tiene Java instalado, y la opción de que los programadores especifiquen la versión de JRE necesaria para la ejecución de un programa. El usuario no necesita estar conectado a Internet para ejecutar los programas descargados, ya que se ejecutan desde una caché local . Las actualizaciones del software se descargan desde la web y están disponibles cuando el usuario tiene conexión a Internet, lo que facilita la implementación.

Cualquier usuario de ordenador puede utilizar JNLP simplemente instalando un cliente JNLP (generalmente Java Web Start). La instalación puede realizarse automáticamente, de modo que el usuario final vea cómo el lanzador del cliente descarga e instala la aplicación Java la primera vez que la ejecuta.

JNLP funciona de forma similar a como lo hace HTTP/HTML en la web. Para renderizar una página web HTML , después de que el usuario haga clic en un enlace, el navegador envía una URL a un servidor web , que responde con un archivo HTML. A continuación, el navegador solicita los recursos a los que hace referencia este archivo (imágenes, CSS ) y, finalmente, renderiza la página una vez que ha recibido suficiente información. El renderizado de la página suele comenzar antes de que se hayan descargado todos los recursos; algunos recursos que no son esenciales para el diseño de la página (como las imágenes) pueden descargarse posteriormente.

JNLP reproduce este proceso; de la misma manera que un navegador web renderiza una página web, un cliente JNLP "renderiza" una aplicación Java . Después de que el usuario hace clic en un enlace, el navegador envía una URL a un servidor web, que responde con un archivo JNLP (en lugar de un archivo HTML) para la aplicación. El cliente JNLP analiza este archivo, solicita los recursos especificados (archivos JAR), espera a que se recuperen todos los recursos necesarios y luego inicia la aplicación. El archivo JNLP puede listar los recursos como "lazy", lo que indica al cliente JNLP que la aplicación no necesita esos recursos para iniciarse, sino que puede recuperarlos más adelante si los solicita.

Ejemplo

El siguiente ejemplo proporciona un archivo JNLP sencillo para ejecutar el applet, especificando la base de código, el código fuente, la clase principal y el tamaño de la ventana. Este archivo contiene todas las referencias necesarias y es suficiente para ejecutar la aplicación. Al no requerir permisos, el código se ejecutará en un entorno aislado (sandbox). JNLP también indica que esta aplicación puede ejecutarse sin conexión (si ya está en caché) y debe actualizarse como un proceso en segundo plano.

<?xml version="1.0" encoding="UTF-8"?> <jnlp spec= "1.0+" codebase= "http://ultrastudio.org/upload" href= "" > <information> <title> Iniciar applet con 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= "Ray-2.3-4ca60e46-0956-3f22-983c-e3ed986dfd03.jar" main= "true" /> </resources> <applet-desc name= "Applet de diagrama de Ray" main-class= "raydiagramsapplet.Main" width= "300" height= "200" > </applet-desc> <update check= "background" /> </jnlp>

Compresión Pack200

Para reducir el tamaño de una aplicación Java Web Start, Sun Microsystems introdujo un sistema de compresión llamado Pack200 en Java 1.5.0. Puede comprimir un archivo jar grande a una novena parte de su tamaño original si contiene solo clases Java. [ 8 ]

Java Web Start ha sido compatible con Pack200 desde su lanzamiento, pero inicialmente esta función requería la cooperación del servidor y ciertos conocimientos técnicos para su configuración. Con la introducción de Java SE 6u10 por parte de Sun, la compatibilidad con Pack200 estuvo disponible sin necesidad de soporte especial del servidor. Los desarrolladores de aplicaciones pueden habilitar o deshabilitar esta función en los archivos JNLP.

En conexiones lentas, Pack200 mejora el rendimiento, reduciendo el tiempo de inicio de las aplicaciones y el tiempo de descarga.

Aplicaciones Web Start firmadas

Por defecto, las aplicaciones Java Web Start se ejecutan con restricciones, lo que significa que no tienen acceso a algunos recursos del sistema, como archivos locales. Sin embargo, los desarrolladores pueden eliminar estas restricciones firmando sus aplicaciones Web Start con la jarsignerherramienta que viene con el JDK .

Alternativas

El proyecto de código abierto IcedTea proporciona una implementación alternativa de JNLP en IcedTea-Web . A partir de la versión 1.7.2, también funciona en versiones más recientes sin soporte oficial de JWS. [ 9 ]

Para ejecutar aplicaciones basadas en Java Web Start tras el lanzamiento de Java 11, la empresa Karakun AG ha publicado la herramienta de código abierto OpenWebStart , basada en IcedTea-Web. [ 10 ] La herramienta incluye toda la funcionalidad de IcedTea-Web y añade características extendidas, como instaladores nativos para Mac OS, Windows y Linux. IcedTea-Web se creó con el apoyo de Red Hat y AdoptOpenJDK . [ 11 ]

Aplicaciones destacadas

Véase también

Referencias

  1. ojdkbuild - WebStart , 29/04/2019 , consultado el 31/05/2019
  2. "Documentación oficial de Oracle" .
  3. Notas de la versión de JDK9
  4. Topić, Dalibor (27 de enero de 2016). "Pasar a una Web sin complementos" .
  5. "Actualización de la hoja de ruta del cliente Java" (PDF) . Marzo de 2018. Oracle no incluirá Java Web Start en Java SE 11 (18.9 LTS) ni versiones posteriores. Oracle comenzará a incentivar a los desarrolladores de aplicaciones y usuarios a abandonar Java Web Start y animará a los usuarios particulares a eliminar de sus equipos cualquier instalación de Oracle JRE que no utilicen o que no cuente con soporte.
  6. Comunicado de prensa de Java Web Start 1.0
  7. ID de error 4802695, Compatibilidad con el complemento Java de 64 bits y Java Web Start en Windows/Linux en AMD64
  8. Pack200 y compresión para despliegue en red
  9. icedtea-web . Implementación de código abierto de inicio web.
  10. "OpenWebStart" . OpenWebStart . Consultado el 20 de julio de 2020 .
  11. hendrik (10 de diciembre de 2019). "Cómo el código abierto salvó WebStart" . GuiGarage . Recuperado el 20 de julio de 2020 .
  • Página del producto Java Web Start