que estoy pidiendo una arquitectura adecuada para la siguiente aplicación web de Java:Arquitectura - Múltiples aplicaciones web que funcionan en los mismos datos
El objetivo es construir varias aplicaciones web que funcionan todos en los mismos datos. Supongamos un sistema bancario en el que se puede acceder a datos de cuenta mediante diferentes aplicaciones web; a la que pueden acceder los clientes (banca en línea), el personal del servicio (principalmente leído) y el departamento de administración de cuentas (herramienta de administración). Estas aplicaciones se ejecutan como aplicaciones web separadas en diferentes máquinas, pero usan los mismos datos y un conjunto de consultas de búsqueda y manipulación de datos comunes.
Un enfoque posible es construir una aplicación central que se ajusta a las necesidades comunes de los clientes, es decir, el almacenamiento de datos, manipulación y servicios de búsqueda. Los clientes pueden llamar a esta aplicación central para cumplir sus solicitudes. El requisito es que las aplicaciones se construyan sobre una pila Wicket/Spring/Hibernate como WAR.
Para obtener un panorama, aquí están algunos de los posibles enfoques que pensamos:
A El enfoque monolítico. Construir una gran aplicación web que se adapte a todas las necesidades (esto no es realmente una opción)
B El enfoque de la API. Cree una API de acceso a la base de datos central (JAR) para acceso/manipulación de datos. Cada aplicación web se compila como una GUERRA separada que usa la API para acceder a una base de datos. No hay una aplicación central separada.
C RMI approach. La aplicación principal se ejecuta como una aplicación independiente (posiblemente una GUERRA) y ofrece servicios a través de RMI (o HttpInvoker).
D WS approach. Al igual que C, pero reemplace la RMI con los servicios web
E Enfoque OSGi. Cree todos los componentes como módulos OSGi y que se ejecuten en un contenedor OSGi. Posiblemente use SpringSource dm Server o ModuleFusion. Este enfoque no era una opción para nosotros por algunas razones ...
Esperanza Podría aclarar el problema. Estamos yendo con la opción B, pero no estoy muy seguro con eso. ¿Cuáles son sus opiniones? ¿Alguna otra solución? ¿Cuáles son los inconvenientes de cada solución?
Podría ser la forma en que planteó el problema, pero esto suena sospechosamente como tarea. – Powerlord
Puede sonar así. Eso es probablemente debido al ejemplo bancario. En nuestro caso concreto, no es una aplicación bancaria. – cretzel