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.

venerdì 7 settembre 2007

Diario dei lavori per la preparazione della Tesi

Pubblico il diario delle operazioni e considerazioni che mi hanno portato al completamento del progetto e alla stesura della mia tesi di laurea. Può essere consultato all'indirizzo: https://docs.google.com/document/d/e/2PACX-1vQBqSJX-2bzOz9bmysn_prDpz4_JTshJ5RHx3CXe17gL82a8yq9f_4jpZGbzlpBa-FZ_goKP_F1CqOo/pub di Google Docs. Tenete conto che non era stato studiato per essere pubblicato per cui abbiate pietà se non è proprio perfetto.

martedì 4 settembre 2007

Inizio Lavori

Con questo post inizio a descrivere la nascita e la crescita del mio progetto WeSiC che sta per Web Site Creator (http://www.wesic.it)
Il progetto nasce come prosecuzione del lavoro che ho svolto per la mia Tesi di Laurea in Informatica Applicata. La mia Tesi si proponeva di creare un "linguaggio" o formato che fosse in grado di descrivere i componenti e le interazioni tra questi di un sito web dinamico.
Un sito cioè che permette un certo grado di interattività con l'utente (ad esempio con dei form per l'immissione dei dati).
Durante lo sviluppo della tesi è stato definito un modello grafico per la descrizione dei siti. In un secondo tempo dal grafico sono state create delle strutture XML in grado di descrivere i singoli elementi ed infine è stato creato un compilatore che generasse dalla struttura l'intero sito web dinamico.
Tutte le informazioni sul formato che ho ideato saranno presto disponibili nel sito web del progetto. In questo blog ho intenzione di "narrare" i passi avanti che il progetto (e il sito ad esso collegato) faranno nel tempo.
Sarò grato a tutti coloro che vorranno seguirmi in questo viaggio e contribuire in qualsiasi modo (anche e soprattuto con critiche e suggerimenti).

Grazie