Sei sulla pagina 1di 7

CP pensareprogettareprogrammare n.

135 maggio 2004

Introduzione al Grid Computing


parte 1

di Manuele Simi
Il Grid Computing sembra nalmente pronto per uscire dagli ambienti accademici e fare il ` suo debutto nel mondo delle applicazioni business. Vediamo in breve cose e come funziona

Manuele Simi Laureato in Informatica. Si occupa di programmazione del software dal 1997 sviluppando prevalentemente applicazioni Web con tecnologie open source. I suoi principali interessi sono rivolti verso la programmazione Object Oriented e lIngegneria del Software.

pubblicato su WWW.INFOMEDIA.IT stampa digitale da Lulu Enterprises Inc. stores.lulu.com/infomedia


Infomedia
` Infomedia e limpresa editoriale che da quasi venti anni ha raccolto la voce dei programmatori, dei sistemisti, dei professionisti, degli studenti, dei ricercatori e dei professori dinformatica italiani. Sono pi` di 800 gli autori che hanno realizzato per le teu state Computer Programming, Dev, Login, Visual Basic Journal e Java Journal, molte migliaia di articoli tecnici, presentazioni di prodotti, tecnologie, protocolli, strumenti di lavoro, tecniche di sviluppo e semplici trucchi e stratagemmi. Oltre 6 milioni di copie distribuite, trentamila pagine stampate, fanno di questa impresa la pi` grande ed u inuente realt` delleditoria specializzata nel campo della a programmazione e della sistemistica. In tutti questi anni le riviste Infomedia hanno vissuto della passione di quanti vedono nella programmazione non solo la propria professione ma unattivit` vitale e un vero a divertimento. ` Nel 2009, Infomedia e cambiata radicalmente adottando ` un nuovo modello aziendale ed editoriale e si e organizzata attorno ad una idea di Impresa Sociale di Comunit` , a partecipata da programmatori e sistemisti, separando le attivit` di gestione dellinformazione gestite da un board a comunitario professionale e quelle di produzione gesti` te da una impresa strumentale. Questo assetto e in linea con le migliori esperienze internazionali e rende Infomedia ancora di pi` parte della Comunit` nazionale degli u a sviluppatori di software. ` Infomedia e media-partner di manifestazioni ed eventi in ambito informatico, collabora con molti dei pi` imporu tanti editori informatici italiani come partner editoriale e fornitore di servizi di localizzazione in italiano di testi in lingua inglese.

Limpaginazione automatica di questa rivista e realizzata al ` 100% con strumenti Open Source usando OpenOffice, Emacs, BHL, LaTeX, Gimp, Inkscape e i linguaggi Lisp, Python e BASH

For copyright information about the contents of Computer Programming, please see the section Copyright at the end of each article if exists, otherwise ask authors. Infomedia contents is 2004 Infomedia and released as Creative Commons 2.5 BY-NC-ND. Turing Club content is 2004 Turing Club released as Creative Commons 2.5 BY-ND. Le informazioni di copyright sul contenuto di Computer Programming sono riportate nella sezione Copyright alla ne di ciascun articolo o vanno richieste direttamente agli autori. Il contenuto Infomedia e 2004 Infome` dia e rilasciato con Licenza Creative Commons 2.5 BYNC-ND. Il contenuto Turing Club e 2004 Turing Club ` e rilasciato con Licenza Creative Commons 2.5 BY-ND. Si applicano tutte le norme di tutela dei marchi e dei segni distintivi. ` E in ogni caso ammessa la riproduzione parziale o totale dei testi e delle immagini per scopo didattico purch e vengano integralmente citati gli autori e la completa identicazione della testata. Manoscritti e foto originali, anche se non pubblicati, non si restituiscono. Contenuto pubblicitario inferiore al 45%. La biograa dellautore riportata nellarticolo e sul sito www.infomedia.it e di norma quella disponibi` le nella stampa dellarticolo o aggiornata a cura dellautore stesso. Per aggiornarla scrivere a info@infomedia.it o farlo in autonomia allindirizzo http://mags.programmers.net/moduli/biograa

web

Introduzione al Grid Computing


di Manuele Simi

Prima Parte

Il Grid Computing sembra finalmente pronto per uscire dagli ambienti accademici e fare il suo debutto nel mondo delle applicazioni business. Vediamo in breve cos e come funziona

