Diciamo che sto scrivendo un backend Java per alcuni strumenti GUI (Swing) front-end. Questo back-end consisterà in molti tipi diversi di EJB per la logica middleware/business, nonché alcuni servizi Web che filtrano le richieste di inoltro su tali EJB da parte di &.Pro/contro a varie strategie di packaging Java
Per quanto riguarda l'imballaggio & distribuzione va, abbiamo diverse diverse strategie possibili:
- 1 monolitico EAR/1 appserver - pacchetto tutti gli EJB in barattoli, e servizi web in una guerra, ed il pacchetto tutti questi all'interno di 1 EAR monolitico; l'EAR viene quindi distribuito su un server di app (ad esempio GlassFish)
- Molte EAR minuscole/1 appserver - pacchetto di ciascun componente (ogni EJB e ogni servizio Web) nel proprio JAR/WAR e quindi ogni JAR/WAR in proprio EAR; quindi esiste un rapporto 1: 1 tra componente ed EAR; ogni orecchio viene poi distribuito al stessa applicazione server di
- Molte orecchie molto piccole/Molti appservers - come sopra, tranne che ogni orecchio "piccolo" viene distribuito al proprio application server; quindi non v'è un 1: correlazione 1 tra il server di componenti e applicazioni
- orecchie/Molti appservers - come sopra, tranne rimuovere il "intermediari" orecchie e basta distribuire ogni confezionato JAR/WAR alla propria appserver
Quali sono i pro/contro di ciascuna di queste 4 strategie? Sono un po 'più sicuri? Performante? Più favorevole per clustering/replicazione? Alcune di queste strategie sono semplicemente sciocche?!?
Grazie in anticipo!
Grazie cdeszaq - quindi stai dicendo che le pratiche moderne tendono a uno sviluppo più piccolo, modulare e "componente"? Se è così, è giusto dire che saresti un sostenitore di molti EAR/molti App Server? Grazie ancora! – IAmYourFaja
Lo sviluppo basato su componenti è sicuramente il preferito corrente. Molti EAR vanno proprio così. Il numero di app server con cui questi moduli vengono suddivisi è un problema di dimensioni, non un problema di packaging. Inizia mettendo tutte le app su un server e scomporle come richiesto dal carico. Non ottimizzare l'infrastruttura fino a quando non è necessario. – cdeszaq
Queste ultime due frasi legano tutto insieme per me.Ottima risposta e ottimo consiglio. Grazie! – IAmYourFaja