|
|
|
|||||||||
|
Grids: l'evoluzione della Rete
Mauro Gatti
Gli ultimi due anni hanno visto il progressivo affermarsi di due tecnologie per la condivisione di risorse nei sistemi distribuiti: il Grid Computing e i Web Services. Il termine Grid Computing, che nasce e si sviluppa nel mondo dei grandi gruppi di ricerca scientifica internazionale, indica un insieme di tecniche che consentono la condivisione di risorse informative alfine di rendere disponibile la potenza elaborativa necessaria per affrontare le grandi sfide computazionali della fisica, dell’astronomia, ecc. I Web Services nascono invece nel modo dell’e-business e mirano a rendere semplice, efficiente e basato su standard l’interazione fra programmi all’interno di ambienti complessi e eterogenei quali una supply chain o un market place. Al recente Global Grid Forum (GGF4), Globus Project e IBM hanno annunciato l’Open Grid Services Architecture (OGSA) che rappresenta il matrimonio e l’evoluzione di queste due tecnologie. OGSA introduce il concetto cruciale di Grid Service, che altro non è che un web service che dispone di interfacce che lo rendono manipolabile per mezzo di protocolli Grid. I Grid Service svolgeranno un ruolo cruciale per garantire che le server farm complesse e eterogenee utilizzate in interazioni B2B o per erogare un servizio in modalità SP riescano a garantire la qualità del servizio (QoS) che si aspettano i suoi utenti.
Che cosa sono i Grid services?
Grid Computing
Le originiLa ricerca scientifica si trova di fronte a sfide tecnologiche e computazionali sempre più difficili. I singoli centri di ricerca non hanno né le risorse finanziarie né umane per affrontare progetti eccezionalmente complessi quali la costruzione di un acceleratore di particelle per la ricerca del bosone di Higgs[1] o classificare il genoma umano[2]. Per questa ragione i centri di ricerca si uniscono in organizzazioni virtuali e dinamiche, mettendo a disposizione strumenti, persone e fondi. Nella seconda metà degli anni ’90 è diventato sempre più evidente la necessità di condividere anche risorse elaborative (server) e dispositivi di immagazzinamento di dati (ossia storage). Il termine Grid[3] è stato creato per indicare indicare questi aggregati di risorse distribuite fra diverse centri che sono messe temporaneamente a disposizione dell’organizzazione virtuale. Numerose tecnologie sono state sviluppate per consentire l’aggregazione di risorse in modo tale da minimizzare l’impatto sul modo con il quale queste risorse sono gestite all’interno di ognuno dei centri. Poiché le risorse sono messe a disposizione dell’organizzazione virtuale per un periodo limitato non è pensabile l’adozione di alcuna tecnologia che implichi l’uniformazione dei sistemi informativi. L’eterogeneità e la distribuzione sono caratteristiche essenziale dei Grid con le quali la tecnologia Grid deve convivere senza cercare di interferire. Che cos’è un Grid?Il termine Grid computing[4] indica un insieme di tecnologie per la gestione delle risorse informative la cui adozione si sta diffondendo in vari settori di ricerca e in alcuni settori industriali. I Grid sono creati per consentire la condivisione di potenza elaborativa, dati o strumenti di analisi fra organizzazioni distinte o fra diverse parti di una stessa organizzazione. Nel seguito indichiamo le tre principali categorie di uso dei Grid[5].
La condivisione di server o cluster di server per raggiungere la potenza elaborativa necessaria per risolvere problemi di tale complessità computazionale da non poter essere risolti con le risorse elaborative disponibili presso un solo centro di ricerca (resource aggregation). Un esempio tipico è la ricerca del più grande numero primo di Mersenne utilizzando il SW messo a disposizione da Entropia[6]. Questo tipo di Grid è indicato con il termine Computational Grid (prima categoria). Si distinguono due sottocategorie: a) Distributed Supercomputing b) High Throughput Computing. Appartengono alla prima sotto-categoria quei sistemi che eseguono singoli job in parallelo in modo tale da ridurre il tempo di esecuzione complessivo del job. Rientrano in questa sotto-categoria elaborazioni di fluidodinamica, modellazione del clima atmosferica, simulazioni nucleari e analisi finanziaria. La seconda sotto-categoria consisiste di sistemi il cui scopo è quello di eseguire un grande numero di job in parallelo. Il processo di disegno e verifica dei circuiti elettronici integrati rientra in quest’ultima categoria.
La condivisione di grandi quantità di dati generati da esperimenti di fisica, astronomia, genetica o altro (data-sharing) rappresenta la seconda categoria. I dati sono o generati presso un singolo sito e quindi distribuiti a diversi siti per l’elaborazione, come per esempio nel progetto LHC del CERN, o generati presso più siti e quindi aggregati presso un singolo sito per elaborazione, come accade per esempio nel settore delle Life Sciences attraverso l’uso dell’IBM SW DiscoveryLink.
La condivisione di strumenti di misura, analisi o altre risorse fra gruppi di ricerca (collaboration) è infine la terza categoria.
I Grid sono costituiti da vari tipi di risorse (eterogeneità delle risorse) connesse fra di loro con reti a latenza variabile (eterogeneità della rete) e molteplici domini di amministrazione (eterogeneità delle politiche di sicurezza). Le risorse sono eterogenee sotto due aspetti: · Sono di tipo diverso: nodi di elaborazione, dispositivi di immagazzinamento dati, strumenti di misura, cluster, ecc. · Sono basati su piattaforme diverse: sistema operativo Linux, AIX, Windows, ecc. Un Grid può avere tutte o solo alcune delle caratteristiche sopra menzionate. Si distinguono
Come si costruisce un Grid?Esistono diverse tecnologie che consentono di creare Grid. Nel seguito elenchiamo alcuni esempi particolarmente importanti:
· Globus[7] - sviluppato congiuntamente dall’Argonne National Laboratory e dall’University of South California. Il progetto Globus rilascia periodicamente il Globus Toolkit, ora giunto alla versione 2.0. Questo toolkit è stato utilizzato in numerosi importanti progetti quali ad esempio il National Technology Grid (US), il DataGrid (Europa), il NASA Information Power Grid e l’ASCI DRM testbed. · Condor[8] – sviluppato e aggiornato dall’University of Wisconsin-Madison. Condor è stato utilizzato per risolvere il famoso problema nug30[9]. · Legion[10] - sviluppato dall’University of Virginia e utilizzato per esempio nello sviluppo del testbed Centurion e nel testbed NPACI. · Unicore[11] - finanziato dal German Bundesministeriums für Forschung und Technologie (BMFT) ha come principale obiettivo fornire un’infrastruttura software che consenta la sottomissione e l’esecuzione ottimale e sicura di job in un ambiente eterogeneo.
Alcuni esempi di GridNumerosi Grid sono funzionanti o in fase di sviluppo in varie parti del mondo. Nel seguito forniamo due esempi particolarmente importanti.
Il progetto DataGrid che sta sviluppando il software che verrà utilizzato per consentire la condivisione di dati e potenza elaborativa fra le decine di centri che partecipano al progetto per la costruzione del Large Hadron Collider del CERN[12], nel quale l’Italia svolge un ruolo di primo piano tramite l’Istituto Nazionale di Fisica Nucleare (INFN)[13]. Il Large Hadron Collider, la cui costruzione dovrebbe essere completata per il 2006/2007, sarà lo strumento principe per la ricerca dell’evanescente bosone di Higgs e per la verifica delle teorie supersimmetriche. Quattro rivelatori sono in fase di costruzione per registrare gli eventi generati dalle collisioni fra adroni. I dati generati saranno filtrati e quindi immagazzinati sia presso il CERN (Tier-0) che presso centri distribuiti in vari paesi (Tier-1). Porzioni minori selezionate in funzione delle esigenze di ricerca specifica saranno trasferiti presso i vari centri di ricerca.
La Distributed Terascale Facility è un progetto che coinvolge quattro centri di ricerca negli Stati Uniti (NCSA, SDSC, Argonne e Caltech). Il progetto mira a creare un Grid che fornisca una potenza elaborativi di 13.6 Teraflops e che gestisca 450 Terabytes di dati. La potenza elaborativa richiesta sarà raggiunta aggregando cluster Linux installati presso ognuno dei quattro centri di ricerca per mezzo di un Grid noto come TeraGrid. Il Grid sarà costruito utilizzando l’ampiamente testato Globus toolkit.
IBM e il Grid ComputingIBM svolge un ruolo di primo piano nel mondo del Grid Computing. Il Globus toolkit[14] è stato recentemente portato su Linux per tutte le piattaforme eServer dell’IBM Enterprise Server Group (xSeries, pSeries, iSeries and zSeries) e sul sistema operativo AIX 4.3.3. E’ inoltre in piano la creazione di una versione del toolkit per Linux su eServer xSeries che ne renda molto più facile l’installazione . Un Grid che connette i laboratori di ricerca di IBM (BlueGrid) è stato creato alfine di testare, sviluppare e migliorare le tecnologie per il Grid Computing. Inoltre IBM svolge un ruolo di partnership cruciale, attraverso la fornitura di HW, SW e servizi in numerosi importanti progetti Grid dei quali citiamo a titolo di esempio l’UK e-science programme[15], il National Digital Mammography Archive dell’University of Pennsylvania e la Distributed Terascale Facility[16].
Web ServicesLe originiLa seconda metà degli anni ’90 ha visto l’esplosione del web. Grazie alla disponibilità di una tecnologia standard per rappresentare l’informazione (HTML) e per comunicare l’informazione (HTTP) è stato possibile standardizzare il processo di interazione fra utenti e informazioni. I tentativi di raggiungere lo stesso livello di standardizzazione nei processi di interazione inter-dipartimentali o inter-aziendali non hanno dato risultati altrettanto soddisfacenti. Le grandi aziende sono ancora oggi caratterizzate, dal punto di vista dei sistemi informativi, da una struttura a silo, ossia grandi aree relativamente omogenee al loro interno che hanno poco o nulla interazione con le altre aree. La sfida dell’Enterprise Application Integration è quello di integrare questi silo senza essere costretti ad un costoso e delicato sviluppo ad-hoc. Al tempo stesso la progressiva diffusione delle tecniche di produzione Make-to-Order in luogo delle tecniche di produzione Make-to-Stock richiedono la creazione di Supply Chain fortemente integrate e efficienti. Più in generale le interazioni Business-to-Business (B2B) richiedono standard per la descrizione dei dati, per l’invio di dati, per la scoperta di servizi, ecc. I web services rappresentano un insieme di protocolli che mira specificatamente a rispondere a queste esigenze. Che cosa sono i web services?In parallelo allo sviluppo delle tecnologie Grid nell’ambito dei programmi di ricerca per l’e-science, IBM e altre aziende hanno sviluppato la tecnologia degli web services[17] che mira a raggiungere quel livello di standardizzazione per la comunicazione fra programmi che la tecnologia Internet ha messo a disposizione per la comunicazione fra utenti e programmi. Tecnicamente un Web service è un’interfaccia che descrive un insieme di operazioni che sono accessibili tramite messaggi XML. Concettualmente i web services sono una tecnologia che permette di semplificare, ottimizzare e velocizzare l’integrazione fra applicazioni, sia all’interno di un’azienda, Enterprise Application Integration (EAI) che fra aziende diverse, Business-to-Business (B2B)[18].
Il modello di funzionamento dei web services prevede che un’organizzazione che vuole mettere a disposizione i propri servizi web (Service Provider) renda pubbliche le descrizioni dei servizi fornendole a un registro distribuito (Service Registry). Le organizzazioni che vogliono avvalersi di questi servizi (Service Requestor) non devono far altro che interrogare il registro per avere le specifiche del servizio e quindi connettersi (binding) con il fornitore di servizio.
I web services sono stati dunque introdotti per rendere molto più agevole, grazie a standard precisamente definiti, l’interazione fra aziende nell’ambito dell’e-business. La semplificazione del modello di interazione è cruciale in ambienti diversi quali l’ottimizzazione di una supply chain o la ricerca di informazioni tramite un motore di ricerca. La standardizzazione è stata operata attraverso la definizione di una serie di protocolli dei quali i più importanti sono Simple Object Access Protocol[19] (SOAP), Web Services Description Language[20] (WSDL), Universal Desciption Discovery and Integration[21] (UDDI) e Web Services Flow Language[22] (WSFL).
I Web services sono alla base di alcune delle più importanti iniziative nel mondo dell’Information Technology: IBM Dynamic e-Business, Microsoft .NET e Sun ONE.
Grid servicesLe originiIl toolkit Globus si è rivelato essere uno strumento software utile per la creazione di Grid scientifici e ingegnieristici. I web services d’altro canto sono lo strumento ideale per l’integrazione intra-aziendale e inter-aziendale, ma si basano su servizi permanentemente definiti e quindi male si adattano alle esigenze delle organizzazioni dinamiche. I due problemi fondamentali di gestire in modo dinamico l’integrazione, ossia l’unione e la separazione delle risorse, e di garantire la qualità del servizio (QoS), non sono indirizzati in modo soddisfacente.
Uno dei principali artefici dello sviluppo della tecnologia Grid, ossia il gruppo del progetto Globus, e uno dei principali protagonisti dello sviluppo degli standard per i web services, ossia IBM, hanno unito le loro forze per definire la Open Grid Services Architecture (OGSA)[23] che rappresenta il matrimonio delle due tecnologie. OGSA si caratterizza come tecnologia che mira a raggiungere l’obiettivo[24] di allineare le tecnologie Grid e Web services attraverso l’introduzione del concetto di Grid Service.
Che cosa sono i Grid services?L’architettura OGSA si basa sul concetto di Grid service definito come un web service, specificato per mezzo del linguaggio WSDL, che dispone di un insieme ben definito di interfacce che consentono di
Problematiche quali autorizzazione all’accesso e gestione della concorrenza non sono attualmente indirizzati dalle specifiche ma lo saranno in seguito.
Le interfacce di cui dispone un Grid service lo rendono agevolmente manipolabile per mezzo dei protocolli Grid sviluppati dal progetto Globus, in particolare i protocolli Globus Resource Allocation Manager (GRAM), Meta Directory Service-2 e Grid Security Infrastructure (GSI). GRAM affronta i seguenti tre specifici problemi[25]:
MDS[26] fornisce i meccanismi che consentono di scoprire le risorse e controllarne lo stato, in modo tale da consentire alle applicazioni di adattarsi dinamicamente alle risorse disponibili. GSI[27] indirizza le problematiche di autenticazione e di controllo dell’accesso, senza imporre ai vari domini amministrativi sui quali si innesta la struttura Grid l’uniformazione delle politiche di gestione della sicurezza.
OGSA mira a rendere possibile lo sviluppo agevole di applicazioni distribuite che sono costituite da componenti sviluppate con tecniche di programmazione diverse, ospitate su ambienti di elaborazione (hosting environment) eterogenei che possono appartenere a organizzazione distinte e con politiche di sicurezza distinte, in modo tale da garantire quei livelli di Quality of Service (QoS) che sono essenziali per la conduzione di operazioni e-Business all’interno di un’azienda e in cooperazione fra aziende diverse. QoS significa in particolare in questo contesto livelli di affidabilità, performance e sicurezza. L’architettura OGSA, che sarà alla base dello sviluppo delle famiglie di prodotti IBM Websphere e Tivoli, fornirà per esempio
IBM e i Grid ServicesPoiché la caratteristica distintiva dei Grid è l’eterogeneità, la gestione di un Grid comporta maggiori complessità in termini di installazione, configurazione e manutenzione. Ciò è particolarmente rilevante nel contesto attuale di crescente inadeguatezza del numero di specialisti e architetti. La crescente complessità dei sistemi informativi, anche al di fuori del contesto dei Grid, congiuntamente al crescente squilibrio fra domanda e offerta di specialisti, spingono verso la creazione e l’adozione di tecnologie che rendano per quanto possibile i sistemi informativi simili al sistema nervoso autonomo. Più precisamente che si configurino da soli (self-configuring), si ottimizzino da soli (self-optimizing), si curino da soli (self-healing) e si proteggano da soli (self-protecting). Questi quattro requisiti sono la base sulla quale si fonda il programma eLiza di IBM per il raggiungimento dell’autonomic computing[28]. eLiza è un programma che coinvolge tutte le divisioni di IBM. Citiamo a titolo di esempio: · IBM Research con progetti quali Océano, Gryphon e Blue Gene · IBM Enterprise Server Group con l’Enterprise X-Architecture e il progetto di Heterogeneous Workload Management. La seguente figura riassume la strategia IBM per l’integrazione fra autonomic computing, Grid Computing e Web Services:
[1] Vedi http://www.sciam.com/askexpert/physics/physics11.html. [2] Vedi http://www.sciam.com/explorations/2001/021201humangenome/index.html. [3] Vedi “The Grid: Blueprint for a new Computing Infrastructure” di Ian Foster e Carl Kesselman [4] Per maggiori informazioni vedi “The Anatomy of the Grid. Enabling Scalable Virtual Organizations” di Ian Foster, Karl Kesselman e Steven Tuecke. [5] Per una classificazione più dettagliata dei Grid vedi “A Taxonomy and Survey of Grid Resource Management Systems” di Klaus Krauter, Rajkumar Bujja e Muthucumaru Maheswar. [6] Vedi http://www.mersenne.org/prime.htm. [7] Il toolkit Globus è stato sviluppato da Argonne National Laboratory’s Mathematics and Computer Science Division, University of Southern California’s Information Sciences Institute e the University of Chicago's Distributed Systems Laboratory. Per maggiori informazioni vedi http://www.globus.org. [8]Condor è stato sviluppato dall’University of Wisconsin-Madison (USA). Per maggiori informazioni vedi http://www.cs.wisc.edu/condor/. [9] Vedi http://www-unix.mcs.anl.gov/metaneos/nug30/ [10] Vedi http://legion.virginia.edu/. [11] Per maggiori informazioni vedi http://www.unicore.de/. [12] Per maggiori informazioni vedi “Report of the Steering Group of the LHC Computing Review”, CERN [13] Per maggiori informazioni vedi “A Computational and Data Challenge for future INFN Experiments; a GRID approach”, INFN [14] In questo punto ci riferiamo alla versione 1.1.5b.1 del toolki.t [15] Per maggiori informazioni vedi http://www.escience-grid.org.uk/. [16] Per maggiori informazioni vedi http://www.interact.nsf.gov/cise/descriptions.nsf/pd/DTF/. [17] Per maggiori informazioni sui web services vedi “Web Services Conceptual Architecture (WSCA 1.0)” di H. Kreger [18] Per maggiori informazioni vedi “Building Web Services with Java. Making sense of XML, SOAP, WSDL, and UDDI” di Steve Graham et al, SAMS, 2002 [19] Per maggiori informazioni vedi http://www.w3.org/TR/SOAP/. [20] Per maggiori informazioni vedi http://www.w3.org/TR/wsdl [21] Per maggiori informazioni vedi http://www.uddi.org/ [22] Per maggiori informazioni vedi http://www-4.ibm.com/software/solutions/webservices/pdf/WSFL.pdf [23] Per maggiori informazioni vedi “The Physiology of the Grid. An Open Grid Services Architecture for Distributed Systems Integration” di Ian Foster et al. [24] Vedi “The Physiology of the Grid” di Ian Foster et al. [25] Vedi “A Resource Management Architecture for Metacomputing Systems” di Karl Czajkowki et al. [26] Vedi “Grid Information Services for Distributed Resource Sharing” di Karl Czajkowski et al. [27] Vedi “A Security Architecture for Computational Grids” di Ian Foster et al. [28] Per maggiori informazioni vedi http://www.research.ibm.com/autonomic/. |
![]()
|
|||||||||
|
|
||||||||||
|
|
||||||||||