|
|
|
|
|
|

L'interazione server/client
Emergono però differenze non banali fra i siti che consistono principalmente
di un archivio di documenti "statici", consultabili
on line, e i siti che consentono di utilizzare un servizio che genera pagine
"dinamiche" contenenti risultati, grafici, dati come risultato
dell'elaborazione richiesta.
La generazione di queste pagine dinamiche può essere interamente affidata al server, con tecnologie come ASP, JSP, Servlets, CGI-BIN, mod_perl, mod_php e molte altre, oppure una quota più o meno cospicua del lavoro complessivo può essere parzialmente affidata al client, usando tecnologie quali applets, controlli ActiveX, plug-in Flash, codice JavaScript e schemi di trasformazione XML-XSL-HTML (XSLT).
Alcuni tipi di elaborazione trovano la loro sede più naturale lato client. Per esempio, una tecnologia largamente usata per validare i campi di una form prima ancora di rispedirla al server per l'elaborazione è JavaScript. Con JavaScript è però possibile anche rendere dinamica una pagina già aperta, alterando le proprietà degli elementi HTML che la compongono. Si può anche creare, con un programma JavaScript eseguito sul browser, il contenuto della pagina o di sue parti, oppure provocare automaticamente, sotto certe condizioni, il caricamento di una nuova pagina o l'aggiornamento di alcune sezioni ben identificate. In questo senso, sul client gira, per così dire, il "regista" del sistema.
La lacuna di JavaScript
Proprio nel caso del caricamento di nuovi contenuti emerge una lacuna di JavaScript.
L'esecuzione dell'algoritmo procede in modo sequenziale e se vi sono varie parti
da aggiornare, queste saranno caricate in modo sincrono, una alla volta. Ma
soprattutto il browser resterà impegnato durante il lavoro dello script,
costringendo l'utente a fastidiose attese. Infatti, più la pagina è
complessa, maggiore è il numero di parti da aggiornare in sequenza e
maggiore sarà l'attesa che il sistema imporrà all'utente.
Nelle applicazioni con interfaccia grafica che girano interamente sul computer client questo non è un problema particolarmente serio, perché in genere le prestazioni sono elevate e il ritardo quasi inavvertibile. Nel caso di applicazioni Web, invece, ogni singola operazione elementare richiede il transito bidirezionale di messaggi sulla rete fra client e server e, lato server, richiede l'innesco di un programma o procedura che effettui le elaborazioni necessarie per produrre i risultati voluti. Per quanto la rete possa essere veloce e il server potente, tutto questo richiede quasi sempre un tempo ben più lungo che nel caso dell'elaborazione svolta tutta lato client.
Per ovviare a questo problema, già da anni diversi browser hanno introdotto uno speciale oggetto JavaScript, XMLHttpRequest, che si occupa proprio di gestire in modo asincrono il recupero dei dati necessari per costruire la pagina o parti di essa. In tal modo è possibile aggiornare stile e contenuti delle varie sezioni in modo indipendente l'una dall'altra, in parallelo anziché in serie, e, cosa estremamente importante, senza bloccare l'interazione con l'utente mentre lo si fa.
Questa innovazione è il principale salto di qualità associato al concetto della tecnologia Ajax (Asynchronous Javascript And XML) rispetto a quanto possibile con metodologie preesistenti per costruire pagine dinamiche con la partecipazione del client.
Il significato di Ajax
La "X" in Ajax sta per XML, come già accennato, e questo perché
un'altra tendenza che sta emergendo con chiarezza consiste nel fatto di trattare
separatamente forma e contenuti di una pagina web, e di effettuare il trasferimento
dei dati fra server e client in formato XML. In tal modo i dati viaggiano senza
formattazione: questa sarà applicata a bordo del client, per esempio
mediante XSLT.
Il risultato potrà essere un documento generato lato client applicando regole di trasformazione XSL ai dati XML ricevuti dal server, per produrre codice XHTML che sarà visualizzato dal browser facendo riferimento a stili specificati in CSS (Cascading Style Sheets). Sono comunque possibile anche altri modi, più semplici anche se meno sistematici, di impiegare i dati trasferiti tra client e server.
Le possibilità di successo di Ajax
L'idea non è nuova - ricordiamo il concetto di "network computer"
nonché il paradigma proposto da Sun con Java, gli applet e Java Web Start
- e non ha avuto grande successo in passato, ma le probabilità che ora
possa finalmente attecchire in modo duraturo sono notevolmente aumentate, per
vari fattori: malgrado il rapporto prezzo/prestazioni continui come di consueto
a migliorare, il Total cost of ownership di una "flotta"
di sistemi PC completamente configurati, aggiornati, protetti da virus ed equipaggiati
con il software necessario continua a mantenersi su livelli elevati, abbastanza
da rendere i system administrator aperti alla valutazione di soluzioni che semplifichino
questi compiti rendendoli al contempo più economici.
Le prestazioni dei PC sono notevolmente aumentate e in molti casi consentono di eseguire normali applicazioni di produttività d'ufficio di livello non banale anche come programmi in cui una grossa porzione gira, interpretata, nel browser. Tutti i principali browser già in circolazione supportano almeno un insieme comune di funzionalità JavaScript e possono supportare Ajax immediatamente: se si dispone di una macchina sufficientemente aggiornata, non occorre installare nulla di aggiuntivo rispetto a quanto si è già abituati a usare.
È notevolmente cresciuta la quota di utenti PC che dispongono di una connessione Internet a larga banda attraverso la quale si possano scaricare i programmi ogni volta che servono senza lunghe attese. È aumentata la capacità di Internet. I siti più frequentati dispongono di connessioni adeguatamente dimensionate e possono reggere un carico di richieste molto maggiore rispetto al passato. Di conseguenza gli applicativi client-server che usano Internet come intermediario cominciano finalmente a funzionare con prestazioni decorose.
Esempi di servizi on line basati su Ajax
I conosciutissimi Google Maps e GMail sono
state fra le prime applicazioni Web di grande impatto e di ottima funzionalità
ad essere basate sulla tecnologia Ajax. Altri esempi meno noti, ma ugualmente
significativi, sono Google Suggest, Windows Live Local e l'impressionante
PageFlakes.com, che rende possibile costruire la propria home
page personalizzata assemblandola a partire da una "palette" di componenti
pronti che si possono trascinare, ridimensionare e posizionare proprio come
finestre su un "desktop" costituito dall'area visibile del browser.
Un nuovo paradigma di fruizione delle applicazioni
Di grande interesse è però l'impiego di Ajax per la realizzazione
di versioni "on line" di normali applicazioni di produttività
come word processor e spreadsheet. Per esempio, AjaxWrite è
un elaboratore testi totalmente web-based che non richiede di installare alcunché
sulla macchina, parte nel giro di 5-10 secondi semplicemente aprendo con il
proprio browser Firefox il sito www.ajaxwrite.com e visualizza un'interfaccia
grafica del tutto familiare e facile da usare.
Non occorrono né registrazioni, né download. è compatibile con il formato .DOC, ma può anche esportare in RTF, PDF, OpenOffice e testo semplice. Possiede un set di funzioni non certo vasto come quello di Word, ma sufficiente per i compiti più comuni (tabelle, grafici, elenchi, formattazione del testo, giustificazione, eccetera).
Dal canto suo, iRows implementa il concetto di "on line spreadsheet" e introduce l'interessante possibilità di salvare i dati non sul disco locale del client da cui si accede, ma sul server web (per questa ragione occorre riservarsi un'area di storage personale, registrandosi gratuitamente al servizio).In tal modo, da qualunque PC ci si colleghi, sarà possibile accedere ai propri dati. Pertanto, a condizione di trovarsi in luogo attrezzato con postazioni PC collegate a Internet, si potrà lavorare, dovunque nel mondo, sui propri fogli di calcolo, senza bisogno di portare con sé un laptop.
È bene abituarsi a questo concetto, in quanto in un futuro molto più vicino di quanto immaginiamo potrà diventare per molti di noi "il" modo standard di lavorare, sostituendo l'attuale approccio caratterizzato da acquisto del software, installazione su disco fisso, memorizzazione dei dati sul proprio computer, backup a carico nostro. Solo per fare un esempio, se i dati vengono salvati sul sito di chi offre il servizio e non sull'hard disk dell'utente, essi saranno sottoposti a backup in modo molto più sistematico e affidabile di quanto possano esserlo sul disco del PC di un utente SOHO mediamente disorganizzato. Ma è immediato notare che in questo modo di lavorare ci sono anche numerosi altri vantaggi non indifferenti.
Ajax contro i software installati nel sistema
Da non trascurare, infine, il fatto che l'utente del servizio è "in
balia" di possibili cambiamenti delle politiche commerciali di chi gestisce
il sistema: variazioni tariffarie, decisione di terminare un servizio poco redditizio,
cessione ad altri soggetti della gestione del servizio con relativo portafoglio
clienti e così via.
Questo non capita con le classiche applicazioni acquistate e installate sul sistema locale: il peggio che possa capitare è il rischio obsolescenza, oppure il fatto che dopo una certa data non vengano più offerti gratuitamente gli aggiornamenti on line e le patch, ma almeno il diritto all'uso del software acquistato in modo "tradizionale" non ha scadenza.
Anche se al momento il nuovo paradigma di programmazione e distribuzione-utilizzo del software che abbiamo descritto è agli albori, non c'è dubbio che ci sono tutti gli elementi perché esso provochi nel medio periodo una importante erosione del mercato basato su un approccio più tradizionale. Per questo, il business dei produttori di software "classici", già minacciato dal fenomeno dell'open source anch'esso in rapidissima ascesa, è chiaramente soggetto a un ulteriore rischio di contrazione.
