Upload
valerio-campana
View
217
Download
1
Embed Size (px)
Citation preview
Università di Pisa
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica
Tesi di Laurea
Progettazione e realizzazione di un’interfaccia Web per un servizio di consistenza su architetture Grid
Candidato Emanuele Fambrini Relatori Prof. Andrea Domenici, Prof. Cinzia Bernardeschi, Ing. Gianni Pucciani
Progetto e realizzazione di un'interfaccia Web per un servizio di consistenza su architetture Grid 2
Interfaccia Web per un servizio di consistenza su Grid• E’ stata sviluppata un’interfaccia Web per un servizio di consistenza dati su
Grid• L’obbiettivo è fornire agli utenti e amministratori del servizio un’interfaccia
più amichevole rispetto a quella attualmente esistente, a linea di comando• L’interfaccia è stata realizzata sfruttando le tecnologie:
– Web Services– Java Server Pages
• Java Beans• Expression Language
– Globus Toolkit • Requisiti di sicurezza• Requisiti, architettura e struttura del progetto• Messa in opera ed utilizzo
Progetto e realizzazione di un'interfaccia Web per un servizio di consistenza su architetture Grid 3
Griglie Computazionali
Il termine “Grid” (griglia) nasce da un paragone con la rete di distribuzione dell’energia elettrica.
Una “Grid” è un’infrastruttura per condividere risorse computazionali e capacità di memorizzazione dei dati.
Così come la rete elettrica distribuisce energia proveniente da diverse fonti, “Grid” fornisce risorse di calcolo e dati provenienti da diverse organizzazioni geograficamente sparse.
Progetto e realizzazione di un'interfaccia Web per un servizio di consistenza su architetture Grid 4
Replica Consistency Service CONStanza/1
• Sviluppato presso l’INFN www.pi.infn.it/constanza/
• Garantisce la consistenza fra le repliche in un ambiente Grid
• Replicazione file e database• Infrastruttura di comunicazione sviluppata
utilizzando il toolkit gSOAP• Accessibile come Web Service
Progetto e realizzazione di un'interfaccia Web per un servizio di consistenza su architetture Grid 5
Replica Consistency Service CONStanza/2
Le componenti principali di CONStanza sono:• Global Replica Consistency Service (GRCS)
– componente prioritaria e principale interfaccia verso gli utenti finali
• Local Replica Consistency Service (LRCS)– registra, gestisce, aggiorna le repliche a livello locale
• Replica Consistency Catalogue (RCC)– memorizza tutte le informazioni su tutte le repliche,
come lo stato in cui si trovano e la loro localizzazione
Progetto e realizzazione di un'interfaccia Web per un servizio di consistenza su architetture Grid 6
Architettura
Progetto e realizzazione di un'interfaccia Web per un servizio di consistenza su architetture Grid 7
Subpackage Client
• Applicazioni cliente per il GRCS– Permettono l’esecuzione dei metodi remoti
definiti nel file header WRCS.gh
• Applicazioni cliente per il LRCS– Permettono l’esecuzione dei metodi remoti
definiti nel file header WLRCS.gh
• Possono essere invocate attraverso una Command Line Interface
Progetto e realizzazione di un'interfaccia Web per un servizio di consistenza su architetture Grid 8
Java Server Pages e Java BeansJSP:• Evoluzione delle Servlets• Si presentano come
combinazione di testo e tag
• Caratteristiche:– Portabilità– Riutilizzo del codice– Facile separazione della
parte logica dalla presentazione (look-and-feel)
Java Beans:• Costruttore vuoto• Non deve avere variabili di
stato public• Per accedere alle variabili
si utilizzano metodi di get pubblici (getNomeVariabile)
• Per settare le variabili si utilizzano metodi di set pubblici (setNomeVaribile)
Progetto e realizzazione di un'interfaccia Web per un servizio di consistenza su architetture Grid 9
Web Services
• Un Web Service gestisce interazioni program-to-program via Web
• Alla base della comunicazione dei Web Service c’è SOAP, un protocollo basato su XML
Progetto e realizzazione di un'interfaccia Web per un servizio di consistenza su architetture Grid 10
Web Service Description Language
• Linguaggio utilizzato per specificare la descrizione di un servizio Web
• Approccio strutturato per definire le interfacce dei servizi Web
• Facilita l’implementazione ed il mantenimento dei servizi
• Facilita l’utilizzo dei servizi
Progetto e realizzazione di un'interfaccia Web per un servizio di consistenza su architetture Grid 11
Toolkit gSOAP e WSDL2Java
gSOAP:• Facilita la realizzazione di
Web Service in C/C++ e di applicazioni cliente partendo dalla descrizione WSDL del servizio
• Permette di generare automaticamente la descrizione WSDL partendo dai file header che definiscono le funzionalità del servizio Web
WSDL2Java:
• Tool di Apache Axis
• Genera una serie di classi Java attraverso cui accedere al servizio descritto dal file WSDL
• Le corrispondenze tra tipi WSDL e Java seguono la specifica JAX-RPC
Progetto e realizzazione di un'interfaccia Web per un servizio di consistenza su architetture Grid 12
Requisiti di progetto• L’utente attraverso un browser web
può invocare i metodi cliente relativi al GRCS o al LRCS di CONStanza
• L’utente attraverso un’interfaccia web sceglie la funzione da eseguire ed imposta i dovuti parametri di ingresso attraverso form di input
• Ogni metodo remoto sia relativo al GRCS che al LRCS ha un’interfaccia web formata da una serie di form
• Ogni metodo ha una pagina web che mostra i risultati
Progetto e realizzazione di un'interfaccia Web per un servizio di consistenza su architetture Grid 13
Funzionalità
I metodi
remoti del
RCS CONStanza
vengono chiamati
attraverso classi
JavaBean cliente
Progetto e realizzazione di un'interfaccia Web per un servizio di consistenza su architetture Grid 14
Struttura
• Si hanno due packages principali:– Grcs per le classi riguardanti il
GRCS– Lrcs per le classi relative al
LRCS
• Il package Grcs è composto da tanti sottopackages, uno per ogni funzione cliente del GRCS di CONStanza
Progetto e realizzazione di un'interfaccia Web per un servizio di consistenza su architetture Grid 15
gSOAP utilizzo
• Il compilatore soapcpp2 elabora i file header che definiscono le funzionalità cliente di CONStanza:– soapcpp2 WRCS.gh
– soapcpp2 WLRCS.gh
• Sono generate in automatico le descrizioni WSDL dei metodi remoti:– WRCS.wsdl
– WLRCS.wsdl
Progetto e realizzazione di un'interfaccia Web per un servizio di consistenza su architetture Grid 16
WSDL2Java utilizzogenera le seguenti classi:• Un’interfaccia Java per accedere ai metodi remoti
• Una classe Stub
• Un’interfaccia del servizio
• Una implementazione del servizio (locator)
Progetto e realizzazione di un'interfaccia Web per un servizio di consistenza su architetture Grid 17
Diagramma delle classiPer ogni metodo del GRCS e del LRCS si ha una struttura
di classi formata da:• Una classe
JavaBean che permette di chiamare un metodo specifico
• Una classe GsiPort che gestisce gli aspetti della sicurezza nella comunicazione con il RCS
• Le classi generate con il tool WSDL2Java
Progetto e realizzazione di un'interfaccia Web per un servizio di consistenza su architetture Grid 18
Sicurezza
• Grid Security Infrastructure (GSI)– Si usano le librerie messe a disposizione dal
Commodity Grid (CoG) Kit fornito dal progetto Globus
• HTTPS con autenticazione sia del server che del cliente attraverso certificati
• Definizione di una propria libreria di Tag JSP per effettuare la convalida dei dati immessi nelle form di input
Progetto e realizzazione di un'interfaccia Web per un servizio di consistenza su architetture Grid 19
Architettura• Design Pattern MVC• Modello: logica e dati dell’applicazione• Vista: responsabile della visualizzazione
delle informazioni all’utente• Controllore: responsabile di gestire
l’input prodotto dall’utente
Per ogni metodo remoto del GRCS o LRCS si hanno:• Una pagina JSP svolge il ruolo di Controllore permettendo
l’inserimento di parametri di input attraverso form• Una pagina JSP svolge il ruolo di Vista, visualizzando il risultato della
chiamata all’utente• Una classe JavaBean svolge il ruolo di Modello permettendo di
chiamare un metodo del RCS
Progetto e realizzazione di un'interfaccia Web per un servizio di consistenza su architetture Grid 20
Messa in opera
L’applicazione creata viene resa utilizzabile attraveso il Servlet e JSP container Apache Tomcat:
• Il cliente attraverso il browser contatta Tomcat
• Tomcat provvede ad eseguire le pagine JSP
• Le pagine JSP eseguono i metodi delle classi JavaBeans
• Le classi JavaBeans chiedono l’esecuzione dei metodi remoti GRCS o LRCS su CONStanza
Progetto e realizzazione di un'interfaccia Web per un servizio di consistenza su architetture Grid 21
Chiamata di un metodo di CONStanza attraverso Java Bean cliente
Progetto e realizzazione di un'interfaccia Web per un servizio di consistenza su architetture Grid 22
GRCS User Interface
Progetto e realizzazione di un'interfaccia Web per un servizio di consistenza su architetture Grid 23
Pagina JSP Controllore
Progetto e realizzazione di un'interfaccia Web per un servizio di consistenza su architetture Grid 24
Pagina JSP di Vista
Progetto e realizzazione di un'interfaccia Web per un servizio di consistenza su architetture Grid 25
ConclusioniCaratteristiche
dell’applicazione:
• Interoperabilità
• Portabilità
• Separazione parte logica – parte grafica
• Accessibilità
• Facilità di uso
Problemi incontrati:• Cliente Java – Server
C++• Corrispondenze tipi
WSDL – Java• Comunicazione del
cliente Java con CGSI-gSOAP
Soluzioni adottate:• Uso di Tool• JSP: JavaBeans, Expression Language