FotoContest
Il primo servizio interamente
dedicato ai Concorsi Fotografici
basato su Corba
Reti di Calcolatori LS
Prof. Antonio Corradi
Progetto:
Giombi Giorgio e Soffritti Luca
Presentazione:
Giombi Giorgio
1
Introduzione
L’obiettivo di questo progetto è stato quello di realizzare
un’applicazione per la creazione e gestione di Concorsi
Fotografici a tema con scadenza periodica, sfruttando gli
strumenti forniti dallo standard CORBA e ponendo particolare
attenzione alla gestione delle risorse ,all’efficienza complessiva
del sistema e soprattutto alla tolleranza ai guasti.
Modello di Comunicazione
Client/Server
sistema asimmetrico e indiretto
comunicazione sincrona bloccante
Client
Server
2
Architettura Generale (1)
L’utente (Client) accede a tutti i servizi offerti comunicando in
maniera trasparente con tre differenti Server.
ServerAuth:
Gestione
Autenticazione
ServerFoto:
Gestione Concorso
(Concorso in atto)
ServerArchivio:
Gestione Archivio
(Concorsi terminati)
ServerRepl:
Server di controllo
Gestione della QoS
3
Architettura Generale (2)
Il middleware CORBA:
come strumento di
supporto completo alla
comunicazione in remoto
Facilita quindi la
realizzazione di sistemi
distribuiti, permettendo
allo sviluppatore di
trascurare l’aspetto
tecnologico
concentrandosi solo sul
servizio da fornire.
C
O
R
B
A
C
O
R
B
A
4
Perché Corba?
• Eterogeneità di Linguaggio:
tramite IDL
IDL è possibile
definire le interfacce
(descrizione dei servizi
offerti) di ogni oggetto
remoto rimanendo totalmente
indipendenti dal linguaggio
di programmazione e dalla
macchina di esecuzione
• Indipendenza Client/Server:
l’ ORB , cuore del sistema,
gestisce tutta la
comunicazione permettendo ad
un Client di legarsi ad un
servizio, non ad un servitore!
• Maggiori Servizi offerti:
un NAME
name SERVICE
service più evoluto
e strutturato
<<Lookup>>
Client
NAME
SERVICE
<<Register>>
Server
5
Il Client
Login
(Registrati)
ServerFoto
Login
Logout
Vai all’
Utente…
Vota Foto
Salva Foto
Vai alla
Pagina…
ServerAuth
Vai al
Concorso
Vedi Foto
Client
Vai alla
Mia Pagina
ServerArchivio
Vedi Foto
Vai all’
Archivio
Inserisci
Foto
Cancella
Foto
Seleziona
Concorso
6
Il Client – come
metodi
Servitore
remoti invocati
cacheArchivio
cacheConcorso
notificaContest()
NB
Sono state previste lato client due
directory per salvare e mantenere le foto
•
Anche il Client rende disponibile all’esterno uno
in modo da non richiamare inutilmente
specifico
remoto
ogni voltametodo
il metodo
remoto getFoto()
•• Appositamente
definito per permettere al ServerAuth
cacheConcorso
di notificarlo immediatamente quando un concorso
• cacheArchivio
termina
7
Il ServerAuth
Gestione Autenticazione:
• Garantisce l’accesso al
Servizio solo ai Client che si
sono precedentemente registrati
Gestione Notifica di Fine
Concorso:
• Permette di notificare a
tutti gli iscritti l’avvenuta
fine di un concorso
• Mantiene tre distinti
vettori per gestire
correttamente tale notifica
iscritti.txt
username
notificaContest()
O
F
Giorgio
F
… L
I
… N
… E
passwordD
O
A
…L
I
…N
E
O
T
I
F
I
C
A
N
#x+ù@k2##
N
…
8
Il ServerFoto
Gestione Concorso:
• Mantiene tutte le foto del concorso
in atto in formato jpg
• Mantiene le informazioni relative a
tale concorso (titolo, scadenza) e alle
foto inviate(titolo, autore, numero
voti, utenti che hanno votato) in un
file XML, foto.xml
• Crea e salva inoltre le relative
miniature di ogni immagine partecipante
Trasferimento dei File Immagine
Rappresentando
Rappresenta
l’operazione
però il collo
principale
di
del
struct fileFoto
ServerFoto,
bottiglia
del
richiesta
sistema si
quando
è pensato
un Client:
di
{
• vuole
introdurre:
aggiungere
foto > file;
sequence
<octetuna
,500000
• vuole
visualizzare
una pagina
numeroByte;
• lelong
miniature
per caricare velocemente
• vuole
vedere una specifica foto
una string
intera nomeFoto;
pagina
string utente;
• unshort
Limite
in KB su ogni foto inviata
voti;
fileFoto
};
• un Limite Max
di 9 foto per concorso
fotoConcorso
foto.xml
iconeConcorso
9
Il ServerArchivio
Gestione Archivio:
• Progettato per mantenere tutte
le “vecchie” foto e i file
foto.xml, in modo che l’utente
possa sempre rivedere i tre
vincitori e le proprie immagini di
ogni Concorso Terminato
• Realizzato per non
sovraccaricare di troppe richieste
il ServerFoto, suddividendo così
le responsabilità e i rispettivi
carichi di lavoro
concorsi.txt
titolo1
titolo2
titolo2
titolo3
titolo…
titolo1
foto.xml
titolo3
titolo…
10
Gestione Termine Concorso
foto.xml
Termine
Concorso
ServerFoto
fotoConcorso
Client onLine
Titolo Concorso
1) titoloFoto, autore, voti
2) titoloFoto, autore, voti
3) titoloFoto, autore, voti
iconeConcorso
notifica()
ultimoConcorso()
notificaContest()
ThreadUltimoConcorso
ThreadAuthNotifica
ServerAuth
ServerArchivio
concorsi.txt
iscritti.txt
titolo…titolo…
titolo…
titolo…
O
F
F
L
I
N
E
O
N
L
I
N
E
D
A
N
O
T
I
F
I
C
A
Client
daNotifica
Client
offLine
11
Conclusioni & Sviluppi futuri
Conclusioni:
–
Il progetto è stato testato più volte sia in localmente che
su più macchine con esiti positivi e tempi di risposta
accettabili
–
La scelta progettuale di avere tre differenti server con
tre specifici compiti (gestione Autenticazione – gestione
Concorso – gestione Archivio) comporta sicuramente un
maggiore costo in fatto di risorse ma tale scelta viene
ripagata da una maggiore efficienza complessiva del sistema
Sviluppi Futuri:
– ServerFoto replicato in grado di gestire più richieste
parallelamente, per prevenire situazioni di forte congestione
– Più concorsi attivi contemporaneamente
– Possibilità di commentare le foto
– Concorsi a pagamento con premi in denaro ai vincitori
12
Fine
13
Scarica

Presentazione