Corso di
Web Services
A A. 2010 2011
Domenico Rosaci
2. Sistemi Distribuiti
Progresso tecnologico dei
Computer
• 1945-1985: Computer ingombranti e costosi.
Ogni computer operava indipendentemente
dagli altri
• Metà anni 80: sviluppo di microprocessori
potenti a 8, 16, 32, 64 bit: capacità di calcolo
di un mainframe ma costi molto più bassi
• Si passa da macchine da 10 milioni di dollari
che eseguivano 1 istruzione/sec a macchine
da 1000 dollari che eseguono 1 miliardo di
istruzioni al secondo.
• Guadagno prezzo/prestazioni: 1013!
D. Rosaci
Sistemi Distribuiti
2
Sviluppo delle Reti di Calcolatori
• Invenzione delle reti di computer ad
alta velocità
• Reti Locali (LAN): connettono centinaia
di macchine in un edificio con velocità
da 100 milioni a 10 miliardi di bit/sec
• Reti Geografiche (WAN): milioni di
macchine connesse in tutto il mondo,
con velocità da 64Kbs a gigabit/sec
D. Rosaci
Sistemi Distribuiti
3
Risultato
• Facilità di mettere insieme sistemi di
calcolo composti da un gran numero di
computer connessi da reti ad alta
velocità
• Questi sistemi sono chiamati Sistemi
Distribuiti, diversamente dai precedenti
Sistemi Centralizzati, che avevano un
singolo processore e alcune
periferiche
D. Rosaci
Sistemi Distribuiti
4
Definizione di Sistema
Distribuito
• Collezione di computer indipendenti che appare ai
propri utenti come un singolo sistema coerente
• Le componenti di un SD sono quindi computer
autonomi
• Gli utenti di un SD pensano di aver a che fare con
un unico sistema
• Ne segue che le componenti di un SD devono
collaborare tra loro
• Come realizzare la collaborazione? Domanda
chiave!
• Nessuna supposizione sul tipo di computer, sui
sistemi operativi o sulle modalità di
interconnessione
D. Rosaci
Sistemi Distribuiti
5
Caratteristiche dei SD
• Le differenze tra i computer, le modalità di
comunicazione e l’organizzazione interna
del SD sono nascoste agli utenti
• Utenti e applicazioni possono interagire con
un SD in modo coerente e uniforme,
indipendentemente da quando e dove
l’interazione ha luogo
• Un SD deve essere facilmente espandibile e
scalabile, essendo composto da computer
indipendenti e avendo un’organizzazione
trasparente: facilità di sostituire parti o
aggiungere nuove componenti.
D. Rosaci
Sistemi Distribuiti
6
SD come Middleware
• Di solito, un SD si configura come un layer di software
intermedio tra un soprastante livello delle applicazioni e un
sottostante livello di software di base (Sistemi Operativi,
Sistemi di Comunicazione).
Computer 1
Computer 2 Computer 3
Computer 4
App. A
App. B
App. C
Sistema Distribuito (Middleware)
S.O. 1
D. Rosaci
S.O. 2
Sistemi Distribuiti
S.O. 3
S.O. 4
7
Obiettivi dei SD
• Quando vale la pena di costruire un
SD?
– Si vuole che le risorse siano facilmente
accessibili
– Si vuole che la distribuzione delle risorse
sia nascosta
– Si vuole che il sistema sia aperto
– Si vuole che il sistema sia scalabile
D. Rosaci
Sistemi Distribuiti
8
Accessibilità
• Risorse: computer, dati, stampanti, pagine Web,
ecc.
• A volte si vuole che queste risorse siano condivise
(la condivisione è economica)
• Internet dimostra che connettere utenti e risorse è
una strategia di successo
• Groupware: File Sharing, Editing Collaborativo,
Video Conferenza, ecc.
• Importanza della Sicurezza quando si è connessi in
rete: protezione della privacy, evitare lo spam, sono
tutti ottimi motivi per progettare un SD.
D. Rosaci
Sistemi Distribuiti
9
Trasparenza
• Trasparenza all’accesso: si vuole nascondere all’utente come i
dati sono rappresentati sulle singole macchine (es. differenti
S.O.)
• Trasparenza all’ubicazione: si vuole che gli utenti non
possano indicare dove è fisicamente localizzata una risorsa
• Trasparenza alla migrazione: le risorse possono essere
spostate senza interferire sulla loro modalità d’accesso. Se ciò
si può fare addirittura mentre le risorse sono in uso, abbiamo
Trasparenza al riposizionamento.
• Trasparenza alla replica: si nasconde l’esistenza di molte
copie di una risorsa, che vengono automaticamente tenute
aggiornate
• Trasparenza alla concorrenza: l’accesso concorrente ad una
risorsa condivisa la lascia in uno stato coerente.
• Trasparenza ai guasti: l’utente non si rende conto che una
risorsa ha smesso di funzionare.
D. Rosaci
Sistemi Distribuiti
10
Grado di Trasparenza
• Non è detto che una trasparenza assoluta
sia desiderabile
• Si pensi ad una applicazione che per
eseguire una certa operazione per l’utente
debba contattare uno tra tanti server
disponibili, e che si voglia nascondere quale
server viene contattato. Se il server
contattato non risponde, l’utente non ha
modo di interrompere il tentativo per
passare ad un altro server.
D. Rosaci
Sistemi Distribuiti
11
Apertura
• Un SD aperto è un sistema che offre servizi rispettando certe
regole standard che descrivono la sintassi e la semantica dei
servizi stessi
• In un SD i servizi sono specificati per mezzo di interfacce
scritte in un Interface Definition Language (IDL). Esse spesso
specificano la sintassi ma il difficile è specificare la semantica
(“cosa i servizi fanno”).
• Se le interfacce sono ben specificate i sistemi che le usano
possono implementarle in modo diverso senza problemi ed
interagire tra loro (interoperabilità). Inoltre si possono portare
agevolmente da un sistema ad un altro (portabilità)
• Anche l’ampliabilità è una caratteristica dell’apertura. I sistemi
devono essere estendibili.
D. Rosaci
Sistemi Distribuiti
12
Scalabilità
• Aspetto centrale, visto l’aumento
esponenziale degli utenti Internet.
• Scalabilità rispetto alla dimensione:
possiamo aggiungere utenti e risorse al
sistema.
• Scalabilità geografica: utenti e risorse
possono essere anche molto lontani
• Scalabilità rispetto all’amministrazione: il
sistema deve rimanere gestibile anche
coprendo molte strutture indipendenti
D. Rosaci
Sistemi Distribuiti
13
Problemi di Scalabilità
• I limiti maggiori emergono quando i dati, i servizi, o le
applicazioni sono centralizzate
• In tal caso l’unità centrale diventa un collo di bottiglia: si
immagini se il DNS di Internet fosse ancora implementato
come un’unica tabella
• La scalabilità rispetto alle dimensioni si affronta mediante
approcci decentralizzati
• La scalabilità geografica è difficile da ottenere perché le reti
geografiche sono point-to-point. Anche qui occorrerebbe
adottare soluzioni decentralizzate
• La scabilità rispetto all’amministrazione è strettamente legata
a problemi di sicurezza. Occorre fare in modo che passando
da un dominio ad un altro più esteso, non si violi la sicurezza
di quest’ultimo (esempio: applet Web)
D. Rosaci
Sistemi Distribuiti
14
Tecniche di Scalabilità
• Comunicazione asincrona: cercare di evitare l’attesa delle
risposte alle richieste di servizi remoti. Per esempio, quando
un servizio viene richiesto ad un server, invece di aspettare
passivamente la risposta si può permettere all’applicazione
richiedente di fare altro lavoro utile. Quando arriva una
risposta, l’applicazione interrompe quello che stava facendo e
torna a gestire il processo originale (sono utili i thread
paralleli).
• Ridurre la comunicazione totale, spostando su client parte del
lavoro che è fatto dal server (es. Applet Java)
• Distribuzione: prendere un componente, spezzarlo in più parti
e distribuirle nel sistema (es. DNS)
• Replicazione – Caching: incrementare la disponibilità delle
risorse
D. Rosaci
Sistemi Distribuiti
15
Tipologie di SD -1
• Sistemi di Calcolo Distribuiti
– Sistemi di calcolo a cluster: semplici computer
collegati da reti ad alta velocità, per consentire la
programmazione parallela (es. Beowulf su Linux)
– Grid Computing: in un cluster, i computer sono
tutti uguali. La tecnologia grid presenta invece
componenti eterogenee. Gli appartenenti alla
stessa organizzazione virtuale hanno diritto
all’accesso alle stesse risorse (server, data
storage, basi di dati)
D. Rosaci
Sistemi Distribuiti
16
Tipologie di SD -2
• Sistemi Informativi Distribuiti:
Emergono in contesti aziendali, in cui
necessita l’integrazione di diverse
applicazioni. L’integrazione di
applicazioni aziendali è oggi un campo
in grande sviluppo (Enterprise
Application Integration, EAI)
D. Rosaci
Sistemi Distribuiti
17
Tipologie di SD -3
• Sistemi Distribuiti Pervasivi:nascono con i
dispositivi di calcolo mobili ed embedded.
Dispositivi piccoli,a batteria, mobili e
wireless. Devono “integrarsi” nel nostro
ambiente.
– Sistemi Domestici (integrano in un solo sistema
TV, smartphone,PDA, eventualmente impianti
antifurto,videosorveglianza,climatizzazione ecc.)
– Sistemi elettronici per l’assistenza sanitaria
(basati su sensori wireless)
– Reti di Sensori: centinaia o migliaia di nodi,
ognuno equipaggiato con un sensore (es.
sistemi per il controllo del traffico).
D. Rosaci
Sistemi Distribuiti
18
Paradigma ad Oggetti distribuiti
•
•
•
Le risorse di rete sono rappresentate da oggetti distribuiti:
Per richiedere un servizio ad una risorsa di rete, un processo invoca uno dei metodi o
operazioni messe a disposizione, passando al metodo i dati come parametri.
Il metodo viene eseguito sull’ host remoto, e la risposta è inviata al processo
richiedente come valore di ritorno.
D. Rosaci
Sistemi Distribuiti
19
Chiamate di Metodi
• Un processo in esecuzione su un host A chiama un
metodo su un oggetto distribuito che risiede su un
host B, passando allo stesso eventuali parametri
• La chiamata del metodo invoca un’ azione che il
metodo eseguirà sull’ host B. Il valore di ritorno, se
c’è, verrà trasferito dall’ host B all’ host A
• Un processo che fa uso di un oggetto distribuito
viene detto processo client di quell’ oggetto, e i
metodi dell’ oggetto sono chiamati metodi remoti
(contrariamente ai metodi locali, o metodi
appartenenti ad un oggetto locale)
D. Rosaci
Sistemi Distribuiti
20
Architettura di un Sistema ad
Oggetti Distribuiti
D. Rosaci
Sistemi Distribuiti
21
Scarica

Modulo 2: Sistemi Distribuiti