Skip to main content

Sistema de Actualizacion usando FTP solamente

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.

Comments

Augusto said…
Hey Aristides, como estas? Esto esta muy interesante.

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)
soliddanii said…
Hola, me interesa MUCHISIMO saber como hacer esto para mi aplicacion pero esque no encuentro ningun turorial, y no lo explicas aqui. puedes ayudarme? gracias!
soliddanii said…
Hola, me interesa MUCHISIMO saber como hacer esto para mi aplicacion pero esque no encuentro ningun turorial, y no lo explicas aqui. puedes ayudarme? gracias!
soliddanii said…
Hola, me interesa MUCHISIMO saber como hacer esto para mi aplicacion pero esque no encuentro ningun turorial, y no lo explicas aqui. puedes ayudarme? gracias!
me parece muy interesante este ejemplo podrias pasar el codigo fuente se te agradeceria mucho man gracias joseramozz1992@gmail.com
hola me parece interesante este ejemplo podrias por favor pasar el codigo se te agradeceria mucho joseramozz1992@gmail.com

Popular posts from this blog

Apache NetBeans

Apache NetBeans
https://wiki.apache.org/incubator/NetBeansProposal

Si, algo que se esperaba desde hace muchos años, una liberación de NetBeans, para convertirlo en un IDE más abierto, y que permita mayor contribución de la comunidad y de otras empresas, ya inicio su primera etapa en la incubadora de la Fundación Apache.
Las implicaciones que esto conlleva son múltiples por una parte esta la evolución de NetBeans, al permitir que más contribuyentes puedan aportar a sus mejoras, también garantiza que aquellas instituciones no sientan que es una sola organización la que controla la evolución. A las comunidades les permite sentirse que participan de un proyecto con todas las garantías que ofrece la Fundación Apache.

Muchos pensaran que Oracle esta dejando morir el proyecto, la realidad es diferente, hay muchos ingenieros que están participando del proyecto en la fundación Apache.
Es una noticia excelente para los desarrolladores, instituciones, empresas que utilizan NetBeans , se estima qu…

Un ejemplo sencillo de Refactorización y Genericos

Un ejemplo sencillo de Refactorización y Genericos

public class Refactorizador<K, V> {

    public V copyFromBeans(K k, V v) {
        try {
            Class claseK = k.getClass();
            Class claseV = v.getClass();

            Method[] metodosK = claseK.getMethods();

            for (Method method : metodosK) {
                if (isGetter(method)) {
                    Method metodoGetK = claseK.getDeclaredMethod(method.getName());
                    Method metodoSetV = claseV.getDeclaredMethod(changeGetBySet(method.getName()), method.getReturnType());
                    metodoSetV.invoke(v, metodoGetK.invoke(k));
                }

            }

        } catch (Exception e) {
            System.out.println("refactorizador() " + e.getLocalizedMessage());
        }
        return v;
    }

     public  boolean isGetter(Method method) {

        if (!method.getName().startsWith("get")) {
            return false;
        }
        if (method.getName().startsWith("getCla…

FileUpload con Primefaces

FileUpload con Primefaces

Si queremos subir imagenes a nuestra aplicación usaremos el componente FileUpload Debemos realizar los siguientes pasos:
Agregar al archivo web.xml

   <filter>        <filter-name>PrimeFaces FileUpload Filter</filter-name>        <filter-class>            org.primefaces.webapp.filter.FileUploadFilter        </filter-class>    </filter>    <filter-mapping>        <filter-name>PrimeFaces FileUpload Filter</filter-name>        <servlet-name>Faces Servlet</servlet-name>    </filter-mapping>



Crear dentro de resources el directorio donde deseamos almacenar las imagenes En este ejemplo: resources/fotos/clinicas y agregue una imagen llamada fotos.png que se usará como imagen inicial.



En JSFUtil u otro @Named Beans que usemos agregamos tres métodos uno para obtener el path de la aplicación web , otro para obtener el path relativo a /fotos/clinicas y el otro para copiar los archivos. /*