stringtranslate.com

Inicio web de Java

En informática , Java Web Start (también conocido como JavaWS , javaws o JAWS ) es un marco obsoleto desarrollado por Sun Microsystems (ahora Oracle ) que permite a los usuarios iniciar software de aplicación para la plataforma Java directamente desde Internet utilizando un navegador web . La tecnología permite una actualización perfecta de versiones 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 que se eliminó en Java SE 11, luego de su obsolescencia en Java SE 9. Oracle no publicó el código de Java Web Start como parte de OpenJDK y, por lo tanto, OpenJDK originalmente no era compatible. él. IcedTea-Web proporciona una implementación independiente de código abierto de Java Web Start que actualmente está desarrollada por la comunidad AdoptOpenJDK , RedHat y Karakun AG, y que está incluida en algunos instaladores de OpenJDK. [1] Además, OpenWebStart proporciona una implementación basada en código abierto que se basa en IcedTea-Web pero ofrece más funciones y opciones de soporte comercial.

Funcionalidad

A diferencia de los subprogramas de Java , las aplicaciones Web Start no se ejecutan dentro del navegador. De forma predeterminada, se ejecutan en el mismo entorno limitado que los subprogramas, con varias 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. Sólo las aplicaciones firmadas se pueden configurar para que tengan permisos adicionales.

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

Web Start también puede iniciar subprogramas no modificados que están empaquetados dentro de archivos .jar, escribiendo el archivo JNLP apropiado. Este archivo también puede pasar los parámetros del subprograma. Estos subprogramas también se ejecutan en un marco separado. Es posible que el iniciador de subprogramas no admita algunos casos específicos, como cargar clases como recursos.

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

Deprecación

Con JDK9 , Oracle dejó de utilizar varias tecnologías de implementación, incluidos subprogramas y Java Web Start. [2] [3]

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

Implementación

Las primeras versiones de Java Web Start venían con un administrador de aplicaciones donde, por ejemplo, se podían iniciar 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 corresponde). El navegador descarga este archivo como cualquier otro y (siguiendo su tipo MIME ) application/x-java-jnlp-filelo 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 brindan varios servicios a la aplicación. Sun diseñó la mayoría de estos servicios con el objetivo de permitir un acceso cuidadosamente controlado a los recursos (como archivos y el portapapeles del sistema) mientras restringe la aplicación a operaciones autorizadas.

Sun introdujo la versión 1.0 de Web Start en marzo de 2001, [5] mientras que el soporte para Windows de 64 bits se añadió sólo en Java 6 [6] (más tarde que Java de 64 bits estuvo disponible por primera vez). Dado que J2SE 1.4 Web Start viene como parte predeterminada de Java Runtime Environment (JRE) javaws, los administradores de computadoras ya no tienen que instalarlo por separado.

Protocolo de lanzamiento de red Java (JNLP)

Los programadores suelen hablar del Protocolo de lanzamiento de red Java ( JNLP ) indistintamente con el término "Web Start". El protocolo JNLP, definido con un esquema XML , especifica cómo iniciar aplicaciones Java Web Start. JNLP consta de un conjunto de reglas que definen cómo implementar exactamente el mecanismo de lanzamiento. Los archivos JNLP incluyen información como la ubicación del archivo del paquete jar y el nombre de la clase principal de la aplicación, además de cualquier otro parámetro del programa. Un navegador configurado correctamente pasa archivos JNLP a Java Runtime Environment (JRE), que a su vez descarga la aplicación en la máquina del usuario y comienza a ejecutarla. El desarrollo de JNLP se llevó a cabo bajo el Proceso de la comunidad Java como JSR 56. Incluye la versión 1.0 original, la versión de mantenimiento posterior 1.5 y, a partir de 2006 , la versión de mantenimiento pendiente 6.0. [ aclarar ]

Las características importantes de Web Start incluyen la capacidad de descargar e instalar automáticamente un JRE en el caso de que el usuario no tenga Java instalado, y para que los programadores especifiquen qué versión de JRE necesita un programa determinado para ejecutarse. El usuario no tiene que permanecer conectado a Internet para ejecutar los programas descargados, porque se ejecutan desde una caché mantenida localmente . Las actualizaciones del software se descargan de la Web y están disponibles cuando el usuario tiene una conexión a Internet, lo que alivia la carga de implementación.

Cualquier usuario de computadora puede usar JNLP simplemente instalando un cliente JNLP (más comúnmente Java Web Start). La instalación puede realizarse automáticamente de modo que el usuario final vea el iniciador del cliente descargando e instalando la aplicación Java cuando se ejecuta por primera vez.

