Ultimamente si parla molto di cloud computing e in particolare di SaaS: il paradigma cloud sta guadagnando sempre più interessa da parte delle aziende perché permette di abbassare i costi, una più facile manutenzione e un utilizzo semplice per gli utenti. Ma d’altra parte ci sono tante motivazioni per mantere un applicativo nella sua versione desktop, primo fra tutti l’utilizzo della banda.
Un semplice esempio per capire meglio di cosa parliamo. Un’applicazione desktop è un’applicazione che viene eseguita fisicamente sul vostro computer: è stata precedentemente installata e viene distribuita sotto forma di applicazione che può essere installata dall’utente. Un esempio: Skype.
Un’applicazione, cloud, invece risiede su una nuvola (da qui ‘cloud’): viene resa fruibile attraverso la connessione ad un altro sistema (tramite Internet ad esempio). Non richiede un’installazione (l’utente di solito accede all’applicazione da un browser) ma richiede una connessione ad Internet per essere utilizzata. Un esempio: Gmail.
Dopo aver riflettuto sui vantaggi dell’una e dell’altra soluzione, ho deciso di condividere il mio parere riguardante le due soluzioni.
| Applicazioni desktop | Applicazioni cloud | |
| Installazione del software | L’applicazione deve essere installata prima di essere utilizzata. | Nessuna installazione è richiesta (a parte il browser se l’applicazione verrà fruita tramite browser). |
| Utilizzo delle risorse | L’applicazione utilizza le risorse della macchina su cui è installata. Per applicazioni che hanno un carico computazionale cospicuo sono presenti requisiti hardware ben definiti. | Il carico computazionale è quasi interamente gestito dal service provider che offre il servizio, riducendo i requisiti hardware della macchina che utilizza il servizio. |
| Aggiornamenti | L’applicazione deve essere aggiornata manualmente dall’utente o da un amministratore di sistema | L’utente accede sempre all’ultima versione del software disponibile senza dover installare nulla: l’applicativo caricato dal browser è sempre aggiornato dal service provider, nulla è a carico dell’utente. |
| Indipendenza dalla piattaforma | Alcune applicazioni sono disponibili solo per determinate piattaforme (es. MacOSX, Windows), lasciando scoperte altre piattaforme comunque utilizzate da alcuni utenti (Linux, FreeBSD). | Dato che molte applicazioni sono fruibili tramite un browser, molte delle applicazioni cloud sono indipendenti dalla piattaforma dell’utente |
| Indipendenza/Utilizzo della rete | Un applicativo desktop è indipendente dalla presenza della rete (se la funzione principale non è quella di utilizzare la rete). | Senza connessione di rete, un’applicazione cloud non può funzionare (a meno di meccanismi di caching previsti dal browser [es. Google Gears/HTML5 Web Storage] e/o dallo sviluppatore dell’applicazione).Inoltre, il footprint di un’applicazione cloud sulla rete è tipicamente molto forte rispetto all’equivalente di un’applicazione desktop, proprio per la maggiore quantità di dati scambiati con la controparte remota. |
| Autenticazione e autorizzazione | L’autenticazione e l’autorizzazione sono demandate al sistema operativo. Dato che questa pratica è tipicamente consolidata e ben documentata, un’applicazione desktop è solitamente più sicura della controparte cloud (sia del punto di vista della security fisica che di quella logica). | L’autenticazione e l’autorizzazione sono realizzate su una rete che non sicura quale Internet, che può essere manomessa e/o monitorata. L’utilizzo di soluzioni di cifratura è una soluzione d’obbligo per proteggere i dati che transitano dal service provider all’utente finale. |
| Backup | I dati sono solitamente memorizzati sul pc dell’utente, che deve provvedere ad effettuare un backup cadenzato dei dati (se non previsto dall’amministratore di sistema). | I dati sono quasi interamente gestiti dal service provider, che, in base al SLA garantito all’utente, deve provvedere al corretto backup dei dati e al ripristino in caso di failure.Inoltre, come già detto, questo comporta un utilizzo massimo della banda per trasferire i dati dal service provider al pc dell’utente finale. |
Quindi, qual è la soluzione migliore? Il desktop o il cloud?
Ultimamente, la tendenza è quello di portare molte applicazioni sul cloud, e di associare al cloud tutte le applicazioni che possono essere richiamate tramite un browser. Ricordo che un’applicazione cloud deve rispettare diversi aspetti per essere chiamata cloud:
- deve essere indipendente da piattaforma e hardware utilizzati dall’utente
- deve supportare l’accesso tramite API
- deve essere accessibile tramite qualsiasi sistema connesso a Internet
- deve essere trasparente per l’utente da utilizzare indipendentemente da dove l’applicazione venga installata.
Qual è la soluzione migliore? La risposta giusta, come al solito, è dipende. Dipende da molti fattori, come possiamo vedere, e ognuna delle due soluzioni ha i suoi punti di forza e di debolezza.
Leave a Reply