- Cosa succederebbe se qualcuno realizzasse una infrastruttura veramente intelligente e condivisa?
- Cosa succederebbe se la banda larga fosse realmente diffusa e performante ovunque?
- Cosa succederebbe se avessimo veramente una struttura informatica comune?
- Cosa succederebbe se avessimo una mentalità realmente improntata allo sviluppo sociale, e non egoisticamente individuale?
- Cosa succederebbe se l’idea alla base del nuovo progetto di Google fosse applicato alle ultime ricerche e tecnologie nel campo del calcolo distribuito?
- Cosa succederebbe se la nostra informatica, la nostra rete fosse veramente globale?
In informatica, con il termine cloud computing si intende un insieme di tecnologie informatiche che permettono l’utilizzo di risorse hardware (storage, CPU) o software distribuite in remoto.
Nonostante il termine sia piuttosto vago e sembri essere utilizzato in diversi contesti con significati differenti tra loro, si possono distinguere tre tipologie fondamentali di Cloud Computing:
- SaaS (Software as a Service) – Consiste nell’utilizzo di programmi in remoto, spesso attraverso un server web. Questo acronimo è pressappoco un sinonimo di un termine oggi in disuso, ASP (Application Service Provider).
- PaaS (Platform as a Service) – È simile al SaaS, ma non viene utilizzato in remoto un singolo programma, ma una piattaforma software che può essere costituita da diversi servizi, programmi, librerie, etc.
- IaaS (Infrastructure as a Service) – Utilizzo di risorse hardware in remoto. Questo tipo di Cloud è quasi un sinonimo di Grid Computing, ma con una caratteristica imprescindibile: le risorse vengono utilizzate su richiesta al momento in cui un cliente ne ha bisogno, non vengono assegnate a prescindere dal loro utilizzo effettivo.
Una caratteristica del Cloud Computing è di rendere disponibili all’utilizzatore tali risorse come se fossero implementate da sistemi (server o periferiche personali) “standard”. L’implementazione effettiva delle risorse non è definita in modo dettagliato; anzi l’idea è proprio che l’implementazione sia un insieme eterogeneo e distribuito – the cloud, in inglese nuvola – di risorse le cui caratteristiche non sono note all’utilizzatore.
Il termine cloud computing si differenzia da grid computing che è un paradigma orientato al calcolo distribuito, e in generale, richiede che le applicazioni siano progettate in modo specifico.
da Wikpedia
I Grid computing o sistemi Grid sono un’infrastruttura di calcolo distribuito, utilizzati per l’elaborazione di grandi quantità di dati, mediante l’uso di una vasta quantità di risorse. In particolare, tali sistemi permettono la condivisione coordinata di risorse all’interno di un’organizzazione virtuale.
da Wikipedia
Speed, simplicity and security are the key aspects of Google Chrome OS. We’re designing the OS to be fast and lightweight, to start up and get you onto the web in a few seconds. The user interface is minimal to stay out of your way, and most of the user experience takes place on the web. And as we did for the Google Chrome browser, we are going back to the basics and completely redesigning the underlying security architecture of the OS so that users don’t have to deal with viruses, malware and security updates. It should just work. [...]
Google Chrome OS is a new project, separate from Android. Android was designed from the beginning to work across a variety of devices from phones to set-top boxes to netbooks. Google Chrome OS is being created for people who spend most of their time on the web, and is being designed to power computers ranging from small netbooks to full-size desktop systems. While there are areas where Google Chrome OS and Android overlap, we believe choice will drive innovation for the benefit of everyone, including Google.
We hear a lot from our users and their message is clear — computers need to get better. People want to get to their email instantly, without wasting time waiting for their computers to boot and browsers to start up. They want their computers to always run as fast as when they first bought them. They want their data to be accessible to them wherever they are and not have to worry about losing their computer or forgetting to back up files. Even more importantly, they don’t want to spend hours configuring their computers to work with every new piece of hardware, or have to worry about constant software updates. And any time our users have a better computing experience, Google benefits as well by having happier users who are more likely to spend time on the Internet.
dal blog di Google
Immaginate cosa si potrebbe fare unendo questi tre concetti. Qualcuno ha già provato ad unirli in maniera superficiale e settoriale (si veda ad esempio il progetto SETI@home). I nostri moderni sistemi operativi sono costruiti per ottimizzare le operazioni, i consumi, diminuire il più possibile i tempi morti. Si cominciò con il multithreading e il multitasking. La mia visione è quella di unire queste tecnologie alla rete globale, alla capacità di condividere risorse. Il progetto Chrome OS di Google è in sostanza questo: l’utente è estremamente meno “legato” al computer su cui si trova fisicamente. Effettivamente, del computer che utilizza, ci sono molte componenti che vengono messe in disuso, o meglio, il cui utilizzo viene ridotto all’osso. Una su tutte: l’hard-disk. Progettato per essere utilizzata sui netbook di nuova generazione (i cui hard-disk sono allo stato solido – meno capienti ma più rapidi), utilizzando Chrome OS l’unico motivo per cui continuare ad avere un hard-disk nel computer è semplicemente il fatto che il sistema operativo risiede lì. Tutti i vostri dati sono nei server di Google, pronti per essere consultati ovunque siate. Il computer non è più la sede fisica dei programmi o dei vostri dati, ma solo il “mezzo di trasporto” per arrivarci. Persino il software, per l’appunto, non si trova sul vostro pc. Un esempio? Google Docs fornisce ormai da anni una alternativa, se non valida quantomeno decente, allo strapotere di Microsoft Office. Il tutto esclusivamente online. I vostri documenti sono editati online e salvati sul vostro pezzettino di server che Google vi riserva, in quanto suoi utenti. Non vi sembra quantomeno strana la coincidenza che in questi ultimi tempi Google abbia abbassato in maniera vertiginosa (da un costo basso a ormai uno irrisorio) il prezzo dello storage online sui suoi server? Si parte dai 7 e oltre Gb disponibili gratuitamente con la creazione di un account free, spazio espandibile di 80 Gb a soli 20 dollari/anno. Prezzi impressionanti. Sì, perchè la transizione è già iniziata. Una visione straordinariamente futuristica, ma che potrebbe essere veramente il futuro.
/*Le considerazioni che sono scritte qui sotto sono superficiali e mal implementate a livello hardware, lo so. Ma è l’idea di fondo il concetto che voglio far passare*/
Ma andiamo oltre. Immaginiamo di togliere altre componenti al nostro pc. Eliminiamo del tutto l’hard-disk. Pensiamo di togliere anche il processore. Pensiamo di togliere la memoria ram. Lasciamo solo una scheda di rete. I componenti che abbiamo tolto (diciamo cpu e ram, per semplificare) mettiamoli in un server online. Ed ora, scriviamo un sistema operativo che permetta a più utenti di collegarsi al server e sfruttare proprio le componenti che abbiamo inserito in quel server, in maniera ordinata, secondo i canoni base di un sistema operativo efficiente (se l’utente A è in attesa perchè sta scrivendo una mail, sposto il carico di lavoro sull’utente B che sta richiedendo un calcolo. Quando l’utente A ha di nuovo bisogno di potenza di calcolo gliela forniamo e pareggiamo le risorse a disposizione). Non vi ricorda qualcosa? Non potrebbe essere una cosa che già esiste? ![]()
Chrome OS si colloca a metà tra di questo percorso. Sfrutta ancora il sistema operativo residente sul computer da cui ci si collega, ma non usa nulla (o quasi) più del browser web con la potenza di calcolo del pc su cui ci troviamo fisicamente.
Ma andiamo avanti con la nostra immaginazione.
Prendiamo anche qualche concetto dal p2p:
Generalmente per peer-to-peer (o P2P), cioè rete paritaria, si intende una rete di computer o qualsiasi rete informatica che non possiede nodi gerarchizzati come client o server fissi (clienti e serventi), ma un numero di nodi equivalenti (in inglese peer) che fungono sia da cliente che da servente verso altri nodi della rete.
Questo modello di rete è l’antitesi dell’architettura client-server. Mediante questa configurazione qualsiasi nodo è in grado di avviare o completare una transazione. I nodi equivalenti possono differire nella configurazione locale, nella velocità di elaborazione, nellaampiezza di banda e nella quantità di dati memorizzati. L’esempio classico di P2P è la rete per la condivisione di file (File sharing).
da Wikipedia
Ora facciamo un altro “piccolo” sforzo d’immaginazione. Immaginiamo di non togliere quelle componenti dal computer. Facciamo anzi, il passaggio contrario. Immaginiamo di aver un server che monta solo il sistema operativo (cpu e ram ridotti al minimo), mentre i nostri pc sono semplici scatolette elettroniche senza OS. Immaginiamo di dotare sia il server che il nostro computer casalingo di una linea di comunicazione (assumiamo internet) estremamente veloce. Cosa succederebbe se la potenza di calcolo del server fosse fornita direttamente dai nostri pc? Cosa succederebbe se invece che mantenere un server sempre acceso e alla massima potenza, fosse il nostro pc a fornirgli le risposte ai calcoli? Se il nostro computer andasse sempre a pieno regime e la potenza inutilizzata fosse trasferita ad un server? O, meglio ancora, se la potenza in eccesso fosse messa a disposizione di altri utenti?
Facciamo un semplice calcolo a livello teorico. Assumendo che si viva in un mondo informatico perfetto, dove non ci sono eccezioni, si ragiona per numeri interi e senza dispersioni di potenza, colli di bottiglia e menate varie. In questo ipotetico mondo informatico perfetto i computer hanno una potenza base e più di quella non possono erogare. I programmi che richiedono più potenza possono girare ugualmente, solo che richiederanno più tempo per l’elaborazione. In presenza di una maggiore potenza il programma si velocizza senza se e senza ma. Cosa succederebbe in un mondo del genere?
Potenza massima di un singolo computer: 5
Potenza utilizzata dal mio computer (A): 2
Potenza necessitata dal computer del mio amico (B): 7
Potenza erogata dal computer del mio amico + potenza inutilizzata resa disponibile da me: 5 + 3 = 8
Il mio amico avrebbe così la possibilità di far andare l’hardware oltre le sue caratteristiche teoriche di base, grazie alla suddivisione di calcoli. Non saprei come realizzare una cosa del genere, sinceramente. Così a naso mi verrebbe da dire che si potrebbero inviare gli input per i calcoli al computer inutilizzato (A), che rimanderebbe indietro l’output (i risultati) al computer (B) che nel contempo ha fatto i suoi.
Altrettanto a naso, mi viene da pensare che la limitazione più ovvia delle tecnologie odierne è che le architetture (e tantomeno quindi i sistemi operativi) non saprebbero implementare una tecnica del genere. Ma esperimenti come il già citato SETI@home mi portano ad avere una piccola speranza sul contrario.
Il ragionamento che ho attuato non è applicabile solo alla potenza di calcolo. Condivisioni del genere potrebbero essere effettuate anche a livello di dati. Il p2p ne è un esempio.
Peccato che la tecnologia attuale non permetta di sfruttare i minimi tempi di accesso richiesti dai computer (le velocità anche del più rapido dei torrent sarebbero altamente inadeguate per qualsiasi applicazione). Neanche l’architettura del software aiuta le cose.
Il mio timore è che, in fondo, non ci sia nè l’interesse per realizzare idee come queste, nè tantomeno esse siano realizzabili per il semplice fatto che presuppongano un mondo informatico praticamente perfetto, slegato da gran parte dei problemi della fisica terrena, e quindi utopico.
Staremo a vedere.



