Vai alla Home Page About me Courseware Federica Living Library Federica Federica Podstudio Virtual Campus 3D Le Miniguide all'orientamento Gli eBook di Federica La Corte in Rete
 
 
Il Corso Le lezioni del Corso La Cattedra
 
Materiali di approfondimento Risorse Web Il Podcast di questa lezione

Stefano Russo » 1.Caratterizzazione dei sistemi distribuiti


Sommario

  • Definizioni
    • Lamport
    • Coulouris
  • Esempi
  • Design challenges
  • Proprietà di trasparenza dei sistemi distribuiti

Definizione di sistema distribuito

Una definizione di sistema distribuito:
Il mio programma gira su un sistema distribuito quando non funziona per colpa di una macchina di cui non ho mai sentito parlare“  (L. Lamport).

Caratteristiche fondamentali di un sistema distribuito:

  • concorrenza dei componenti;
  • componenti appartenenti a diversi domini organizzativi/amministrativi;
  • possibilità di guasti indipendenti dei componenti.

Definizione di sistema distribuito (segue)

Un sistema distribuito è un sistema i cui componenti, localizzati in computer connessi in rete, comunicano e coordinano le loro azioni solo attraverso scambio di messaggi (G. Coulouris et al.)

Caratteristiche fondamentali di un sistema distribuito:

  • concorrenza dei componenti;
  • assenza di un clock globale:
    • sincronizzazione e interazione via scambio messaggi:
  • possibilità di guasti indipendentidei componenti:
    • nei nodi (crash, attacchi, …);
    • nel sottosistema di scambio messaggi (ritardi, perdita, attacchi, …).

Esempi di sistemi distribuiti


Esempi di sistemi distribuiti


Esempi di sistemi distribuiti


Progettazione dei sistemi distribuiti (design challenges)

Fattori di complessità:

  • Eterogeneità: varietà e differenza di reti (tecnologie e protocolli), sistemi operativi, hardware (dei server, dei client, …), linguaggi di programmazione, …→ middleware.
  • Apertura (openness): il livello di complessità col quale servizi e risorse condivise possono essere resi accessibili a una varietà di clienti, o resi tra essi interoperanti.

I sistemi aperti richiedono:

  • interfacce pubbliche dei componenti;
  • standard condivisi;
  • adeguati test di conformità.

Progettazione dei sistemi distribuiti (design challenges)

  • Sicurezza (security):
    • confidenzialità (protezione dall’accesso da parte di utenti non autorizzati);
    • integrità (protezione dall’alterazione o compromissione);
    • disponibilità (protezione dall’interferenza con i mezzi di accesso alle risorse).
  • Concorrenza: l’accesso a risorse e servizi condivisi deve essere consentito in maniera virtualmente simultanea a più utenti;
  • Trasparenza: Otto forme di trasparenza identificate nell’ISO Reference Model for Open Distributed Processing (RM-ODP);

Progettazione dei sistemi distribuiti (design challenges)

  • Scalabilità: un sistema è scalabile se resta efficace ed efficiente anche a seguito di un aumento considerevole di utenti o risorse.
    → tecniche di controllo delle prestazioni e dei colli di bottiglia, o per prevenire l’esaurimento delle risorse, alla crescita del sistema.
  • Guasti: i guasti nei sistemi distribuiti sono parziali, e vanno gestiti in modo da controllare il livello di servizio offerto in caso di guasti → tecniche di failure detection, masking, tolerance, recovery.

Trasparenza nei sistemi distribuiti

Access transparency: uniformità di accesso alle risorse locali e remote.
Location transparency: accesso alle risorse senza conoscere la loro posizione fisica o sulla rete (es.: edificio o indirizzo IP).
Concurrency transparency: possibilità per le applicazioni di operare concorrentemente sulle risorse condivise, senza interferire.
Replication transparency: uso di più istanze di una risorsa (tipicamente, per aumentarne disponibilità, affidabilità e prestazioni), in maniera trasparente a utenti e programmatori applicativi.

Trasparenza nei sistemi distribuiti

Failure transparency: possibilità di mascherare l’insorgere di guasti di componenti hardware o software (utenti e applicazioni devono poter completare le loro attività anche in caso di guasti).
Mobility transparency: possibilità di rilocare (far migrare) risorse e clienti durante il loro ciclo di vita, senza condizionare il comportamento di utenti e applicazioni.
Performance transparency: possibilità di riconfigurazione dei sistemi per migliorarne le prestazioni al variare del carico.
Scaling transparency: possibilità di espansione di sistemi ed applicazioni, senza doverne cambiare la struttura o gli algoritmi.

Strati software e hardware nei sistemi distribuiti


I materiali di supporto della lezione

G. Coulouris et al., Distributed Systems: Concepts and Design, (Cap. I), IV ed., 2005.

  • Contenuti protetti da Creative Commons
  • Feed RSS
  • Condividi su FriendFeed
  • Condividi su Facebook
  • Segnala su Twitter
  • Condividi su LinkedIn
Progetto "Campus Virtuale" dell'Università degli Studi di Napoli Federico II, realizzato con il cofinanziamento dell'Unione europea. Asse V - Società dell'informazione - Obiettivo Operativo 5.1 e-Government ed e-Inclusion