"+AE5JHE?E +=FEJ"1JAHB=??E=9A>

Testo completo

(1)

Capitolo 4

Interfaccia Web

Questa tesi riguarda lo sviluppo di un'interfaccia web, quindi riteniamo utile presentare in questo capitolo l'evoluzione delle applicazioni Web, mostrando il passaggio dai contenuti statici a quelli dinamici. Vengono inoltre presen-tate le applicazioni e le soluzioni tecnologiche maggiormente utilizzate nella creazione e presentazione di contenuti dinamici attraverso il Web.

4.1 Cenni Storici

Il World Wide Web (letteralmente ragnatela che avvolge il mondo), è un enorme deposito di informazioni disponibili attraverso Internet, cui gli utenti possono accedere a queste informazioni, utilizzando dei programmi interat-tivi, i browser. Spesso si cade nell'errore di considerare Internet ed il Web la stessa cosa, in realtà Internet è l'infrastruttura attraverso la quale si accede al Web, infatti Internet è stato sviluppato per lungo tempo e supporta di-versi protocolli basati su TCP/IP: standard per l'invio di posta elettronica (SMTP), per il trasferimento di le (FTP), ed altro ancora.

Il World Wide Web per rendere disponibili agli utenti le informazioni e le risorse di cui si compone si basa su:

Uno schema di denominazione uniforme per localizzare le risorse sul Web (URL).

Protocolli per accedere alle risorse presenti sul Web (HTTP).

Ipertesto per una facile navigazione tra le risorse (HTML).

L'idea del Web è nata alla ne degli anni ottanta, nei laboratori del CERN di Ginevra, da parte di Tim Berners-Lee, spinta dalla necessità di condividere

(2)

la documentazione scientica in formato elettronico. Venne quindi denito il formato standard con cui codicare le pagine Web: l'HTML (HyperText Markup Language). Le pagine Web sono un'estensione del concetto di iper-testo, in quanto permettono l'accesso a documenti e puntatori, quest'ultimi sono oggetti che possono essere selezionati dagli utenti e rimandano ad altri documenti. Rispetto al semplice ipertesto, il Web consente l'accesso non solo ad informazioni di tipo testuale, ma anche immagini e audio.

Il linguaggio HTML (letteralmente linguaggio di etichettatura per gli ipertesti), permette di descrivere le pagine Web, infatti specica le diret-tive generali per eettuare la visualizzazione delle informazioni. E' un lin-guaggio di etichettatura, in quanto non prevede istruzioni per specicare i dettagli dell'impaginazione. Saranno poi i browser in fase di visualizzazione (rendering) a stabilire alcune caratteristiche, come ad esempio il tipo di evidenziazione degli oggetti selezionabili.

4.2 Dal Web Statico ai Contenuti Dinamici

Quando con un browser si accede a delle pagine Web, avvengono una serie di operazioni che comunemente possono essere riassunte nei seguenti passi:

1. Si inserisce l'URL (Uniform resource Locator) della pagina Web nel browser, attraverso l'URL indichiamo al browser di contattare una specica macchina presente su Internet.

2. Il browser invia la richiesta alla macchina specicata. Su questa è in esecuzione un Web Server (ad es. Apache, IIS). Il Web Server riceve la richiesta e la esamina.

3. In base alla richiesta ricevuta il Web Server recupera dalla sua memoria una determinata pagina Web codicata in HTML.

4. Questa pagina viene inviata al browser come risposta alla richiesta eettuata in precedenza.

5. Il browser dopo aver ricevuto la pagina Web di risposta la visualizza per renderla disponibile all'utente nale.

4.2.1 Limiti dei contenuti statici

La funzione fondamentale di un Web Server si riduce a mettere a disposizione un certo numero di pagine Web statiche, ovvero pagine con un contenuto

(3)

Figura 4.1: Accesso ad una pagina Web [18]

che non cambia. Possono però essere innumerevoli, i casi in cui si vogliono in-formazioni che possono subire un cambiamento, come le previsioni del tempo, le ultime notizie, oppure un sito di commercio che debba fornire la disponi-bilità di una determinata merce ed altro ancora. In tutte queste situazioni si dovrebbe creare ogni volta una nuova serie di pagine statiche.

Questo è un grosso limite, a cui si è posto rimedio facendo creare al server automaticamente alcune porzioni di codice HTML in base alla richiesta. Si è passati in questo modo ad un Web dinamico, in cui alcune parti vengono create dal server quando processa la richiesta ricevuta da parte del browser. Vediamo alcune delle soluzioni adottate e la loro evoluzione.

4.3 Common Gateway Interface

La Common Gateway Interface (CGI) è stata una delle prime tecniche utiliz-zate per la creazione di contenuto dinamico. Infatti permette al Web Server di passare determinate richieste ad un programma esterno che provvede ad eseguirle. L'output ottenuto verrà poi inviato al browser.

