Cloud Computing SaaS, Software as a Service

SaaS, acronimo di Software as a Service, rappresenta il piu alto tra i livelli di cloud messi a disposizione da un provider, e su cui il fornitore esercita il massimo controllo in termini di configurazione e personalizzazione della soluzione.

Proseguiamo con le diverse tipologie di cloud introdotte nella nostra guida, ed è ora di introdurre il cloud SaaS, acronimo di Software as a Service, che rappresenta il più alto tra i livelli di cloud messi a disposizione da un provider, e su cui il provider esercita il massimo controllo in termini di configurazione e personalizzazione della soluzione. Riprendendo uno schema già proposto e mostrato in figura 1, è possibile vedere quali sono gli strati applicativi di cui è responsabile il provider di un servizio di cloud SaaS.

 

Cloud_computing 1

 

Il modello SaaS è identificato anche come un modello di software on demand distribuito come servizio in hosting; si tratta di un modello di cloud in cui all’utente viene messo a disposizione direttamente un ambiente completo con l’applicazione da utilizzare, sollevandolo dalla responsabilità e dall’onore dell’installazione dell’applicazione, della sua configurazione, e della configurazione del sistema host che eseguirà l’applicazione.

 

CloudComputing2

Come nasce l’idea di un’applicazione come servizio

In realtà il concetto alla base del SaaS è addirittura antecedente a quello di cloud. Il modello ASP ha per primo introdotto il concetto di fornire il software come servizio (SaaS), pagato in modalità flat o anche a consumo. Caratteristica tipica del modello ASP è la fornitura ad ogni organizzazione cliente di uno o più server dedicati, sui quali vengono eseguiti applicazioni e servizi, dedicati, in modalità multi-istanza; in questo modo ogni utente ha la propria istanza dedicata dell’applicazione, e spesso personalizzata ad hoc. Prima ancora, si può attribuire a John Gage, 21-esimo impiegato di Sun Microsystems, la frase “la rete è il computer”, che esprime sinteticamente l’idea che Sun ha sempre avuto del pc, e che ha cercato di condividere come obiettivo della propria mission, ovvero un computer che non avesse software memorizzato in locale, se non il bios o il codice di avvio, e che scaricasse tutto quello che serve all’elaborazione, dal sistema operativo, ai driver e le applicazioni dalla rete.

 

E così il servizio SaaS è l’evoluzione di questo modello e idea, che senza ricorrere all’installazione e gestione di un software, consente l’accesso in modo semplice alle applicazioni via Internet, attraverso web browser o da un thin client, vale a dire un client con ridotte capacità di elaborazione e che dipende esclusivamente dal un server per l’elaborazione dei dati (l’idea profetica di Sun).

L’accesso alle applicazioni SaaS con un thin client

L’utilità di usare un thin client risiede nel fatto che la potenza di calcolo non dovrà infatti essere una caratteristica prerogativa del client che accede alla cloud, in quanto tutti i calcoli, le elaborazioni in generale e lo storage avverrà sulla cloud stessa. Volendo immaginare uno scenario “estremo”,  il thin client potrebbe essere un semplice network computer, senza disco rigido, con connettività di rete e che si limita a fungere da interfaccia tra l’utente e la cloud per inserire i dati, le richieste di elaborazione, e presentare i risultati all’utente (una versione più potente ed evoluta dei terminali “stupidi” collegati ai mainframe che spopolavano all’inizio degli anni 80). Questa scelta tecnologica rappresenta ovviamente un vantaggio in termini di costo e di manutenzione per l’azienda, perché un hardware così semplice è più economico di un client “tradizionale” e richiede meno manutenzione ed upgrade per soddisfare le richieste di software sempre più “affamati” di potenza.

 

Da quanto detto è evidente che SaaS è un modello di distribuzione del software, che può essere applicato anche (e non solo!) a strutture cloud, dando vita al cloud SaaS, ma è necessario evidenziare e sottolineare come cloud e SaaS non siano concetti necessariamente legati, coesistono, ma esistono anche separati.

 

Tanto il cloud quanto l’SaaS trasformano l’IT facendola evolvere verso il concetto di utility, il primo con riferimento allo storage ed alle risorse di calcolo, il secondo riferito alle applicazioni. Un’applicazione SaaS è fornita in modalità cloud, se ne soddisfa i princìpi già descritti nei precedenti articoli, altrimenti viene  fornita in modalità non cloud. Pertanto nel primo caso, il SaaS può essere considerato come uno dei modelli di business del cloud computing ed è logico che esistono quindi, in questo caso, strette relazioni fra SaaS e cloud computing, ma quando non sono rispettati i principi illustrati, sono due cose distinte e separate.

