|
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.
|