Antonio Salvati

Lavoro di tesi

Il nostro lavoro di tesi, svolto insieme a Luigi Bifulco, è stato quello di estendere un proxy web che fornisce servizi per la modifica e la personalizzazione di pagine web: il proxy SISI, rendendolo distribuito e quindi aumentandone le potenzialità. Abbiamo utilizzato un paradigma di calcolo distribuito: il Grid Computing.

I sevizi offerti dal proxy sono servizi più o meno costosi che agiscono sulle pagine web, modificano codice HTML, immagini e fogli di stile CSS. in precedenza erano presenti sul proxy stesso come moduli di Apache, quindi un solo nodo si occupava di gestire e soddisfare tutte le richieste. Esportando i servizi su Grid abbiamo alleggerito il carico del proxy, che ora si occupa solo di smistare le richieste ai vari servizi distribuiti, in base al profilo dell'utente decide quali servizi invocare, in base al carico dei nodi sui quali è presente il servizio da invocare decide dove invocarlo.

Lo strumento utilizzato per creare i nostri servizi distribuiti è stato Globus Toolkit, che implementa le specifiche WSRF (specifiche che standardizzando i Grid Services), mentre il proxy è diventato in pratica un client dei servizi che abbiamo realizzato, il suo compito infatti è divenuto quello di ricevere le richieste dai web browser e applicare i servizi effettuando chiamate remote a Grid Services e non più chiamando moduli propri sullo stesso nodo.

Le maggiori problematiche affrontate e risolte sono state appunto quelle di mettere in comunicazione due sistemi molto differenti tra loro: da un lato un proxy in mod_perl basato su Apache Web Server e dall'altra Globus Toolkit, un'implementazione delle specifiche riguardanti il Grid Computing in Java. Ciò è stato possibile poiché la comunicazione lato Globus Toolkit prevedeva l'uso di messaggi SOAP, essendo i Grid Services un'estensione dei Web Services, e quindi ci è stato possibile invocare i servizi realizzati creando dei messaggi SOAP ad hoc per l'invocazione di Grid Services. Essendo i servizi ereditati scritti in mod_perl si è preferito tenere il codice Perl ed incorporarlo nei servizi Grid: in pratica i Grid Services realizzati utilizzano gli script Perl già esistenti. Ciò è stato fatto per mantenere i servizi identici nel loro comportamento ed evitare il rischio di trovare incongruenze tra i nuovi e i vecchi servizi. Inoltre l'invocazione dei suddetti script avviene per mezzo di un interprete Perl persistente, emulando così il comportamento di mod_perl ed evitando di appesantire il nodo per le troppe chiamate ad un interprete perl classico (che viene avviato per ogni invocazione di ogni script).

Seminari