Java Aplicacion Web grande

Buen día a todos.

Estamos desarrollando una aplicación Web utilizando Tomcat 7 server+Spring+JSF+Spring Hibernate.

En una entrada anterior les había preguntado si se podían integrar un war como si fuera un jar debido a que hay por decirlo un "modulo" que utilizan todos los demás módulos que conforman el proyecto.

Se decidió por trabajar todos sobre el mismo proyecto para solo tener 1 archivo war que desplegar, aunque alguien me sugirió que podría utilizar EAR (que revise y al parecer no funciona con Tomcat, tendría que utilizar Geronimo) y ahi me surgio la gran duda...

Para aplicaciones web "grandes" se recomienda utilizar EAR? o algun otro servidor que no sea Tomcat? esto para tener problemas de que se vaya a caer la aplicación.... o el rendimiento de la aplicacion en el servidor solo depende de la arquitectura que se haya utilizado?

Que me recomiendan? No hay problema, con tomcat y tener un solo war con toda el aplicativo?, o separar en varios war?, utilizar EAR?, o utilizar otro servidor de aplicaciones (de preferencia que no sea de paga).

Gracias.

Saludos,

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Puedes usar jars para poner

Puedes usar jars para poner el codigo que hay en común.

El ear es para "Application Servers" como Weblogic, Websphere, JBoss. Por el stack que mencionas parece que no necesitas un application server y estas bien con un servlet container ( Tomcat ).

Lo que puedes hacer es utilizar maven y crear otros módulos donde pongas la lógica en común y definir una dependencia en tu war hacia ese módulo ( puedes hacer lo mismo a mano utilizando jars simplemente pero es más lata )

En fin, todo depende de que sea esa funcionalidad en comun.

Gracias

Que tal Oscar,

Muchas gracias por tus comentarios.

Yo tambien creo que con un servlet container funciona bien, la demanda son capturas, consultas y reportes, pero debido a que nos varios modulos la aplicación lo que queria estar seguro es que no se fuera a caer... aunque comentando con unos compañeros salio la posibilidad de poner en cluster la aplicación y balancear la carga (en caso de ser necesario), como ves esta opción?

Muchas gracias.

Saludos y buen fin de semana!!

Imagen de ezamudio

EAR

Nosotros usamos un EAR que contiene varios war adentro y varios jar, por la conveniencia de que todos los war pueden compartir los jars que contiene el EAR, etc. Terminó siendo una pesadilla.

La bronca es que si quieres actualizar una aplicación, como todo está en el EAR, pues tienes que subir un nuevo EAR. Para empaquetarlo debes entonces tener muy buen control de versiones para que no vayas a subir una versión inestable de otra aplicación, solamente la que quieres actualizar. Pero a veces se vuelve imposible porque resulta que al haber actualizado tu aplicación pues usa una versión más nueva de un jar compartido por lo tanto ya no puede ser compartido tienes que hacerlo privado para todas las apps, etc.

Y desafortunadamente esa app ya se nos volvió legacy y no hay marcha atrás, así que cada que hay que moverle algo hay que reempaquetarla de forma manual, es un horror. Hemos ya reescrito algunas aplicaciones y esta vez estamos soltando wars separados, incluso me parece mejor estrategia ahora tener varios contenedores separados para correr aplicaciones que no tienen comunicación directa entre sí, más que compartir información por medio de la base de datos. Para aplicaciones que se necesitan comunicar entre sí pues se pueden tener en el mismo contenedor (usamos tomcat porque es ligero pero robusto, aunque yo le traigo puesto el ojo a WildFly para cuando salga, porque se supone que va a ser muy pero muy rápido sobre todo su tiempo de arranque), aunque no es necesario que estén en el mismo contenedor para comunicarse, pues hay varios mecanismos que se pueden usar y el óptimo pues depende del tipo de comunicación que necesites.

Gracias por compartir

Que tal Ezamudio!

Muchas gracias por compartir tus experiencias, son de gran ayuda para abrir y despejar algunas dudas que nos surgen.

Como dices voy a echarle un ojo a WildFly cuando salga, se ve bastante bien!!!

Saludos!