Sistemi Distribuiti Rocco Aversa Tel. 0815010268 rocco.aversa@unina2.it it Ricevimento: Martedì 14:16 Giovedì 14:16 1 Libri di Testo Testo Principale A.S. Tanenbaum, M. van Steen, Distributed Systems (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/ 2 1
Introduzione ai Sistemi Distribuiti Motivazioni, definizioni e una prima classificazione i delle architetture tt hw/sw 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 più velocemente problemi 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: 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: nascondere dove una risorsa è collocata Utilizzare nomi che non dipendono dalla locazione fisica (es. URL) 7 Requisiti generali di un SD: Trasparenza (2) Migrazione: nasconde l eventuale spostamento di una risorsa Richiede un meccanismo di localizzazione della risorsa (naming) 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: 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: 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 elasemantica dei servizi offerti dal sistema Definizione delle funzioni disponibili, tipo dei parametri,valori ti iritornati ti epossibili eccezioni 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, 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 Supportano la portabilità delle applicazioni 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 diverse in domini i differenti e alla banda dei canali di comunicazione 15 Tecniche per migliorare la scalabilità Nascondere la latenza di comunicazione Evitare di attendere le risposte dei server (comunicazione 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. 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 complessità dell infrastruttura tt è mascherata all utilizzatore 19 Sistemi transazionali Figure 1-10. 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 available to the general public or a large industry group and is owned by an organization selling cloud services. Private Cloud: The cloud infrastructure is operated solely for an organization. It may 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