|
|
CONSIGLIATO DA LIBRINFORMATICA
Sistemi distribuiti - seconda edizione
|
| Editore | Pearson Education Italia |
| Autore | Tanenbaum Andrew S. ; Van Steen Maarten |
| Titolo originale | Distributed Systems: Principles and Paradigms - second edition |
| Editore originale | Prentice Hall |
| Collana | Accademica |
| Pagine | 664 |
| Volumi | 1 |
| Livello | Avanzato |
| Lingua | Italiano |
| Data pubblicazione | 09 - 2007 |
| ISBN | 8871923666 |
|
|
| Prezzo di copertina | Sconto | Prezzo Librinformatica |
| Euro 53,00 | 5% | Euro 50,35 |
|
Prefazione all’edizione italiana
Prefazione
Gli autori
Capitolo 1 Introduzione
1.1 Definizione di sistema distribuito
1.2 Obiettivi
1.2.1 Accessibilità delle risorse
1.2.2 Trasparenza
1.2.3 Apertura
1.2.4 Scalabilità
1.2.5 Tranelli
1.3 Tipi di sistemi distribuiti
1.3.1 Sistemi di calcolo distribuiti
1.3.2 Sistemi informativi distribuiti
1.3.3 Sistemi distribuiti pervasivi
1.4 Riepilogo
1.5 Problemi
Capitolo 2 Architetture
2.1 Stili architetturali
2.2 Architetture di sistema
2.2.1 Architetture centralizzate
2.2.2 Architetture decentralizzate
2.2.3 Architetture ibride
2.3 Architetture e middleware a confronto
2.3.1 Interceptor
2.3.2 Approcci generali al software adattivo
2.3.3 Dibattito
2.4 Autogestione nei sistemi
2.4.1 Modello a controllo dei feedback
2.4.2 Esempio: monitoraggio dei sistemi con Astrolabe
2.4.3 Esempio: differenziare le strategie di replica in Globule
2.4.4 Esempio: gestione della riparazione automatica dei componenti in Jade
2.5 Riepilogo
2.6 Problemi
Capitolo 3 Processi
3.1 Thread
3.1.1 Introduzione ai thread
3.1.2 Thread nei sistemi distribuiti
3.2 Virtualizzazione
3.2.1 Ruolo della virtualizzazione nei sistemi distribuiti
3.2.2 Architetture delle macchine virtuali
3.3 Client
3.3.1 Interfacce utente di rete
3.3.2 Software client per la trasparenza alla distribuzione
3.4 Server
3.4.1 Questioni inerenti alla progettazione
3.4.2 Cluster di serve
3.4.3 Gestione dei cluster di server
3.5 Migrazione del codice
3.5.1 Approcci alla migrazione del codice
3.5.2 Migrazione e risorse locali
3.5.3 Migrazione nei sistemi eterogenei
3.6 Riepilogo
3.7 Problemi
Capitolo 4 Comunicazione
4.1 Fondamenti
4.1.1 Protocolli a livelli
4.1.2 Tipi di comunicazione
4.2 Chiamate a procedure remote
4.2.1 Operazioni di base delle RPC
4.2.2 Passaggio di parametri
4.2.3 RPC asincrone
4.2.4 Esempio: DCE RPC
4.3 Comunicazione orientata ai messaggi
4.3.1 Comunicazione transiente orientata ai messaggi
4.3.2 Comunicazione persistente orientata ai messaggi
4.3.3 Esempio: sistema a code per lo scambio di messaggi di IBM WebSphere
4.4 Comunicazione orientata agli stream
4.4.1 Supporto per i media continui
4.4.2 Stream e qualità del servizio
4.4.3 Sincronizzazione degli stream
4.5 Comunicazione multicast
4.5.1 Multicasting applicativo
4.5.2 Diffusione dei dati basata sul gossip
4.6 Riepilogo
4.7 Problemi
Capitolo 5 Naming
5.1 Nomi, identificatori e indirizzi
5.2 Naming semplice
5.2.1 Soluzioni semplici
5.2.2 Approcci home-based
5.2.3 Hash table distribuite
5.2.4 Approcci gerarchici
5.3 Naming strutturato
5.3.1 Spazio dei nomi
5.3.2 Risoluzione dei nomi
5.3.3 Implementazione di uno spazio dei nomi
5.3.4 Esempio: DNS
5.4 Naming basato sugli attributi
5.4.1 Directory service
5.4.2 Implementazione gerarchiche: LDAP
5.4.3 Implementazione decentralizzate
5.5 Riepilogo
5.6 Problemi
Capitolo 6 Sincronizzazione
6.1 Sincronizzazione del clock
6.1.1 Orologi fisici
6.1.2 Global positioning system
6.1.3 Algoritmi di sincronizzazione dei clock
6.2 Orologi logici
6.2.1 Orologi logici di Lamport
6.2.2 Clock vettoriali
6.3 Mutua esclusione
6.3.1 Panoramica
6.3.2 Un algoritmo centralizzato
6.3.3 Un algoritmo decentralizzato
6.3.4 Un algoritmo distribuito
6.3.5 Un algoritmo token ring
6.3.6 Confronto tra i quattro algoritmi
6.4 Posizionamento globale dei nodi
6.5 Algoritmi di elezione
6.5.1 Algoritmi di elezione tradizionali
6.5.2 Elezioni negli ambienti senza fili
6.5.3 Elezioni in sistemi di ampia scala
6.6 Riepilogo
6.7 Problemi
Capitolo 7 Consistenza e repliche
7.1 Introduzione
7.1.1 Motivazioni per l’utilizzo delle repliche
7.1.2 Uso di repliche come tecnica per ottenere la scalabilità
7.2 Modelli di consistenza data-centrici
7.2.1 Consistenza continua
7.2.2 Ordinamento consistente delle operazioni
7.3 Modelli di consistenza client-centrici
7.3.1 Eventual consistency
7.3.2 Monotonic read
7.3.3 Monotonic write
7.3.4 Read your writes
7.3.5 Writes follow reads
7.4 Gestione delle repliche
7.4.1 Posizionamento dei server replica
7.4.2 Replica e posizionamento dei contenuti
7.4.3 Distribuzione dei contenuti
7.5 Protocolli di consistenza
7.5.1 Consistenza continua
7.5.2 Protocolli primary-based
7.5.3 Protocolli replicated-write
7.5.4 Protocolli di cache-coherence
7.5.5 Implementare la consistenza client-centrica
7.6 Riepilogo
7.7 Problemi
Capitolo 8 Tolleranza ai guasti
8.1 Introduzione alla tolleranza ai guasti
8.1.1 Concetti di base
8.1.2 Modelli di guasto
8.1.3 Mascherare guasti con la ridondanza
8.2 Capacità di recupero dei processi
8.2.1 Elementi di progettazione
8.2.2 Mascherare i guasti e meccanismi di replica
8.2.3 Accordo nei sistemi guasti
8.2.4 Rilevare i guasti
8.3 Comunicazione client-server affidabile
8.3.1 Comunicazione punto-a-punto
8.3.2 Semantica delle RPC in presenza di fallimenti
8.4 Comunicazione affidabile nei gruppi
8.4.1 Schemi di base per il multicasting affidabile
8.4.2 Scalabilità nel multicasting affidabile
8.4.3 Multicasting atomico
8.5 Commit distribuite
8.5.1 Commit a due fasi
8.5.2 Commit a tre fasi
8.6 Ripristino
8.6.1 Introduzione
8.6.2 Creazione dei checkpoint
8.6.3 Logging dei messaggi
8.6.4 Elaborazione orientata al ripristino
8.7 Riepilogo
8.8 Problemi
Capitolo 9 Sicurezza
9.1 Introduzione alla sicurezza
9.1.1 Minacce, politiche e meccanismi
9.1.2 Elementi di progettazione
9.1.3 Crittografia
9.2 Canali sicuri
9.2.1 Autenticazione
9.2.2 Integrità e confidenzialità dei messaggi
9.2.3 Comunicazione di gruppo sicura
9.2.4 Esempio: Kerberos
9.3 Controllo degli accessi
9.3.1 Elementi generali relativi al controllo degli accessi
9.3.2 Firewall
9.3.3 Codice mobile sicuro
9.3.4 Denial of service
9.4 Gestione della sicurezza
9.4.1 Gestione delle chiavi
9.4.2 Gestione sicura dei gruppi
9.4.3 Gestione delle autorizzazioni
9.5 Riepilogo
9.6 Problemi
Capitolo 10 Sistemi distribuiti a oggetti
10.1 Architettura
10.1.1 Oggetti distribuiti
10.1.2 Esempio: Enterprise Java Bean
10.2.3 Esempio: oggetti condivisi distribuiti di Globe
10.2 Processi
10.2.1 Object server
10.2.2 Esempio: il sistema runtime di Ice
10.3 Comunicazione
10.3.1 Eseguire il bind di un client a un oggetto
10.3.2 Chiamate di metodi remoti statiche e dinamiche a confronto
10.3.3 Passaggio di parametri
10.3.4 Esempio: Java RMI
10.4 Naming
10.4.1 Riferimenti agli oggetti in CORBA
10.4.2 Riferimenti agli oggetti in Globe
10.5 Personalizzazione
10.6 Consistenza e replica
10.6.1 Consistenza entry
10.6.2 Chiamate replicate
10.7 Tolleranza ai guasti
10.7.1 Esempio: CORBA Fault Tolerant
10.7.2 Esempio: Java Fault Tolerant
10.8 Sicurezza
10.8.1 Esempio: Globe
10.8.2 Sicurezza degli oggetti remoti
10.9 Riepilogo
10.10 Problemi
Capitolo 11 File system distribuiti
11.1 Architettura
11.1.1 Architetture client-server
11.1.2 File system distribuiti sui cluster
11.1.3 Architetture simmetriche
11.2 Processi
11.3 Comunicazione
11.3.1RPC in NFS
11.3.2 Il sottosistema RPC2
11.3.3 Comunicazione orientata ai file in Plan 9
11.4 Naming
11.4.1Naming in NFS
11.4.2 Costruzione di uno spazio dei nomi globale
11.5 Sincronizzazione
11.5.1Semantica della condivisione dei file
11.5.2 Uso dei lock sui file
11.5.3 Condivisione dei file in Coda
11.6 Consistenza e replica
11.6.1 Uso della cache lato client
11.6.2 Uso di meccanismi di replica lato server
11.6.3 Uso di meccanismi di replica nei file system peer-to-peer
11.6.4 Uso di meccanismi di replica dei file nei sistemi grid
11.7 Tolleranza ai guasti
11.7.1 Gestione dei fallimenti bizantini
11.7.2 Alto livello di disponibilità nei sistemi peer-to-peer
11.8 Sicurezza
11.8.1 Sicurezza in NFS
11.8.2 Autenticazione decentralizzata
11.8.3 Sistemi peer-to-peer sicuri per la condivisione di file
11.9 Riepilogo
11.10 Problemi
Capitolo 12 Sistemi Web distribuiti
12.1 Architettura
12.1.1 Sistemi Web tradizionali
12.1.2 Web service
12.2 Processi
12.2.1 Client
12.2.2 Il Web server Apache
12.2.3 Cluster di Web server
12.3 Comunicazione
12.3.1 Hypertext transfer protocol
12.3.2 Simple object access protocol
12.4 Naming
12.5 Sincronizzazione
12.6 Consistenza e replica
12.6.1 Uso della cache con un proxy Web
12.6.2 Replica di sistemi di Web hosting
12.6.3 Replica di applicazioni Web
12.7 Tolleranza ai guasti
12.8 Sicurezza
12.9 Riepilogo
12.10 Problemi
Capitolo 13 Sistemi distribuiti basati sul coordinamento
13.1 Introduzione ai modelli di coordinamento
13.2 Architetture
13.2.1 Approccio generale
13.2.2 Architetture tradizionali
13.2.3 Architetture peer-to-peer
13.2.4 Mobilità e coordinamento
13.3 Processi
13.4 Comunicazione
13.4.1 Routing basato sui contenuti
13.4.2 Supportare le sottoscrizioni composte
13.5 Naming
13.5.1 Descrizione di eventi composti
13.5.2 Trovare una corrispondenza tra eventi e sottoscrizioni
13.6 Sincronizzazione
13.7 Consistenza e replica
13.8 Tolleranza ai guasti
13.8.1 Comunicazione publish/subscribe affidabile
13.8.2 Tolleranza ai guasti negli spazi di dati condivisa
13.9 Sicurezza
13.9.1 Confidenzialità
13.9.2 Spazi di dati condivisi sicuri
13.10 Riepilogo
13.11 Problemi
Capitolo 14 Letture consigliate e bibliografia
14.1 Suggerimenti per ulteriori letture
14.1.1 Introduzione e lavori generali
14.1.2 Architettura
14.1.3 Processi
14.1.4 Comunicazione
14.1.5 Naming
14.1.6 Sincronizzazione
14.1.7 Consistenza e replica
14.1.8 Tolleranza ai guasti
14.1.9 Sicurezza
14.1.10 Sistemi distribuiti a oggetti
14.1.11 File system distribuiti
14.1.12 Sistemi distribuiti Web
14.1.13 Sistemi distribuiti basati sulla coordination
14.2 Bibliografia
14.3 Indice analitico
|
|
|
|