Sistemi Distribuiti Rocco Aversa Tel. 0815010268 rocco aversa@unina2 it rocco.aversa@unina2.it Ricevimento: Martedì 14:16 Giovedì 14:16 1 Libri di Testo • Testo Principale – A.S. Tanenbaum, M. van Steen, Distributed Systems y (2 ( ed), ) Prentice-Hall 2007 • Approfondimenti Lucidi dalle lezioni e materiale vario disponibili di volta in volta sul sito del corso: http://193.206.100.156/~aversa/SistemiDis/ http://193.206.100.156/ aversa/SistemiDis/ 2 1 Introduzione ai Sistemi Distribuiti Motivazioni, definizioni e una prima classificazione l ifi i delle d ll architetture hit tt hw/sw h / 3 Definizione di Sistema Distribuito “Un sistema distribuito è una collezione di computer indipendenti che appare all’utente come un singolo sistema e che consente a più processi di cooperare per risolvere i l più iù velocemente l t problemi bl i complessi” complessi 4 2 Dai Sistemi centralizzati ai Sistemi distribuiti Prima degli anni ’80 i sistemi informatici avevano una organizzazione centralizzata, cioè si basavano sulla presenza di un unico grande centro di elaborazione dati mainframe a cui si accedeva per mezzo di un certo numero di terminali. Passaggio graduale verso sistemi informatici distribuiti, caratterizzati dalla presenza di molti calcolatori che interagiscono fra di loro attraverso un sottosistema di comunicazione (rete) 5 Sistemi distribuiti:motivazioni • Economia: condivisione di risorse, riduzione dei costi, accesso remoto alle risorse • Tecnologia: i vincoli tecnologici sulla velocità dei processori rende inevitabile il ricorso al parallelismo per affrontare l’esigenza di maggiore potenza di calcolo • Prestazioni: incremento del throughput e del tempo di risposta (e.g. speed-up, scale-up) • Disponibilità e integrità: migliore gestione dei guasti hardware e software attraverso la replicazione delle risorse e la distribuzione del controllo •Flessibilità ed estendibilità: facilita la modularità del software, la sua verifica e manutenzione. 6 3 Requisiti generali di un SD: Trasparenza (1) • Un sistema distribuito dovrebbe nascondere come i processi e le risorse sono fisicamente distribuite su più computer – Accesso Accesso: nascondere le differenze nella rappresentazione dei dati e nell’accesso alle risorse • Codifica little-endian o big-endian dei dati • Diversa modalità di gestione dei file – Ubicazione: Ubicazione nascondere dove una risorsa è collocata • Utilizzare nomi che non dipendono dalla locazione fisica (es. URL) 7 Requisiti generali di un SD: Trasparenza (2) – Migrazione: Migrazione nasconde l’eventuale spostamento di una risorsa • Richiede un meccanismo di localizzazione della risorsa (naming) – Rilocazione: Rilocazione possibilità di rilocare una risorsa mentre è in uso da parte di un utente • Sistemi mobili – Replicazione : nascondere che esistono più copie della stessa risorsa o dello stesso processo • Miglioramento della velocità di accesso e della disponibilità (es. caches) – Concorrenza: Concorrenza gestione dell’accesso di più utenti alla stessa risorsa condivisa • Necessità di lasciare la risorsa in uno stato consistente 8 4 Requisiti generali di un SD: Trasparenza (3) – Guasto: Guasto un utente non si accorge che una risorsa non funziona e che il sistema risolve il malfunzionamento • “Si sa di avere a che fare con un sistema distribuito quando il crash di un computer di cui non avete mai sentito parlare impedisce di portare a termine il vostro lavoro” (Definizione di Lamport) 9 Requisiti funzionali di un SD: Uso di standard aperti • Definizione di regole standard che descrivono la sintassi e la semantica dei servizi offerti dal sistema – Definizione delle funzioni disponibili, tipo dei parametri, t i valori l i ritornati it ti e possibili ibili eccezioni i i – Formato, contenuto e significato dei messaggi scambiati RICHIEDONO INTERFACCE e PROTOCOLLI – Una specifica deve essere completa (specificare tutti gli aspetti dell’interfaccia) e neutrale (non specificare dettagli dell’implementazione) – I protocolli permettono la comunicazione fra un processo che richiede una certa interfaccia e un processo che la implementa 10 5 Interoperabilità e portabilità • Interoperabilità – Capacità di due implementazioni di un sistema o componente da parte di produttori diversi di coesistere e lavorare insieme basandosi sui servizi offerti come specificato da uno standard comune • Portabilità – Capacità di eseguire un’applicazione sviluppata su un sistema distribuito A su un altro sistema distribuito B che implementa le stesse interfacce di A senza apportare modifiche 11 Un protocollo può avere molte API Es., TCP/IP • TCP/IP APIs includono le BSD sockets, Winsock, System V streams streams, … • Il protocollo fornisce interoperabilità: I programmi usano diverse API per scambiare informazioni • Non occorre conoscere le API utilizzate dall’utente remoto Application Application WinSock API Berkeley Sockets API TCP/IP Protocol: Reliable byte streams 6 API e Protocolli Standard sono entrambi importanti • Standard APIs/SDKs sono importanti – S Supportano t l portabilità la t bilità delle d ll applicazioni li i i – Ma senza protocolli standard, l’interoperabilità è difficile • Protocolli Standard sono importanti – Supportano l’interoperabilità inter-sito – Supportano una infrastruttura condivisa – Ma senza API/SDK, la portabilità delle applicazioni è difficile (differenti piattaforme accedono ai protocolli in modi diversi) Requisiti non funzionali di un SD • Prestazioni – tempo di risposta; – produttività (throughput); – bilanciamento del carico (load balancing) • • • • • Scalabilità Sicurezza Affidabilità Disponibilità Qualità del servizio (QoS) 14 7 Scalabilità • Dimensioni su cui misurare la scalabilità – Numero di utenti e di risorse – Distanza geografica di utenti e risorse – Amministrazione del sistema (facilità di amministrazione anche quando il sistema comprende più organizzazioni) • Le difficoltà sono dovute alle limitate capacità dei server che ospitano servizi centralizzati, alla presenza di algoritmi centralizzati, a politiche di sicurezza e amministrazione di diverse in i domini d i i differenti diff ti e alla ll banda b d dei d i canali li di comunicazione 15 Tecniche per migliorare la scalabilità – Nascondere la latenza di comunicazione Evitare di attendere le risposte dei server (comunicazione comunicazione asincrona) asincrona Spostare parte delle operazioni dal server al client (controllo delle form) – Distribuzione del servizio Scomporre una componente in parti più piccole che vengono distribuite nel sistema (ad es. tra client e server, domini del DNS) – Replica Per aumentare le prestazioni si possono replicare componenti in un sistema distribuito. Una copia “vicina” riduce i tempi di latenza (es. caching) 16 8 Tipi di Sistemi Distribuiti – Sistemi di calcolo distribuiti ad alte prestazioni • Sistemi di calcolo a cluster • Grid Computing – Sistemi informativi distribuiti • Sistemi transazionali • Applicazioni aziendali integrate • Cloud Computing – Sistemi distribuiti pervasivi • Sistemi domestici • Sistemi elettronici per l’assistenza sanitaria • Reti di sensori 17 Cluster Computing Systems • Figure 1-6. 1 6 An example of a cluster computing system. 18 9 Il concetto di Grid • Analogia con la rete di distribuzione dell’energia elettrica – Accesso “on demand” a risorse di calcolo – Accesso trasparente a data base distribuiti di grandissime dimensioni – Facilità e scalabilità nell’integrazione di nuove risorse – La L complessità l ità dell’infrastruttura d ll’i f t tt è mascherata h t all’utilizzatore 19 Sistemi transazionali • Figure 1-10. 1 10 The role of a TP monitor in distributed systems. 20 10 Integrazione di applicazioni aziendali Uno strato di middleware basato su standard per integrare applicazioni aziendali 21 Cloud Computing Cloud computing is a style of computing in which dynamically scalable and often virtualized resources are provided as a service over the internet (Wikipedia) 22 11 Main Deployment Models • Public Cloud: The cloud infrastructure is made d available il bl to t the th generall public bli or a large l industry group and is owned by an organization selling cloud services. • Private Cloud: The cloud infrastructure is operated p solelyy for an organization. g It mayy be managed by the organization or a third party and may exist on premise or off premise. 23 Sistemi distribuiti pervasivi Sono, in genere, composti da dispositivi con scarse capacità di memoria e di elaborazione che sono in grado di ottenere informazioni dall’ambiente in cui essi sono inseriti, di adattare il loro funzionamento al contesto e di condividerle con altri dispostivi. Caratteristiche principali: – Adattatività e reattività – Comunicazione – Possibile elaborazione locale 24 12 Sistemi domestici 25 Sistemi per l’assistenza sanitaria a distanza 26 13 Reti di sensori 27 Reti di sensori In questa organizzazione i dati possono elaborati anche nei sensori 28 14
© Copyright 2024 Paperzz