[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Automatización de actualizaciones en Java
- To: mindfood@xxxxxxxxxxxxxxx
- Subject: Automatización de actualizaciones en Java
- From: Daniel Blázquez <daniel.blazquez@xxxxxxxxxxxxx>
- Date: Thu, 10 Feb 2005 21:20:05 +0100
- Delivered-to: mailing list mindfood@orange-soft.com
- Delivered-to: moderator for mindfood@orange-soft.com
- Mailing-list: contact mindfood-help@orange-soft.com; run by ezmlm
- User-agent: Mozilla Thunderbird 1.0 (Windows/20041206)
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