Alla scoperta di Ajax

Il Web come piattaforma per le applicazioni. Grazie al connubio fra XML e JavaScript si può già adesso usare un eleboratore testi o un foglio di calcolo direttamente su Internet

giugno 2006 Siamo agli albori di una nuova tecnologia che promette una
rivoluzione nel modo in cui utilizziamo i PC e i suoi programmi. Base di tutto
questo è Internet e il paradigma delle applicazioni client-server, che
è alla base di molti dei sistemi informatici oggi più usati: la
stessa navigazione Web si basa su un'interazione di questo tipo fra Web browser
e Web server. Tuttavia non si deve pensare che la tecnologia client-server in
contesto Web sia utilizzata solamente per il trasferimento dei contenuti. È
vero che la generazione dei contenuti avviene principalmente lato server, mentre
l'interazione con essi avviene quasi esclusivamente lato client.

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.

CONDIVIDI

LASCIA UN COMMENTO

Please enter your comment!
Please enter your name here