25
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

Università di Pisa Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Tesi di Laurea Progettazione e realizzazione di uninterfaccia Web per

Embed Size (px)

Citation preview

Page 1: Università di Pisa Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Tesi di Laurea Progettazione e realizzazione di uninterfaccia Web per

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

Page 2: Università di Pisa Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Tesi di Laurea Progettazione e realizzazione di uninterfaccia Web per

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

Page 3: Università di Pisa Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Tesi di Laurea Progettazione e realizzazione di uninterfaccia Web per

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.

Page 4: Università di Pisa Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Tesi di Laurea Progettazione e realizzazione di uninterfaccia Web per

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

Page 5: Università di Pisa Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Tesi di Laurea Progettazione e realizzazione di uninterfaccia Web per

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

Page 6: Università di Pisa Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Tesi di Laurea Progettazione e realizzazione di uninterfaccia Web per

Progetto e realizzazione di un'interfaccia Web per un servizio di consistenza su architetture Grid 6

Architettura

Page 7: Università di Pisa Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Tesi di Laurea Progettazione e realizzazione di uninterfaccia Web per

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

Page 8: Università di Pisa Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Tesi di Laurea Progettazione e realizzazione di uninterfaccia Web per

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)

Page 9: Università di Pisa Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Tesi di Laurea Progettazione e realizzazione di uninterfaccia Web per

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

Page 10: Università di Pisa Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Tesi di Laurea Progettazione e realizzazione di uninterfaccia Web per

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

Page 11: Università di Pisa Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Tesi di Laurea Progettazione e realizzazione di uninterfaccia Web per

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

Page 12: Università di Pisa Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Tesi di Laurea Progettazione e realizzazione di uninterfaccia Web per

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

Page 13: Università di Pisa Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Tesi di Laurea Progettazione e realizzazione di uninterfaccia Web per

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

Page 14: Università di Pisa Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Tesi di Laurea Progettazione e realizzazione di uninterfaccia Web per

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

Page 15: Università di Pisa Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Tesi di Laurea Progettazione e realizzazione di uninterfaccia Web per

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

Page 16: Università di Pisa Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Tesi di Laurea Progettazione e realizzazione di uninterfaccia Web per

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)

Page 17: Università di Pisa Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Tesi di Laurea Progettazione e realizzazione di uninterfaccia Web per

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

Page 18: Università di Pisa Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Tesi di Laurea Progettazione e realizzazione di uninterfaccia Web per

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

Page 19: Università di Pisa Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Tesi di Laurea Progettazione e realizzazione di uninterfaccia Web per

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

Page 20: Università di Pisa Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Tesi di Laurea Progettazione e realizzazione di uninterfaccia Web per

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

Page 21: Università di Pisa Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Tesi di Laurea Progettazione e realizzazione di uninterfaccia Web per

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

Page 22: Università di Pisa Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Tesi di Laurea Progettazione e realizzazione di uninterfaccia Web per

Progetto e realizzazione di un'interfaccia Web per un servizio di consistenza su architetture Grid 22

GRCS User Interface

Page 23: Università di Pisa Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Tesi di Laurea Progettazione e realizzazione di uninterfaccia Web per

Progetto e realizzazione di un'interfaccia Web per un servizio di consistenza su architetture Grid 23

Pagina JSP Controllore

Page 24: Università di Pisa Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Tesi di Laurea Progettazione e realizzazione di uninterfaccia Web per

Progetto e realizzazione di un'interfaccia Web per un servizio di consistenza su architetture Grid 24

Pagina JSP di Vista

Page 25: Università di Pisa Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Tesi di Laurea Progettazione e realizzazione di uninterfaccia Web per

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