Introduzione
La piattaforma J2EE supporta lo sviluppo e la distribuzione di una varietà di configurazioni di distribuzione standard.
Sono queste configurazioni di distribuzione standard a fare molte ipotesi sullo
sviluppo dell'applicazione. Nelle sezioni seguenti saranno presenti descrizioni delle configurazioni di
distribuzione più comuni con relativi pro e contro.
Se non si ha familiarità con i concetti di J2EE, vedere le descrizioni in Panoramica di J2EE (Java 2 Platform Enterprise Edition) prima di proseguire.
Configurazione di
distribuzione autonoma
Nella Figura 1 è illustrata la prima configurazione di distribuzione. In questa configurazione non sono presenti
contenitori Web né EJB, il client ha accesso diretto alle risorse EIS ed è responsabile della gestione della logica di
presentazione, di business e d'integrazione.
Figura 1: Configurazione di distribuzione autonoma
A prima vista, questa configurazione potrebbe sembrare una proposizione interessante per le applicazioni che fornisce
una manipolazione semplice dei dati contenuti nelle risorse EIS. Tuttavia, ciò presenta dei potenziali svantaggi.
Le modifiche alle risorse EIS possono avere un maggiore impatto sull'implementazione dell'applicazione, che spesso
dipende direttamente dalla struttura interna della risorsa EIS, come la struttura delle tabelle di database. Ogni
modifica all'applicazione stessa richiede un'implementazione completa per ogni utente, non esiste un server centrale
dove l'applicazione viene distribuita consentendo al client un accesso diretto alle ultime correzioni.
Inoltre, questa configurazione di distribuzione non facilita una divisione di responsabilità. Ad esempio, spesso le
logiche di presentazione e di business sono strettamente legate, rendendo difficoltoso il supporto dell'evoluzione e
della gestione dell'applicazione.
Il vero problema di questa configurazione di distribuzione inizia comunque ad emergere nel momento in cui si decide di
scalare l'applicazione. Le workstation client hanno caratteristiche di prestazione limitate, così idealmente si
potrebbe distribuire l'elaborazione su un vario numero di macchine. Tuttavia, la configurazione autonoma non è
progettata per supportare elaborazioni distribuite. Inoltre, se si tenta di supportare l'accesso di più client alle
risorse EIS contemporaneamente, le applicazioni potrebbero risultare vincolate alla risorsa EIS stessa, così come il
numero delle connessioni database simultanee.
Configurazione di
distribuzione centrata su EJB
La configurazione di distribuzione centrata su EJB è illustrata nella Figura 2. In questa configurazione un contenitore
EJB è situato tra il contenitore client e le risorse EIS e non esiste un contenitore Web. La logica di presentazione
risiede nel client mentre quella di business in EJB. Invece di accedere alle risorse EIS direttamente, tutte le
richieste dai client vengono gestite dagli EJB appropriati. I client dunque sono protetti dalle modifiche nelle risorse
EIS.
Figura 2: Configurazione di distribuzione centrata su EJB
La configurazione di distribuzione centrata su EJB è progettata per risolvere molte delle questioni presenti nella
configurazione di distribuzione autonoma. Da una prospettiva della scalabilità, l'implementazione della piattaforma
J2EE può distribuire l'elaborazione su un vario numero di macchine. Inoltre un contenitore EJB è responsabile per l'uso
efficace delle risorse limitate, come le connessioni database. Da una prospettiva dell'evoluzione e della manutenzione,
questa configurazione favorisce anche una separazione delle logiche della presentazione e del business.
Tuttavia, uno degli svantaggi della configurazione di distribuzione centrata su EJB è che anche le modifiche minori
dell'interfaccia utente richiedono un'implementazione completa dell'applicazione per ogni utente. Sebbene la logica di
business incapsulata negli EJB possa essere ridistribuita sul server (consentendo così all'utente un accesso diretto ad
ogni modifica), lo stesso non vale per la logica di presentazione. Questo è un elemento negativo, poiché l'aspetto di
un'applicazione potrebbe subire modifiche frequenti.
Configurazione di
distribuzione centrata sul Web
La configurazione di distribuzione centrata sul Web è illustrata nella Figura 3. In questa configurazione un
contenitore Web è situato tra il contenitore client e le risorse EIS, non esiste un contenitore EJB. Sia la logica di
presentazione che di business sono gestite dagli elementi nel contenitore Web (JSP e servlet). In questa
configurazione, nel client è utilizzato un linguaggio markup semplice, come HTML, anche se possono essere ugualmente
utilizzati XML o WML.
Figura 3: Configurazione di distribuzione centrata sul Web
Una configurazione di distribuzione centrata sul Web in genere dà luogo a un'enfasi del supporto dell'aspetto
dell'applicazione risultante, con una minore enfasi del supporto della logica di business. Tale configurazione supporta
modifiche frequenti nell'aspetto di un'applicazione ed è oggi ampiamente utilizzata.
Una configurazione di distribuzione centrata sul Web fornisce molti vantaggi. Primo, i client non subiscono l'impatto
delle modifiche alle risorse EIS, poiché non hanno un accesso diretto a queste. Secondo, è possibile ridistribuire
l'intera applicazione senza richiedere implementazioni all'utente, poiché l'applicazione risiede totalmente in un
server.
Tuttavia, sebbene l'utilizzo di EJB sia a volte considerato eccessivo per il lavoro che si sta gestendo, l'omissione di
EJB dà luogo ad alcune questioni sollevate nella configurazione di distribuzione autonoma. In modo specifico, questa
configurazione non incoraggia una divisione chiara di responsabilità tra le logiche di presentazione e di business,
dando luogo spesso a elementi strettamente legati che impediscono l'evoluzione e la manutenzione. Inoltre, tutte le
questioni di scalabilità presenti in una configurazione di distribuzione autonoma vengono applicate all'architettura
centrata sul Web.
Configurazione di
distribuzione multi-tier
La configurazione di distribuzione multi-tier è illustrata nella Figura 4. Questa configurazione include sia un
contenitore Web che un contenitore EJB ed esibisce tutti i vantaggi discussi per le altre configurazioni di
distribuzione senza gli svantaggi. La logica di presentazione è gestita dagli elementi nel contenitore Web, mentre
quella di business è gestita dagli EJB nel contenitore EJB.
Figura 4: Configurazione di distribuzione multi-tier
I client non subiscono l'impatto delle modifiche alle risorse EIS, poiché non vi hanno accesso diretto. Inoltre è
possibile ridistribuire l'intera applicazione senza richiedere implementazioni all'utente, poiché l'applicazione
risiede totalmente nel server.
Da una prospettiva della scalabilità, l'elaborazione può essere distribuita per supportare l'elaborazione
contemporanea. Inoltre, dalla stessa prospettiva, il contenitore EJB è responsabile per l'uso efficace delle risorse
limitate, come le connessioni database.
Da una prospettiva dell'evoluzione e della manutenzione, questa configurazione favorisce anche una netta separazione
delle responsabilità. La logica di presentazione è indipendente dalle risorse EIS, mentre la logica di business è
staccata dall'aspetto. Tale separazione netta può aiutare l'allocazione del lavoro a sviluppatori con diverse capacità,
mentre le logiche di presentazione e di business possono essere sviluppate contemporaneamente.
La configurazione di distribuzione multi-tier può anche favorire la migrazione da una periferica client (come un
browser Web) ad un'altra (come un PDA). Non è necessaria un riscrittura completa dell'applicazione perché la logica di
business incapsulata negli EJB resta immutata e può essere utilizzata così.
Per riepilogare, esistono varie configurazioni di distribuzione, ciascuna con relativi pro e contro. Uno degli
obiettivi della piattaforma J2EE è di essere abbastanza flessibile da supportare ogni configurazione di distribuzione
che sia ritenuta adeguata per un'organizzazione, risolvendo allo stesso tempo le questioni aziendali.
|