l Grid Computing una tecnologia emergente che si propone di far evolvere la rete (Internet) da una piattaforma di comunicazione ad una piattaforma di lavoro. Da alcuni anni universit ed istituti di ricerca di tutto il mondo stanno lavorando su questo nuovo modello computazionale; lo stato dellarte del Grid Computing si sta avvicinando ad una certa maturit e per questo motivo da qualche tempo anche il mondo dellindustria ed i grandi vendor (primi tra tutti IBM e Oracle) si sono avvicinati a questa tecnologia, percependone le potenzialit ed i vantaggi. Dopo alcuni anni di studi teorici e di implementazioni prototipali si finalmente giunti alla realizzazione di una piattaforma stabile, ben organizzata e molto pi vicina come modello di programmazione a quelle di altri tool presenti sul mercato. In questo articolo cercheremo di capire quali sono i suoi obiettivi e le sue ambizioni future, ripercorrendone la storia e presentandone lo stato attuale. Nel successivo ci concentreremo su una sua implementazione pratica e svilupperemo un piccolo esempio di servizio Grid.

successivamente sono stati condivisi i documenti (WWW, FTP); infine sono state condivise le applicazioni (SOAP, DCOM, Web Service, ecc.). Lultimo passo di questa evoluzione condividere tutto il resto, ovvero il Grid. Lidea che sta alla base del Grid Computing semplice: con il Grid Computing possibile unire un insieme eterogeneo di risorse (pool di server, storage systems, networks, applicazioni, ecc.) in un ampio sistema per fornire qualities of services non banali per qualsiasi tipo di applicazione. Lutente finale percepir il tutto come un unico (virtuale) sistema computazionale. Si parla in questo senso di creazione di griglie computazionali. Il concetto chiave quello di mettere insieme risorse non soggette ad un controllo centrale, ma capaci loro stesse di negoziare le policy che ne permettono lintegrazione e la coordinazione su una griglia. Linsieme degli individui e delle istituzioni definiti dalle risorse e dalle regole di condivisione che in un dato momento fanno parte di una griglia, viene chiamato Virtual Organization [1]. Tale termine sembra pi che mai appropriato, in quanto rende bene lidea del primo obiettivo di una griglia computazionale: entit diverse decidono di mettere reciprocamente a disposizione una parte delle proprie risorse, formando appunto una organizzazione virtuale, per avere a disposizione una infrastruttura che altrimenti non potrebbero creare singolarmente, a meno di sostenere costi elevati. Viene stimato che mediamente in una azienda le capacit di calcolo, di banda, di storage ed applicative sono utilizzate al 5% delle reali potenzialit. Il Grid Computing si inserisce in questo contesto offrendo un modello concettuale e pratico (tramite le sue implementazioni) che permette di sfruttare queste capacit sottoutilizzate. Linteresse verso le infrastrutture Grid ormai globale ed testimoniato dai crescenti investimenti su di esse, sia in ambito istituzionale che in quello business. Nel periodo 2000-2002, nellambito del V Programma Quadro, lUnione Europea ha finanziato progetti sul Grid per un totale di 58 milioni di Euro. Il VI Programma Quadro, che coprir il periodo 2002-2006, prevede finanziamenti pi che raddoppiati, arrivando ad un totale di 125 milioni di Euro [5]. Sempre restando in ambito europeo, il solo programma e-Science del Regno Unito prevede di investire nei prossimi anni 118 milioni di sterline in tecnologie Grid [6]. Nella Tabella 1 sono riportati i principali progetti che
Computer Programming n. 135 - Maggio 2004

Le idee alla base del Grid


Per spiegare cosa il Grid e quali sono gli obiettivi che si propone di risolvere, si ricorre spesso alla seguente analogia: nella vita di tutti i giorni, quando c la necessit di avere a disposizione energia elettrica, nessuno pensa di produrla in proprio, semplicemente si inserisce la spina nella presa prelevando lenergia di cui si ha bisogno dalla rete elettrica, ignorandone completamente lorigine. Prendiamo invece adesso in considerazione il bisogno di risorse di calcolo ed applicative. In questo caso non c questa semplicit di utilizzo, ma ciascuno provvede in proprio a creare e gestire singolarmente le risorse di cui ha bisogno, sia nel caso di una utenza domestica (un PC), sia nel caso di sistemi di calcolo pi complessi. La storia dellinformatica scandita da una progressiva condivisione: inizialmente sono stati condivisi i computer (TCP/IP, Internet);

Manuele Simi

msimi@infomedia.it

laureato in Informatica. Si occupa di programmazione del software dal 1997 sviluppando prevalentemente applicazioni Web con tecnologie open source. I suoi principali interessi sono rivolti verso la programmazione Object Oriented e lIngegneria del Software.

60

PROGRAMMING
TABELLA 1
I principali progetti sul Grid Computing

Progetto CROSSGRID DATAGRID DATATAG EUROGRID Grid Physics Network GridCenter GRIDLAB GRIDSTART GRIP Information Power Grid MAMMOGRID MyGrid NEES TeraGrid WorldGrid

Sito web www.eu-crossgrid.org www.eu-datagrid.org datatag.web.cern.ch/datatag www.eurogrid.org www.griphyn.org www.grids-center.org www.gridlab.org www.gridstart.org www.grid-interoperability.org www.ipg.nasa.gov mammogrid.vitamib.com www.mygrid.org.uk www.neesgrid.org www.teragrid.org www.ivdgl.org/demo/worldgrid

Principale finanziatore UE UE UE UE US National Science Foundation US National Science Foundation UE UE UE NASA UE Regno Unito US National Science Foundation US National Science Foundation US National Science Foundation, UE

hanno finora beneficiato di investimenti in tecnologia Grid ed i relativi link. Ma anche fuori dal mondo della ricerca le cose si stanno evolvendo. Unidea dellimpatto che avr il Grid nel mercato del software ci viene data al nome dellultima versione del DBMS di Oracle: dopo Oracle 9i (dove la i stava per Internet), la release successiva si chiamer Oracle 10g, dove la g sta proprio per Grid.

Levoluzione del Grid


Il termine Grid, utilizzato con riferimento ad una infrastruttura tecnologica distribuita, stato introdotto allinizio degli anni Novanta. Da allora lo studio della costruzione di una piattaforma Grid ha fatto molti progressi e subto una notevole evoluzione. Storicamente possiamo suddividere questa evoluzione in tre periodi. La prima fase copre la prima parte degli anni Novanta; in questo periodo erano in corso negli Stati Uniti progetti per collegare grossi centri di calcolo dedicati al supercomputing al fine di poter fornire una maggiore potenza computazionale per applicazioni che richiedevano alte prestazioni. Tali progetti, pur partendo da approcci diversi, si sono trovati ad affrontare ostacoli comuni come la gestione delle risorse, i protocolli di comunicazione e la manipolazione remota di dati. Prendendo atto di questa confluenza di problematiche e del successo di questi progetti, in particolare del progetto I-WAY [2], nata la fase successiva.

Linizio di questa fase coincide con luscita di un celebre libro diventato una pietra miliare del Grid Computing [3]. Questo testo ha per primo individuato e teorizzato le basi necessarie per la costruzione di una griglia computazionale nel senso comunemente inteso oggi, spaziando dalla necessit di costruire reti ad alta velocit alla esigenza di un software middleware che fornisca gli strumenti principali per la creazione e la gestione di una griglia (gestione della sicurezza, sistemi informativi, sistemi di brokerage, servizi di comunicazione, scheduler). Sono state inoltre indicate tre propriet fondamentali che avrebbero dovuto distinguere le griglie di seconda generazione dalle precedenti: scalabilit; eterogeneit; adattabilit. In questa fase stata anche formulata e formalizzata larchitettura di un sistema Grid. Come spesso capita nelle architetture network-oriented, essa articolata in una organizzazione a livelli. In Figura 1 riportata la struttura tipica di una architettura Grid ed il suo confronto con lo stack di protocolli Internet. Il livello Fabric il livello di base ed costituito dalle risorse locali ad un sistema che un soggetto decide di condividere. Come gi descritto in precedenza, queste possono essere costituite da risorse di calcolo, storage system, sensori, file system, reti, applicazioni, ecc. Affinch una risorsa possa entrare a far parte della griglia deve esportare interfacce che permettano di indagarne la struttura, lo stato e le principali propriet. Sopra le risorse previsto il livello di Connectivity che contiene i protocolli di autenticazione e comunicazione, che permettono di scambiare dati ed informazioni tra differenti livelli Fabric. Questo un livello particolarmente critico dellarchitettura, poich in esso devono essere gestite tutte le problematiche di sicurezza che inevitabilmente nascono quando una organizzazione decide di mettere a disposizione una parte delle proprie risorse in una griglia. Il livello successivo, il Resource, si occupa di gestire le fasi di inizializzazione, monitoring, condivisione, accounting e pagamento delle operazioni sulle singole risorse, utilizzando i protocolli del livello 61

