Enterprise Application EJB3 Como Portal y Cliente Web Apps - Arquitectura/Diseño
Como se muestra en la foto de arriba, tengo una aplicación EJB3 Empresa (archivo EAR), que actúa como un portal web y tiene 3 aplicaciones (archivos WAR) que se comunican y realizan transacciones con el mismo almacén de datos. Estas 3 aplicaciones web no son implementaciones de portlets, sino webapps normales que interactúan con el almacén de datos a través de la Capa de persistencia de la aplicación Enterprise. Estos webapps se desarrollan de forma independiente, por lo que algunos de ellos usan servicios web de la aplicación Enterprise y algunos de ellos usan EJB-Clients.
Además, hay una otra opción de reemplazar estas aplicaciones web (Web App1, Web App2 y Web App3) y el uso de aplicaciones empresariales independientes para comunicarse y realizar transacciones con la base de datos, como se muestra a continuación:
Ahora, mis preguntas son:
1) ¿Cuál es la mejor opción entre las 2 opciones enumeradas (arriba)?
2) ¿Cómo afecta cuando reemplazamos las aplicaciones web que actúan como clientes a la aplicación Enterprise, como aplicaciones empresariales independientes (archivos EAR)?
3) ¿Qué es un modelo mejor para el manejo de transacciones, la funcionalidad de SSO, la escalabilidad y otros factores?
4) ¿Hay algún otro modelo mejor?
EDITAR:
1) En el primer modelo, el cual método es una forma preferida para interactuar con el archivo EAR - webservices o archivo JAR EJB-cliente/biblioteca (interfaces y clases de utilidad)?
2) ¿Cómo difieren ambos modelos en el uso de la memoria (RAM del servidor) y el rendimiento. ¿Hay alguna diferencia considerable?
¿Por qué estás considerando estas 2 opciones? por ejemplo, ¿es para diferentes opciones de implementación? Además, ¿cómo se divide el acceso a los datos en la opción 2? ¿Tiene cada EAR "propiedad" de sus propios datos, o cada uno de ellos tendrá acceso completo de lectura/escritura en todo el conjunto de datos? Si está separado, ¿dónde están los límites transaccionales? ¿Cada EAR solo debería preocuparse por sus propios límites? ¿Qué tipo de datastore tienes y será un cuello de botella? ¿Su aplicación es predominantemente de lectura o escritura? Lo siento, por todas las preguntas: ¡espero que esto no refleje mi propia ignorancia! – Romski
Romski: Estoy considerando estas 2 opciones, por mi propia curiosidad y solo para descubrir cuáles son las mejores prácticas y cuáles se adaptan mejor a nuestras necesidades. En cuanto a sus preguntas, sí, cada EAR tiene propiedad. Están diseñados/desarrollados de esa manera, ya que manejan diferentes funcionalidades y por otros motivos comerciales. Todas las aplicaciones son predominantemente de lectura y escritura y usan RDBMS, por el momento. – bchetty
Además, compruebe la parte 'Editar' de mi publicación original. – bchetty