Overview su Java 2 Enterprise Edition
La piattaforma Java Enterprise Edition opera su 4 livelli:- livello client che viene eseguito sulla macchina client
- livello web che viene eseguito su un server EE
- livello business anch'esso eseguito sul server Java EE
- livello Enterprise Information System

Architettura a 3 livelli
Come mostrato nell'immagine a lato, i 4 livelli (Client, Web, Business e Enterprise Information System) sono in genere distribuiti su tre macchine:
- la macchina client
- il server Java EE
- il Database server
I componenti sono suddivisi in tre categorie:
- eseguiti sul client (es applet)
- eseguiti sul server (Servlet, Java Server Pages, Java Server Faces)
- business (Enterprise Java Beans)
Un client web è costituito da due parti:
- le pagine web dinamiche: usano linguaggi di markup e sono generate dai web component residenti nel livello web (Servlet, JSP, JSF...)
- browser web: visualizzano le pagine mostrandone il contenuto (parliamo in questo caso di thin client)
Sia il livello client che il livello server possono includere Javabeans ovvero particolari oggetti che hanno proprietà, metodi get e set per accedervi e rispettano particolari convenzioni sui nomi.
Un client, come detto, può comunicare con il livello business direttamente o attraverso il livello web (JSP o Servlet).

Comunicazione
Mentre un application client può comunicare direttamente con il livello business accedendo direttamente agli Enterprise Java Beans, un browser web vi accede attraverso il livello web (Servlet, Java Server Pages, Java Server Faces...).
Le servlet sono programmi scritti in java che gestiscono le richieste dei client e costruendo le corrispondenti risposte.
Le JSP sono pagine text-based che vengono eseguite come servlet ma che consentono di creare contenuti statici con maggiore naturalezza.
Il codice business che contiene la logica che risponde alle necessità di un dato problema è contenuto negli Enterprise Java Beans residenti nel livello business.
L'ultimo livello Enterprise Information System è infine costituito dai Database Management System che ospitano i dati applicativi.
I containers sono interfacce tra i componenti e le funzioni a basso livello che supportano il componenete. Prima che un componente web possa essere eseguito questo deve essere assemblato in un modulo java EE e quindi occorre effettuarne il deployment all'interno del container.
Alcuni dei container l'EEJ container, il web container, applet container, application client container...
I web-services sono particolari applicazioni web basate su xml che utilizzano protocolli di trasporto standard per scambiare dati con i client che effettuano le richieste. Le richieste dei client e le risposte dei web-services sono trasmesse attraverso il protocollo SOAP (Simple Object Access Protocol) costituito da messaggi su HTTP che assicurano la completa interoperabilità fra client e web-services su diverse piattaforme.
Un'applicazione Java EE è tipicamente impacchettata in una o più unità standard contenenti i componenti funzionali insieme a deployment descriptor che ne specificano il contenuto.
Un'applicazione Java EE è distribuita in un archivio EAR (enterprise archive) un file jar con estenzione ear. Utilizzando file ear e moduli è possibile assemblare diverse applciazioni Java EE basate sugli stessi componenti riutilizzando il codice già scritto. Un file ear contiene moduli Java EE e un deployment descriptor ovvero un document xml che contiene informazioni sull'applicazione, il contenuto può essere cambiato senza dover cambiare il codice sorgente.
Un modulo Java EE è costituito da uno o più componenti che necessitano dello stesso tipo di container e da un deployment descriptor.
Esistono 4 tipi di moduli Java EE:
- moduli Enterprise Java Beans: contengono i file class degli EJB e il relativo Deployment Descriptor (tipicamente impachettati in un file JAR).
- moduli web: contengono i file class delle Servlet, Java Server Pages, Java Server Faces, risorse grafiche (gif, jpeg...) e altro ancora (tipicamente impacchettati in web-archive, un file JAR con estensione .war).
- moduli application client: contengono interfacce, classi e librerie insieme ad un application client deployment descriptor.
- moduli resource adapter: contengono interfacce java, classi, documentazione che implementano la Connector Architecture per un dato EIS.
Java Enterprise Edition
Home page Java Enterprise Edition sul sito della Sun
Home page Java Enterprise Edition sul sito della Sun
Javadoc J2EE
Documentazione sulle API di Java 2 Enterprise Edition
Documentazione sulle API di Java 2 Enterprise Edition