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