FIGURA 1

Linfrastruttura di una architettura Grid a confronto con i protocolli della architettura di Internet

Computer Programming n. 135 - Maggio 2004

web
Connectivity. I servizi di questo livello utilizzano inoltre direttamente le funzioni del livello Fabric per accedere e controllare le risorse locali. Mentre il livello Resource focalizzato sulla gestione di una singola risorsa, il livello Collective ha il compito di gestire le interazioni tra gruppi diversi di risorse. Qui si collocano ad esempio servizi di brokering, scheduler, sistemi di workload management, servizi di discovery di risorse e servizi, ecc. Infine, al top della nostra architettura, troviamo il livello Application costituito dalle applicazioni utente. Parallelamente alla formalizzazione delle teorie ed architetture, in questa fase sono stati avviati una serie di progetti finalizzati alla creazione di middleware general purpose da utilizzare come base per le Grid. Lobiettivo quello di produrre un software capace di ricoprire il ruolo di collante fra tutti i nodi della griglia, permettendo in questo modo agli sviluppatori di applicazioni grid-aware di concentrarsi solo sulle funzionalit specifiche dei loro software. Tra queste iniziative, la pi importante e di maggiore successo sicuramente il progetto Globus [7], avviato nel 1996 e coordinato dallArgonne National Laboratory del Dipartimento dellEnergia degli Stati Uniti. Il risultato pi importante di questo progetto stato la realizzazione del Globus Toolkit (GT), una implementazione open-source della architettura Grid, che si progressivamente imposto come standard de facto nel mondo delle tecnologie Grid. Allinizio del 2001 iniziato il terzo stadio dellevoluzione del Grid Computing con la definizione di un nuovo modello di architettura, lOpen Grid Services Architecture (OGSA). ne due caratteristiche molto utili alla nuova visione service-oriented: la possibilit di effettuare dinamicamente il discovery dei servizi; lacquisizione gratuita di tutta una serie di standard, tool e servizi esistenti che avrebbero permesso di non ripartire da zero con un nuovo modello. In pratica luso dei Web Service avrebbe messo fin da subito a disposizione un framework semplice per descrivere, incapsulare, pubblicare ed accedere servizi. I progettisti di OGSA hanno quindi basato su questa tecnologia la definizione della nuova generazione di sistemi Grid. OGSA pone al centro della nuova architettura Grid il concetto di Grid Service, definendo che cosa , che cosa deve essere capace di fare e su quali tecnologie si dovrebbe basare. Essa tuttavia non fornisce specifiche tecniche e dettagliate necessarie per implementare i nuovi servizi: un modello concettuale che illustra come dovrebbe funzionare una architettura Grid a servizi. Per la definizione delle specifiche tecniche e dei nuovi standard necessari alla creazione delle nuove griglie computazionali, stato creato il Global Grid Forum (GGF) [8]. Il GGF un consorzio internazionale formato da oltre 400 organizzazioni di pi di 50 Paesi, tra cui le maggiori comunit di ricercatori ed i principali leader dellindustria del software (IBM, Microsoft, HP, Cisco, Sun); questo consorzio si propone di promuovere e supportare lo sviluppo, limplementazione e la diffusione di tecnologie ed applicazioni Grid tramite la definizione e documentazione di specifiche, standard, esperienze e linee guida. Uno dei risultati pi importanti prodotti dal GGF stata la definizione della specifica Open Grid Services Infrastructure (OGSI) [9]. Questa specifica descrive i Grid Service come estensione dei Web Service, indicando tutte le interfacce che un servizio deve esportare per essere capace di funzionare su una griglia.

