Concetto: Configurazioni di distribuzione di J2EE
Questa linea guida descrive i pro e i contro delle varie configurazioni di distribuzione della piattaforma J2EE.
Relazioni
Descrizione principale

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.

Diagramma descritto nel testo di accompagnamento.

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.

Diagramma descritto nel testo di accompagnamento.

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.

Diagramma descritto nel testo di accompagnamento.

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.

Diagramma descritto nel testo di accompagnamento.

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.