dic 14, 2009 @ 15:24:51
Ho appena letto il sottotitolo del tuo blog. E questo link, in questo contesto, mi sembra veramente appropriato
http://blogs.zdnet.com/security/?p=5110
oppure in italiano:
http://www.oneitsecurity.it/14/12/2009/zeus-bot-ora-sfrutta-i-servizi-web-di-amazon/
dic 14, 2009 @ 15:34:27
Splendido, grazie per i link. Una delle possibili applicazioni laterali dell’idea che avevo in mente.
Spesso, infatti, purtroppo o per fortuna, le innovazioni e le idee si trovano proprio perchè hacker o cracker le inventano e le sfruttano per i loro scopi.
Grazie ancora, io non li avevo trovati.
dic 15, 2009 @ 10:10:08
Sono d’accordo. Il problema è che, ormai, sono sempre più quelli che usano le loro conoscenze per attività criminali. Leggevo da qualche parte che ormai anche l’epoca del “criminale da salotto”, il 18-20enne che commette qualche illecito dal salotto di casa, è finita e i crimini elettronici sono compiuti da bande organizzate composte da veri e propri “esperti del settore”.
dic 17, 2009 @ 17:47:01
Beh sì, l’evoluzione del campo significa che anche questo “settore”, inevitabilmente, avanza.
Ma sono un inguaribile romantico che cerca di vedere il bicchiere mezzo pieno: è pur sempre evoluzione e ricerca. Speriamo che, come sempre, anche questa volta si riescano a trarre spunti importanti.
dic 20, 2009 @ 21:47:36
Ipotesi affascinante…chissà per quanto tempo le spinte commerciali contrarie che hai purtroppo prontamente e giustamente individuato prolungheranno (come minimo) i tempi per l’attuazione di qualcosa di simile…
…comunque, sono convinto che il pervasive computing sia un futuro più che credibile, ed in quell’ottica il cloud, il calcolo distribuito e la condivisione di dati e risorse costituiranno una via rapida e già nota per raggiungere un risultato “futuribile”…
dic 29, 2009 @ 18:21:22
Esattamente, molto sicuramente influirà anche il modo in cui Google si approccerà con il nuovo Chrome OS. Sempre che il mondo sia pronto, ovviamente…
OS moderni « gioggi2002's blog
set 14, 2011 @ 11:14:31