Salve,
leggendo varie guide sull'argomento penso di avere un po di confusione riguardo la natura della J2EE, in particolare sulla doppia definizione, in diverse guide, sia come "specifica" sia come "tecnologia" in riferimento alla J2EE.
Di seguito quello che ho desunto, nella speranza che qualcuno voglia correggermi in caso di errore
La J2EE (Java 2 Enterprise Edition) è una specifica introdotta dalla Sun.
Per specifica si intende l'elenco delle operazioni previste da un programma. In altre parole la Sun ha dettato le linee guida su cosa la J2EE è o non è e su cosa deve fare, in modo che distributori di terze parti possano implementare la loro versione della J2EE che sia però compatibile con le specifiche dettate dalla Sun.
Oltre a fornire la specifica la Sun fornisce anche l'implementazione della J2EE.
Tale implementazione della Sun è ovviamente conforme alle specifiche dell'azienda. In altre parole quando vado sul sito della Sun e scarico la J2EE sto scaricando le librerie (insieme di classi) realizzate dalla Sun che implementano le specifiche, e quindi le linee guida, della Sun stessa. Nella realtà nessun altro ha realizzato implementazioni della J2EE, quindi le classi per realizzare Servlet, JSP e quant'altro sono solo quelle della Sun.
La J2EE alla fine non è altro che un insieme di librerie e servizi che si vanno ad aggiungere alla J2SE.
In altre parole, per semplificare al massimo, la Sun ha preso la J2SE e ci ha aggiunto qualche libreria (come servlet.jar) e dei servizi (come l'Application Server della Sun). Anche servizi come un Application Server per essere J2EE compliant (cioè J2EE compatibile) deve seguirne in maniera rigorosa le specifiche.
Molto usato come Application Server è Tomcat.
Tomcat in realtà non è un Application Server compliant in quanto non implementa tutte le specifiche della J2EE: tanto per fare un esempio non permette agli EJB di funzionare. La corretta definizione di Tomcat è quella di "Servlet container" ovvero un motore che permette alle Servlet (e quindi alle JSP visto che Tomcat le trasforma poi in Servlet ) di girare, cioè funzionare.
Ecco spiegato il perché per realizzare JSP con Tomcat...non serve scaricare la J2EE!
1. A noi le librerie per fare EJB, JavaMail e quant'altro non servono, quindi è inutile che le importiamo. Quella che ci serve è solo la libreria per le servlet (che include anche le classi per le JSP), che - detto per inciso - è già contenuta nella cartella "lib" di Tomcat.
2. L'Application Server già incluso nella J2EE che scarichiamo dal sito della Sun entrerebbe in conflitto con Tomcat.
Quindi se voglio realizzare Servlet e/o JSP che girino su Tomcat mi basta una J2SE, Tomcat ed aggiungere servlet.jar, contenuta nella cartella "lib" di Tomcat, al mio CLASSPATH.
La J2EE è stata creata per realizzare applicazioni enterprise.
Enterprise significa in italiano azienda. Le applicazioni enterprise sono, quindi, quelle applicazioni solitamente create da aziende che hanno intenzione di offrire prodotti e/o servizi via internet (per esempio transazioni bancarie).
Detto molto terra terra la Sun si è resa conto che il futuro del software è rappresentato dalla applicazioni Web, cioè quelle che per funzionare hanno bisogno solo del browser. Prima che la Sun mettesse mano alla J2EE esistevano le CGI, che facevano largo uso di Perl. Queste però avevano delle limitazioni e la Sun ha beh pensato che per scavalcare questa tecnologia avrebbe dovuto realizzare qualcosa di meglio...ed ecco la J2EE che ha caratteristiche quali la sicurezza, multipiattaforma e la possibilità di lavorare in un contesto distribuito. Per contesto distribuito si intende una applicazione che viene distribuita su più server al fine di guadagnarne in sicurezza e performance. In pratica dopo che ho realizzato, ad esempio, il mio sito che vende attrezzature da sub on line, ne installo una copia su più macchine (server) fornite di Tomcat in modo che il client si connette sulla prima macchina disponibile che trova libera e se una si rompe almeno ce ne sta un altra che funziona.
E' tutto giusto quello che ho scritto? Alcune cose ho dovuto desumerle, altre le ho lette ed ho messo insieme questa specie di riassuntino molto terra terra per restare nel concreto...insomma non vorrei aver fatto confusione tra le varie cose che ho letto.
Grazie per l'attenzione,![]()
Matteo