Introduzione ai cloud based service con Windows Live Services

di Daniele Bochicchio, in Windows Live Services,

Windows Live Services è un insieme di servizi, per la maggior parte dei casi gratuiti, forniti da Microsoft perchè possano essere utilizzati nella normali applicazioni, intengrando funzionalità anche molte complesse in maniera tutto sommato abbastanza semplice, andando a formare quello che è conosciuto come la Windows Live Platform.

La loro natura di servizi basati sul web li rende ideali in questo genere di applicazioni, offrendo un supporto ad una miriade di funzionalità utili e già pronte, facilmente implementabili e molto "web 2.0".

In questo articolo e nei seguenti verranno analizzati i servizi più interessanti per gli sviluppatori web, con esempi e scenari di integrazione.
Va da sè che ci sono altri vendor che offrono servizi simili, ma l'idea alla base di questo e di altri articoli è quello di darvi un'idea di ciò che viene offerto da questa piattaforma, senza nulla togliere a soluzioni concorrenti o alternative, semplicemente perchè all'interno del mercato queste soluzioni si integrano in maniera pressochè perfetta con il .NET Framework ed ASP.NET in particolare.

Prima di continuare, però, è necessario comprendere gli obiettivi di questa piattaforma e capire in quale puzzle si incastrano i vari servizi, così da poterli sfruttare in maniera ragionata all'interno delle nostre applicazioni.

Il concetto di cloud based service

Negli ultimi anni il concetto di cloud based service si è sempre più diffuso, grazie alla vasta disponibilità di banda che ormai Internet mette a disposizione. Se qualche anno fa il solo pensiero di dipendere da un servizio che non fosse nella stessa rete del proprio sito sarebbe bastato a non far dormire sonni tranquilli, ormai la velocità e la maturità dei prodotti a disposizione fa sì che quasi tutte le applicazioni ne facciano uso.

L'idea scatenante è stata senza dubbio la diffusione massiccia di sistemi di syndication basati su XML, cioè i ben conosciuti feed RSS, che presto sono stati integrati all'interno dei siti esistenti per dare maggiore dinamicità. In passato queste tecniche venivano scartate soprattutto per la mancanza di uno standard, ma è chiaro che anche la disponibilità di banda a prezzi più bassi e velocità decisamente maggiore ha fatto la sua parte in quanto a diffusione.

Quando si sfruttano servizi esterni disponibili su Internet, si tende a parlare di applicazioni cloud based, cioè basate su una "nuvola". Il perchè della scelta di questo termine sta nella possibilità di ignorare esattamente come sono fatti, su quale tecnologia si basano e quanto questa è complessa, per concentrarsi sulla loro implementazione, che è solitamente molto semplice.

Un tipico esempio in questo senso è l'uso delle mappe. Costruire un sistema cartografico non è affatto banale, richiede molto ma molta consocenza dell'ambito in cui si va ad operare, un po' di nozioni matematiche ed un gran bel numero di server in grado di processare le richieste e produrre le risposte. In più manipolare informazioni cartografiche è molto oneroso in termini di risorse necessarie.

Utilizzando un cloud service come VirtualEarth, il servizio che all'interno dell'offerta di servizi di Windows Live fornisce l'infrastruttura di utilizzo delle mappe, è possibile integrare all'interno della propria applicazione il supporto per queste funzionalità in un minuto circa, almeno nell'implementazione più semplice.

Quello che è senza dubbio interessante, in tutto questo, è che la maggior parte dei servizi cloud based sono gratuiti, anche se ce ne sono diversi a pagamento, che vanno dall'uso di funzionalità particolari, come la fornitura di indici di borsa, fino anche alla fornitura di storage, anche su database.

Il concetto, per noi sviluppatori, è che possiamo finalmente implementare alcune funzionalità che prima ci avrebbero richiesto mesi e mesi di sviluppo in pochissimo tempo, appoggiandoci a risorse esterne, senza necessità di preoccuparci di bug fixing di questi sistemi, della parte di gestione tecnica o delle evoluzioni, perchè a farlo è chi produce i servizi. E se il produttore non è il primo che capita, ma Microsoft, siamo certi che la loro disponibilità sarà più che duratura nel tempo.

In più, generalmente questi servizi sono forniti in modalità REST (Representational State Transfer), cioè attraverso semplici richieste HTTP, che in genere producono XML o vengono sfruttate direttamente attraverso delle API Javascript.

Un po' di terminologia: S+S e SaaS

C'è tutto un insieme di termini che è necessario affrontare per inquadrare al meglio il fenomeno dei cloud based service.

Si tratta di acronimi abbastanza nuovi e pertanto molto trendy, che probabilmente avrete già notato in qualche lettura e che probabilmente vi siete domandati cosa potessero significare: tutto sommato sono di facile comprensione.

Tendenzialmente sentirete parlare di Software + Service (S+S) o di Software As A Service (SaaS), a seconda del tipo di fruizione e del meccanismo di business che c'è dietro, per indicare due modelli di offerta di servizi cloud based.

Tendenzialmente al primo gruppo appartengono quei servizi che sono offerti via Internet (gratis o a pagamento) e consentono di sfruttare una piattaforma gestita e sviluppata da terzi parti, integrabile nelle nostre applicazioni attraverso delle semplici API, che consentono l'abbattimento delle conoscenze necessarie allo sfruttamento di una data funzionalità e quindi dei relativi costi di gestione.

Con SaaS invece la possibilità principale è quella di utilizzare il software in abbonamento o pay per use, con un conseguente abbattimento dei costi e delle conoscenze necessarie, perchè il sistema resta in gestione e sviluppo ad una terze parta, con meno possibilità di integrazione da parte di chi lo usa, perchè generalmente il sistema è pensato per una certa funzionalità e senza una spinta decisiva verso l'integrazione.

Nel cosiddetto Web 2.0, quello che viene comunemente indicato con la wave AJAX+Social Networking, la fa da padrone, per le sue caratteristiche, il modello S+S, che consente di creare proprie applicazioni che facciano da integrazione a componenti esterni, che sono comunemente chiamati mashup.

Quel fenomeno chiamato Web 2.0 è contraddistinto proprio dal forte uso di mashup, fatto di social networking, social API (ne sono esempi Facebook, Linkedin e Twitter), con in testa più il mondo consumer, dell'utente finale, che quello enterprise, tipico delle aziende.

D'altra parte per il mondo enterprise è il momento di SOA (Service Oriented Architecture), che implica l'adozione di architetture orientate ai servizi, con la possibilità di integrazione con funzionalità esistenti sfruttando API ed un'apertura verso l'esterno grazie alla presenza di standard certi.

L'unione dei principi e delle esperienze alla base sia di SOA che del Web 2.0 è certamente il punto cardine dell'idea che sta dietro S+S, che ben si presta a soddisfare le esigenze sia del mondo consumer, sia di quello enterprise.

Il .NET Framework 3.5, tanto per parlare di cose più concrete, prevede diverse funzionalità che vanno in questa direzione, come il supporto per REST, la syndication ed i servizi enterprise, attraverso WCF (Windows Communication Foundation).

I mashup sono generalmente implementati attraverso del codice Javascript a cui vengono passati dei parametri via URL, piuttosto che da un iframe istruito a dovere. Quello che resta centrale, in questo ambito, è l'estrema semplicità implementativa che rimane alla base di soluzioni basate su questo approccio.

In estrema sintesi, è un'evoluzione dell'interscambio di informazioni in una chiave più semplice, con l'abbattimento delle barriere tecnologiche necessarie allo sfruttamento di una particolare tecnologia all'interno di soluzioni esterne, senza necessità di capire come funzioni internamente.

3 pagine in totale: 1 2 3
Contenuti dell'articolo

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

Nessuna risorsa collegata