Lintroduzione di OGSA
I middleware prodotti nella seconda fase sono serviti a validare le nuove teorie, ma hanno anche mostrato i limiti di alcune scelte. Essi rappresentavano soluzioni ad hoc, composte da componenti isolati, di natura diversa e difficilmente riutilizzabili in altri contesti o sostituibili con nuove soluzioni. La comunit Grid stava invece andando nella direzione opposta, rendendosi conto che per affrontare e sfruttare le nuove opportunit offerte da questa tecnologia era necessario avere standard che facilitassero lintegrazione e linteroperabilit dei sistemi. Il primo passo di questa nuova concezione stato fatto nel 2001, con lintroduzione di una visione orientata ai servizi delle infrastrutture Grid [4]. In quel periodo la tecnologia dei Web Service stava acquistando popolarit, in particolare metteva a disposizioTABELLA 2

I Grid Service
Un Grid Service viene definito dai progettisti di OGSA come A Web Service that provides a set of well-defined interfaces and that follows specific conventions. Fin da questa definizione quindi chiaro che un Grid Service si presenta sostanzialmente come un Web Service che implementa una serie di interfacce ben definite e che segue particolari regole. Uno dei principali limiti del paradigma dei Web Service

Le interfacce definite dalla Open Grid Services Infrastructure

portType GridService HandleResolve NotificationSource NotificationSubscription NotificationSink Factory ServiceGroup ServiceGroupRegistration ServiceGroupEntry

Descrizione Definisce le funzionalit di base che un Grid Service deve implementare Fornisce un metodo per il mapping tra il GSH ed il GSR del servizio Permette ad altri servizi di registrarsi per la notifica di messaggi presso il servizio che la implementa La registrazione alla notifica di messaggi presso un servizio comporta la creazione di una istanza di tipo subscription del servizio che deve implementare questa interfaccia Definisce loperazione che viene richiamata dalla sorgente delle notifiche per linvio dei messaggi al servizio che la implementa Fornisce le funzionalit standard per la creazione e la gestione delle istanze del servizio un servizio che mantiene informazioni su un gruppo di istanze di altri servizi. Questa interfaccia permette ai client la creazione di gruppi di servizi Permette la registrazione e la gestione dei servizi in un ServiceGroup Definisce le relazione tra listanza di un servizio e la sua partecipazione dentro un ServiceGroup

62

Computer Programming n. 135 - Maggio 2004

PROGRAMMING
<wsdl:definitions xmlns:xs=http://www.w3.org/2001/XMLSchema xmlns:wsdl=http://schemas.xmlsoap.org/wsdl xmlns:gwsdl=http://www.gridforum.org/namespaces/2003/03/OGSI xmlns:sd=http://www.gridforum.org/ namespaces/2003/03/serviceData> <wsdl:types> <xs:schema/> </wsdl:types> <wsdl:message name=addParam> <wsdl:part name=value type=xs:positiveInteger/> </wsdl:message> <gwsdl:portType name=addPortType extends=ogsi:GridService> <wsdl:operation name=addToValue> <wsdl:input message=addParam/> </wsdl:operation> <sd:serviceData name=myValue type=xs:positiveInteger minOccurs=1 maxOccurs=1 mutability=mutable> <sd:documentation> SDE textual description... </sd:documentation> </sd:serviceData> </gwsdl:portType> </wsdl:definitions>

RIQUADRO 1 Un esempio di file GWSDL

derivandolo da una classe che funge da scheletro del servizio (approccio tradizionale), oppure utilizzando un modello di delega dove le invocazioni ai metodi del servizio sono gestite da una serie di classi chiamate operation providers; lifecycle management: i servizi Grid forniscono strumenti, come le funzioni di callback, che permettono ad altri servizi di ricevere informazioni in speciali fasi della vita di un Grid Service, per intraprendere le opportune azioni correttive; Service Data: un Grid Service pu avere associato ad esso una serie di informazioni, i Service Data Element (SDE), che lo descrivono. Queste non devono essere confuse con il GSR del servizio che ne descrive i dettagli dei metodi e dei protocolli di accesso. I SDE descrivono le caratteristiche e le informazioni del servizio che possono variare a runtime. Essi sono una diretta conseguenza della natura stateful dei servizi Grid; sistema di notifiche: un Grid Service pu essere configurato come notification source in modo che se si verificano cambiamenti nel servizio, altri servizi, chiamati notification sinks, ricevono notifica di questi cambiamenti. La specifica OGSI ha formalizzato le estensioni ai Web Service in termini di portType, ossia elementi WSDL che descrivono collezioni di operazioni che definiscono linterfaccia astratta di un Web Service.

