Applicazione Web

Da Wikipedia, l'enciclopedia libera.

Applicazione Web, ovvero Web-application, è l'espressione che in generale viene impiegata per indicare tutte le applicazioni distribuite web-based.
Più precisamente impiegata in ambito del software engineering, dove con il termine webapp si descrive un'applicazione accessibile via web per mezzo di un network, come ad esempio una intranet o attraverso la Rete Internet.

Questo modello applicativo è divenuto piuttosto popolare alla fine degli anni novanta, in considerazione della possibilità per un client generico di accedere a funzioni applicative, utilizzando come terminale normali web browser.
Infatti l'opportunità di aggiornare ed evolvere a costo ridotto il proprio applicativo, senza essere costretti a distribuire numerosi aggiornamenti ai propri clienti attraverso supporti fisici, ha reso la soluzione piuttosto popolare per molti produttori software.
Più di recente colossi come Google e Microsoft hanno implementato interi pacchetti applicativi per office, tradizionalmente venduti in modo distribuito su supporti CD-ROM, e che ora si stanno velocemente trasformando a tutti gli effetti in webapps.

Quei client finalizzati unicamente alla funzione di collegarsi quali terminale di web-application, vengono chiamati sovente thin client.

Indice

[modifica] Esempi di applicazioni web

Le applicazioni web-based oggi concorrono ad implementare in tutto o in parte soluzioni software quali Webmail, e-commerce, web forum, blog, MMORPG e molto altro ancora.
Troviamo applicazioni web ovunque. Esempi comuni sono quelle applicazioni che ci permettono di cercare sul web, come Google; di collaborare a progetti, come SourceForge; di acquistare prodotti da un'asta, come avviene su eBay. Inoltre sono nati molti siti web che fungono da directory di script, spesso gratuiti (Opensource), come Hotscripts.com (In lingua Inglese). Ma questo è solo un esempio poiché se ricerchiamo su Google è facile scoprire un'infinità di siti in tutte le lingue e paesi.
La stessa Wikipedia è un brillante esempio di riuscitissimo webapp.

[modifica] Perché usare un'applicazione web

Spesso è importante che i visitatori di un sito web vedano che il contenuto è coerente ed aggiornato. Il contenuto di un sito che varia nel tempo necessita di cambiare continuamente. Per esempio, in un sito web commerciale che aiuta i visitatori a vendere ed acquistare automobili usate, è richiesto vengano pubblicati solamente gli annunci relativi alle automobili che non sono state ancora vendute. È anche importante che i nuovi annunci siano pubblicati al massimo uno o due giorni dopo che sono stati inviati dal venditore. Se una di queste condizioni non viene rispettata, il sito probabilmente non avrà molto successo.

L'impaginazione del testo e delle immagini che compaiono nel web browser quando l'utente visita un sito web è spesso creata utilizzando un semplice linguaggio noto come Hyper Text Markup Language (HTML). Quando un utente visita un sito web, la porzione di testo che è "delimitata" dall'HTML viene trasferita dal sito web al browser dell'utente. Il browser interpreta questo testo, mostrando testo ed immagini all'utente. La porzione di testo che viene trasferita è tipicamente chiamata pagina. Molti visitatori di siti web concepiscono la navigazione in termini di spostamenti "da pagina a pagina" all'interno di un sito. Quando fanno click su un collegamento ipertestuale vengono trasportati dai loro browser in un'altra pagina. Quando premono il pulsante Back invece vengono riportati all'ultima pagina che hanno visitato.

Alcuni siti web sono statici. I siti web statici richiedono una persona con un livello di accesso privilegiato (a volte definita webmaster) per "aggiornare" manualmente il contenuto. L'aggiornamento del contenuto richiede che la persona visiti ed aggiorni manualmente l'HTML delle pagine che devono cambiare. Generalmente, questo viene fatto modificando un insieme di file sul server web (il computer che fa "girare" il sito web), in cui ogni file rappresenta una singola pagina.

Le modifiche all'aspetto di un sito web statico richiedono che il manutentore del sito visiti ed aggiorni ogni file che compone il sito web. I siti web tipicamente possono crescere fino a comprendere migliaia di file e per questo l'operazione può non essere un compito banale. Il manutentore responsabile del sito di annunci di automobili ha l'onere aggiuntivo di tenere aggiornati anche gli annunci stessi. Se ogni pagina nel sito web rappresenta un annuncio relativo ad una particolare automobile, il webmaster ha la necessità di eliminare le pagine che compongono l'annuncio scaduto e di creare le pagine per le nuove inserzioni. Quindi ha anche l'esigenza che nessun collegamento su altre pagine punti alle pagine rimosse.

