2 - Dipartimento di Informatica
Transcript
2 - Dipartimento di Informatica
“La sai l’ultima?” Vittorio Scarano Corso di Sistemi Distribuiti (2003-2004) Laurea Specialistica in Informatica Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano Lezione 2 Sistemi Distribuiti - 2 “I think there is a world market for maybe five computers” Thomas J. Watson Presidente dell’ IBM, 1943 Università degli Studi di Salerno 2 3 • computer = sistema che offre accesso a tutte le risorse di calcolo e informative ? “I think there is a world market for maybe five computers” Thomas J. Watson Presidente dell’ IBM, 1943 A proposito di “visioni”… Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano Un attimo di riflessione … 4 • Fine della II guerra mondiale, Vannevar Bush ha coordinato la ricerca militare USA dell’epoca • Coordinando, tra l’altro, – il progetto Manhattan (prima bomba atomica) – il progetto per ENIAC (primo calcolatore) • Scrive un articolo per Atlantic Monthly, “As we may think” dove esamina (alla luce della esperienza del coordinamento effettuato) la necessità di organizzare le informazioni in maniera più produttiva La visione di Bush Come sarebbe apparso il Memex (1945) “Siamo alle soglie di una nuova era: l’era delle informazioni.” “Dobbiamo trovare una maniera per facilitare l’accesso e la organizzazione delle informazioni in maniera più intuitiva.” • Propone il Memex: – uno strumento per mettere in relazione informazioni in maniera simile al cervello umano (Il primo ipertesto!) – organizzato come un sistema distribuito Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano • La sua tesi: • “mesh of associative trails […] ready to be dropped into the memex ” 5 6 7 • Sistemi distribuiti: ma perché? • La architettura di un sistema distribuito – layer logici – tier fisici • Struttura a livelli: il middleware • Trasparenza o no? End-to-end argument Le opzioni offerte dalle reti Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano Struttura della lezione 8 • Ricevere informazioni • Permettere delle transazioni • Affiliare: stabilire e mantenere gruppi Il valore aggiunto di una rete di N utenti La legge di Sarnoff: aste online – la connettività potenziale offerta al singolo utente che cresce con il numero di offerte possibili – crescita lineare in N • Legge di Metcalfe: il valore aggiunto di una rete è: – il numero di transazioni potenziali che vengono permesse agli N utenti – quadratico in N 9 Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano • Legge di Sarnoff: il valore aggiunto di una rete è: www.OnSale.com La collaborazione su sistemi distribuiti: la legge di Reed – classifieds.yahoo.com Classifieds.yahoo.com • Sia la offerta che la domanda dipendono dal numero di utenti • Valore ~ N2 Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano • Annunci messi a disposizione dagli utenti Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano Www.OnSale.com: prima host per aste online Numero fissato di prodotti Numero variabile di utenti Totale del “Valore” ~ N 10 La legge di Metcalfe: aste online 11 • • • • 12 Le leggi di crescita dei sistemi distribuiti • Www.eBay.com: un mercato per aste online • Ogni sottoinsieme di utenti può formare una asta • Valore totale ~ 2N Sarnoff Broadcast Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano Beanies Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano Un esempio della legge di Reed www.eBay.com Pez N2 Esempi OnSale Email, AOL Chat, eBay Annunci (N+M)2 = 2N+M = N2 +M2+2NM 2N +2M + (2N · 2M - (2N +2M) ) Connessione di N+M due reti con N e M utenti e relativo incremento di valore 14 La combinazione delle leggi Una conseguenza a N + b N a N NN Valore totale = a N + b N2 + c 2N 2 2 + c 2 N Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano Valore Valore Totale Totale Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano a N + b N 15 16 2N • All’aumentare della dimensione, si entra in nuovi mercati con nuove possibilità e nuove richieste di servizi per i sistemi distribuiti Regioni di valore dominante reo la V Miglior Migliori contenuto Transazioni N Migliori facilities per gruppi 2N N2 N Tipicamente a >> b >> c Reed Community Valore N 13 Valoreaggiunto aggiunto Valore Metcalfe Network La architettura di un sistema informativo – layer logici – tier fisici • Struttura a livelli: il middleware • Trasparenza o no? End-to-end argument 17 • Architettura (standard IEEE 1471): – La organizzazione di un sistema rappresentato • dai suoi componenti, • dalle relazioni tra loro e l’ambiente, • dai principi che guidano il progetto e la evoluzione del sistema Rete • Client – utilizzata direttamente dall’utente, genera la richiesta • Server – contiene le risorse da accedere (dati/programmi) • Rete Alcuni commenti – assicura la connessione 19 – descrive come componenti hardware e software vengono usati per rispondere ai requisiti organizzativi 18 Una architettura di base Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano • La architettura di un Sistema Informativo: Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano • Sistemi distribuiti: ma perché? • La architettura di un sistema distribuito Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano Struttura della lezione 20 Rete • Client/Server sono spesso ruoli dinamici – all’interno dello stesso sistema, possono scambiarsi i ruoli • Esempi: – una connessione telefonica/chat 1-to-1 – concatenazione di sistemi client/server – layer logici – tier fisici • Struttura a livelli: il middleware • Trasparenza o no? End-to-end argument 21 – centrali per la progettazione e manutenzione • Strati di software in cui si partizionano le applicazioni – logica di presentazione (la interfaccia utente) – logica di business (o applicativa) (funzionalità) – logica di accesso ai dati • I livelli software (layer) sono realizzati e distribuiti sui livelli hardware (tier) • Configurazioni: – single tiered (un livello di distribuzione) • configurazione su mainframe – two tiered (due livelli di distribuzione) • la logica di business è divisa tra un client (es. PC) ed un server (es. un mainframe) • la logica di presentazione è sul client, la logica di accesso ai dati è su server Configurazione single tiered (mainframe) – three tiered (tre livelli di distribuzione) 23 • Detti anche Application Layer • Caratterizzati dagli aspetti funzionali rispetto alla localizzazione fisica 22 I livelli hardware di una architettura: i tier Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano • Sistemi distribuiti: ma perché? • La architettura di un sistema distribuito I livelli logici di una architettura: i layer Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano Struttura della lezione 24 Logica di • accesso ai dati • business • presentazione Two-tier: 1 - Presentazione distribuita – per denotare servizi offerti ed acceduti via una interfaccia Server Client interfaccia Applicazione • Il traffico di rete risulta sostenuto: Presentazione rete 26 • Maggiore carico sul client • Minore richiesta di banda: Accesso ai dati Applicazione rete – le informazioni trasmesse al client sono solo quelle specifiche della applicazione – la presentazione è a carico solo del client • Moderata flessibilità e facilità di modifica – le due componenti che implementano il layer di presentazione necessitano di banda • Alta flessibilità e facilità di modifica connessione Two-tier: 2 - Presentazione remota Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano – il client si occupa solamente della visualizzazione finale Presentazione 25 Two-tier: 3 - Funzionalità distribuita • Il client viene coinvolto nella logica di business Accesso ai dati Presentazione 27 • Il layer di presentazione viene distribuito sui due tier Accesso ai dati Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano • A seconda di come separiamo i layer sui 2 tier si ottengono diverse architetture. • Una notazione: Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano Configurazione two-tier – necessarie capacità computazionali Applicazione rete Applicazione Presentazione 28 • Aumentano i problemi di gestione e manutenzione del client – upgrade, recovery, etc. – sensibilità della logica di business ai malfunzionamenti di ret Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano Accesso ai dati rete • Il client risulta completamente in carico della logica di business • Poco flessibile: – una modifica della applicazione necessita dell’upgrade della applicazione su tutti i client Applicazione Two-tier: 5 - Base di dati distribuita Accesso ai dati Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano Two-tier: 4 - Gestione dati remota Presentazione Accesso ai dati Applicazione Presentazione 30 Three-tier: Ampia scelta da “Fat client” … Accesso ai dati Accesso ai dati Accesso ai dati Applicazione rete rete • Supporto elevato richiesto dalla utenza impone una soluzione sbilanciata verso il client • Onerosa gestione e manutenzione del client Three-tier: … a “Thin client” Accesso ai dati Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano 29 Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano rete Applicazione Presentazione rete Presentazione rete Presentazione 31 • Anche parte del layer di accesso ai dati risulta in carico al client • Architettura fat client • Traffico notevole sui dati • Paradigma spesso “imposto” da sistemi di sviluppo integrato Presentazione 32 • Distribuzione di servizi ad un insieme aperto di utenti • Facile gestione • Notevole carico sul server del tier 3 • Permette (insieme con altre configurazioni) la completa separazione fisica tra utenti e dati attraverso il tier 2 – sicurezza implicita – policy enforcement su tier 2 Struttura della lezione Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano Presentazione Accesso ai dati 33 Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano Una visione finale: N-tier • Struttura a livelli: il middleware • Trasparenza o no? End-to-end argument Il middleware come servizio comune – eterogenea – Es. Wintel, Intelx86/Linux, Sparc/Solaris, PowerPc/MacOS applications & services middleware • Middleware – nasconde l’eterogeneità – offre un modello di programmazione – offre servizi ad alto livello (building-blocks) sistema operativo computer & network hardware piattaforma Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano • La piattaforma Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano – layer logici – tier fisici 34 Gli strati di software 35 • Sistemi distribuiti: ma perché? • La architettura di un sistema distribuito 36 Tipi di middleware Modello basato su oggetti distribuiti – strumenti di comunicazione, di sicurezza, indiririzzamento, sincronizzazione, etc. • Middleware orientato a specifici tipi di servizio – accesso a basi di dati • ODBC, JDPC – gestione di transazioni • Distributed Transaction Processing (X/Open) – etc. etc. 37 Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano • Middleware generale • creato come istanza di una classe – interfaccia • servizi messi a disposizione dall’oggetto – connessione tra oggetti • sincrona/asincrona, • pull/push Middleware basato su oggetti distribuiti (2) – Interface Definition Language (IDL) • Protocolli di interoperabilità – trasformazione di oggetti in messaggi trasferibili sulla rete • marshalling – e relativa trasformazione inversa (unmarshalling) • Intermediazione tra oggetti (object broker) – individuazione e localizzazione • Gestione di transazioni Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano • Formalismi di definizione degli oggetti Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano – oggetto (stato, comportamnto ed identità) 38 Middleware basato su oggetti distribuiti (1) • Intermediazione per scambio di messaggi (Message broker) – gestori di code di messaggio • Altri servizi di supporto – gestione del ciclo di vita di un oggetto distribuito – servizi di trasparenza • fault, migrazione, eterogeneità, replica, etc. – servizi di sicurezza – servizi di monitoraggio, gestione e tuning • Esempi: – Atomicità, Consistenza, Isolamento, Durability (ACID) 39 • Basato sul modello orientato a oggetti (locale) • Componenti: 40 – CORBA, Microsoft .NET, Enterprise Java Beans • Sistemi distribuiti: ma perché? • La architettura di un sistema distribuito – layer logici – tier fisici • Struttura a livelli: il middleware • Trasparenza o no? End-to-end argument 41 I limiti del middleware Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano Struttura della lezione 42 Esempio: file-transfer da A verso B Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano 43 “Alcune funzioni legate alla comunicazione possono essere implementate completamente ed affidabilmente solo con la conoscenza e l’aiuto delle applicazioni che si trovano agli end-point del sistema di comunicazione” • La conseguenza: – fornire le funzioni da parte del sistema di comunicazione • non è buona pratica introdurre completamente la funzione nello strato di comunicazione • anche se può essere parzialmente implementata per ragioni di efficienza I possibili problemi • I passi coinvolti: – A: il programma di FT usa il file system per leggere il file – A: il programma di FT chiede al sistema di comunicazione di trasmettere il file, dividendolo in pacchetti – La rete muove i pacchetti da A a B – B: il sistema di comunicazione rimuove i pacchetti e li passa al programma di file transfer – B: il programma di FT scrive i dati ricevuti sul proprio file system • In generale, ci sono aspetti del sistema distribuito che vanno trattati a livello application • End-to-End argument (Saltzer, Reed, Clarke) 44 1. il file originariamente scritto correttamente viene letto in maniera errata da A 2. il software del file system, il programma di FT, o il sistema di comunicazione può fare un errore nel copiare dati sul buffer (sia su A che su B) 3. il processore o la memoria possono avere un errore (transiente) sia su A che su B 4. il sistema di comunicazione può perdere bit/pacchetti 5. gli host possono andare in crash Le possibili contromisure Un esempio reale all’ MIT • riconducibile al problema della fermata della Macchina di Turing • Rendere bassa la probabilità di errore (in ogni passo) e reiterare (forza bruta) – costoso • “End-to-End check and retry” – checksum calcolata dalle applicazioni – eventuale retry 45 Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano – che usavano checksum sulla trasmissione • I programmatori assumevano trasmissioni affidabili – ma i dati non erano protetti durante la memorizzazione temporanea nei gateway • Un errore di copia da un input buffer ad un output buffer in un gateway: – relativamente poco frequente: 1 byte su 1 milione di byte – ha corrotto diversi file nell’intero sistema – richiedendo un check manuale (end-to-end !) 46 Esempio: sistemi per lettura nastri (anni ’50) 47 Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano – il passo 2 equivale a scrivere programmi corretti • Reti locali connesse da gateway • Tentativo di progettare un sistema affidabile di nastri • Problemi: – lettori di nastri non “stabili” – operatori umani non affidabili – crash del sistema • Soluzione (Multics file backup system) – un controllo della correttezza dei dati – dipendente dalla applicazione – che (ad es.) fornisce ridondanza dei file sul nastro Altri esempi … (1) • Il successo di Internet (TCP/IP) Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano • Rinforzare tutti i passi 48 – fosse stato progettato per circuiti virtuali (come lo erano SNA e TYMNET, altre reti degli anni 80) – non avrebbe potuto supportare • i protocolli request-response (tipo HTTP..!) • i milioni di Internet Service Providers. • La “buona programmazione” delle catch di eccezioni – importante lasciar propagare verso l’ “alto” le eccezioni – fino a che si trovi un punto della applicazione che conosce la semantica della operazione – e che quindi è in grado di trattare il problema Altri esempi … (2) L’End-to-end negli oggetti distribuiti – ridurre le istruzioni fornite dall’hardware e spostarne la “responsabilità” verso gli strati superiori • Di fatto la grande varietà di istruzioni offerte da architetture CISC (Complex Instruction Set Computer) rimane inutilizzata: Classe di istruzioni Aritmetiche Trasferimento dati Salti condizionati Esempi MIPS Istruzioni ad alto livello Frequenza gcc Frequenza in spice (emulatore circuiti) DGGVXEDGGL assegnazioni 48% 50% OZVZOXL strutture dati (vettori) 33% 41% EHTEQHVOWVOWL istruzioni if e cicli 17% 8% 2% 1% Altro 49 • La differenza tra Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano • Architetture RISC (Reduced Instruction Set Computer) oggetto processo – una “nota” di Waldo (ed altri) nel campo del calcolo distribuito Un esempio portato da Waldo: NFS (!) – poter progettare un sistema distribuito a oggetti concentrandosi solo sugli oggetti • tralasciando localizzazione e comunicazione ad una seconda fase • Sfortunatamente, dice Waldo, questa visione è falsa • Gli oggetti distribuiti sono diversi per: • • • • latenza accesso alla memoria malfunzionamenti parziali concorrenza (maggiori dettagli più tardi) • Network File System (progettato dalla SUN) Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano • La visione degli oggetti unificati: Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano • Il principio dell’End-to-End viene espanso (e confermato) dagli ambienti ad oggetti distribuiti 50 La tesi di Waldo • Un esempio: la soluzione di Enterprise JavaBeans: 51 – oggetti nello stesso processo – oggetti in processi differenti – due interfacce diverse per accesso locale e remoto! 52 – obiettivo: nascondere alla applicazione che il file che sta accedendo si trova su un disco sulla rete • Prima di NFS (e simili) – un errore di accesso significava “catastrofe” • disco pieno, crash del disco (eventi molto rari!) • Con NFS (e simili) – un errore di accesso significa “….” • forse semplicemente un errore sulla rete o la macchina dove risiede il disco sta facendo reboot (eventi meno rari e non catastrofici) • La trasparenza dell’accesso “a volte” non va… Sistemi Distribuiti (2003-2004). Vi.ttorio Scarano Una linea-guida .. ma con “buon senso” 53 • E’ semplicistico affermare che gli strati bassi della rete non devono avere alcun ruolo nella affidabilità – sono in grado di migliorare notevolmente la efficienza • Esempi: – nel caso del File Transfer • limitano le ritrasmissioni richieste dagli end-points – nel caso del backup su nastri • limitano la ridondanza necessaria • Comunque non realizzano la perfetta affidabilità di un sistema distribuito