ePrometeusCorsoJavaJava
testi articoli
Testi Articoli  Download
Home | Eshop | Java | Tools | Web | 
CorsoJava è ora Video! Free for all!
Clicca Qui!

JAVA SERVER SIDE
Java: il lato server della forza
Le Applet e i loro limiti
Java Servlet
Java Server Pages
Application Server
Conclusioni

<<< Java Servlet >>>

Abbiamo visto che sul lato client, le lotte commerciali hanno ostacolato il pieno sfruttamento di Java per lo sviluppo di applet complesse. Questo è abbastanza triste: ritengo che la tecnologia Java sia rivoluzionaria, e che il concetto di applet, ovvero di applicazione trasferita automaticamente dalla rete alla bisogna tornerà in auge i prossimi anni (a cominciare da quando saranno rilasciati i prossimi browser versione 5 in grado di usare delle JVM stabili e aggiornate). Nel frattempo Java è andato avanti lo stesso, e molto. Innanzitutto si è sviluppato e diffuso parecchio come linguaggio per lo sviluppo di applicazioni portabili, diventando il principale linguaggio per le applicazioni non-solo-Windows (e con lo sviluppo di Linux questo è un fatto sempre più importante). Ma soprattutto, ed è l'argomento principale di questo articolo, è diventato uno dei più completi e supportati linguaggi di programmazione per lo sviluppo di applicazioni Web lato Server.

Agli albori della programmazione Web, la programmazione lato server era fatta quasi esclusivamente utilizzando l'interfaccia di programmazione CGI. Grazie alla CGI possono essere lanciati in esecuzione dal Web Server dei programmi che producono delle pagine dinamiche, spesso gestendo delle form e colloquiando con un database che contiene i dati. Per programmare applicazioni CGI sono utilizzabili vari linguaggi; tra i più usati c'è senz'altro il linguaggio Perl. Di per sé le applicazioni CGI sono abbastanza inefficienti; le CGI in Java lo sono particolarmente, per alcuni motivi tecnici che non è il caso di illustrare qui. Questo fatto ha ostacolato la diffusione di Java per la programmazione di CGI. Per la verità, la CGI in sé stessa è un ostacolo alla programmazione Web, per cui è stata ampiamente soppiantata da sistemi che incorporano il Perl nei Web Server, o da sistemi di Server Pages di cui diremo nel prossimo paragrafo.

Java comunque è sempre stato un candidato per lo sviluppo di applicazioni Web anche lato server, tanto è vero che Netscape, fin da quando ha incluso Java nel suo browser, ha fatto altrettanto pure con i suoi Web Server. Ma si è trattato di esperimenti pionieristici, che sono diventati finalmente un approccio "industriale" quando Sun ha sviluppato le servlet.

Ricordiamo che in origine la prima comparsa delle applet Java è stata nel browser HotJava di Sun, scritto interamente in Java. Inoltre la caratteristica fondamentale delle applet è il fatto che vengono caricate dinamicamente, solo quando servono per visualizzare una pagina. Con le servlet ci sono molte analogie. Innanzitutto hanno fatto la loro prima comparsa nel Java Web Server di Sun, un Web Server scritto interamente in Java, che a dispetto di quanto i maligni possono pensare, ha delle prestazioni rispettabili. In effetti usare Java per sviluppare un Web Server si dimostra una opzione interessante, in quanto consente di fare molte cose che con i server più tradizionali sono difficoltose. Altro aspetto importante, le servlet, come le applet, vengono caricate in memoria quando serve. Va bene, dirà qualcuno, e a che pro? Per rendersi conto del vantaggio occorre essere leggermente tecnici: il problema di CGI è che occorre avviare un interprete (per esempio il Perl) per ogni richiesta. E' un enorme dispendio di risorse. Senza l'uso di particolari accorgimenti, questa operazione deve essere eseguita e rieseguita, ed è di gran lunga più dispendiosa di tempo e di risorse rispetto alla esecuzione dello script stesso.

Se invece di avere uno script Perl CGI uso una Servlet, questa verrà caricata in memoria solamente una volta, sfruttando la stessa capacità di caricamento dinamico di programmi in Java usata dalle applet. In pratica, con le servlet il Web Server diventa estendibile con nuove funzioni, più o meno come il Web Broweser quando compare una animazione o un grafico a barre.

Per usare le servlet utilizzando Java Web Server o uno dei molti altri Web Server scritti in Java esistenti sul mercato o gratuiti sulla rete non ci sono problemi: è più semplice infatti per un questi Server gestire le servlet che non i tradizionali programmi CGI. Per i Web Server "vecchio stile" come Apache, Microsft IIS o i vari prodotti Netscape, che sono scritti in C/C++, occorrono delle modifiche per poter usare le servlet. Fortunatamente questa mancanza è stata rapidamente colmata: esistono almeno due prodotti commerciali (ServletExec e JRun) per eseguire le servlet con Microsoft IIS e i vari Netscape Server, e l'eccellente prodotto Open Source Jserv per Apache. Tra l'altro, e mi fa piacere ricordarlo, uno dei principali sviluppatori di Jserv è un italiano, Stefano Mazzocchi. Maggiori informazioni su http://java.apache.org.




Figura1: L'eccellente Java Servlet Engine per Apache: Apache Jserv.


ePrometeus s.r.l. - Web Software House & Open Source System Integrator
MILANO - SAN BENEDETTO DEL TRONTO(AP)
Contatti: info@eprometeus.com