che la comunit Grid ha tentato di superare con OGSA, stata la natura stateless e non transiente (cio temporanea) dei servizi. I Web Service, infatti, non hanno memoria tra una invocazione e laltra (almeno a livello di standard) ed inoltre essi sopravvivono alle invocazioni dei propri client, con lindesiderata conseguenza che il loro stato resta potenzialmente accessibile a tutti i successivi client. I servizi Grid superano queste limitazioni introducendo il concetto di service instance. Quando un client deve richiedere luso di un servizio A, esso non comunica con il servizio desiderato ma con un altro servizio, chiamato Factory, incaricato di creare e mantenere le istanze del servizio A. Al momento della richiesta, il client pu decidere se creare una nuova istanza di A, utilizzarne una preesistente e conosciuta oppure lasciar decidere alla Factory. In risposta il client ricever dalla Factory un Grid Service Handle (GSH), ovvero un URI che identifica univocamente listanza con cui dovr interagire. Il GSH tuttavia indica soltanto dove si trova il servizio A ma non fornisce alcuna informazione su come comunicare con esso. Per questo motivo necessario che il client, una volta ottenuto il service handle dalla Factory, richieda al servizio il suo Grid Service Reference (GSR) che contiene le informazioni necessarie per accedere al servizio stesso. Dal punto di vista dello standard un GSR pu avere diverse forme, ma in pratica, poich la comunicazione con un Grid Service avviene tramite SOAP, esso di solito costituito da un documento WSDL. Grazie a questo meccanismo, le istanze dei servizi riescono a mantenere uno stato tra diverse invocazioni; inoltre, al momento della creazione di una istanza, un client pu specificare il tempo di vita della nuova istanza, impedendo in questo modo laccesso ad informazioni che non desidera condividere con altri client. Non tutti i servizi implementano il meccanismo della Factory; in questo caso si parla di servizi persistenti. La Factory soltanto una delle evoluzioni rispetto ai Web Service introdotte da OGSA. Vediamo brevemente quali sono le altre: implementazione secondo due possibili approcci: un Grid Service pu essere implementato in due modi,
Computer Programming n. 135 - Maggio 2004

Lobiettivo far evolvere


la rete da una piattaforma di comunicazione ad una piattaforma di lavoro
La Tabella 2 riporta lelenco completo di queste interfacce. Esse costituiscono una estensione a WSDL 1.1 e per questo sono state inserite in un nuovo namespace chiamato gwsdl. In realt, tale namespace destinato a scomparire, in quanto le nuove caratteristiche di WSDL definite in OGSI saranno incorporate nel nuovo WSDL 2.0, ancora in fase di definizione presso il W3C [10]. Tra questi nuovi aspetti segnaliamo due funzionalit di particolare rilevanza che riguardano la definizione di una portType: una portType pu essere costruita estendendo la definizione di unaltra portType; la definizione di una portType in WSDL 1.1 descrive soltanto operazioni, mentre una portType OGSI permette di descrivere anche i Service Data Element associati allinterfaccia. Nella attuale terminologia, un file WSDL che descrive un servizio utilizzando queste estensioni viene definito un file GWSDL (anche questo termine probabilmente scomparir con il rilascio della specifica WSDL 2.0). Nel Riquadro 1 riportato un esempio di file GWSDL che descrive un servizio che fornisce una operazione addToValue() per incrementare un valore mantenuto nello stato interno del servizio e permette di accedere a tale valore tramite il Service Data Element myValue. 63

web
Affinch un Web Service possa essere considerato anche un Grid Service, esso deve implementare almeno linterfaccia GridService. Questa interfaccia pu essere vista come lanalogo della classe base Object di un linguaggio di programmazione ad oggetti. Tramite linterfaccia GridService possibile: accedere alle propriet di introspezione del servizio, richiedendo ad esempio quali portType implementa; gestire il lifecycle del servizio; accedere ai Service Data Element per conoscere lo stato del servizio. Un esempio di utilizzo dellultima funzionalit ci viene fornito dal servizio descritto dal Riquadro 1: il valore interno incrementato non viene recuperato tramite una operazione di tipo getValueX(), ma acceduto, attraverso il SDE myValue, tramite le funzionalit della interfaccia ogsi:GridService estesa dalla interfaccia addPortType del servizio. La Figura 2 mostra la struttura di un generico Grid Service riassumendo le caratteristiche descritte in questa sezione.

