forniscono delle funzionalità basilari o, come nel nostro caso, delle risorse. Il più dellevolte, tali funzionalità sono richieste dalla maggior parte dei livelli. Con un approcciodel genere, la richiesta <strong>di</strong> una funzionalità da parte <strong>di</strong> uno strato situato ad un livello piùalto rispetto a quello preso in considerazione, comporterebbe l'interpretazione dellarichiesta ad ogni livello. Quin<strong>di</strong>, i servizi richiesti da un utente ad un livello superioredevono, per accedere ai servizi offerti dai livelli sottostanti, passare attraverso gli stratia<strong>di</strong>acenti. Per sopperire a queste problematiche, l'architettura Grid è organizzata inmodo tale da essere un'architettura a strati aperta. In tale architettura, gli strati cheforniscono servizi basilari sono resi accessibili non solo al livello a<strong>di</strong>acente, ma anche aquelli situati “più in alto”: verrà così favorita l'esten<strong>di</strong>bilità, l'interoperabilità e laportabilità. Ovviamente, oltre ai vantaggi appena esposti, questo tipo <strong>di</strong> architetturacomporta anche <strong>degli</strong> svantaggi: mo<strong>di</strong>ficare l'interfaccia <strong>di</strong> un livello al quale accedonopiù strati, significa mo<strong>di</strong>ficare anche tutti gli strati che sfruttano tali servizi.Per comprendere meglio la scomposizione in strati dell'architettura facciamo riferimentoalla seguente immagine:fig. 1Luca Gerardo 566/2636 Pagina 8 <strong>di</strong> 113
In figura 1 è possibile notare ciò che è stato descritto precedentemente: il livelloApplication sfrutta i servizi offerti dai livelli Connectivity, Resource e Collective,eliminando quelli che sono gli svantaggi <strong>di</strong> un'architettura stratificata chiusa a <strong>di</strong>scapitodella manutenibilità. In secondo luogo, sono evidenziati quanti e quali sono i livelli checostituiscono tale architettura, identificando quin<strong>di</strong> i componenti principali del sistema.Essendo il Grid una struttura che deve permettere relazioni <strong>di</strong> con<strong>di</strong>visione tra ipartecipanti, aspetto molto importante è giocato dall'interoperabilità. Nelle retiinformatiche l'interoperabilità è sinonimo <strong>di</strong> “protocolli comuni”, in<strong>di</strong> per cuil'architettura Grid è prima <strong>di</strong> tutto un'architettura <strong>di</strong> protocolli utilizzati per negoziare,usufruire e gestire relazioni <strong>di</strong> con<strong>di</strong>visione <strong>di</strong> risorse. Ciò che il Grid vuole garantire èla possibilità <strong>di</strong> iniziare e creare arbitrariamente relazioni <strong>di</strong> con<strong>di</strong>visione tra le parti,agevolando l'integrazione <strong>di</strong> nuovi partecipanti in modo <strong>di</strong>namico. In assenza <strong>di</strong>interoperabilità, gli utenti sono costretti a creare un accordo bilaterale <strong>di</strong> con<strong>di</strong>visione,impedendo che quest'ultimo possa essere esteso anche ad altre parti.La presenza <strong>di</strong> tali protocolli permette quin<strong>di</strong> <strong>di</strong> specificare come gli elementi, che sonoparte del sistema <strong>di</strong>stribuito, interagiscono fra <strong>di</strong> loro.Oltre a quelli che sono i protocolli, i servizi e l'interoperabilità, un ruolo fondamentalein ambito Grid è rivestito dalle APIs (Application Programming Interfaces) e dall'SDKs(Software Development Kits) che permettono agli sviluppatori <strong>di</strong> realizzare, in modoveloce e portabile, applicazioni per ambienti Grid corrette e robuste.Un progetto molto importante relativo al Grid Computing è stato Globus. GlobusToolkit, oltre a sviluppare e quin<strong>di</strong> a fornire protocolli fondamentali per gli ambientiGrid, offre un toolKit, e quin<strong>di</strong> <strong>degli</strong> strumenti <strong>di</strong> sviluppo software, per realizzareapplicazioni Grid portabili, robuste ed efficienti in modo veloce.I livelli dell'architettura Grid sono cinque e vengono <strong>di</strong> seguito descritti:• Il livello Fabric: fornisce le risorse messe a <strong>di</strong>sposizione dall'architettura, comead esempio risorse computazionali, sistemi <strong>di</strong> archiviazione e sensori, quandoci riferiamo alle risorse intese come entità fisiche; oppure file system<strong>di</strong>stribuiti, quando parliamo <strong>di</strong> risorse viste come entità logiche. Le risorsepresenti in questo livello dovrebbero mettere in atto meccanismi tali dapermettere agli utilizzatori <strong>di</strong> conoscere, quanto meno, la propria struttura ed ilLuca Gerardo 566/2636 Pagina 9 <strong>di</strong> 113