Arquitectura / organización de proyectos en aplicaciones Java EE con EJB 3.0, JPA, proyectos web dinámicos en JBoss

StackOverflow https://stackoverflow.com/questions/420222

Pregunta

Tengo una aplicación web con diferentes proyectos web dinámicos, cada uno de los cuales generalmente contiene un proyecto EJB. Queremos mantenerlos interactuando, como al usar beans y clases de los EJB de cada uno a través de JNDI, compartir la misma base de datos o usar la suya propia. Pero también queremos poder mantener diferentes proyectos en diferentes servidores.

¿Cuál sería el enfoque correcto para este tipo de proyecto en términos de arquitectura y organización?

¿Cómo debemos usar los EAR? ¿Una oreja para gobernarlos a todos y en la oscuridad atarlos? (lo siento, ¿tuvo que hacer esa referencia de LOTR), o un EAR por servidor / proyecto web, etc.?

¿Fue útil?

Solución

El espacio en el disco es barato, pero si lo pone todo en un solo EAR, su servidor de aplicaciones es capaz de ejecutarlos todos, incluso si lo que desea es el Servicio A. Es mejor romper los EJB que se usan comúnmente y desplegarlos. ellos mismos, y los componentes de cada servicio individual en sus propios EARs.

Luego, utilizando JBoss como ejemplo, simplemente puede copiar los artefactos directamente en el directorio de implementación de cualquier servidor en el que desee ejecutarlos.

OrderManagement.ear InventoryManagement.ear StoreFront.ear

Entonces puedes tener todo, algunos o nada en cualquier servidor en particular.

Otros consejos

Los EJB están destinados a ser modulares, por lo que, dependiendo del servicio que desee proporcionar, debe proporcionar un EAR adecuado para su implementación. Además, intente usar MBeans e impleméntelos como servicios independientes. Las interfaces de administración ayudan mucho en la depuración y la prueba.

Tenga en cuenta los escenarios de corrección / actualización de errores y pruebas de regresión. Cuantos más módulos EJB tenga en el mismo EAR, más puntos de función necesitarán pruebas de regresión, incluso si fijó o agregó una nueva característica a solo uno de los módulos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top