sabato 7 luglio 2007

WEB 2.O

Il Web 2.0 (o Internet 2.0) è un termine usato per indicare un generico stato di evoluzione di
Internet e in particolare del World Wide Web.
Alcuni hanno tentato di definire il Web 2.0 come una serie di siti web con interfaccia, facilità e
velocità d'uso tali da renderli simili alle applicazioni tradizionali che gli utenti sono abituati a
installare nei propri personal computer.
Per tali siti spesso vengono usate tecnologie di programmazione particolari, come AJAX (Gmail usa
largamente questa tecnica per essere semplice e veloce) o Adobe Flex.
I propositori del termine Web 2.0 affermano che questo differisce dal concetto iniziale di web,
retroattivamente etichettato Web 1.0, perché si discosta dai classici siti web statici, dall'e-mail,
dall'uso dei motori di ricerca, dalla navigazione lineare e propone un World Wide Web più
dinamico e interattivo.
Un esempio potrebbe essere il social commerce, l'evoluzione dell'E-Commerce in senso interattivo,
che consente una maggiore partecipazione dei clienti, attraverso blog, forum, sistemi di feedback
ecc.
Gli scettici replicano che il termine Web 2.0 non ha un vero e proprio significato, in quanto questo
dipende esclusivamente da ciò che i propositori decidono che debba significare per cercare di
convincere i media e gli investitori che stanno creando qualcosa di nuovo e migliore, invece di
continuare a sviluppare le tecnologie esistenti.
Analisi storica
Originariamente il web è stato concepito come modo per visualizzare documenti ipertestuali statici
(creati con l'uso del linguaggio HTML); questo approccio può essere definito come Web 1.0.
In seguito, grazie all'integrazione con database e all'utilizzo di sistemi di gestione dei contenuti
(CMS), Internet si è evoluta con siti dinamici (come ad esempio i forum o i blog); questo web
dinamico è stato da alcuni definito Web 1.5.
Attraverso l'utilizzo di linguaggi di programmazione come Javascript, degli elementi dinamici e dei
fogli di stile (CSS) per gli aspetti grafici, si possono creare delle vere e proprie "applicazioni web"
che si discostano dal vecchio concetto di semplice ipertesto e che puntano a somigliare ad
applicazioni tradizionali per computer.
Da un punto di vista strettamente tecnologico, il Web 2.0 è del tutto equivalente al Web 1.0, in
quanto l'infrastruttura di rete continua ad essere costituita da TCP/IP e HTTP e l'ipertesto è ancora il
concetto base delle relazioni tra i contenuti. La differenza, più che altro, sta nell'approccio con il
quale gli utenti si rivolgono al Web, che passa fondamentalmente dalla semplice consultazione
(seppure supportata da efficienti strumenti di ricerca, selezione e aggregazione) alla possibilità di
contribuire popolando e alimentando il Web con propri contenuti.
Differenze e confronti con il Web 1.0
Spesso, nel descrivere le caratteristiche del Web 2.0, si procede per confronto con il Web 1.0,
indicando come nel passaggio di versione gli elementi fondamentali si sono evoluti o sono stati
sostituiti da nuovi. Si tratta di un modo di rappresentare il Web 2.0 divulgativo e non prettamente
tecnico, ma risulta piuttosto efficace per riconoscere su Internet le "tracce" dell'una o dell'altra
versione.
Dai siti web personali ai blog
Se prima la costruzione di un sito web personale richiedeva la padronanza di elementi di HTML e
programmazione, oggi con i blog chiunque è in grado di esporre i propri contenuti dinamici dotati
anche di veste grafica accattivante senza nessuna conoscenza tecnica particolare. Se prima le
community web erano in stragrande maggioranza costituite da esperti informatici, oggi la situazione
è completamente ribaltata. A farla da padroni sui blog sono scrittori, giornalisti, artisti o comunque
"animi sensibili" con una preparazione informatica non necessariamente elevata.
Dai sistemi per content management ai wiki
La tecnologia Wiki (Wikipedia ne è la più celebre applicazione) è il punto di arrivo del content
management, in quanto ne implementa tutti i paradigmi. Se prima erano necessarie più applicazioni
informatiche per la gestione del ciclo di vita dell'informazione (dall'intuizione alla fruizione), oggi
una stessa tecnologia supporta al meglio tutto il processo. Si fruisce dell'informazione nell'ambiente
stesso in cui essa è nata.
Dalla stickiness al syndication
Le tecniche utilizzate fino a ieri per tenere più tempo possibile i visitatori su un sito web (stickiness,
letteralmente l'"appiccicosità" di un sito, cioè la capacità di tenere "incollati" gli utenti ad esso)
stanno lasciando il posto ad altre concezioni di contatto con il fruitore. Attraverso le tecnologie di
syndication (RSS, Atom, Tagging) chi realizza contenuti fa in modo che questi possano essere fruiti
non solo sul sito, ma anche attraverso canali diversi. Un esempio di questi nuovi canali sono i feed,
cioè delle liste di elementi con un titolo (es. notizie di un giornale, thread di un newsgroup), che
permettono il successivo collegamento ai contenuti informativi. Questi ultimi possono essere
aggiornati e consultati di frequente con programmi appositi o anche attraverso i browser e quindi
consentono di essere sempre a conoscenza dei nuovi contenuti inseriti su un sito senza doverlo
visitare direttamente.
Strumenti per la creazione di contenuti
Tale possibilità di creazione e condivisione di contenuti su Web, tipica del Web 2.0, è data da una
serie di strumenti (tool in inglese) on-line che permettono di utilizzare il web come se si trattasse di
una normale applicazione. In pratica il Web di seconda generazione è un Web dove poter trovare
quei servizi che finora erano offerti da pacchetti da installare sui singoli computer.
Esempi di Web 2.0 sono IucundeWeb, FCKEditor e Writely, veri e propri elaboratori di testi e
convertitori di formato, oppure NumSum, una sorta di foglio elettronico. Anche Google ha
recentemente lanciato la sua suite di editor, chiamata Documenti e Fogli di Lavoro, e Microsoft sta
per rilasciare una versione online della suite Office.
Oltre alla creazione condivisa di contenuto on-line, il Web 2.0 è caratterizzato dalla pubblicazione
immediata del contenuto e alla sua classificazione e indicizzazione nei motori di ricerca, in modo
che l'informazione sia subito disponibile a beneficio dalla comunità, realizzando in maniera veloce
il ciclo di vita del content management. Per la pubblicazione dei contenuti fanno da padrone sul
Web (di oggi) i provider di blog come Blogger, Wordpress e Splinder, ma anche piattaforme
commerciali come Microsoft Sharepoint Portal che nella prossima versione (3.0) accentuerà le sue
caratteristiche di collaborazione diventando la parte server di Office 12.
Altra applicazione del Web 2.0 sono i cosiddetti web desktop (o webtop), una sorta di sistema
operativo online su cui è possibile eseguire operazioni simili a quelle di un sistema operativo
tradizionale.
Non si fa in tempo ad abituarsi al web "normale" che già le carte in tavola cambiano perché questo
web che tutti conosciamo, fatto di utenti solitari da una parte del filo e di siti dall'altra, appartiene
sempre più al passato e cede il passo ad applicazioni diverse, non solo nell'aspetto, ma specialmente
nei principi ispiratori. Applicazioni in cui il valore non è più rappresentato dal contenuto delle
pagine Html, ma al contrario dall'abilità di attrarre e far incontrare masse di utenti, permettendo loro
di interagire dinamicamente all'interno di un'esperienza comunicativa bidirezionale, globale e
istantanea. Un web sociale e democratico, che non solo azzera le barriere tecnologico/economiche
di creazione dei contenuti ma rovescia anche i modelli tradizionali di distribuzione e accesso
all'informazione.
Senza fare rumore questo nuovo web, il web 2.0 appunto, sta in realtà entrando nelle vita di
moltissimi italiani, segnandone le abitudini, così come il modo di cercare, consumare e
specialmente condividere informazione online. Non è forse un caso che trovi spesso mio padre di
fronte al monitor, con le cuffie in testa e gli occhi rapiti per ore dai video di YouTube. Tutto questo
senza aver mai sentito nominare il termine web 2.0, come ad indicare che il nome conta
decisamente meno del livello di adozione di una tecnologia da parte degli utenti.
Il grande effetto portato dal web 2.0 in casa nostra potrebbe però essere anche un altro. Per la prima
volta, seppure con le differenze del caso, l'Italia non si limita a ricevere passivamente l'eco delle
onde elettromagnetiche provenienti dal nuovo continente. Al contrario gli influssi del web 2.0
sembrano aver prodotto, anche da noi e quasi in contemporanea, un nuovo slancio, una rinnovata
voglia di fare e mettersi in gioco per singoli ed imprese. Nonostante la mancanza di un substrato
economico capace di finanziare e far crescere iniziative visionarie e in uno stato ancora embrionale,
pur di fronte all'insufficienza di infrastrutture informatiche e di fluidità nel mercato del lavoro,
anche l'Italia sta tentando di apportare il proprio contributo in questo pullulare di idee e progetti che
già rivoluzionano la vita di milioni di persone in tutto il mondo.
Sull'onda degli influssi d'oltreoceano, nascono anche qui nuove conferenze (come il Duepuntozero
ed il D-Day) e unconferenze (conferenze non organizzate formalmente come il modello Barcamp
presentato a Torino, Milano e Roma). Si formano gruppi di sviluppatori d'eccellenza come Nimboo
e TheRubyMine ed iniziano finalmente ad affacciarsi finanziamenti dalla comunità europea per idee
web 2.0 portate avanti dalle università (come per TAGora promosso dalla Facoltà di Fisica
dell'Università la Sapienza di Roma). Questa rete di discussione, confronto ed innovazione è ancora
più evidente online, dove blogger, consulenti, giornalisti e semplici appassionati si contattano, si
conoscono e scambiano opinioni in modo distribuito e asincrono, alimentando il tam tam mediatico
sul fenomeno che ha ormai conquistato le pagine di quotidiani come Il Sole24Ore col suo inserto
Nova24.
E per quanto riguarda i progetti reali? Pur non disponendo della massa sociale presente negli Stati
Uniti, né di finanziamenti da milioni di dollari, esistono in realtà anche i progetti e il loro numero
sta crescendo rapidamente. Scoprirli è però un pochino più difficile. Da chi è fatto allora il web 2.0
nostrano? Si tratta spesso di gruppi di esperti che rimanendo nell'ombra si ritrovano online dopo
giornate di lavoro "tradizionale" disegnando quella che sperano essere la prossima killer
application, l'esperimento che cambierà loro vita professionale e magari anche entità del conto in
banca.
Il web 2.0 italiano è così popolato da figure professionali quanto mai variegate: ingegneri,
programmatori e web designer, ma anche ricercatori, filosofi, economisti e giornalisti, ognuno con
un diverso bagaglio di esperienza che risulta assolutamente necessaria quando si ha a che fare con
problemi non solo tecnici, ma anche sociali, motivazionali, psicologici ed economici. In uno sforzo
di immaginazione e voglia di ingegnarsi tutti italiani, queste iniziative tentano di fondere insieme i
più famosi esempi americani con le necessità e le peculiarità tipiche della cultura italiana: il cibo,
l'arte, la voglia di risparmiare, la ricerca di una casa e così via.
Ci si può chiedere allora perché questi progetti non abbiano ancora trovato soldi e fama. Benché, le
idee proposte siano spesso originali ed a volte anche ricche di spunti di business, trovare spazio per
emergere o semplicemente farsi vedere qui da noi non è in realtà cosa facile. Per questo, molti degli
attori del Web 2.0 italiano percepiscono un forte bisogno di occasioni di incontro mirato e di
aggregazione. Incontro che a volte diventa fattiva collaborazione, scambio di esperienze, idee ma
anche di tempo e braccia (o meglio menti) tra gruppi diversi, nella convinzione un simile approccio
comunitario possa alleviare alcune difficoltà tipiche del mercato italiano come il costo della mano
d'opera, la disponibilità di capitali e la dispersione geografica. Insomma l'unione potrebbe fare la
forza, specialmente in una fase in cui l'obiettivo principale è ancora aprire un mercato e mostrarne
le potenzialità. Incontrarsi permette allora di far tesoro delle esperienze altrui, di stabilire preziosi
contatti con soci e finanziatori o semplicemente di farsi forza di fronte agli ostacoli.
Ulteriori informazioni al link http://www.xyz.reply.it/web20/

XML

L'XML, acronimo di eXtensible Markup Language, ovvero «Linguaggio di marcatura estensibile» è
un metalinguaggio creato e gestito dal World Wide Web Consortium (W3C), e più precisamente dal
presidente di tale "consorzio", Michael Sunshine. È una semplificazione e adattamento dell'SGML,
da cui è nato nel 1998, e permette di definire la grammatica di diversi linguaggi specifici derivati.
A cosa serve l'XML
Rispetto all'HTML, l'XML ha uno scopo ben diverso: mentre il primo è un linguaggio per la
realizzazione della struttura di template di pagine Web, il secondo è un linguaggio utile allo
scambio dei dati, quindi di back-office e non di front-office, o di esposizione che dir si voglia.
Per scambio dei dati si intende la conservazione in una struttura XML di dati presi,
presumibilmente, da un database o da altre fonti, oppure memorizzati direttamente all'interno di una
struttura XML.
Sintassi
Prima di proseguire e di capire meglio, ecco un esempio tipico di file XML. Lo si può visualizzare
su un browser qualsiasi semplicemente salvandolo in un file con estensione .xml.



Luca
Ruggiero


Max
Rossi


La prima riga indica la versione di XML in uso e specifica la codifica ISO per la corretta
interpretazione dei dati. L'XML non riconosce i caratteri speciali all'interno di una sua struttura: le
lettere accentate, la & (e commerciale) ed altri vanno quindi sostituiti con le rispettive sequenze
Unicode.
I tag
La struttura vera e propria dell'XML è composta dai tag creati dallo sviluppatore, che hanno due
caratteristiche: (1) Devono essere comprensibili in funzione dello scopo del tag stesso (onde evitare
di non capirci nulla ad una seconda lettura e per facilitare la comprensione agli altri utenti); (2)
Devono rispettare delle regole, come la differenza tra maiuscolo e minuscolo; non possono iniziare
con numeri o caratteri speciali e non possono contenere spazi. In generale si devono rispettare le
regole di assegnazione dei nomi alle variabili comuni a tutti i linguaggi di programmazione.
Ogni record, per dirla in termini familiari a chi vuol pensare ad XML come ad un database, viene
chiamato nodo ed ogni tag può essere corredato da attributi. Ad esempio, la struttura precedente può
essere modificata come segue:





I tag che non hanno l'omonimo tag di chiusura vanno chiusi con uno slash (/) finale, prima della fine
del tag stesso. Per maggiore compatibilità con i browser più vecchi è preferibile far precedere lo
slash da uno spazio, come indicato nell'esempio qui sopra.
Per poter essere correttamente interpretato da un browser, un documento XML deve essere ben
formato, deve cioè possedere le seguenti caratteristiche:
Un Prologo, che è la prima istruzione che appare scritta nel documento. Nel nostro caso: version="1.0" encoding="ISO-8859-1"?>
Un unico Elemento radice (ovvero il nodo principale) che contiene tutti gli altri nodi del
documento. Nel nostro esempio:

Accesso ad un file XML
Questa struttura non ha interfaccia ma è accessibile da qualsiasi linguaggio di programmazione
Web (sia lato server che lato client) o meno. Il rispetto delle regole esposte in precedenza ed il fatto
che questi dati saranno accessibili, in una semplice struttura, a qualsiasi tipo di applicazione, locale
o remota, fanno dell'XML uno standard che si caratterizza per la sua portabilità.
L'accesso ad una struttura XML può avvenire attraverso diversi sistemi, il più comune ma
rudimentale dei quali è lo sfruttamento del filesystem del server su cui gira il motore del linguaggio
in uso.
Ogni linguaggio ha poi dei suoi componenti di tipo ActiveX oppure delle classi native per l'accesso
ad una struttura XML: Microsoft, ad esempio, mette a disposizione di ASP e di Visual Basic
l'oggetto XMLDOM (acronimo di XML Document Object Model) mentre altri come Java e PHP
hanno, rispettivamente, delle classi e dei packages dedicati allo scopo.
Stesso discorso per la piattaforma .NET che ha integrato oggetti e funzioni che supportano
nativamente XML.
Linguaggi derivati dall'XML
L'XML non si esaurisce qui: esistono diversi linguaggi basati sull'XML, ognuno con uno scopo
differente, ma derivato e legato in qualche modo ad esso. In questo paragrafo li passeremo in esame
tutti, senza omettere qualche riga di spiegazione sul loro scopo.
DTD (acronimo di Document Type Definition): è il linguaggio che specifica le caratteristiche del
tipo di documento attraverso una serie di "regole grammaticali". In particolare definisce l'insieme
degli elementi del documento XML, le relazioni gerarchiche tra gli elementi, l'ordine di apparizione
nel documento XML e quali elementi e quali attributi sono opzionali o meno.
XML Schema: come la DTD, serve a definire la grammatica del documento XML. Oggi il W3C
consiglia di adottarlo al posto della DTD stessa, essendo una tecnica più nuova ed avanzata. La sua
sigla è XSD, acronimo di XML Schema Definition.
XLink: serve a collegare in modo completo due documenti XML; al contrario dei classici
collegamenti ipertestuali che conosciamo in HTML, XLink permette di creare link multidirezionali
e semanticamente avanzati.
XSL (acronimo di eXtensible Stylesheet Language): è il linguaggio con cui si descrive il foglio di
stile di un documento XML. La sua versione estesa è l'XSLT (dove la T sta per Trasformations).
XPath: è una tecnologia legata ad XSL ed XSLT ed il suo scopo, attraverso un linguaggio semplice
ma potente, è quello di recuperare e gestire i nodi di un documento XML. A supporto di questo
scopo principale, fornisce anche elementari funzionalità per trattare stringhe, numeri e dati
booleani. Il suo funzionamento si basa sulla creazione di un albero a partire dal documento e la
sintassi succinta permette di indirizzare una specifica parte attraverso i nodi dell'albero con la
semplice parola path. Questo linguaggio è utile quando si debbono manipolare solo piccole porzioni
di grandi documenti, sia per trasferirle, sia per visualizzarle.
XPointer: serve ad identificare univocamente precise porzioni di un documento XML; consente poi
il loro accesso ad altri linguaggi o oggetti di interfaccia.
XQuery: è un linguaggio di query concepito per essere applicabile a qualsiasi sorta di documento
XML e si basa sull'utilizzo di XPath per la specificazione di percorsi all'interno di documenti.
XQuery ha funzionalità che consentono di poter attingere da fonti di dati multiple per la ricerca, per
filtrare i documenti o riunire i contenuti di interesse.
SAX (Simple API for XML): è un'interfaccia di programmazione, implementabile in numerosi
linguaggi, che permette di leggere e modificare i documenti XML.
XForms: come il suo nome lascia intendere, è un linguaggio nato per creare moduli (forms) di tipo
HTML all'interno di un documento XML.
RSS: è uno standard che serve a creare un documento con una struttura di tipo XML univoca, atta
allo sviluppo di un semplice scambio dati tra pagine Web ed accessibile da qualsiasi linguaggio di
scripting. In sostanza si tratta di un documento XML la cui struttura dei nodi ed i relativi tag hanno
lo stesso nome.
SVG (Scalable Vector Graphics): è uno standard per la creazione di immagini vettoriali che sfrutta
dei documenti formattati in XML. Serve inoltre a descrivere immagini bidimensionali, statiche e
dinamiche. Leggendo le istruzioni contenute nel documento sorgente XML, l'interprete disegna le
figure-base fino al completamento dell'immagine.
XML e le pagine web: XHTML
L'HTML tradizionale non è un vero standard data la sua eccessiva flessibilità ed il suo
funzionamento immutato anche in presenza di errori semantici, sintattici e grammaticali. Ad
affiancarlo c'è XHTML, ovvero l'HTML tradizionale basato su XML, con la sua struttura rigida e
con le sue stesse regole.
Ad esempio in XHTML, al contrario che in HTML tradizionale, i tag vuoti vanno chiusi con uno
slash (/) finale, gli attributi vuoti devono essere valorizzati con true o false, la chiusura dei tag
dev'essere a specchio (se viene aperto un Tag e prima di chiuderlo ne viene aperto un altro, è
necessario chiudere prima il secondo tag e poi il primo), molti Tag e molti attributi sono scomparsi,
i caratteri speciali vanno gestiti, insieme ad altre peculiarità, ma soprattutto esiste una DTD
dedicata.
Una pagina XHTML (ovvero un codice XHTML, dato che l'estensione della pagina prescinde dal
codice in questo caso) non funziona se scritta scorrettamente e inviata con il mime type corretto
(application/xhtml+xml). Quando è inviata come text/html funziona perché viene interpretata come
html (con degli errori, quali i tag chiusi come
) solo che non rispetta lo standard e non gode
dei suoi vantaggi, primo tra i quali la portabilità su browser e client differenti.[1]
W3C e XML
Qui di seguito si trova la traduzione di un articolo in inglese edito dal W3C. Il documento originale
(rivisto il 13 novembre 2001) è disponibile qui.
L'XML in dieci punti
XML, XLink, Namespace, DTD, XML Schema, CSS, XHTML ... Se non conosci l'XML, può
essere difficile capire da dove cominciare. Questo elenco in 10 punti cerca di catturare sufficienti
concetti base per far vedere al neofita la foresta in mezzo agli alberi. E se stai preparando una
presentazione sull'XML, perché non iniziare con questi 10 punti?
1. XML serve a strutturare i dati
I dati strutturati modellano entità come fogli di calcolo, rubriche, parametri di configurazione,
transazioni finanziarie e disegni tecnici. XML è un insieme di regole (puoi anche pensare che siano
delle linee guida o delle convenzioni) per formulare dei file in formato testo che ti permettano di
strutturare i tuoi dati. XML non è un linguaggio di programmazione, e non devi essere un
programmatore per usarlo od impararlo. XML rende facile la generazione di dati tramite un
computer, la lettura dei dati e il controllo sulla struttura in modo che non sia ambigua. XML evita le
pecche comuni dei linguaggi: è estensibile, indipendente dalla piattaforma e supporta i parametri
internazionali e locali. Inoltre è pienamente compatibile con Unicode.
2. XML assomiglia un po' all'HTML
Come HTML, XML (eXtensible Markup Language) fa uso di tag (parole racchiuse tra le parentesi
angolari < e >) e attributi (della forma name="value"). Mentre HTML specifica come il testo e le
altre componenti di layout debbano essere visualizzati in un browser, XML usa i tag solo per
delimitare pezzi di dati, lasciandone completamente l'interpretazione all'applicazione che li legge. In
altre parole, se si vede

in un file XML, non si è sicuri che esso sia un paragrafo. A seconda del
contesto, potrebbe essere un prezzo, un parametro, una persona, una p... (e chi l'ha detto che
dev'essere una parola con la "p"?).
3. L'XML è un testo, ma non da leggere
I programmi che producono fogli di calcolo, rubriche e altri dati strutturati, spesso salvano i dati sul
disco, usando sia il formato binario che quello testuale. Uno dei vantaggi del formato testo è che
permette, se necessario, di dare un'occhiata ai dati pur non disponendo del programma che li ha
prodotti; all'occorrenza, si può leggere un file con il proprio editor di testi preferito. Inoltre i formati
testo permettono agli sviluppatori un debug più semplice delle applicazioni. Come l'HTML, i file
XML sono file di testo che non è necessario leggere, tranne quando non ne sorga il bisogno.
Confrontate con l'HTML, le regole per i file XML permettono pochissime variazioni. Un tag
dimenticato, o un attributo senza virgolette rendono il file XML inutilizzabile, mentre in HTML tali
pratiche sono spesso esplicitamente permesse. Le specifiche ufficiali dell'XML proibiscono alle
applicazioni di tentare di indovinare cosa intendesse il creatore di un file non utilizzabile; se il file
non è corretto, una applicazione deve fermarsi e segnalare l'errore.
4. XML è troppo prolisso per la progettazione
Poiché XML è un formato di testo e usa i tag per delimitare i dati, i file XML sono praticamente
sempre più grandi degli analoghi file in binario. Questa è stata una decisione presa coscientemente
dagli sviluppatori dell'XML. I vantaggi del formato testo sono evidenti (vedi il punto precedente), e
gli svantaggi possono solitamente essere compensati a livelli diversi. Lo spazio su disco diventa
sempre meno costoso ed i programmi di compressione come zip e gzip sono in grado di ridurre lo
spazio occupato dai file in maniera efficiente. Inoltre, i protocolli di comunicazione usati tra
dispositivi di rete (come il protocollo PPP usato nella connessione del modem ad internet, o
l'HTTP), possono comprimere i dati al volo, risparmiando banda esattamente come per i file binari.
5. XML è una famiglia di tecnologie
XML 1.0 è la specifica che definisce cosa sono i "tag" e gli "attributi". Oltre ad XML 1.0, "la
famiglia XML " è un insieme in crescita costante di moduli che offrono servizi utili per attività
importanti e comunemente eseguite. XLink descrive una modalità standard per aggiungere
collegamenti ipertestuali ad un file XML. XPointer è una sintassi in sviluppo per puntare a parti di
un documento XML; un XPointer è simile ad un URL, ma invece di puntare a un documento sul
web, punta a porzioni di dati all'interno di un file XML. Il CSS, il linguaggio dei fogli di stile, è
applicabile all'XML così come all'HTML. XSL è il linguaggio avanzato per scrivere i fogli di stile;
XSL è basato su XSLT, un linguaggio di trasformazione usato per riarrangiare, aggiungere e
cancellare tag e attributi. Il DOM è un insieme standard di funzioni impiegato per manipolare i file
XML (e HTML) da un linguaggio di programmazione. XML Schemas 1 e 2 aiutano gli sviluppatori
a definire precisamente le strutture basate sui loro propri formati XML. Ci sono ancora un'infinità di
moduli e strumenti disponibili o in fase di sviluppo. Date un occhio alla W3C's technical reports
page.
6. XML è nuovo, ma poggia su solide radici
Lo sviluppo dell'XML è iniziato nel 1996 ed è una W3C Recommendation dal febbraio 1998, la
qual cosa può far sospettare che sia una tecnologia piuttosto immatura. Infatti, la tecnologia non è
molto nuova. Prima di XML c'era SGML, sviluppato nei primi anni 80, standard ISO dal 1986, e
ampiamente usato per progetti di documentazione. Lo sviluppo dell'HTML è iniziato nel 1990. Gli
sviluppatori dell'XML semplicemente presero le parti migliori dell'SGML, guidati dall'esperienza
fatta con l'HTML, e produssero qualcosa che non è meno potente dell'SGML, ma molto più regolare
e facile da usare. Alcune evoluzioni, tuttavia, sono difficili da distinguere dalle rivoluzioni... E
bisogna dire che mentre SGML è soprattutto usato per la documentazione tecnica e meno per gli
altri tipi di dati, con XML è esattamente l'opposto
7. XML porta dall'HTML all'XHTML
Esiste un'importante applicazione dell'XML che è un formato di documento: l'XHTML del W3C, il
successore dell'HTML. XHTML ha molti elementi analoghi all'HTML. La sintassi è stata
leggermente cambiata per conformarsi alle regole dell'XML. Un formato che sia basato su XML
eredita la sintassi dall'XML e in un certo modo la restringe (ad es., XHTML permette

, ma non
); inoltre aggiunge significato alla sintassi (l'XHTML dice che

sta per "paragrafo", e non
per "prezzo", "persona", o altro).
8. XML è modulare
XML permette di definire un nuovo formato di documento combinando o riutilizzando altri formati.
Poiché due formati sviluppati indipendentemente possono avere elementi o attributi con lo stesso
nome, occorre prestare attenzione quando si combinano quei formati (

significa "paragrafo"
secondo questo formato o "persona" come nell'altro?). Per eliminare la confusione sui nomi durante
l'unione dei formati, XML fornisce un meccanismo di namespace. XSL e RDF sono buoni esempi
di formati basati su XML che usano i namespace. XML Schema è studiato per rispecchiare questo
supporto per la modularità al livello di definizione delle strutture del documenti, rendendo facile
combinare due schemi per produrne un terzo che comprenda una struttura di documento unione
delle due.
9. XML è la base per l'RDF e il Web Semantico
Il Resource Description Framework (RDF) del W3C è un documento formattato con standard XML
che supporta la descrizione di risorse e applicazioni che trattano metadati come liste musicali,
album di foto e bibliografie. Ad esempio, RDF potrebbe permettere di identificare una persona su
un album fotografico sul Web usando delle informazioni prese dalla lista personale di contatti; poi il
client di posta potrebbe automaticamente inviare un messaggio a queste persone dicendo che le loro
foto sono sul Web. Come HTML ha integrato documenti, immagini, sistemi a menu e form per
lanciare il Web originale, RDF fornisce strumenti per integrare anche di più, per avvicinare il Web
ancora un po' al Web Semantico. Esattamente come le persone devono accordarsi sul significato
delle parole che impiegano nelle loro comunicazioni, i computer necessitano di meccanismi per
accordarsi sul significato dei termini in modo da comunicare effettivamente. Le descrizioni formali
dei termini in certe aree (acquisti o settore manufatturiero, ad esempio) sono dette ontologie e sono
una parte necessaria del Web Semantico. RDF, ontologie e la rappresentazione del significato in
modo che possano aiutare le persone a fare dei lavori, sono tutti argomenti della Semantic Web
Activity.
10. XML è gratis, portabile e ben supportato
Scegliendo XML come base per un processo, si guadagna l'accesso ad un'ampia comunità in
espansione di strumenti (uno dei quali potrebbe già fare quello che desideri!) e ingegneri con
esperienza nella tecnologia. Optare per l'XML è un po' come scegliere SQL per le basi di dati: devi
ancora costruire il tuo database, i tuoi programmi e le procedure che lo manipolano, ma ci sono
molti strumenti disponibili e molte persone che ti possono aiutare. E poiché XML è gratis, puoi
costruirci il tuo software senza pagare niente a nessuno. Il grande e crescente supporto significa che
non sei vincolato ad un unico venditore. XML non è sempre la miglior soluzione, ma vale sempre la
pena di prenderlo in considerazione.

AJAX

Ajax, acronimo di Asynchronous JavaScript and XML, è una tecnica di sviluppo web per creare applicazioni web interattive. L'intento di tale tecnica è quello di ottenere pagine web che rispondono in maniera più rapida, grazie allo scambio in background di piccoli pacchetti di dati con il server, così che l'intera pagina web non debba essere ricaricata ogni volta che l'utente effettua una modifica. Questa tecnica riesce, quindi, a migliorare l'interattività, la velocità e l'usabilità di una pagina web.


La tecnica Ajax utilizza una combinazione di:

HTML (o XHTML) e CSS per il markup e lo stile;
DOM (Document Object Model) manipolato attraverso un linguaggio ECMAScript come JavaScript o JScript per mostrare le informazioni ed interagirvi;
l'oggetto XMLHttpRequest per l'interscambio asincrono dei dati tra il browser dell'utente e il web server. In alcuni framework Ajax e in certe situazioni, può essere usato un oggetto Iframe invece di XMLHttpRequest per scambiare i dati con il server e, in altre implementazioni, tag aggiunti dinamicamente (JSON);
in genere viene usato XML come formato di scambio dei dati, anche se di fatto qualunque formato può essere utilizzato, incluso testo semplice, HTML preformattato, JSON e perfino EBML. Questi file sono solitamente generati dinamicamente da script lato server.
Come DHTML o LAMP, Ajax non è una tecnologia individuale, piuttosto è un gruppo di tecnologie utilizzate insieme.

Le applicazioni web che usano Ajax richiedono browser che supportano le tecnologie necessarie (quelle dell'elenco sopra). Questi browser includono: Mozilla, Firefox, Internet Explorer, Opera, Konqueror e Safari. Tuttavia, per specifica, "Opera non supporta la formattazione degli oggetti XSL".



Confronto con applicazioni tradizionali
Le applicazioni web tradizionali consentono agli utenti di compilare moduli e, quando questi moduli vengono inviati, viene inviata una richiesta al web server. Il web server agisce in base a ciò che è stato trasmesso dal modulo e risponde bloccando o mostrando una nuova pagina. Dato che molto codice HTML della prima pagina è identico a quello della seconda, viene sprecata moltissima banda. Dato che una richiesta fatta al web server deve essere trasmessa su ogni interazione con l'applicazione, il tempo di reazione dell'applicazione dipende dal tempo di reazione del web server. Questo comporta che l'interfaccia utente diventa molto più lenta di quanto dovrebbe essere.

Le applicazioni Ajax, d'altra parte, possono inviare richieste al web server per ottenere solo i dati che sono necessari (generalmente usando SOAP e JavaScript per mostrare la risposta del server nel browser). Come risultato si ottengono applicazioni più veloci (dato che la quantità di dati interscambiati fra il browser ed il server si riduce). Anche il tempo di elaborazione da parte del web server si riduce poiché la maggior parte dei dati della richiesta sono già stati elaborati.

Molti siti usano le tabelle per visualizzare i dati. Per cambiare l'ordine di visualizzazione dei dati, con un'applicazione tradizionale l'utente dovrebbe cliccare un link nell'intestazione della tabella che invierebbe una richiesta al server per ricaricare la pagina con il nuovo ordine. Il web server allora invierebbe una nuova query SQL al database ordinando i dati come richiesto, la eseguirebbe, prenderebbe i dati e ricostruirebbe da zero la pagina web reinviandola integralmente all'utente. Usando le tecnologie Ajax, questo evento potrebbe preferibilmente essere eseguito con uno JavaScript lato client che genera dinamicamente una vista dei dati con DHTML. Un altro esempio potrebbe essere la scelta di un nuovo nickname in fase di creazione di un account su un sito web, nel caso classico, se il nome che abbiamo scelto fosse già esistente, dovremmo compilare prima tutto il modulo ed accorgerci solo dopo aver atteso il caricamento della pagina di conferma che il nome è già esistente e dobbiamo cambiarlo (a chi non è mai successo?) invece con AJAX può essere introdotto un controllo sull'evento onChange o addirittura OnKeyUp della casella di testo che ci può informare tempestivamente che il nome inserito non è valido, magari evidenziando il testo in rosso (CSS + Javascript).


Pro e contro
Come per le applicazioni DHTML, anche le applicazioni AJAX devono essere testate su più browser per verificarne la compatibilità (librerie come Sarissa di SourceForge possono tuttavia essere di aiuto). Inoltre è richiesto che nel client sia attivato Javascript. Il vantaggio di usare AJAX è la grande velocità alla quale un'applicazione risponde agli input dell'utente.

Un problema abbastanza degno di nota è che, senza l'adozione di adeguate contromisure, le applicazioni AJAX possono rendere non utilizzabile il tasto "indietro" del browser: con questo tipo di applicazioni, infatti, non si naviga da una pagina all'altra, ma si aggiorna di volta in volta una singola parte del medesimo documento. Proprio per questo i browser, che sono programmi orientati alla pagina, non hanno possibilità di risalire ad alcuna di tali versioni "intermedie". Google, nella sua Google Maps, ha sviluppato una possibile soluzione al problema: invece di usare XMLHttpRequest quando l'utente clicca sul bottone di ricerca, il risultato della ricerca viene inviato in un iframe invisibile, dal quale le informazioni sono portate nella pagina visibile.

In ogni modo, un attento design delle applicazioni AJAX permette di risolvere totalmente o in parte questi aspetti negativi.

Guide su AJAX http://antirez.com/articoli/spaghettiajax.html
 http://www.ebook-gratis.it/2-Programmazione/48-Ajax_manuali_guide.html