MasterNewMedia Italia
Scopri i migliori tool per comunicare,
collaborare e fare marketing
   
Curated by: Luigi Canali De Rossi
 


24 agosto 2007

Mashups: Cosa Sono - Generi E Tecnologie Utilizzate - Parte 1

I mashup rappresentano un genere davvero innovativo di applicazioni Web interattive che si interfacciano con dati presi da fonti esterne per creare servizi totalmente nuovi e rivoluzionari. Sono il marchio distintivo della seconda generazione di applicazioni Web conosciute non ufficialmente col nome di Web 2.0.

Mashup-baby-by-Jasmine-T-via-Quasimondo-323010657_d172b33030-480o.jpg
Photo credit: (c) Quasimondo - (c) Disegno di Jasmine T.

I mashup sono certamente un nuovo ed entusiasmante genere di web application.

La combinazione delle tecnologie disponibili per organizzare i dati che scaturiscono dal campo del Web Semantico e dalla maturazione di protocolli di comunicazione indipendenti dalle piattaforme, orientati ai servizi e fluidamente integrati sta fornendo finalmente l'infrastruttura necessaria alla nascita di applicazioni che possano davvero essere in grado di sfruttare e integrare la grande mole di informazioni disponibili sul Web.

Quando le applicazioni dei mashup inizieranno ad ottenere una grande visibilità, sarà interessante vedere il generale impatto delle problematiche sociali come l'uso libero e la proprietà intellettuale così come altri campi di applicazione che integreranno dati prendendoli dalle fonti più remote, come il grid computing e la gestione del workflow business-to-business.

Per un approfondimento maggiore sullo sviluppo dei mashup, resta sintonizzato per il lancio di una nuova serie di tutorial su developerWorks che ti permetteranno di scoprire come costruire il tuo mashup. Infatti, questa serie ti insegnerà anche come muovere i primi passi con la tecnologia propria del Web Semantico e le ontologie per permettere a tutti di creare i propri mashup.

Questo articolo introduttivo si focalizza su:

a) cosa significa il termine mashup,

b) le differenti tipologie di mashup realizzate sinora, e

c) le tecnologie che saranno sfruttate dagli sviluppatori di mashup per creare le loro applicazioni. Prossimamente, descriverò molte delle nuove sfide tecniche e sociali che tali sviluppatori si troveranno ad affrontare.

 

Mashup: La Nuova Generazione Di Web App

di Duane Merrill

mashup-ecosystem-400.jpg
Illustration credit: (c) Dion Hinchcliffe - via RemixTheory.net






Introduzione

Una nuova generazione di applicazioni basate sul web per l'integrazione dei dati inizia a germogliare attraverso tutta la rete.

Colloquialmente chiamati mashup, la loro popolarità proviene dall'enfasi sulla partecipazione interattiva dell'utente e sulla maniera mostruosa di aggregare e reinventare gli insiemi di dati prodotti da terzi.

La metafora naturalistica che ho utilizzato non è casuale; un sito web fatto grazie ai mashup è caratterizzato dal modo nel quale affonda le sue radici nelle informazioni del web, e le sfrutta per ricevere contenuti e funzionalità da sorgenti di dati che giacciono esternamente ai suoi confini organizzativi.

Questa vaga definizione di data-integration di un mashup non è certamente rigorosa.

Una buona spiegazione di cosa faccia un mashup la possiamo ricavare analizzando l'etimologia di questo termine, dato che è stato preso in prestito dalla scena della pop music, dove un mashup è una nuova canzone che mixa le tracce vocali e strumentali di due brani differenti (solitamente appartenenti a generi eterogenei). Come queste canzoni "pop bastarde", un mashup è una originale ed innovativa unione di contenuti (spesso da fonti di dati non correlate), fatte per il consumo umano (più che per quello utile ai pc).

