Con l’espressione Ubiquitous Computing si possono intendere più aspetti: • la pervasività dei sistemi che offrono capacità di elaborazione locale; • la presenza di capacità elaborativa in una molteplicità di oggetti attorno a noi; • la possibilià di accedere da qualsiasi punto a capacità elaborative in grado di soddisfare qualunque (o quasi) necessità. Noi ci focalizzeremo sul terzo punto… Mainframe: • costoso e complicato; • grosse dimensioni; • accesso consentito a pochi che ne condividono le risorse. Una persona un PC: • molto più economico e di facile utilizzo; • può stare nei pressi di una scrivania; • uso di massa. Laptop e PDA (Personal Digital Assistant): • Dimensioni molto ridotte (tascabili); • Ognuno può utilizzarne diversi. “Ogni 18 mesi la capacità elaborativa raddoppia a costi quasi costanti” L’evoluzione dei sistemi ha cavalcato questa legge negli ultimi 35 anni, ma fino a quando sarà valida? Due limiti: • fisici: La miniaturizzazione dei processori sta raggiungendo i limiti imposti dalla fisica quantistica (soluzione: nanotecnologia); • bisogno reale: La richiesta di CPU sempre più potenti sta decrescendo. La proiezione degli effetti sul mercato del continuo aumento della capacità elaborativa. Le cosiddette “curve S” di penetrazione dei prodotti A cosa serve un frigorifero o una lavatrice con un pc embedded? Un pc all’interno di un elettrodomestico permette di: • Programmarlo. • Collegarlo ad una rete Lan: Ad esempio per minimizzare i consumi di energia e mantenere il consumo complessivo entro i limiti di potenza del contratto. • Collegarlo ad internet: Ad esempio per contattare il fornitore in caso di guasto. Tutto ciò significa semplicità, utilizzabilità e bassi costi di esercizio (in termini economici o di sforzi d’uso). Esempio: Ubicom - "What Ubicom makes is the chip that allows you to Internet enable a great many of these devices that otherwise would be just sitting there." (Vint Cerf, Internet Pioneer) I calcolatori negli anni 60’ erano molto costosi anche per le università. Così nasce Internet per fornire un Ubiquitous Computing, ovvero per distribuire la potenza di calcolo di pochi computer ad utenti remoti e offrire loro servizi altrimenti troppo costosi. L’idea che il valore potesse essere in una rete che condivideva informazioni o consentisse lo scambio non era pero’ parte della cultura di quegli anni. La condivisione gratuita di informazioni ha contribuito allo sviluppo del concetto di “Sistema Distribuito”. •1992: Nascita di TINA (Telecommunication Information Networking Architecture): Sistema di reti distribuito che consente la condivisione dei servizi presenti in punti diversi della rete, riducendone notevolmente i costi; •1993 Mosaic rivoluziona l’accesso ad internet rendendo facile raggiungere le informazioni e introducento il concetto di plug-in; •1995 Sun lancia Java e rende cosi’ compatibile la comunicazione e lo scambio di dati tra pc funzionanti su piattaforme differenti. Dietro il termine GRID si nasconde una rete di nuova concezione, capace di sviluppare velocità di trasmissione dati oggi impensabili e pronta ad accogliere sistemi collaborativi senza precedenti. Si tratta essenzialmente di una rete che consentirebbe di accedere da qualsiasi luogo del mondo in qualsiasi momento a qualsiasi genere di informazione nel giro di pochi secondi. La filosofia è quella del connessionismo applicato a Internet: più computer che lavorano in parallelo sono più potenti ed efficaci di un solo supercomputer. Con lo sviluppo di GLOBUS, nel 1997 nasce un insieme di applicazioni (toolkit) che consentono l’accesso ad applicazioni distribuite. Si basa su tre protocolli: • CONNECTION PROTOCOL: Insieme di primitive che consentono ad una applicazione di connettersi ad un’altra, autenticarsi e negoziare le modalità di comunicazione; • RESOURCE PROTOCOL: Insieme di primitive che permettono di identificare quali servizi siano presenti e disponibili in rete; • COLLECTIVE PROTOCOL: Insieme di primitive che permette di aggregare insieme più applicazioni distribuite in rete trattandole, dal punto di vista di chi accede, come se fossero una sola. GRID non ancora ben esplorato => Classificazione non globalmente accettata Processing-GRID: infrastruttura che fornisce una capacità computazionale su richiesta: • Supercomputer GRID - mette a fattor comune molte capacità elaborative singole (IBM); • Processing commodity – offerta di capacità elaborativa come se fosse acqua che sgorga da un rubinetto (piccole “portate” per un numero enorme di utenti – SUN e il Network Computer degli anni ‘90); e.g. Smallpox Research GRID Project (IBM, United Devices e Accelrys): 2 milioni di pc rendono disponibile gratuitamente la potenza elaborativa che non usano via Internet, stimata 1.100 teraflop (30 supercomputer). Altri porgetti: CISS (Canadian Internetworked Scientific Supercomputer) – 1360 pc (6 anni di elaborazione Vs 1 giorno); Folding@Home soluzione al problema del ripiegamento delle proteine; La Germania ha commissionato un supercomputer da rendere disponibile nel GRID Data Grid: Si propone di rendere possibile la condivisione di enormi quantità di dati che possano essere analizzati in parallelo influenzandosi a vicenda (diverso dal Web, dove i dati sono solo condivisi da milioni di navigatori). Il progetto (LHC - Large Hadron Collider) nasce al CERN per condividere dati tra ricercatori in tutto il mondo. I punti rossi rappresentano i luoghi che fanno parte del servizio LCG(LHC Computing Grid Project). La capacità totale calcolata per quest’anno equivale a circa 4000 PC e 750,000 CD. Questa crescerà porporzionalmente alla capacità resa disponibile dal potenziamento dei luoghi LHC esistenti e di quelli che si aggregheranno. Application-GRID: si propone di rendere disponibili applicazioni presenti sul GRID a chiunque ne abbia bisogno, con eventuale integrazione di più applicazioni in applicazioni “ad-hoc”. Il GRID è resource protocol – ricerca di applicazioni che possono fornire il servizio richiesto, o parte di esso. La chiave del A-GRID è la creazione di applicazioni distribuite a partire da un certo insieme di componenti trovate con il resuorce protocol. Problema: sviluppare una interazione tra la modalità di descrizione di ciò che si vuole e il collective protocol che mette insieme quanto è stato trovato sul GRID. Esempi di A-GRID: giochi on-line (distinzione del tipo di GRID non semplice, ma tende al A-GRID) - Sony, IBM e Butterfly stanno sviluppando un GRID per PlayStation2 col fine di rendere l’utilizzo dei giochi più semplice ed economico. Fornire un’applicazione per aumentare la velocità di trasporto delle informazioni (non dovuto alle caratteristiche fisiche del mezzo, ma alle applicazioni). Lo sviluppo dei sistemi di telecomunicazione permette il controllo remoto e l’interconessione tra vari ambienti di sviluppo locale ma: Lo sviluppo delle applicazioni e della capacità elaborativa locale non si bilanciano con lo sviluppo delle telecomunicazioni e quindi l’ambiente di sviluppo locale tenderà a prevalere. La crescita della capacità elaborativa necessita perciò di essere gestita con nuove architetture chiamate Autonomic Systems. Esse sono in grado di monitorarsi e autogestirsi senza il supporto umano. Un esempio è la tecnologia SysFrame di Fujitsu Siemens. Lo sviluppo dei sistemi Wireless rivoluzionerà il modo di comunicare con le reti “Ad hoc network”: • Comunicazione senza fili; • Uso dei telefonini per comunicare al posto di gateway e router; • Espansione a livello di MAN (metropolitan area network) ad altissima velocità; • Creazione di reti di terminali cooperanti per risolvere il problema dell’interferenza raggiungendo velocità praticamente illimitate. Tutto cio’ renderebbe la velocità non piu’ un problema che si focalizerebbe a livello competitivo sullo sviluppo logico di applicativi e non piu’ su sviluppo hardware. Siti di interesse: http://www.unibas.it/utenti/cavallo/grid.htm http://lcg.web.cern.ch/LCG http://www. ubicom.com http://www.edge.org/discourse/information.html http://www. grid.org/projects/smallpox