Hay muchas formas de actualizar nuestro proyecto Desktop, Java Web Start es una gran alternativa. Miremos otra situación, tal vez nuestros clientes poseen una conexión de Internet limita a un ancho de banda muy pequeño o con cualquier otra limitación como inconsistencia en el mismo.
Si la situación es esta , desarrollar una aplicación Web no es factible, y queremos implementar una alternativa a Java Web Start, si esta es nuestra decisión, podemos desarrollar una aplicación Desktop, donde dividimos nuestro proyecto en pequeños módulos o sub-proyectos, que seran integrados en el proyecto principal, y a cada modulo crearemos una clase que contendrá la versión del módulo, con un formato sencillo: año.mes.dia.horaminutos, luego crearemos una clase que generara un archivo xml con la información del numero de versión de todos los módulos y este archivo junto con los módulos que sufran cambios serán subidos por el desarrollador al servidor ftp. En el cliente al iniciar el sistema simplemente descarga el archivo .xml que contiene las versiones de los modulos en el servidor ftp, y los compara con las versiones de los módulos local mente, y si hay cambios solo se descargaran aquellos que han cambiado.
Desarrollador: Generar archivo xml de versiones
Generando la versión de cada módulo en el archivo xml.
El desarrollador sube el archivo xml
y los modulos que se han actualizado (archivos .jar)
Cuando el usuario entra al sistema
Mensaje de Actualización en el menu
Actualizamos los modulos, el sistema nos indica las diversas versiones, locales y web de los modulos que han sido actualizados.
Mensaje de terminación de actualización de módulos(descarga de los .jar actualizados).
Esta es solo otra forma de hacerlo, existen muchas más, era un simple ejemplo que podemos implementar en nuestros proyectos.
Si la situación es esta , desarrollar una aplicación Web no es factible, y queremos implementar una alternativa a Java Web Start, si esta es nuestra decisión, podemos desarrollar una aplicación Desktop, donde dividimos nuestro proyecto en pequeños módulos o sub-proyectos, que seran integrados en el proyecto principal, y a cada modulo crearemos una clase que contendrá la versión del módulo, con un formato sencillo: año.mes.dia.horaminutos, luego crearemos una clase que generara un archivo xml con la información del numero de versión de todos los módulos y este archivo junto con los módulos que sufran cambios serán subidos por el desarrollador al servidor ftp. En el cliente al iniciar el sistema simplemente descarga el archivo .xml que contiene las versiones de los modulos en el servidor ftp, y los compara con las versiones de los módulos local mente, y si hay cambios solo se descargaran aquellos que han cambiado.
Desarrollador: Generar archivo xml de versiones
Generando la versión de cada módulo en el archivo xml.
El desarrollador sube el archivo xml
y los modulos que se han actualizado (archivos .jar)
Cuando el usuario entra al sistema
Mensaje de Actualización en el menu
Actualizamos los modulos, el sistema nos indica las diversas versiones, locales y web de los modulos que han sido actualizados.
Mensaje de terminación de actualización de módulos(descarga de los .jar actualizados).
Esta es solo otra forma de hacerlo, existen muchas más, era un simple ejemplo que podemos implementar en nuestros proyectos.
Comments
Aunque webstart tiene algunas limitaciones (nada mas actualiza el programa al inicio) el problema de conecciones lentas se puede resolver configurando el proyecto de webstart para que use diferentes jnlps en vez de uno grande con todos los archivos.
En otras palabras, creo que algo muy parecido se puede hacer.
Algo que me gustaria y se parece un poco a lo que tienes aqui, es una combinacion entre Webstart y OSGi (para las versiones de los modulos, y actualizar de manera mas dinamica)