[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Automatización de actualizaciones en Java



Contestando a Rafa, os amplío la información sobre el contexto del sistema:

A grandes rasgos, se trata de una aplicación orientada a colectividades (hoteles, residencias, hospitales...) relacionada con la emisión de contenidos de TV en modo Pago Por Vision o Pay Per View. En cada instalación, habrá un servidor de aplicaciones en la red local de la colectividad (de ahí la necesidad de actulizar un componente servidor que comenta Rafa), conectado a los equipos que rigen la emisión. Los clientes serían navegadores web a lo largo de la colectividad.

Se prevee un gran número de instalaciones, no administradas, y de ahí la necesidad de un proceso automatizado de actualización.

Desde el principio miré JNLP y WebStart, debido a que inicialmente nuestros requisitos incluían control de versiones y firmado/autenticado de actualización. No obstante, estos requisitos se han relajado (contestando a José), y ahora podemos considerar que se ha hecho llegar el fichero de actualización al equipo de una manera segura (mediante un upload directo al servidor, intervención del adminstrador local...)

Por lo tanto he optado por usar un enfoque que use ANT como director de orquesta que va sincronizando las operaciones necesarias para llevar a cabo la actualización.

Gracias a algunas notas comentadas por Alejandro en sus mails y las pruebas de concepto que he ido realizando, he llegado a las siguientes conclusiones:

- Se intentará  que el componente actualizador sea lo más simple posible
- Se intentará usar tecnologías y componentes probados y abiertos

El esqueleto que estoy desarrollando (y ahora viene lo importante :) )hace más o menos lo siguiente, a ver qué os parece:

(Consideramos el aprovisionamiento realizado; es decir, partimos de que tenemos un fichero de actualización correcto, y convenientemente autenticado)
- Extracción de soporte: descomprimir distribución de actualización
- Localización de manifiesto: descriptor con diferente información sobre la actualización
- Lanzamiento script ANT recibido en el fichero de actualización (referenciado y configurado en el manifiesto-descriptor de la actualización)
- script ANT recurre a targets y tareas creados ad hoc para el módulo de actualización, que pueden incluir:
· parar, arrancar servicios
· correr script bd
· operaciones con ficheros
· despliegue/repliegue aplicaciones en servidor
- en caso de que una actualización concreta requiera funcionalidad no instalada, se puede empaquetar en el fichero de actualización
- en caso de que ocurra algún fallo, se abortará el proceso de actualización y se restaura la versión anterior


Lamentablemente, sólo he conseguido "reutilizar" ANT, pero me gustaría poder integrar alguna solución abierta más, ¿se os ocurre alguna otra herramienta a la que pueda recurrir?

gracias a todos por vuestras ideas
Dani

PD: otro "problema" que estoy teniendo es el control de excepciones levantadas por ANT; no se propagan hacia arriba todo lo transparentemente que me gustaría (estoy llamando a ANT desde código), ¿alguna idea para esto?


Mensaje original: http://www.orange-soft.com/mindfood/archive/msg00226.html
Aportación de Alejandro (1): http://www.orange-soft.com/mindfood/archive/msg00228.html
Aportación de Alejandro (2): http://www.orange-soft.com/mindfood/archive/msg00227.html
Aportación de Rafa: http://www.orange-soft.com/mindfood/archive/msg00229.html
Aportación José: http://www.orange-soft.com/mindfood/archive/msg00230.html