Digamos que estoy escribiendo un backend de Java para alguna herramienta GUI frontal (Swing). Este backend constará de muchos tipos diferentes de EJB para la lógica de middleware/negocio, así como algunos servicios web que filtran las solicitudes de reenvío & a esos EJB.Pros/contras a varias estrategias de empaquetado de Java
En cuanto a los envases & despliegue va, tenemos varios diferentes estrategias posibles:
- 1 monolítica EAR/1 servidor de aplicaciones - paquete de todos los EJB en los frascos, y los servicios web en una guerra, y el paquete todos estos dentro de 1 EAR monolítico; que EAR es entonces enviado a un servidor de aplicaciones (por ejemplo, GlassFish)
- Muchas orejas diminutas/1 servidor de aplicaciones - paquete de cada componente (cada EJB, y cada servicio web) en su propio JAR/WAR, y luego cada uno JAR/GUERRA en su propio OÍDO; por lo tanto, hay una relación 1: 1 entre componente y EAR; cada oído es entonces enviado a la misma aplicación servidor
- Muchas orejas diminutas/Muchos appservers - igual que el anterior, excepto que cada EAR "pequeña" se implementa en su propio servidor de aplicaciones; por lo tanto hay una correlación 1: 1 entre el componente y la aplicación de servidor
- sin orejas/Muchos appservers - Igual que el anterior, excepto eliminar los "intermediarios" orejas y acaba de desplegar cada JAR/WAR empaquetados para su propio servidor de aplicaciones
¿Cuáles son los pros/contras de cada una de estas 4 estrategias? ¿Son algunos más seguros? ¿Performant? Más propicio para la agrupación/replicación? ¿Algunas de estas estrategias son simplemente tontas?!?
¡Gracias de antemano!
Gracias cdeszaq - ¿entonces usted está diciendo que las prácticas modernas tienden hacia un desarrollo modular más pequeño, basado en "componentes"? Si es así, ¿es justo decir que sería un defensor de muchos EAR/muchos servidores de aplicaciones? ¡Gracias de nuevo! – IAmYourFaja
El desarrollo basado en componentes es definitivamente el favorito actual. Muchos EAR van junto con eso. El número de servidores de aplicaciones en los que se dividen los módulos es un problema de escala, no de embalaje. Comience colocando todas las aplicaciones en un servidor y extráigalas según lo requiera la carga. No optimice la infraestructura hasta que lo necesite. – cdeszaq
Esas dos últimas frases unen todo para mí.Gran respuesta y buen consejo. ¡Gracias! – IAmYourFaja