Sto pensando di ristrutturare la mia attuale applicazione e non sono sicuro che questo sia l'approccio giusto.
Attualmente
Ho un'applicazione server Java Enterprise con 3 applicazioni web e una ejb-application che gestisce il database (JPA con EJB-Facades). Tutto in un singolo progetto (distribuito come file ear
).
Le applicazioni web sono abbastanza indipendenti, sebbene utilizzino tutti lo stesso database e le stesse entità. Quindi, dipendono tutti dalla ejb-application .
Che cosa vorrei fare
Vorrei separare le applicazioni web, in modo che possano essere eseguite indipendentemente e non è necessario ridistribuire tutto, solo perché apporto una modifica in un'applicazione.
L'idea è di creare una sola libreria jar
che contenga interfacce remote per i bean di facciata esistenti . In questo modo posso impostare jar
come libreria disponibile sul server e implementare la mia ejb-application che implementerà le interfacce remote .
Le 3 applicazioni web dovrebbero solo importare la mia libreria e avere accesso completo al database.
Ora, non sono nemmeno sicuro se questo è un modo raccomandabile, dal momento che immagino che remote ejbs
possa avere un grave impatto sulle prestazioni a causa della serializzazione (o non loro ? ).
E per quanto riguarda le classi di entità del database? Dal momento che ogni applicazione Web li utilizza quando accede al database, è necessario che siano inclusi anche in jar
. Ma avendo un ejb-application per l'accesso al database che non contiene le effettive classi entity
- che è semplicemente fuori posto.
———— ———— ————
|web1| |web2| |web3|
———— ———— ————
\ | /
——————— ——— ———
| JAR | |EJB|——————————>|DB |
——————— ——— ———
entity classes <---import----- db-facades
remote ejbs <---implement---/