Con l'adozione della CGI si ha il seguente cambiamento nelle fasi di richiesta di una pagina Web:

(4)

l'URL della richiesta ha una porzione che specica un determinato programma CGI.

2. Sul lato server il programma CGI specicato viene eseguito

3. Il programma CGI produce come output una pagina HTML.

4. Il web server trasmette l'output (una pagina HTML) al browser.

5. Il browser visualizza la pagina HTML ricevuta.

Il CGI ha il vantaggio di essere indipendente dal linguaggio di program-mazione utilizzato, infatti questa tecnica era stata concepita per denire un metodo standard con cui far comunicare un server Web con applicazioni esterne. Rispettando la specica CGI può quindi essere utilizzato qualsiasi linguaggio di programmazione, (nella realtà il più utilizzato è il Perl).

4.3.1 I limiti della CGI

I programmi CGI sono eseguiti al di fuori del server web, quindi per ogni richiesta arrivata, il server deve avviare un processo per eseguire il program-ma CGI. Ovvero per ciascuna richiesta deve essere caricato ed eseguito un programma. Queste operazioni consumano un notevole numero di cicli di CPU e di memoria, infatti ciascun processo richiede la sua porzione di risor-se. Inoltre i programmi CGI sono disegnati per gestire solamente una singola richiesta, dopo la quale ritornano il risultato al server web ed escono.

Nel contesto attuale può essere abbastanza comune per un sito web ri-cevere migliaia di richieste simultaneamente, mentre viste le caratteristiche della CGI se si vogliono ottenere prestazioni sucienti, possono essere gestite solo poche richieste contemporaneamente.

Un altro problema si ha nell'impossibilità di un programma CGI di inte-ragire con il Web Server, oppure sfruttare le capacità di quest'ultimo durante l'esecuzione, in quanto questa avviene in un processo separato. Quindi per fare un esempio, un programma CGI non può scrivere sul le di log del server.

Tutto questo ha portato all'adozione di dierenti soluzioni.

4.4 Java Servlets

Una servlet è un'istanza di una classe Java, che può essere caricata in maniera dinamica per estendere le funzionalità di un server. Infatti analogamente a quanto avviene nella CGI, una URL può contenere una richiesta, che il server web esegue caricando una servlet ed eseguendo i suoi metodi.

(5)

Una servlet è simile ad un'estensione del server proprietaria, con la die-renza che la sua esecuzione avviene all'interno di una Java Virtual Machine (JVM). La JVM è un programma specico per una determinata architettura che interpreta il codice Java compilato, chiamato byte-code. Quest'ultimo è un linguaggio intermedio universale indipendente dall'architettura. Que-sto permette alle Servlet una notevole portabilità, potendo essere eseguite su macchine con dierenti architetture senza bisogno di essere modicate o ricompilate.

Il ciclo di vita di una servlet si concentra su tre metodi fondamentali:

Init(). Indica la nascita della servlet, vieni chiamato una volta sola.

Service(). Gestisce tutte le richieste eettuate dai clienti.

Destroy(). Segna la ne della servlet.

Rispetto al CGI le Servlets hanno l'indubbio vantaggio di non dover uti-lizzare un processo separato per ogni richiesta ricevuta. Infatti la JVM crea un thread per gestire ciascuna richiesta da parte della servlet. Si elimina così l'overhead dovuto alla partenza di un processo per ogni richiesta ricevuta. Per elaborare le richieste la JVM carica dinamicamente le classi necessarie, se più di una richiesta riguarda il solito processo, le classi che già sono state caricate possono venir utilizzate per gestirlo, diminuendo l'overhead dovuto al caricamento delle classi. Inoltre si ha a disposizione una ricca collezione di APIs (Application Programming Interface) per l'accesso a database, a risorse di rete ed altro ancora.

4.4.1 Svantaggi delle Servlets

Le Servlets servono per produrre contenuti Web dinamici, quindi genereranno in output la pagina HTML che il server trasmetterà al browser. Quindi sia la parte statica che dinamica risiedono entrambe nel codice sorgente del programma. Perciò per eettuare anche il più piccolo cambiamento sul codice HTML, ci sarà bisogno di una modica del sorgente Java, con la conseguente necessità di ricompilare il tutto.

Per risolvere questi problemi sono state sviluppate le Java Server Pages, introducendo in particolare i seguenti vantaggi:

Un meccanismo con cui parti logiche basate su Java possono essere incluse nel codice HTML.

Un riconoscimento e una ricompilazione automatica nel caso in cui il codice subisce dei cambiamenti.

(6)

Le Java Server Pages verranno trattate in maniera esauriente nel capitolo successivo.

figura

Figura 4.1: Accesso ad una pagina Web [18]

Figura 4.1:

Accesso ad una pagina Web [18] p.3

Riferimenti

Updating...

Argomenti correlati :