Quindi, com'è fatto un mashup? Il sito web ChicagoCrime.org ci fornisce un perfetto esempio di cosa sia un mapping mashup. Questa è stata una delle prime forme di mashup a prendere piede nella stampa; il sito web unisce i dati sui crimini presenti nel database online del Chicago Police Department con la cartografia di Google Maps.

L'utente può interagire con il mashup, come per esempio chiedergli di mostrare i segnaposto che, se cliccati, rivelino i dettagli relativi ai furti nella zona Sud di Chicago. Il concetto e la presentazione sono semplici, e la rappresentazione dei crimini in questo modo è visualmente molto potente.

Nella prima parte di questo report parleremo dei vari generi di mashup, prendendo in esame i generi più comuni di mashup, inclusi appunto i mapping mashup. Inoltre forniremo una panoramica delle tecnologie correlate che fanno da sfondo alle operazioni necessarie per costruire un mashup.

Nella seconda parte di questo report, parlerò delle Sfide Tecniche e Sociali che riguardano i mashup.


Le Tipologie Di Mashup

idoltracker-mashup-via-cnet-au.jpg

In questa parte descriverò brevemente le tipologie di mashup più importanti.


Mapping

In quest'era di tecnologia dell'informazione, il genere umano sta raccogliendo un'incredibile mole di dati su cose ed attività, entrambe accompagnate anche da una precisa localizzazione geografica.

Tutti questi insiemi di dati che contengono anche informazioni geografiche possono finalmente essere rappresentati anche attraverso l'uso delle mappe. Uno degli eventi che ha catalizzato l'avvento dei mashup è stato l'introduzione da parte di Google delle Google Maps API.

Il fatto che queste API fossero pubbliche ed aperte ha permesso agli sviluppatori web (nonché agli hobbisti, agli smanettoni e ad altri) di mescolare tutti questi tipi di dati (qualsiasi cosa dai disastri nucleari alle mucche della CowParade di Boston) e di mostrarli su delle mappe. Tanto per non essere da meno, anche altre società hanno seguito questo esempio, vedi Microsoft (con Virtual Earth), Yahoo (con Yahoo Maps), e AOL (MapQuest).


Video e Foto

L'emergere di fenomeni come siti di foto hosting e social networking come Flickr con le API disponibili hanno permesso una varietà incredibile di mashup.

Grazie al fatto che coloro che caricano le foto, vi associano dei metadati (come chi ha scattato la foto, cosa rappresenta la foto, quando e dove è stata scattata, ecc), coloro che ideano i mashup possono unire le foto con altre informazioni che possono essere associate con i metadati.

Per esempio, un mashup potrebbe analizzare canzoni o poesie e creare dei mosaici o dei collage di foto in tema, o visualizzare un grafico del social networking basandosi sui metadati più comuni nelle foto (soggetto, data di scatto, ed altri metadati).

Beh, un altro esempio potrebbe essere quello di un sito Web (come un sito di news tipo CNN) che prendere le foto da visualizzare nelle news sfruttando l'analisi del confronto fra le parole contenute nella news e i tag delle foto.


Ricerca e Shopping

I mashup per la ricerca e lo shopping esistevano ancor prima che il termine mashup fosse coniato. Prima dei giorni delle Web API, esistevano strumenti come BizRate, PriceGrabber, MySimon, e Google's Froogle che sfruttavano una combinazione di tecnologie business-to-business (b2b) e screen-scraping per aggregare e confrontare i prezzi di ciò che l'utente voleva acquistare.

Per facilitare i mashup ed altre interessanti applicazioni web, i mercati per i consumatori come eBay e Amazon hanno reso disponibili le loro API per accedere sistematicamente ai loro contenuti.


News

Le fonti di news (come New York Times, BBC o Reuters) utilizzano le tecnologie per la sindacazione dei contenuti come gli RSS e Atom (descritti nella prossima sezione) sin dal 2002 per diffondere news informative su vari argomenti.

I mashup per la sindacazione dei feed possono aggregare i feed dell'utente e presentarli sul Web, creando un giornale personalizzato che si rivolge a particolari interessi dei lettori.

Come esempio citiamo Diggdot.us, che combina i feed provenienti da fonti di news tecnologiche come Digg.com, Slashdot.org, e Del.icio.us.



Le tecnologie correlate

Questa sezione fornisce una panoramica delle nuove tecnologie che stanno facilitando lo sviluppo dei mashup. Per approfondire questi argomenti, ho preparato un'eccellente lista di link per addentrarti in questo affascinante mondo.


L'Architettura

L'architettura di un mashup è composta da tre parti principali che sono logicamente e fisicamente distinte (sono probabilmente separate sia da limiti di network che organizzativi):

1) fornitori di contenuti/API,

2) il sito mashup, e

3) il browser Web dell'utente.

  • I fornitori di contenuti/API.

    Questi sono (talvolta inconsapevolmente) i creatori di contenuti che vengono uniti. Nell'esempio appena fatto del sito ChicagoCrime.org, i fornitori erano Google ed il Dipartimento della Polizia di Chicago. Per permettere la ricezione dei dati, i fornitori spesso rendono pubblici i loro contenuti attraverso opportuni protocolli web come REST, Web Service, e RSS/Atom (descritto di seguito).

    Comunque, molte fonti potenziali di dati non hanno (ancora) per convenienza reso pubbliche le loro API.

    I mashup che prendono contenuti da siti come Wikipedia, TV Guide, e virtualmente tutti i siti di pubblico dominio e governativi riescono a farlo attraverso una tecnica chiamata screen scraping. In un contesto simile, definiamo screen scraping il processo con il quale uno strumento tenta di estrarre le informazioni dei content provider provando a leggere artificialmente e analizzare le pagine web, originariamente concepite per il consumo umano.


  • Il sito mashup.

    Questo è il luogo nel quale il mashup è hostato. E' abbastanza interessante in quanto è qui che risiede la sua logica, ma non il luogo nel quale viene eseguito.

    Da un lato, un mashup può essere implementato allo stesso modo delle tradizionali applicazioni Web che sfruttano le tecnologie lato-server per generare contenuto dinamico quali Java servlet, CGI, PHP o ASP.

    In alternativa, il contenuto mashato può essere generato direttamente nel browser dell'utente attraverso un linguaggio di scripting lato client (JavaScript per intenderci) o delle applet. Questa logica lato-client è spesso la combinazione di codice direttamente embeddato nella pagina web del mashup come librerie o applet di scripting API (rese pubbliche dai content provider) riferite a queste pagine web.

    I mashup che utilizzano questo approccio possono essere chiamati rich internet application (RIA), volendo sottolineare il fatto che siano molto orientato all'interattività dell'esperienza dell'utente. (Le rich internet application sono uno dei marchi distintivi di ciò che ora viene chiamato "Web 2.0", la prossima generazione di servizi disponibili nel World Wide Web.)

    I benefici del mashing lato-client includono minor carico delle risorse del server (i dati vengono ricevuti direttamente da chi fornisce i contenuti) e un'esperienza utente più fluida (si possono richiedere degli aggiornamenti su porzioni di pagina senza dover ricaricare tutta la pagina). Le API di Google Maps sono progettate per accedere tramite JavaScript a livello browser, e questo è un perfetto esempio della tecnologia lato-client.

    Spesso i mashup combinano la logica lato server e client per riuscire ad aggregare i dati.

    Molte applicazioni mashup usano dei dati che vengono forniti loro direttamente dalla loro basi di utenti, tenendo almeno un database in locale. Inoltre, fare delle query complesse su fonti di dati multiple (come ad esempio "Mostrami il prezzo di acquisto medio dei beni immobiliari comprati dagli attori che hanno recitato come co-protagonisti nei film con Kevin Bacon") richiederebbe dei calcoli che sarebbero impossibili da effettuare nel browser dell'utente.


  • Il Web browser dell'utente.

    E' qui che l'applicazione prende corpo a livello grafico e dove ha luogo l'interazione con l'utente. Come già detto, i mashup fanno spesso uso della logica lato-client per assemblare e ricomporre il contenuto mashato.



