Pregunta

Recientemente utilicé una aplicación Java Web Start.Lo inicié desde mi navegador web usando un enlace jnlp integrado en la página que estaba viendo.La aplicación se descargó, se inició y funcionó bien.Tenía acceso a mi sistema de archivos local y recordaba mis preferencias entre reiniciarlo.

Lo que quiero saber es ¿por qué las aplicaciones Java Web Start no son un formato de entrega más popular para aplicaciones complejas en la web?¿Por qué los desarrolladores suelen dedicar mucho tiempo y energía a replicar la funcionalidad del escritorio en html/javascript cuando el poder de una aplicación de escritorio podría entregarse más fácilmente utilizando Java y Java Web Start?

Sé que en algunos entornos corporativos, por ejemplo en la banca, son formas relativamente populares de entregar aplicaciones comerciales complejas a los clientes, pero ¿por qué no están omnipresentes en toda la web?

(Por el bien de la discusión, supongamos un mundo donde:las fuentes de descarga son "confiables" y las aplicaciones están "firmadas" (es decir,sin problemas de seguridad), las velocidades de descarga son rápidas (el tiempo de carga es rápido) y los desarrolladores conocen Java (en números, conocen html/js/php)).

¿Fue útil?

Solución

Creo que el motivo no es la seguridad ni el tiempo de inicio de la aplicación.Entendamos qué hay detrás de escena antes de descubrir la causa raíz.

El Panel de control de Java tiene configuraciones que permiten a los usuarios usar la configuración de proxy del navegador predeterminado o anularla.En otras palabras, los equipos de infraestructura pueden personalizar las imágenes de instalación de Windows o del sistema operativo para tener JVM preinstalada con la configuración de proxy empresarial.Entonces creo que esto no es un problema en absoluto.

Java Web Start en realidad almacena en caché todas las aplicaciones con configuraciones personalizables en el Panel de control de Java.Una vez que la aplicación se almacena en caché, se "instala" al igual que otras aplicaciones.Aunque la primera ejecución puede ser lenta, la segunda vez será rápida debido a la técnica de asignación de memoria inteligente de JVM.Por lo tanto, el tiempo de inicio podría ser un problema, pero muchos sitios web (incluso internos de empresas) ahora se migran al portal.Un portal web normalmente contiene muchas bibliotecas no utilizadas para fines de desarrollo debido al hecho de que el portal en sí no anticipa qué tipos de portlets se crean e implementan en una página específica.Por lo tanto, descargar una sola página del portal podría consumir hasta MB y completar una página en más de 5 segundos;Esta es solo una página y el almacenamiento en caché ayuda hasta un 30%, pero todavía hay muchos componentes HTML/Javascript/CSS que se deben descargar cada vez.Con esto, estoy seguro de que Java Web Start es una ventaja aquí.

Java Web Start no se vuelve a descargar si está almacenado en caché siempre que la copia del servidor NO se actualice.Por lo tanto, si, p.e.Un software de gestión de proyectos como MS Project se completa utilizando SmartClient (similar a JWS), el intercambio de información entre el cliente y el servidor sería puramente datos sin presentación como la actualización de la página completa del navegador.Incluso con la ayuda de Ajax, no elimina por completo la descarga de la página completa.Además, muchas empresas consideran que Ajax es inmaduro y aún no está asegurado.Es por eso que Ajax es un tema candente en los círculos de desarrolladores, pero aún no dentro del software empresarial.Teniendo esto en cuenta, las aplicaciones JWS definitivamente tienen más ventajas, como la forma en que las aplicaciones JWS se implementan y ejecutan en entornos sandbox, se firman y tienen una GUI mucho más interactiva.

Otras ventajas incluyen un desarrollo más rápido (más fácil de depurar en código y rendimiento), interfaz de usuario responsiva (no requiere que Comet Servers proporcione funcionalidad PUSH) y ejecución más rápida (seguramente porque las computadoras cliente representan GUI sin traducción como HTML/Javascript/CSS, y menos procesamiento de datos).

Después de todo esto, todavía no he tocado la pregunta: ¿por qué JWS no es tan famoso?

Mi opinión es que es lo mismo que el comentario de Brian Knoblauch, es sin consciencia.

La gente de TI se siente demasiado atraída por la exageración de las tecnologías web, Ajax PUSH, GWT y todas esas palabras de moda los hacen inclinarse hacia la diversión de usar diferentes tecnologías o resolver desafíos técnicos en lugar de lo que realmente funciona para los clientes.

Échale un vistazo a Citrix.Creo que Citrix es realmente una gran idea.Citrix le permite crear sus propias granjas de aplicaciones detrás de escena.Hay toneladas de estrategias de actualización e implementación que puede implementar sin afectar la experiencia del cliente.La implementación de Citrix es extremadamente fácil, estable y segura.Las empresas todavía lo utilizan.Sin embargo, creo que JWS es incluso mejor que Citrix.La idea de JWS es ejecutar aplicaciones en máquinas cliente en lugar de alojar toneladas de granjas de servidores donde las máquinas cliente son capaces de ejecutar estas aplicaciones por sí mismas.¡¡¡Esto le ahorra mucho dinero a la empresa!!!Con JWS, el equipo de desarrollo aún puede crear datos y lógica empresarial en el lado del servidor.Sin embargo, sin la unidad de procesamiento web y dejar que las computadoras cliente realicen el proceso de renderizado, se reduce en gran medida la cantidad de consumo de la red y la potencia de procesamiento del servidor.

Otro ejemplo de por qué JWS es una idea asombrosa es Blackberry MDS.Las aplicaciones de Blackberry son en realidad aplicaciones Java traducidas de Javascript.Con MDS Studio de BB, utiliza la herramienta GUI para crear la GUI de la aplicación BB, codificando la lógica de la GUI en Javascript.Luego, las aplicaciones se traducen y se implementan en un servidor BES.Luego, el servidor BES distribuirá estas aplicaciones a BB.En cada BB, ejecuta una aplicación Java delgada con representación GUI y capacidad de conexión en red únicamente.Siempre que la aplicación requiere datos, se comunica con BES a través de servicios web para consumir servicios de otros servidores.¿No es esta solo la versión JWS BB?Ha sido un gran éxito.

Finalmente, creo que JWS no es popular por la forma en que Sun lo anuncia.BB nunca anuncia lo buenas que son sus aplicaciones BB Java, creen que a los clientes ni siquiera les importará qué es.BB anuncia los beneficios de utilizar MDS para desarrollar aplicaciones:Rápido, Ahorro de Costos, Retorno Comercial.

Sólo mis, un poco largos, 2 centavos...:)

Otros consejos

Un gran obstáculo para Java Webstart es probable que todavía tiene que tener una JVM instalado antes de que incluso puede intentar descargar e iniciar la aplicación. Todo el mundo tiene un navegador. No todo el mundo tiene una JVM.

Editar ya que he adquirido alguna experiencia práctica WebStart y ahora puedo agregar estos dos puntos:

  • Deployment Toolkit guión y la JVM modular lanzado en algún lugar alrededor de Java 1.6u10 que el requisito JVM menos problemático, ya que puede descargar automáticamente una JVM y el núcleo de la API e iniciar el programa Wile descargar el resto.
  • Web Start es seriamente defectuoso. Incluso entre los comunicados de Java 1.6, había una que descargarse la aplicación completa cada vez, y otra que lo descargó y luego falló con un oscuro mensaje de error. Con todo, realmente no puedo recomendar confiando en un sistema tan frágil.

Creo que es sobre todo debido a la falta de conciencia. Funciona muy bien. Bastante transparente. App sólo descarga si es la primera vez, ha habido una actualización, o si el usuario final ha borrado la caché. Gran manera de desplegar sobremesa en toda regla apps que el usuario no tendrá que preocuparse de actualizar manualmente!

El problema con Webstart es, que en realidad se tiene que 'empezar' algo que no es en absoluto tan rápido incluso con una conexión rápida, mientras que con una aplicación web que introduzca la URL y la aplicación está ahí.

También una gran cantidad de cosas pueden ir mal con WebStart. Tal vez el usuario previsto no tiene los privilegios necesarios, o el proxy de WebStart está configurado mal, o algo salió mal con dependencias jre o simplemente no hay Java instalada en el primer lugar. Así que para el promedio de John Doe en el Internet no es en absoluto agradable.

En ambientes controlados como una empresa que es una solución buena y fácil en muchos casos.

He trabajado en una aplicación implementada-JWS durante algunos años sobre una base de usuarios de unos pocos miles de personas y sus actualizaciones automáticas son en realidad un enorme dolor.

En cada actualización por alguna razón las docenas de usuarios "atascarse en el medio". Todo lo que se obtiene es la "clase no encontrado" excepción (si tienes suerte), o no informativa "no se puede poner en marcha" de JWS incluso antes de que llegue a su código. Parece que se descargó la mitad-la actualización. O, en otras palabras, no descargar y aplicar la actualización de forma atómica y tiene mala almacenamiento en caché de manera que el relanzamiento de la aplicación desde la misma URL no soluciona nada.

No hay manera de resolverlo aparte de borrar la memoria caché JWS o proporcionar una URL diferente (por ejemplo anexar ?dummyparam=jwssucks al final). Incluso yo como desarrollador golpeó veces y no veo un revés.

Cuando funciona, funciona. Sin embargo, con demasiada frecuencia no lo hace, y entonces es un dolor enorme para usted y su asistencia. Yo no lo recomendaría para la empresa o el uso de misión crítica.

No es un problema muy grande a saber, que no permite "iniciar el programa al instante y después comprobar y descargar las actualizaciones en segundo plano" despliegues, que es lo que el comportamiento de facto de aplicaciones tienden a.

Considero que este personal tan grande una molestia que estamos buscando activamente otra tecnología que proporciona eso.

A partir de estos mensajes Parece que al usar comienzo Web, es importante hacer una buena atención sobre el servidor. El "gran dolor" de la descarga de la aplicación en cada inicio puede ser causada por la marca de tiempo incorrecto entregado desde el servidor. Aquí no la aplicación, pero el servidor deben configurarse para utilizar el almacenamiento en caché correctamente y no sólo para desactivarlo. Acerca de inicio con errores, no soy mucho seguro, pero me parece que esto también puede ser causada por una conexión fiable.

ventaja importante de inicio Web es que funciona muy bien con OpenJDK bajo Linux. Los clientes de algunos desarrolladores felices sólo usan Windows, pero mis clientes no lo hacen.

HTML y JavaScript, que se menciona en la pregunta inicial, son los enfoques más ligeros que funcionan bien con tareas más pequeñas como botones animados o incluso mesas interactivas. nicho de Java parece tareas en torno mucho más complejas.

Java Web Start es una especie de un sucesor de los applets de Java y applets se quemó alrededor del nuevo milenio. Sin embargo, sigo pensando que los applets de Java son mucho mejor que GWT o Javascript infierno.

Java Web Start vs Embedded Java Applet

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top