lunedì 5 novembre 2007

Introduzione al problema

Inzio con questo post a riportare le idee e i ragionamenti che mi hanno guidato durante la creazione del progetto. Nello specifico è proprio una parte del capitolo 1 della mia tesi di laurea.

Introduzione
1.1 Contesto
Al giorno d'oggi la maggior parte delle pagine WEB che troviamo su internet permettono un certo grado di interazione con l'utente. Questo perché negli ultimi anni l'aumento della capacità di elaborazione dei computer e l'avvicinamento di un sempre maggior numero di persone alla navigazione su internet ha permesso di creare una serie di servizi usufruibili direttamente dal proprio PC di casa.
Questi servizi, come ad esempio la gestione del proprio conto corrente, la consultazione del database di una biblioteca o anche la semplice iscrizione a liste di posta elettronica hanno bisogno di un certo grado di interattività con l'utente. Le pagine debbono quindi essere create in modo dinamico a seconda delle scelte che l'utente fa sul proprio browser (Firefox, Internet Explorer, ecc.).
Le pagine dinamiche vengono create normalmente dal server, cioè dalla macchina a cui il browser chiede la pagina WEB stessa. Questo può ricevere dal browser alcune informazioni contenute in blocchi di codice HTML detti "FORM". Questi dati vengono poi utilizzati dal server per scegliere come creare la pagina successiva che va inviata all'utente.
Il problema principale nella gestione di queste interazioni sta nel fatto che tra la visualizzazione di una pagina e l'altra la comunicazione non rimane aperta; si parla infatti di comunicazione senza memoria. In pratica il browser invia una pagina al server, che risponde inviando la pagina di risposta e chiudendo la comunicazione. In questo modo però non riusciamo a mantenere memorizzato, senza l'utilizzo di particolari tecniche come ad esempio sessioni, cookie o campi nascosti, le informazioni sullo stato nel quale si trova, come ad esempio chi è l'utente che ha effettuato l'accesso al sito, oppure cosa l'utente ha messo nel carrello virtuale della spesa nel caso un sito di e-commerce.

Un altro problema nella realizzazione di siti WEB dinamici sta nel realizzare un sistema che agisca in modo congruente tra una richiesta e l'altra, che controlli che i dati inviati dall'utente e le scelte che questo fa siano possibili e sensate.
I linguaggi utilizzabili per realizzare siti WEB dinamici sono diversi. Tra quelli più comunemente usati ci sono il PERL e il PHP. Il progetto si pone come obiettivo quello di sviluppare dei costrutti linguistici per la descrizione e la generazione di siti WEB dinamici in questi due linguaggi rendendo però la struttura descrittiva indipendente da essi. In particolare di creare una struttura che permetta di definire i punti di ingresso e di uscita dai vari "stati", quali dati debbono entrare e uscire dai vari moduli e di che tipo debbano essere questi dati. Inoltre la struttura deve risultare il più possibile indipendente dal linguaggio di destinazione.

Nessun commento: