Mashups: Cosa Sono? Aspetti Tecnici E Sociali - Parte 2
I mashup sono davvero insidiosi a livello tecnico ed ecco spiegato perchè molti appasionati di tecnologia se ne occupano. La sfida nel trovare nuove soluzioni a "vecchi" problemi tecnici, "inventando" al contempo nuovi modi per mixare e combinare risorse e strumenti, è senza dubbio un elemento di motivazione non da poco per qualsiasi sviluppatore sulla faccia della terra.
Photo mashup di Robin e Nico Good - photo credit originali - turntable / Dolphin Music - pizza / Palatino join-us
In questa seconda parte (qui c'è la prima) di questa guida ai Mashup di Duane Merrill, ci focalizzeremo sulle "Sfide Tecniche" e gli "Aspetti Sociali" di questo ambiente estremamente dinamico ed in forte evoluzione.
Ti verrà descritto cosa cercare, ed inoltre saranno esaminate e spiegate in maniera semplice, ma comunque tecnicamente competente, le tipiche sfide tecniche e gli ovvi colli di bottiglia. Ottime considerazioni relative all'accessibilità, SEO, sicurezza e altre problematiche sono sempre sottovalutate durante le fasi iniziali di qualsiasi progetto.
Gli aspetti sociali sono degni di altrettanta attenzione nella creazione di mashup online, e in particolare è importante il tradeoff fra la protezione della prorietà intellettuale e la privacy contro il fair-use e libero flusso di informazioni.
Come sempre, qualora vi siano parole o terminologie con cui non hai familiarità, ti fornirò dei link di modo tale da non farti brancolare nel buio affrontando questa lettura.
Quindi non scoraggiarti e segui con me quest'analisi davvero illuminata di Duane Merrill:
Introduzione di Robin Good
Photo credit: Sun - The Big Mashup
Mashup: La New Generation Di Web App - Parte 2
Sfide Tecniche
Mashup matrix - Photo credit: Vincent Thomé's blog
Come ogni altro campo di integrazione dei dati, lo sviluppo dei mashup è pieno di sfide tecniche che devono essere affrontate, specialmente quando un mashup diventa più ricco di funzionalità e di caratteristiche.
Questa sezione descrive queste sfide, alcune delle quali possono essere risolte totalmente o parzialmente, mentre altre rimangono insolute.
Le Sfide Relative All'Integrazione Dei Dati: Significato Semantico e Qualità Dei Dati
Esami qualitativi suggeriscono che il problema numero uno per l'enterprise IT riguarda l'integrazione dei dati all'interno dell'organizzazione virtuale enterprise. (In tale contesto, utilizzo il termine organizzazione virtuale per indicare un insieme di business unit con un ordine assimilabile ad una federazione, ognuna delle quali contenuta nel relativo campo amministrativo.)
Come molti manager IT enterprise che si trovano a dover integrare fonti di legacy data (per esempio, creare una corporate dashboard che rifletta le correnti condizioni di business), gli sviluppatori di mashup debbono affrontare sfide simili nell'estrapolare significati semantici condivisi tra insiemi di dati eterogenei. Pertanto, giusto per darti un'idea di ciò che gli sviluppatori di mashup hanno in serbo, basta immaginare quali sfide debbano affrontare le aziende IT.
Per esempio, sistemi di conversione di modelli di dati che debbono essere progettati.
Quando trasformi dati nelle forme comuni, devono sempre essere fatte assunzioni ragionevoli qualora il mapping a tua disposizione non sia completo (per esempio, una fonte di dati potrebbe avere un modello nel quale per descrivere un indirizzo è valorizzato anche il campo della nazione, mentre in un altro non è valorizzato). Come se già ciò non rappresentasse una sfida, viene resa ancor più difficile dal fatto che gli sviluppatori di mashup potrebbero non essere esperti nel campo dei modelli delle fonti di dati che vogliono mashare in quanto i dati potrebbero essere di terzi; quindi queste assunzioni ragionevoli potrebbero essere non così intuitive o chiare.
Oltre a dati mancanti o mapping incompleti, i produttori di mashup potrebbero scoprire che i dati che vogliono integrare non siano adeguati per i computer; quindi avranno bisogno di essere trattarli opportunamente.
Per esempio, rinforzare delle regole per arrestare dei record di dati potrebbe essere inefficace, utilizzando abbreviazioni comuni per i nomi (come "pz d mrc" in un record e "Piazza Del Mercato" nell'altro), rendendo l'elaborazione automatica sull'uguaglianza altrettanto difficoltosa, perfino facendo uso di una buona dose di euristica.
Le tecnologie di modellazione semantica, come i RDF, possono aiutare a facilitare la risoluzione dell'elaborazione automatica in presenza di insiemi di dati dissimili, dato che tale funzionalità è già inclusa nel data-store.
Le fonti di legacy data probabilmente richiedono maggiore sforzo umano in termini di analisi e di bonifica dei dati, prima di poterle sfruttare con le tecnologie di modellazione semantica.
Gli sviluppatori di mashup potrebbero dover affrontare anche varie problematiche che gli IT manager dell'integrazione potrebbero non fronteggiare, una delle quali è l'inquinamento dei dati.
Come parte del design delle loro applicazioni, molti mashup richiedono l'input degli utenti che li usano. Come evidenziato nel campo applicativo dei wiki, si tratta di un'arma a doppio taglio dato che:
a) può essere abbastanza potente poichè permette un libero contributo e la miglior razza di evoluzione dei dati,
b) può essere soggetta ad un inserimento dei dati inconsistente, non corretto, o volutamente fuorviante.
Quest'ultima ipotesi può far nascere dubbi sull'affidabilità dei dati, il che può portare a compromettere il valore fornito dai mashup.
Un'altra serie di problematiche concernenti l'integrazione che gli sviluppatori devono affrontare sorge quando debbono essere utilizzate tecniche di screen scraping per acquisire i dati.
Come già ho avuto modo di dire nella prima parte del mio report, questa tipologia di acquisizione dati richiede sforzi non indifferenti di reverse-engineering. Anche nei casi migliori, quando si riescono a creare questi modelli e strumenti che funzionano, si è sempre alla mercè di come il sito fonte dei dati presenta i suoi contenuti (se non nei casi in cui proprio viene abbandonato o superato) per evitare questo processo di integrazione; ciò può provocare il fallimento nel funzionamento del mashup.
Gli Ingredienti Delle Sfide
Il modello Ajax per lo sviluppo Web riesce a fornire una user experience più ricca e fluida, visto che non è necessario ogni volta ricaricare tutta una pagina web, ma pone comunque alcune difficoltà.
Secondo i principi stessi su cui è basato, Ajax richiede che l'utilizzo delle capacità di scripting lato client del browser sia abbinato al suo DOM per raggiungere un metodo di distribuzione dei dati che non è stato completamente previsto da che ha progettato il designer del browser. (Forse questa natura assimilabile all'hacking conferisce ad Ajax ancor più appeal.) Comunque, queste applicazioni basate su Ajax sono soggette alle stesse problematiche di compatibilità a livello browser che hanno afflitto i web designer da quando Microsoft ha creato Internet Explorer.
Per esempio, le engine Ajax fanno uso dell'oggetto XMLHttpRequest per scambiare dati in modalità asincrona con i server remoti. In Internet Explorer 6, questo oggetto è implementato tramite ActiveX piuttosto che utilizzare JavaScript nativo, il che richiede che ActiveX sia attivato.
Un requisito ancor più fondamentale vuole che Ajax richieda JavaScript attivo nel browser dell'utente. Ciò potrebbe essere un ragionevole assunto per la maggior parte della popolazione, ma vi sono alcuni utenti che usano browser o strumenti automatici che non supportano Java oppure lo hanno disattivato. Fra questi tipi di strumenti ci sono anche i robot, gli spider, e i Web crawler che aggregano informazioni per i motori di ricerca Internet e intranet. Senza l'opportuna progettazione in questo senso, i mashup basati su Ajax potrebbero soffrire da un lato di una limitata base di utenti e dall'altro di poca visibilità agli occhi dei motori di ricerca.
L'uso di JavaScript per aggiornare in maniera asincrona i contenuti delle pagine potrebbe comportare anche problematiche a livello di interfaccia utente.
A causa del fatto che al contenuto non corrisponde più una URL specifica nella barra degli indirizzi dell'utente, gli utenti potrebbero sorprendersi se vi sono cose che non funzionano normalmente, vedi il pulsante INDIETRO del loro browser o l'impossibilità di aggiungere una determinata pagina tra i PREFERITI. E, anche se Ajax può ridurre l'attesa richiedendo aggiornamenti dei contenuti molto velocemente, un design cattivo potrebbe limitare la user experience, come quando la granularità degli aggiornamenti è abbastanza inferiore rispetto alla quantità e un sovraccarico di aggiornamenti va a saturare le risorse disponibili.
Inoltre, bisogna continuare a tenere viva l'attenzione dell'utente (per esempio fornendogli un feedback visuale come una barra di avanzamento) mentre l'interfaccia viene caricata o il contenuto aggiornato.
Come in qualsiasi altra applicazione distribuita e che sfrutta più domini, gli sviluppatori di mashup e i fornitori di contenuti debbono anche affrontare tematiche relative alla sicurezza.
La nozione di identità può dimostrare di essere un aspetto spinoso, dato che il Web tradizionale è principalmente costruito per un accesso asincrono.
Single-signon è una funzionalità desiderabile, ma c'è una moltitudine di tecnologie in competizione (che spaziano da Microsoft Passport a Liberty Alliance), creando così dei namespace diversi per identificare le persone che dovranno essere integrati.
I content provider probabilmente impiegheranno degli schemi di autenticazione ed autorizzazione (che richiedono la nozione di identità sicura e attributi identificabili in maniera sicura) nelle loro API per fare in modo che i loro modelli di business includano sottoscrizioni a pagamento o sensibili ai dati.
E' anche possibile che i dati sensibili richiedano la riservatezza (vale a dire che dovranno essere criptati), e dovrai fare moltissima attenzione quando li mischierai con altre fonti per non metterli a rischio.
L'identità diventerà cruciale per le verifiche contabili e regolamentari. In aggiunta, dato che l'integrazione dei dati avviene sia sul lato server sia sul client, fornire delle credenziali dell'identità dell'utente al servizio di mashup potrebbe diventare un requisito essenziale.
Aspetti Sociali
In aggiunta alle sfide tecniche appena descritte, le problematiche sociali iniziano (o inizieranno) a sorgere non appena i mashup diverranno più popolari.
Una delle principali problematiche che dovranno affrontare gli sviluppatori di mashup è il tradeoff fra la protezione della prorietà intellettuale e la privacy contro il fair-use e libero flusso di informazioni.
Non solo i content provider inconsapevoli (bersaglio di screen scraping), ma anche i content provider che rendono pubbliche le loro API per facilitare l'estrapolazione dei dati potrebbero vedere che i loro contenuti sono utilizzati in una maniera che non approvano.
(Per maggiori informazioni sulla regolamentazione ed aggregazione Web, consulta a fine articolo la sezione Approfondimenti e Risorse.)
Il genere delle applicazioni mashup Web è ancora nella sua fase primordiale, con sviluppatori hobbysti che producono vari mashup nel loro tempo libero.
Tali sviluppatori potrebbero non essere consapevoli (o preoccupati) delle tematiche relative alla sicurezza. Inoltre, i content provider stanno solo iniziando a vedere il valore dell'aver reso pubbliche le API affinché i loro contenuti siano accessibili dagli elaboratori di dati, e molti non considerano questo un core business su cui focalizzarsi. Questa combinazione potrebbe produrre software di scarsa qualità, dato che fattori prioritari come assicurare una qualità e un testing opportuni non debbono essere messe dietro all'innovazione e al proof-of-concept.
La community intera deve lavorare assieme per assemblare degli standard aperti e dei toolkit riutilizzabili in modo da facilitare dei processi di sviluppo software maturi.
Prima che i mashup possano passare dall'essere semplici giocattoli a sofisticate applicazioni, molto lavoro dovrà essere fatto nel costruire robusti standard, nonché protocolli, modelli e toolkit.
Affinché questo accada, le principali industrie leader dello sviluppo software, i content provider, e gli imprenditori dovranno comprendere il valore dei mashup e trovare di conseguenza dei modelli di business percorribili.
I fornitori di API dovranno determinare se far pagare per i loro contenuti o meno, e anche come (per esempio, tramite abbonamenti o per quantità di usi del servizio). Forse fornendo vari livelli di qualità di servizio.
Alcuni marketplace provider, come eBay o Amazon, potrebbero scoprire che il libero uso delle loro API incrementerebbe i movimenti dei prodotti.
Gli sviluppatori di mashup potrebbero sfruttare un modello di revenue basato sugli annunci pubblicitari, o forse costruire dei mashup interessanti con l'obbiettivo di venderli.
Fine della Parte 2
Parte 1 - Mashups: Cosa Sono - Generi E Tecnologie Utilizzate - Parte 1
Versione italiana a cura di Martinelli Mirco - per un feedback editoriale scrivi a Robin.Good[at]masternewmedia.org
Purtroppo le risorse qui sotto 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.
Risorse ed Approfondimenti
Dove Imparare
- Programmable Web: Rimani costantemente aggiornato sugli ultimi mashup e le nuove API Web 2.0.
- Considererazioni su Ajax, Parte 1: Facciamo chiarezza(Chris Laffra, developerWorks, Maggio 2006): Considera questo insieme di spunti di riflessione come un punto di riferimento per ogni programmatore che voglia sviluppare il proprio sito in Ajax.
- La pagina Ajax: Visita questa pagina sponsorizzata dal Mozilla Development Center
- L'Interazione Fra Web Aggregation e Regolamentazione (LawTech): Leggi con attenzione questa ottima recensione sulla Web aggregation e regolazione (PDF file).
- DB2 e open source: Inserisciti nella mappa con Google Maps API, DB2/Informix, e PHP su Linux (Marty Lurie e Aron Y. Lurie, developerWorks, Marzo 2006): Creare una mappa facile da utilizzare contenente i tuoi dati.
- Sviluppare Web service application con le Google API (Nicholas Chase, developerWorks, Maggio 2002): Impara come incorporare i risultati delle ricerche su Google ed altre informazioni nelle tue applicazioni Java in questo tutorial.
- I più recenti mashup - Servizi Web e il Web Semantico serie di tutorial: Sfrutta tutti i tutorial di questa serie e crea un mashup personalizzato.
- La Seconda Generazione Di Web Service: Leggi questo articolo su XML.com per introdurti all'architettura REST.
- REST e il mondo Real World: Approfondisci la tua conoscenza di REST su XML.com.
- Il sito dell'Attività del W3C su Web Semantico: Approfondisci il Web Semantic.
- L'Attività RDF del W3C: Visita il sito per avere le ultime news sul RDF.
- Introduzione a Jena: Utilizza i modelli RDF nella tua applicazione Java con il Framework Jena Semantic Web (Philip McCarthy, developerWorks, Giugno 2004): Scopri come utilizzare il Jena Semantic Web Toolkit per sfruttar i modelli di dati RDF nella tua applicazioni Java.
- Cos'è la tecnologia RSS?: Da XML.com, impara questo formato di sindacazione per news, contenuti e blog personali.
- Panoramica su Atom: Approfondisci su AtomEnabled.org i formati per sindacare metadati e contenuti Web XML-based e sul protocollo a livello di applicazione
- IBM XML 1.1 certificazione: Scopri come diventare uno sviluppatore XML 1.1 certificato da IBM.
- XML: Naviga i contenuti prodotti dagli sviluppatori in merito a XML per trovare articoli tecnici, suggerimenti, tutorial, standard e IBM Redbook.
- developerWorks appuntamenti tecnici e webcast: Mantieniti costantemente aggiornato su queste tecnologie.
br>
Dove trovare prodotti e tecnologie
- W3C SOAP Specification: Scarica l'ultima versione.
- Scraping con stile: scrAPI toolkit per Ruby: Prova questa tecnologia per i tuoi mashup.
br>
Discuti
- Forum di discussione su XML: Partecipa a uno dei tanti forum su XML.
br>
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.
blog comments powered by Disqus