JNLP funciona de manera similar a cómo funciona HTTP/HTML para la web. Para representar una página web HTML , después de que el usuario hace clic en un enlace web, el navegador envía una URL a un servidor web , que responde con un archivo HTML. Luego, el navegador solicita los recursos a los que hace referencia este archivo (imágenes, css ) y finalmente muestra la página una vez que ha recibido suficiente información. La representación de la página generalmente comienza antes de que se hayan descargado todos los recursos; algunos recursos que no son críticos para el diseño de la página (como imágenes) pueden continuar después.

JNLP refleja este proceso; De la misma manera que un navegador web representa una página web, un cliente JNLP "representa" una aplicación Java . Después de que el usuario hace clic en un enlace web, 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 la recuperación de todos los recursos necesarios y luego inicia la aplicación. El archivo JNLP puede enumerar recursos como "lazy", lo que informa al cliente JNLP que la aplicación no necesita esos recursos para iniciarse, pero puede recuperarlos más adelante cuando la aplicación los solicite.

Ejemplo

El siguiente ejemplo proporciona un archivo JNLP simple para iniciar el subprograma, especificando el código base, la fuente, la clase principal y el tamaño de la ventana. Dicho archivo contiene todas las referencias necesarias y es autosuficiente para iniciar la aplicación. Como no se solicitan permisos, el código se ejecutará en una zona de pruebas. JNLP también afirma que esta aplicación puede ejecutarse sin conexión (si ya está en caché) y debe actualizarse como un proceso en segundo plano.

<?xml versión="1.0" codificación="UTF-8"?> <jnlp spec= "1.0+" codebase= "http://ultrastudio.org/upload" href= "" > <información> <título> Lanzamiento subprograma 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= " Subprograma de diagrama de rayos" main-class= "raydiagramsapplet.Main" ancho= "300" alto= "200" > </applet-desc> <update check= "fondo" /> </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 sólo clases Java. [7]

Java Web Start ha sido compatible con Pack200 desde que apareció por primera vez, pero inicialmente esta característica requería cooperación del lado del servidor y cierta experiencia para su configuración. Cuando Sun presentó Java SE 6u10, la compatibilidad con Pack200 estuvo disponible sin necesidad de compatibilidad con un servidor especial. Los diseñadores de aplicaciones pueden habilitar o deshabilitar esta función dentro de los archivos JNLP.

En conexiones lentas, Pack200 aumenta el rendimiento en el tiempo de inicio de la aplicación y el tiempo de descarga.

Aplicaciones Web Start firmadas

De forma predeterminada, las aplicaciones Java Web Start se ejecutan "restringidas", lo que significa que no tienen acceso a algunos recursos del sistema, como los archivos locales. Pero los editores pueden eliminar estas restricciones firmando sus aplicaciones Web Start con la jarsignerherramienta que viene con el JDK .

Alternativas

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

Para ejecutar la aplicación basada en Java Web Start tras el lanzamiento de Java 11, la empresa Karakun AG ha lanzado la herramienta de código abierto OpenWebStart, basada en IcedTea-Web. [9] La herramienta incluye todas las funciones de IcedTea-Web y agrega funciones extendidas, como instaladores nativos para Mac OS, Windows y Linux. IcedTea-Web fue creado con el apoyo de RedHat y AdoptOpenJDK . [10]

Aplicaciones notables

Ver también

Referencias

  1. ^ ojdkbuild - WebStart, 29 de abril de 2019 , consultado el 31 de mayo de 2019
  2. ^ Notas de la versión de JDK9
  3. ^ https://blogs.oracle.com/java-platform-group/moving-to-a-plugin-free-web [ URL básica ]
  4. ^ "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) y versiones posteriores. Oracle comenzará a alentar a los desarrolladores y usuarios de aplicaciones a que abandonen Java Web Start y alentará a los consumidores no comerciales a eliminar de sus escritorios cualquier instalación de Oracle JRE no utilizada o no compatible.
  5. ^ Comunicado de prensa de Java Web Start 1.0
  6. ^ ID de error 4802695, compatibilidad con el complemento Java de 64 bits y el inicio web de Java en Windows/Linux en AMD64
  7. ^ Pack200 y compresión para implementación de red
  8. ^ icedtea-web. implementación de código abierto de inicio web
  9. ^ "Inicio OpenWeb". OpenWebStart . Consultado el 20 de julio de 2020 .
  10. ^ hendrik (10 de diciembre de 2019). "Cómo el código abierto salvó WebStart". GuiGaraje . Consultado el 20 de julio de 2020 .

enlaces externos