Corso di Reti di Calcolatori LS Progetto di un server FTP in grado di coordinarsi con altri mirror per garantire QoS di Marco Buccione
Reti di Calcolatori LS 2004/'052 Obiettivi Definire un meccanismo di coordinazione tra più mirror FTP che consenta: Mantenimento della QoS offerta da ciascun server Load balancing tra i diversi mirror...Il tutto, mantenendo la compatibilità con lo standard FTP......E cercando di non complicare la vita agli utenti dal lato client.
Reti di Calcolatori LS 2004/'053 Scelte progettuali Gestione distribuita Pro: robustezza intrinseca, trasparenza Contro: maggiore overhead Reindirizzamento solo se necessario (server sovraccarico) Minore carico di messaggi e richieste di connessioni Soglia di allerta prima di quella di limite, con scarto probabilistico di nuove connessioni Politica proattiva contro i sovraccarichi, analoga a RED.
Reti di Calcolatori LS 2004/'054 Protocollo di coordinazione (1) Modello del canale di comunicazione: Il mezzo di trasporto naturale è Internet La banda richiesta per la coordinazione è “piccola” (rispetto a quella per il trasferimento di file) Non è necessaria una comunicazione affidabile Soluzione: canale come supporto per lo scambio asincrono di messaggi A livello di implementazione, potremo sfruttare UDP così com'è.
Reti di Calcolatori LS 2004/'055 Protocollo di coordinazione (2) Rispettiamo il principio di minima intrusione: Dovremo veicolare l'informazione necessaria con il minimo numero di messaggi possibile. L'invio delle informazioni sarà di tipo push Ciascun server informa gli altri ad intervalli periodici La validità delle informazioni sarà determinata da un meccanismo di leasing Ciascun server etichetterà le informazioni relative agli altri con uno stato: Active, Unreachable o Disconnected.
Reti di Calcolatori LS 2004/'056 Coordinazione – Tipi di messaggi I_AM_ALIVE: informa che il mittente è attivo; contiene il dato sul carico ed un timestamp GET_SERVER_LIST: richiede la lista dei server noti con tutte le informazioni relative SERVER_LIST: in risposta al precedente, contiene le informazioni richieste I_DISCONNECT: segnala che il mittente sta per terminare la propria attività
Reti di Calcolatori LS 2004/'057 Coordinazione - Procedure previste Bootstrap: si invia GET_SERVER_LIST ad un server noto e si aspetta SERVER_LIST Il server di boot deve essere noto all'amministratore Chi riceve GET_SERVER_LIST inserisce il mittente in lista Leasing: invio periodico di I_AM_ALIVE a tutti Aggiornamento della lista dei server: invio periodico di GET_SERVER_LIST a tutti (senza attendere le risposte) Disconnessione: invio di I_DISCONNECT a tutti
Reti di Calcolatori LS 2004/'058 Realizzazione del sistema Codifica in Java Server multithreaded Sfruttamento di un server FTP open-source esistente: Jftpd (di Ryan Heise – UTS, Sydney) Obiettivo: architettura modulare Separazione di competenze tra server FTP e coordinazione Possibilità di sostituire Jftpd con un altro server FTP
Reti di Calcolatori LS 2004/'059 Architettura del sistema
Reti di Calcolatori LS 2004/'0510 Gestione multithreaded Lato server FTP Thread di ascolto delle richieste (ServerListener) Thread-pool (ThreadPoolExecutor) per il servizio di ciascuna connessione (ServerTask e Jftpd) Lato server per la coordinazione Thread per ricevere i messaggi ed eseguire le operazioni (CoordinationListener) Thread (Timer) per l'invio periodico dei messaggi (CoordinationTasks)
Reti di Calcolatori LS 2004/'0511 Meccanismo di ridirezione Decisione a carico di ServerListener, in base alle informazioni di ServerLoad e ServerTable Ridirezione: rifiuto della connessione e suggerimento di un altro mirror Il protocollo FTP non consente di ridirigere una connessione in modo trasparente al client......Purtroppo, la connessione al nuovo server deve essere fatta manualmente dall'utente
Reti di Calcolatori LS 2004/'0512 Interfacce utente ed amministratore GUI di amministrazione (locale): è il Main Thread dell'applicazione Consente di regolare tutti i parametri del server GUI lato utente (visibile da remoto): esportazione dei dati su file XML Facile integrazione in un server HTTP Uso di tecnologia standard (browser Internet) dal lato client
Reti di Calcolatori LS 2004/'0513 Test Computer: due PC con Windows XP su LAN Verificato il funzionamento corretto con i client Mozilla Firefox, Internet Explorer e SmartFTP Prestazioni buone, ma andrebbero verificate in condizioni di carico maggiore (più realistiche) Da sottolineare la limitatezza delle funzioni offerte da Jftpd (ad esempio, non supporta la modalità FTP passivo)
Reti di Calcolatori LS 2004/'0514 Sviluppi futuri Migliorare il supporto allo standard FTP: Estendendo Jftpd......O sostituendolo con un altro server Comunicazione affidabile e/o sicura Utile in contesti particolari, come un insieme di mirror FTP “vicini” Riutilizzo del protocollo proposto in altri campi ad esempio, server HTTP con QoS,...