Principi di architettura SaaS

Generalmente, la struttura di un’applicazione software è organizzata secondo una struttura a layer, per soddisfare anche un principio di suddivisione dei compiti e ben precisi pattern architetturali. I layer tipici dell’architettura di un’applicazione SaaS, fanno riferimento ai servizi di controllo e di business ai quali si accede attraverso i servizi di presentazione e direttamente dalle applicazioni client non web.

 

In questi layer sono implementate delle politiche di sicurezza che determinano il modo in cui possono comunicare tra di loro. Ci sono due elementi nuovi che caratterizzano l’architettura di un’applicazione SaaS rispetto alle applicazioni tradizioni:

 

    • il layer dei servizi di configurazione;

 

    • il layer dei servizi di misurazione;

 

Il layer dei servizi di configurazione fa riferimento ad un insieme di metadati necessari alla gestione della configurazione dei diversi tenant (clienti dell’applicazione), che utilizzano l’applicazione. Inoltre questo layer è utilizzato per personalizzare l’applicazione; il layer dei servizi di misurazione raccoglie le misurazioni riguardanti il consumo effettivo delle risorse da parte dei tenant. La rilevazione di questi dati è utilizzata ai fini della fatturazione per contabilizzare l’uso delle risorse ai tenant.

Caratteristiche di un’applicazione SaaS

L’architettura di un’applicazione Saas deve rispettare alcune caratteristiche: deve essere scalabile,  avere un’efficienza multi-tenant e deve essere configurabile. La scalabilità è una caratteristica che consente all’applicazione di far fronte ad un numero variabile di richieste, che può crescere e quindi deve garantire che non ci sia un impatto negativo sulla qualità del servizio fornito ed al tempo stesso di potersi “ridimensionare” in caso di una diminuzione del numero di richieste per rilasciare le risorse inutilizzate, sia per allocarle ad altre applicazioni, sia per un risparmio energetico dei server.

 

A supporto alla scalabilità l’applicazione viene installata su più server, in alcuni casi, una seconda versione dell’applicazione potrebbe essere settata per offrire ad un gruppo selezionato di clienti l’accesso a versioni pre-release delle applicazioni per scopi di testing, in contrasto con il modello di software tradizionale che vede più copie fisiche dello stesso software, ciascuno potenzialmente di una versione diversa, con una configurazione diversa e personalizzata, in definitiva un’installazione per ogni cliente.

 

La configurabilità permette la personalizzazione dell’applicazione, dal punto di vista in base a specifiche esigenze delle organizzazioni clienti, questo avviene con metadati che definiscono il contesto di riferimento dell’applicazione.

 

Il modello di architettura multi-tenant è invece un concetto di applicazione che prevede di avere un’applicazione che si comporta come se fosse totalmente dedicata ad un utente quando in realtà ne serve molti in parallelo utilizzando lo stesso codice e dando ad ogni utente la sensazione di essere l’unico ad interagire con l’applicazione, quindi nessuna sovrapposizione di dati, ne downgrade delle prestazioni.

Preservare i vantaggi del cloud quando l’applicazione è di tipo SaaS

I vantaggi tipici della scelta di una soluzione cloud rispetto all’acquisto di una soluzione proprietaria, già introdotti nei precedenti articoli, devono continuare a sussistere nel caso di un servizio SaaS, ed in particolare facciamo riferimento ai punti salienti elencati di seguito:

 

    • tempo transitorio per lo start-up su un’applicazione ridotto, ed immediata operatività per gli utenti

 

    • ambiente di esecuzione costantemente aggiornato e monitorato per rischi di intrusione o malware;

 

    • riduzione delle spese di outsourcing e di manutenzione software dell’infrastruttura IT, la riduzione dei costi di supporto hardware, azzeramento dei costi iniziali di investimento, legati all’implementazione di soluzioni in-house e che solitamente sono molto elevati, e spesso legati maggiormente alle licenze ed al supporto tecnico;

 

    • il totale dei costi deve essere prevedibile in quanto terrà conto solo delle spese effettivamente necessarie, come il contratto di fornitura del servizio, abbattendo il rischio di sorprese o di costi imprevisti per aggiornamento o manutenzione straordinaria;

 

    • riduzione del rischio di downgrade del servizio a seguito di malfunzionamenti e conseguente necessità di supporto a carico dell’utente;

 

Un esempio di implementazione libera