PROGRAMMING

FIGURA 2

Struttura di un Grid Service

Conclusioni
In questa prima parte abbiamo visto una breve introduzione al Grid Computing e presentato lo stato attuale di questa tecnologia. In particolare abbiamo visto come larchitettura OGSA abbia permesso un salto di qualit nella materia, permettendo di passare da un sistema a servizi isolati al concetto di una infrastruttura che funge da container per servizi ben definiti. Il Globus Project si dimostrato ancora una volta pioniere nel recepimento della architettura OGSA nel suo software. Il Globus Toolkit, giunto alla versione 3, si propone oggi come implementazione di riferimento delle specifiche OGSI (e che verosimilmente continuer ad esserlo anche nelle sue future evoluzioni). Nel prossimo articolo analizzeremo le caratteristiche principali della piattaforma Globus e svilupperemo un piccolo esempio di Grid Service con gli strumenti messi a disposizione da questo toolkit.

Uno sguardo al futuro


Fin dalla sua nascita il Grid Computing sempre stato un settore dellinformatica in continua evoluzione, sempre alla ricerca delle migliori tecnologie e standard che ne supportassero le basi teoriche. La nostra breve panoramica sulla materia non pu quindi prescindere da un accenno su quelli che saranno i suoi futuri sviluppi. Nella sezione precedente abbiamo visto come i Grid Service estendano i Web Service, permettendo di racchiudere in ununica entit logica lo stato di un servizio e linterfaccia per accedervi. Questa caratteristica, valida e funzionale per molti aspetti, si sta rivelando come il maggiore ostacolo per lintegrazione di strumenti per lo sviluppo dei servizi per griglia negli attuali tool che gi gestiscono e semplificano la creazione di Web Service (come ad esempio WebSphere Application Server, che gi nella versione 5.0.2 Enterprise Edition ha introdotto alcune funzionalit Grid). Visto che il successo di una tecnologia si basa soprattutto sulla sua diffusione e sulla disponibilit di strumenti che ne semplificano lutilizzo, le future implementazioni di OGSA andranno nella direzione di separare lo stato dalla interfaccia che consente di accedervi, permettendo una maggiore convergenza tra i Grid Service ed i Web Service. A questo scopo, IBM, HP e Globus Alliance hanno recentemente annunciato una roadmap con gli step che verranno compiuti nei prossimi anni dai progettisti di architetture Grid per avvicinarsi maggiormente al mondo dei Web Service. Le nuove specifiche (raccolte sotto il nome di Web Service Resource Framework) non rivoluzioneranno i principi che stanno alla base delle architetture Grid, ma semplicemente tenteranno di riorganizzare le specifiche OGSI, in modo da introdurre standard comuni riutilizzabili in entrambe le tecnologie. 64

BIBLIOGRAFIA & RIFERIMENTI


[1] I. Foster, C. Kesselman e S. Tuecke The Anatomy of the Grid: Enabling Scalable Virtual Organizations, Intl J. Supercomputer Applications, 2001 [2] I. Foster, J. Geisler, W. Nickless, W. Smith e S. Tuecke Software Infrastructure for the I-WAY High Performance Distributed Computing Experiment in Proc. 5th IEEE Symposium on High Performance Distributed Computing. pp. 562-571, 1997 [3] I. Foster e C. Kesselman The Grid: Blueprint for a New Computing Infrastructure, Morgan Kaufmann, 1998 [4] I. Foster, C. Kesselman, J. Nick. e S. Tuecke The Physiology of the Grid: Open Grid Services Architecture for Distributed Systems Integration, http://www.gridforum. org/ogsi-wg/drafts/ogsa_draft2.9_2002-06-22.pdf [5] EU Sixth Framework Programme for research http://fp6.cordis.lu/fp6/home.cfm [6] UK e-Science Programme http://www.esciencegrid.org.uk [7] The Globus Alliance http://www.globus.org [8] GGF http://www.gridforum.org [9] Open Grid Service Infrastructure Working Group http://www.gridforum.org/ogsi-wg/ [10] WSDL 2.0 http://www.w3.org/TR/wsdl20/

Computer Programming n. 135 - Maggio 2004