Realizzazione di un supporto per la progettazione di applicazioni in ambiente distribuito Fiorani Enrico Matr Università degli studi di Bologna Facoltà di ingegneria Reti di calcolatori L-S
Enrico Fiorani 2 Scopo del progetto Il sistema sviluppato vuole offrirsi come supporto alla progettazione di applicazioni in ambiente distribuito, adottando una struttura fortemente centralizzata e basandosi su una architettura di riferimento nota e consolidata come quella delle Remote Method Invocation di Sun.
Enrico Fiorani 3 Obiettivi e criticità Garanzia ed elevata disponibilità del servizio Distribuzione del carico di lavoro Down-time minimo Tolleranza e individuazione di guasti Monitoraggio a minima intrusione e basso overhead Architettura fault-tolerant Problemi legati alla centralità dellarchitettura: – Forte ripercussione sul sistema di guasti allunità centrale – Congestione – Sovraccarico di responsabilità
Enrico Fiorani 4 Dualità dei requisiti Realizzare una struttura solida e ben organizzata che risponda alle esigenze di interazione, coordinamento e replicazione necessarie allo sviluppo di applicazioni distribuite; Fare in modo che essa sia allo stesso tempo anche dinamica e flessibile per adattarsi il più possibile ad esigenze e scenari differenti.
Enrico Fiorani 5 Architettura del sistema Caratterizzata da tre unità fondamentali: – Client – Server – CenterService (gestore e coordinatore del sistema) Riferimenti remoti via RMI; Trasparenza lato client e server: – Invocano metodi solo sul center (*); – Center unico ad avere conoscenza globale del sistema; * modalità di default
Enrico Fiorani 6 Diagramma di sequenza (semplificato) Selezione server per il servizio richiesto Fase iniziale comune: Init & Configure node Risposta mediata dal Center Possibile richiesta dei servizi presenti
Enrico Fiorani 7 Estensioni al modello C/S Possibilità di delegare lattesa, il recupero e la gestione del risultato ad una entità (ClientResponse) indipendente dal client : – Modalità poll – Modalità call-back Sincronizzazione e coordinamento tra le varie entità server (* mediate dal Center) Risposta al client ritardata e asincrona (Delegator)
Enrico Fiorani 8 Un sistema centralizzato: il CenterService public interface NewCenterServiceInterface extends Remote { public Object chiediServizio(String metodo,Object o) throws RemoteException; public Object chiediServizio(AddressInfo aCl,String metodo,Object o)... public Object chiediServizioMulticast(String metodo,Object o)... public AddressInfo dammiServerPerServizio(String metodo)... public String[] mostraListaMetodi() throws RemoteException; public boolean registraMetodi(AddressInfo as) throws RemoteException; public Object chiediServizioAlCenter(String metodo,AddressInfo aiServer,Object in) public boolean copiaRegistroServer(AIContainer as) throws RemoteException; public void aggiornaSlave(Object in) throws RemoteException; public Object aggiornaMasterFromSlave(Object in) throws RemoteException; } CLIENTCLIENT SERVERSERVER CENTERCENTER Modalità sincrona Modalità asincrona Broadcast (sincrona) Center consulente (no intermediario) Registrazione servizi Sincronizzazione/ Coordinamento Aggiornamento copie calde Aggiorna stato Master Aggiornamento copie calde
Enrico Fiorani 9 Architettura CenterService Selezione Server Distribuzione carico Monitoraggio Server & Slave Check-point di Aggiornamento Slave Deferred response Salvataggio stato su file XML Boot da file Gestione richieste Sequenziale/Concorrente
Enrico Fiorani 10 Distribuzione del carico Suddivisione del lavoro tra i vari server che soddisfano quel particolare servizio. Selezione: – Random (per N>1) ; – Il più scarico nella categoria (per server differenziati) ; – Il più scarico globalmente; – Quello con meno clienti al momento collegati; Classi utilizzate: DistributionService
Enrico Fiorani 11 Monitor Controllo periodico dello stato dei server registrati: Ping periodici Center to Server a tutti quelli attivi; Stato di allerta per il server al primo ping mancato; Eliminazione dalla lista degli attivi a seguito di due ping consecutivi falliti; Ping di ritorno utilizzato anche per eventuali informazioni sui clienti connessi e sulle invocazioni ricevute; Classi utilizzate: Monitor e PingResponse.
Enrico Fiorani 12 Tolleranza ai guasti Garantire un comportamento del sistema prevedibile e corretto anche in caso di: Caduta o failure del nodo server : Politica preventiva Monitor; Politica di recovery Selezione nuovo server. Comuni fault applicativi: Gestione tramite timeout per socket; Successiva ritrasmissione richiesta fallita; Operazione abortita e ripresa dellesecuzione. Crash del CenterService.
Enrico Fiorani 13 Replicazione Affiancare al CenterService una seconda entità copia in grado di sostituirsi a questo in ogni momento Replicazione in spazio (CS+copia) ; Copie calde(*); Modello passivo (Master/Slave); Check-point di aggiornamento time-driven; (*)Rispettare il principio di minima intrusione. (+frequenza copia calda ma +overhead) (-frequenza copia tiepida ma -overhead)
Enrico Fiorani 14 Master & Slave: il CenterService2 Aggiornamento periodico lista e stato server: Con salvataggio su file xml da parte di CS2; Public boolean copiaRegistroServer(AIContainer as) Aggiornamento periodico di dati e informazioni del center o dei clienti: Public void aggiornaSlave(Object in) Re-boot del Master riprendendo dallo stato globale mantenuto aggiornato dallo slave public Object aggiornaMasterFromSlave(Object in) Classi utilizzate:CenterComunicator,XmlCreator, Parser
Enrico Fiorani 15 Test In ambiente distribuito composto da tre e quattro PC con caratteristiche tecniche e prestazioni differenti: Simulazione di diversi possibili malfunzionamenti e guasti Caduta nodo server Caduta nodo client Caduta nodo center Realizzazione di un prototipo per la verifica di tutti i metodi presentati Sfruttamento ed utilizzo del supporto per la realizzazione di applicazioni reali distribuite.
Enrico Fiorani 16 Unapplicazione reale: Bacheca elettronica sicura distribuita Consentire ad un gruppo chiuso di utenti di potersi trasmettere informazioni riservate. Accesso mediante autenticazione sul Center Numero chiuso di utenti (dati salvati sul Center) Chiave e dati personali riservati (TripleDEIS) Chiave comune unica Messaggi firmati ma leggibili da tutti gli utenti Operazioni possibili: Creazione nuove bacheche elettroniche; Inserimento messaggi; Lettura messaggi e identificazione dellautore
Enrico Fiorani 17 Autenticazione e Identificazione Client / Server CenterBacheca Database: UserID R_IDUserKey Rand Y X = R_ID + RandY In chiaro Cifrato Bacheca Key RandY Servizi disponibili Bacheca Key Ok!
Enrico Fiorani 18 Unapplicazione reale: Search Engine Distribuito e Replicato Fornire operazioni tipiche di un motore di ricerca: Effettuare ricerca di un dataset esistente di dati che presentano le caratteristiche desiderate; Aggiunta di nuovi record al dataset. CenterService in modalità consulente per il cliente public AddressInfo dammiServerPerServizio(String metodo) Sincronizzazione server e aggiornamento copie mediate dal center..Object chiediServizioAlCenter(String m,AddressInfo ai,Object in) Replicazione e monitoraggio offerta dal supporto
Enrico Fiorani 19 Conclusioni e sviluppi futuri Il supporto realizzato ha superato le diverse fasi di test proposte; Offre funzionalità e metodi utili nellambito del distribuito e con una architettura robusta e flessibile; Facilità nellestenderlo ed applicarlo ad applicazioni reali, tra le quali quelle proposte. Aggiunta di nuove funzionalità a problematiche comuni e importanti, non completamente affrontate; Interventi di ottimizzazione della soluzione proposta.