Navigando in rete è possibile trovare diversi esempi che mostrino come è possibile implementare una struttura per fornire servizi primordiali di cloud SaaS o più semplicemente per smanettare con il servizio, prendendo confidenza e testando i vari casi d’uso in cui può incorrere un utente occasionale. Tra le diverse soluzioni trovate però una molto interessante è lo studio di fattibilità e di analisi sullo stato attuale del Software Libero per la possibile realizzazione di  una  infrastruttura  cloud SaaS  esclusivamente su soluzioni libere, sia nelle licenze d’uso che nei formati e protocolli adottati.

 

I software selezionati sono stati scelti anche in base a tipo di licenza del software, funzionalità fornite, disponibilità di autenticazione LDAP o OpenID, disponibilità di client web ed Andoid in modo da garantire l’interfacciamento anche da dispositivi mobili, come tablet e smartphone, e non limitare l’accesso alle informazioni a specifici dispositivi e software. In particolare i software individuati sono:

 

    • Server di autenticazione: openLDAP;

 

    • Intefaccia di gestione accounts: phpLDAPadmin;

 

    • Single Sign On: OpenID (e integrazione con LDAP);

 

    • Software per la messaggistica:

 

Server di posta elettronica: Postfix e Courier Mail Server;

 

Webmail e Groupware: Horde Groupware Suite

 

Gruppi di lavoro: Groupserver;

 

Server di comunicazione: ejabberd;

 

    • Software per la collaborazione:

 

Gestione documentale: Alfresco Community Edition;

 

Editing di testi: Etherpad Lite;

 

Server di calendari: DAViCAL;

 

Web Calendar: Kronolith

 

    • Storage di rete virtuale: OwnCloud;

 

    • Interfaccia con il mobile: Funambol;

 

Un primo livello di integrazione su tutte le soluzioni proposte viene raggiunto fornendo un meccanismo,  funzionante  e  collaudato,  per  realizzare un sistema  di autenticazione centralizzato per tutti gli utenti che accedono ai vari servizi erogati.

In conclusione: il presente e il futuro

Esempi di modelli SaaS sono l’utilizzo dei servizi di posta elettronica di Microsoft Exchange Server con Microsoft Office 365, Zoho LogicalDoc, Google documenti, la soluzione cloud per la gestione delle attività di office automation in un ambiente cloud, ed in particolare per creare, modificare, e gestire:

 

    • Fogli di calcolo

 

    • Elaborazione testo

 

    • Client posta elettronica;

 

    • Elaborazione immagini;

 

    • Presentazioni

 

Tutta la gestione avviene tramite browser, ma in generale rientrano nella categoria SaaS tutte le applicazioni su piattaforma cloud che sono orientati ad uno specifico servizio per l’utente, come anche i servizi di online banking.

 

È scontata l’affermazione del cloud nei prossimi anni, soprattutto considerando il trend attuale che vede spingere verso le nuove soluzioni sempre più aziende e privati per una serie di indubbi vantaggi già più volte evidenziati.

 

È scontato anche che l’approccio al cloud modifica non solo il modo di lavorare, ma il modo in cui l’IT fa da supporto al business, all’azienda ed all’attività lavorativa. Le nuove generazioni saranno facilitate e decreteranno il definitivo successo del cloud, e magari l’iniziale tramonto a scapito di qualche nuova tecnologia, perché ragioneranno già in termini di cloud.

 

Al momento Aruba inizia a prepararsi al SaaS, come è possibile approfondire leggendo l’articolo Aruba API, il cloud computing e il futuro SaaS.

 

Tra i vantaggi più evidenti  ci sono le molte opportunità per le piccole e medie organizzazioni, tutte possono beneficiare dell’IT a basso costo e non più solo le grandi aziende con  data center dedicati. Il cloud rende democratica la tecnologia rendendola disponibile a tutti, ognuno in base alle proprie esigenze sceglierà il servizio di cloud più adatto. Il cloud SaaS è sicuramente adatto a quelle aziende o privati che hanno necessità di utilizzare software complessi da installare, che possono richiedere requisiti hardware complessi o troppo costosi, o che hanno costi di licenza elevati (come le applicazioni CAD prime fra tutte).

 

Lo svantaggio è sempre legato a problemi di sicurezza dei dati, che non sono sotto il totale controllo dell’utente finale, ed la mancanza di flessibilità di questa soluzione in cui ad esempio l’utente finale non ha possibilità di gestire lo spazio (aumentandolo e diminuendolo) ed i carichi di lavoro.

 

Per un ulteriore approfondimento su quello che accadrà prossimamente nel mondo SaaS  consiglio la lettura degli articoli La prossima generazione SaaS, cosa accadrà, Webhosting provider e il momento del SaaS.

Facci sapere cosa ne pensi!

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *