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
 
I corsi di Ingegneria
 
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