Ajax

C'è qualche disputa sul fatto che il termine Ajax sia un acronimo o meno (alcuni pensano che significhi "Asynchronous JavaScript + XML"). Indipendentemente da ciò, Ajax è un modello di Web application piuttosto che una tecnologia specifica. Comprendere varie tecnologie che riguardano il caricamento asincrono e la presentazione del contenuto:

  • XHTML e CSS per lo stile della presentazione
  • Le Api pubbliche del Document Object Model (DOM) per l'interazione e visualizzazione dinamica a livello browser
  • Scambio asincrono di dati, tipicamente dati XML
  • Scripting lato browser, principalmente JavaScript

Lo scopo dell'utilizzo contemporaneo di tutte queste tecnologie è di creare un'esperienza web fluida e coesa per l'utente scambiando piccole quantità di dati ogni volta che l'utente agisce piuttosto che dover ricaricare tutta la pagina.

Puoi costruire delle engine Ajax per i mashup con i vari toolkit e librerie Ajax (come Sajax o Zimbra), di solito implementati in JavaScript. Le Google Maps API includono un'engine Ajax proprietaria, e l'effetto sull'esperienza utente è notevole: sembra di lavorare in locale dato che non vi sono scrollbar da manipolare o translation arrow che forzano il ricarimento della pagina.


Protocolli Web: SOAP e REST

Sia SOAP che REST sono protocolli neutrali in quanto a piattaforme per la comunicazione con servizi remoti. Come parte del paradigma architetturale service-oriented, i client possono usare SOAP e REST per interagire con servizi remoti senza dover conoscere le loro piattaforme sottostanti: la funzionalità del servizio è completamente incorporata nella descrizione del messaggio che viene richiesto e a cui viene data risposta.

SOAP è una tecnologia fondamentale del paradigma Web Service. In origine era l'acronimo di Simple Object Access Protocol, ma oggi significa Services-Oriented Access Protocol (o solo SOAP) perchè il suo focus si è spostato dall'essere un sistema object-based verso l'interoperabilità nello scambio del messaggio.

Vi sono due componenti chiave nelle specifiche di SOAP. La prima è l'utilizzo di un messaggio in formato XML per l'encoding indipendente dalla piattaforma, e la seconda è la struttura del messaggio, che consiste di una header e di un body.

La header viene utilizzata per scambiare informazioni contestuali che non riguardano i dati veri e propri (il body), come le informazioni di autenticazione. Il body del messaggio in SOAP incapsula il carico di dati specifico dell'applicazione.

La API SOAP per i Web service sono descritti da documenti WSDL, che descrivono essi stessi quali operazioni un servizio mostra, il formato del messaggio che accetta (usando un Schema XML), e come indirizzarlo. Il messaggio SOAP di solito è trasportato in HTTP, sebbene siano praticabili altre vie (come JMS o e-mail).

REST è l'acronimo per Representational State Transfer, una tecnica per la comunicazione web-based che utilizza solo HTTP e XML. La sua semplicità e la mancanza di set profile rigidi lo rendono completamente diverso da SOAP, oltre a renderlo sicuramente più attrattivo.

Contrariamente alla tipica interfaccia basata su una sintassi articolata utilizzata dai principali linguaggi di programmazione moderni (che sono composti di metodi differenti come getEmployee(), addEmployee(), listEmployees(), ecc), REST fondamentalmente supporta solo poche istruzioni primordiali (come POST, GET, PUT, DELETE) che sono applicabili ad ogni brandello di informazione. L'enfasi su REST è proprio su questa unità informativa, che viene chiamata risorsa.

Per esempio, un record di una risorsa per un impiegato viene identificata da un URI, ricevuta attraverso un'operazione di GET, viene aggiornata con il comando PUT, e così via. In questo modo, REST è simile allo stile letterale dei servizi di SOAP.


Screen Scraping

Come già detto prima, l'indisponibilità delle API da parte dei fornitori di contenuti spesso costringe gli sviluppatori di mashup a ricorrere allo screen scraping per ricevere le informazioni che intendono combinare.

Lo scraping è il processo che usa degli strumenti software per analizzare contenuto originalmente scritto per essere letto da umani con la finalità di estrarne strutture di dati semantici che rappresentano queste informazioni di modo tale da utilizzarle e manipolarle in maniera pragmatica.

Molti utilissimi mashup sfruttano lo screen scraping per acquisire dati, specialmente per ricevere quelli del settore pubblico.

Per esempio, un mapping mashup di beni immobili può unire i dati delle case in vendita o in affitto con i dati "strappati" dal database del catasto. Un altro progetto mashup che preleva forzosamente i dati è XMLTV, una collezione di strumenti che aggrega le programmazioni televisive di tutti i canali mondiali.

Lo screen scraping è spesso considerato una soluzione ben poco elegante e per buone ragioni.

Ha due inconvenienti considerevoli.

1) In primo luogo, a differenza delle API, non c'è uno standard contrattuale che lega chi fornisce il contenuto e chi permette agli utenti di visualizzarlo. Gli scraper sono obbligati a studiare la fonte da cui devono prendere i contenuti e sperare che il provider abbia degli standard rigorosi e durevoli. I siti web hanno la tendenza ad essere aggiornati di frequente per essere sempre accattivanti, il che può rappresentare davvero un problema per gli scraper.

2) La seconda problematica è la mancanza di toolkit software sofisticati e riutilizzabili per screen-scraping, in gergo dette scrAPI. La morte di queste API e toolkit è soprattutto dovuta al fatto che ogni tool specifico di scraping deve soddisfare necessità particolari. Ciò significa uno sviluppo veramente frustrante dato che chi concepisce lo scraper deve forzare la ricezione del contenuto sfruttando il reverse-engineering, sviluppando modelli di dati, analisi ed aggregando dati grezzi dal sito che li fornisce.


RDF e Web Semantico

L'aspetto non elegante dello screen scraping è direttamente collegabile al fatto che il contenuto creato per essere consumato da umani non va bene per essere consumato automaticamente dalle macchine.

Introduciamo quindi il concetto di Web Semantico, che si basa sulla consapevolezza che il Web esistente possa essere implementato dall'essere solo qualcosa di utile solo per la fruizione umana, diventando fruibile anche per il ragionamento artificiale. Nel contesto del Web Semantico, il termine dell'informazione è differente dai dati; i dati divengono l'informazione quando contengono anche un significato (ossia quando è comprensibile anche dai calcolatori).

L'obbiettivo del Semantic Web è di creare un'infrastruttura Web che incorpori ne dati anche dei metadati in grado di dargli significato, rendendoli utili per l'automazione, l'integrazione, il riutilizzo e l'intelligenza artificiale.

Le specifiche della famiglia W3C conosciute come Resource Description Framework (RDF) hanno proprio questo scopo, di modo tale da fornire metodologie per stabilire una struttura sintattica in grado di descrivere i dati.

XML in se stesso non è sufficiente; è troppo arbitrario e lo stesso brandello di dati può essere descritto in vari modi. Lo Schema RDF aggiunge al RDF la capacità di codificare concetti di modo tale da renderli leggibili dalle macchine. Una volta che degli oggetti di dati possono essere descritti in dei modelli di dati, il RDF fornisce la costruzione delle relazioni fra i data object attraverso uno statement triplo formato da soggetto-predicato-oggetto ("il soggetto S ha una relazione R con l'oggetto O").