La quantità di lavoro da compiere diventa molta in un tempo davvero breve. Il manutentore del sito può anche, comprensibilmente, commettere errori (dopo tutto è un essere umano) e dimenticarsi di aggiornare o rimuovere pagine importanti.

Da qui l'esigenza di sostituire le operazioni ripetitive e manuali con soluzioni applicative automatizzate, che operino queste funzioni in modo più efficiente, rapido e sicuro.

In un sito web generato dinamicamente, infatti, (detto in questo caso sito dinamico) al manutentore non è richiesto di visitare ogni pagina per eseguire l'aggiornamento del contenuto o dello stile. Se il nostro ipotetico manutentore del sito degli annunci di automobili decide di costruire un'applicazione web per gestire questo sistema, potrebbe conservare una lista di "nuovi annunci" slegata dalla struttura HTML (memorizzandola ad esempio in una generica base di dati). Sarebbe quindi in grado di istruire la propria applicazione web perché, quando un utente visita il sito, questa interroghi la base di dati e generi il codice HTML corrispondente ad uno di questi "annunci recenti" ovvero al loro indice.

[modifica] Storia

Quando le prime applicazioni client-server cominciarono ad essere rilasciate nel panorama informatico, da metà circa degli anni ottanta, questi sistemi richiedevano che per ognuno di essi fosse installata la parte client direttamente sulla workstation di ciascun utente. In breve qualunque aggiornamento, patch o modifica dell'applicativo lato server (server-side) si trasformava nella esigenza di installare le versioni aggiornate su tutte le workstation degli utenti dell'applicativo stesso. Questo tipo di problematiche inducevano ovviamente, in modo diretto, un onere economico non indifferente per il produttore del software, e di conseguenza un costo periodico di adeguamento per tutti gli utenti di questo tipo di applicazione informatica.

Di contro, le web-application generano il loro output in modo dinamico pilotando un front-end composto da documenti Web, destinati quindi ad un semplice web browser. Le prime webapps consistevano infatti nella generazione di pagine standard HTML/XHTML; successivamente con l'evolversi delle tecnologie associate e soprattutto con la nascita di nuovi standard, si cominciarono a "distribuire" attraverso di esse documenti in formati ancora più "neutri", come l'XML. In breve ogni singola pagina Web viene inviata al client come fosse un documento statico, ma la sequenza delle pagine può fornire un'esperienza interattiva, poiché l'input dell'utente è restituito attraverso gli elementi embedded della pagina stessa. Durante la sessione, il web browser interpreta e visualizza le pagine, e dunque diventa il client universale per tutte le web-application, indipendentemente dal produttore del software.

Più di recente attraverso le webapps vengono spesso passati flussi di dati in formati SGML generici (o addirittura custom) direttamente ad altre applicazioni che, in virtù dell'uso di questo tipo di output, sono sempre accessibili attraverso un comune web browser.

La parte dinamica lato client (client-side) di questi sistemi informatici è affidata sempre a linguaggi standard, come ad esempio JavaScript, che sono inclusi in tutti i browser. Il crescente successo conseguito da librerie esperte, ormai veri e propri framework come AJAX, oppure plug-in, come il conosciutissimo Flash Player, consente oggi di "pilotare" ed arricchire le interfacce utente in modo completo ed efficiente.

[modifica] Caratteristiche tecniche

Per sua natura una webapp può presentarsi con diverse strutture ed organizzazioni logiche, poiché di fatto racchiude in se un modello tecnico ed una filosofia di sviluppo, allo stesso tempo. Tuttavia sul piano dell'informatica teorica è possibile riconoscere una strutturazione tipica su tre livelli. Nella maggioranza dei casi è infatti possibile identificare un primo livello associabile al terminale di fruizione, il web browser; un secondo livello costituito dal motore applicativo, ovvero un core applicativo, costituito da codice in un qualche linguaggio di sviluppo dinamico lato-server (e.g. PHP, ASP, ASP.NET, un qualche CGI, JSP/Java, ecc.); un terzo livello riconducibile al motore database associato (e.g. MySQL, MSSql, Oracle, ecc.).
Semplificando, il Web browser del client invia le proprie richieste al livello intermedio, ovvero al motore applicativo dinamico del web server, che da una parte interpreta e gestisce le interrogazioni al motore DB e dall'altra genera il risultato in un output diretto allo stesso browser, che lo interpreta e lo restituisce all'utente sotto forma di pagine Web.

[modifica] Voci correlate

[modifica] Collegamenti esterni

Strumenti personali