sabato 23 febbraio 2013

Gis Web-Applications

Introduzione

        Con l’avvento di internet è stato possibile condividere informazioni con un numero sempre crescente di persone: praticamente chiunque avesse la possibilità di connettersi alla rete. Nasce così l’esigenza di avere uno strumento che consentisse di visualizzare, tali informazioni (web browser), e, di conseguenza, uno strumento che consentisse di formattare il testo presentato. l’HTML (Hyper Text Markup Language), è un “linguaggio di programmazione” che consentiva di formattare un ipertesto, ossia un testo che contenesse non solo “le parole”, ma anche immagini e collegamenti ad altri ipertesti, testi o immagini.
        Con l’evolversi di internet, non è stato più sufficiente avere delle informazioni statiche, è diventato necessario avere dei siti che consentissero ai visitatori di vedere che il contenuto fosse coerente ed aggiornato. Per esempio, ad un sito web di e-commerce è richiesto che vengano pubblicati solamente gli annunci relativi a prodotti non ancora venduti ed è, anche, importante che i nuovi prodotti siano pubblicati una volta entrati nella disponibilità del venditore. E’ chiaro che per queste condizioni il semplice HTML non è più sufficiente. Questo ha portato a sviluppare dei nuovi linguaggi di programmazione che consentissero, non solo di formattare l’ipertesto, ma anche di poterlo adattare a situazioni e richieste diverse.
Dal punto di vista dell'informatica teorica la struttura di un’applicazione o, nel nostro caso, una web-app può essere schematizzata, tipicamente, con tre livelli: la cosiddetta struttura MVC (Model-View-Control). Nella maggioranza dei casi è possibile identificare un primo livello (View), conll web browser (il terminale di visualizzazione delle informazioni da parte dell’utente); un secondo livello è costituito dal “motore applicativo”: scripts in vari linguaggi di programmazione che implementino la logica applicativa (Control), ossia che eseguano tutte le operazioni necessarie a rendere dinamico il testo presentato all’utente tramite web browser; un terzo livello costituito dai dati (dinamici), che costituiscono il core delle informazioni fornite all’utente: database o DBMS (Model).
Semplificando, il web browser (client) invia le proprie richieste al livello intermedio, ovvero al motore applicativo residente sul web server, il quale gestisce le interrogazioni al server DBMS e genera il risultato in un output diretto allo stesso browser, che, a sua volta, interpreta e restituisce all'utente le informazioni come pagine Web.

Strumenti

Il browser formatta le informazioni da visualizzare producendo un output in HTML, Il codice HTML, però può essere scritto da un programmatore in maniera statica, se le informazioni presentate non cambieranno nel tempo, oppure, la sua generazione può essere delegata a scripts, in altri linguaggi, capaci di eseguire elaborazioni ed a presentare i risultati secondo tale codifica. I linguaggi di programmazione sviluppati a questo scopo, ormai, sono molteplici e posso  essere eseguiti sul web server (PHP, ASP, JavaApplet, PythonApplet, GTK+), e fornire, direttamente, un output codificato in HTML al browser oppure essere eseguiti direttamente dal browser: è questo il caso dello JavaScript. Solo i linguaggi eseguiti dal server, però, sono in grado di interrogare il DBMS.
Una delle tecniche, più usate oggi, per lo sviluppo per la realizzazione di applicazioni web interattive (Rich Internet Application) è AJAX, acronimo di Asynchronous JavaScript and XML. Lo sviluppo di applicazioni HTML con AJAX si basa su uno scambio di dati in background fra web browser e server, che consente l'aggiornamento dinamico di una pagina web senza esplicito ricaricamento da parte dell'utente (come nel caso dell’utilizzo di linguaggi server-side come PHP, ASP, ecc). I dati extra sono richiesti al server e caricati, in background, senza interferire con il comportamento della pagina esistente. Di norma per le richieste si utilizza il linguaggio JavaScript. Tuttavia, e a dispetto del nome, l'uso di JavaScript e di XML non è obbligatorio, come non è necessario che le richieste di caricamento debbano essere necessariamente asincrone.
AJAX è una tecnica multi-piattaforma utilizzabile su molti sistemi operativi, architetture informatiche e browser web, ed esistono numerose implementazioni open source di librerie e framework.


Prossimamente analizzeremo nel dettaglio i framework javascript, e i DBMS specifici per questo tipo di applicazioni.

Nessun commento:

Posta un commento