La combinazione di modelli di dati e grafici di relazioni permette la creazione delle ontologie, che sono strutture gerarchiche di conoscenza che possono essere ricercate e sottoposte a ragionamento formale.

Per esempio, potresti definire un modello nel quale un "tipo-carnivoro" è una sottoclasse del "tipo-animale" con il vincolo che "mangia" altri "tipo-animale", e creare due istanze: una fatta dei dati sui ghepardi e sugli orsi polari e i loro habitat, e un altro sulle gazzelle e i pinguini e i relativi habitat.

L'engine di inferenza potrebbe allora "mashare" queste due istanze modello e far comprendere che i ghepardi possono cacciare delle gazzelle ma non dei pinguini.

I dati in formato RDF vengono adattati con sempre maggior rapidità negli ambiti più disparati, incluse le applicazioni di social networking (come FOAF -- Friend of a Friend) e di sindacazione (vedi RSS, di cui ti parlerò a breve).

In aggiunta, la tecnologia software RDF e i suoi componenti stanno iniziando a raggiungere un buon grado di maturità, specialmente nell'area dei linguaggi di query RDF (come RDQL e SPARQL), nei framework programmatici nonché nelle engine di inferenza (come Jena e Redland).


RSS e ATOM

RSS è un formato di sindacazione della famiglia XML-based. In questo caso, la sindacazione implica che un sito web che vuole distribuire contenuto crea un documento RSS e invia il documento attraverso un RSS publisher.

Un client abilitato RSS può controllare il feed dell'editore publisher per sapere se c'è nuovo contenuto e decidere di agire di conseguenza.

La tecnologia RSS è stata adottata per sindacare contenuto di vario tipo, da articoli e titoli di notizie, ai cambiamenti nei log dei checkin CVS o nelle pagine wiki, aggiornamenti di progetti, ed anche dati audiovisuali come programmi radio. La Versione 1.0 era basata su RDF, ma la più recente, la versione 2.0, no.

Atom è un protocollo di sindacazione simile, ma più recente. E' stato proposto come standard alla Internet Engineering Task Force (IETF) e cerca di mantenere metadati migliori rispetto alla tecnologia RSS, fornendo una documentazione migliore e più rigorosa, e che incorpora la nozione di costrutto per la rappresentazione comune dei dati.

Queste tecnologie di sindacazione sono incredibili per i mashup che aggregano contenuto basato su eventi o che deve essere aggiornato, come news o aggregatori di blog.

Fine della prima parte

Versione italiana a cura di Martinelli Mirco - per un feedback editoriale scrivi a Robin.Good[at]masternewmedia.org

Nella seconda parte, che pubblicheremo prossimamente: Le Sfide Sociali E Tecniche Poste Dai Mashup.




Risorse ed Approfondimenti

Dove Imparare


Dove trovare prodotti e tecnologie


Discuti

Come puoi vedere queste risorse sono disponibili solo in lingua inglese; sarei molto felice di aggiornare questo articolo con i tuoi suggerimenti e commenti sulle risorse equivalenti presenti sul web nella nostra lingua.



L'Autore

Duane Merrill sviluppa da oltre 5 anni piattaforme per l'integrazione distribuita dei dati e per il grid computing. Ha contribuito al Legion Project dell'Università della Virginia ed è uno sviluppatore centrale presso la Avaki Corporation dei prodotti di questa azienda nel campo dell'integrazione delle informazioni enterprise distribuite. Attualmente sta ottenendo un dottorato in Computer Science all'Università della Virginia.

Questo articolo è stato pubblicato nel 2006; i diritti d'autore appartengono a Backstop Media ed è stato ripubblicato dietro autorizzazione.

 
 
 
 
 
Commenti    
blog comments powered by Disqus

 

 

 

 

7869
 




 

I Toolkit di Robin


 









 

 

 

 

  • RSS Feed

          Mail
    Nome:
    Email:
     



     
     

     

    Web Analytics