Sistemi distribuiti: Il ruolo e le tipologie di Naming

Sistemi distribuiti: Il ruolo e le tipologie di Naming

Il naming

I nomi giocano un ruolo molto importante in tutti i sistemi di computer.
I nomi sono utilizzati per:
– Condividere le risorse, servizi e applicazioni,
– Identificare univocamente le entità,
– Localizzare / indirizzare la posizione delle entità.
In un sistema distribuito l’implementazione di un sistema di naming è distribuita su più macchine. Questa distribuzione è importante per mantenere l’efficienza e la stabilità del sistema.

Il concetto di naming, in particolare, è legato al fatto che si vuol identificare univocamente e poter localizzare ciascuna entità di un sistema.
Risolvere un nome significa decodificarlo per poter accedere all’entità cui fa riferimento.
Affinché la risoluzione sia possibile, è necessario implementare un sistema di naming.

Sistemi distribuiti: Il ruolo e le tipologie di Naming

Nel caso di un sistema distribuito, il sistema di naming è distribuito sulle macchine dell’sistema distribuito. Il nome, in pratica, non è altro che una stringa di bit o caratteri che identifica un’entità.
Per poter operare sulle entità è necessario utilizzare un punto di accesso (o access point), che non è altro che un’entità speciale. Il nome del punto di accesso si chiama indirizzo. L’indirizzo del punto di accesso dell’entità cui afferisce si dice semplicemente indirizzo dell’entità. E’ importante sottolineare che ogni entità può avere molteplici punti di accesso.
Si parlerà di identificatore, in riferimento ad un nome che gode delle seguenti proprietà:
1. un identificatore si riferisce al massimo ad un’entità
2. ogni entità è referenziata al massimo da un identificatore
3. un identificatore si riferisce sempre alla stessa entità (ovvero non viene mai riusato con altre entità)

L’utilizzo degli identificatori rende il riferimento alle entità NON ambiguo.
Un ulteriore tipo di nomi sono i nomi human – friendly: si tratta di nomi formati da una stringa di caratteri, facilmente memorizzabili dalla mente umana (ad es. nomi nel DNS).
E’ importante ricordare che lo scopo della progettazione di un sistema di naming è rendere possibile l’identificazione di un’entità all’interno di un sistema.
Per fare ciò, il sistema di naming tiene traccia del collegamento nome – indirizzo, che, a seconda dell’implementazione utilizzata, può essere rappresentato da una semplice tabella oppure da qualcosa di più complesso.

Naming semplice

I nomi semplici, detti anche non strutturati, sono spesso e volentieri stringhe casuali di bit, che non fanno alcun riferimento alla localizzazione del punto di accesso dell’entità cui afferiscono.

Naming strutturato

Si tratta di un sistema a grafo orientato che contiene due tipi di nodi:
1. nodo foglia -> è il riferimento diretto a una entità
2. nodo directory -> è un nodo che interconnette altri nodi
Gli archi del grafo sono orientati ed etichettati con il nome del nodo directory a cui puntano.
Il nodo che possiede solo archi in uscita si dice nodo radice.
Un nodo directory contiene al suo interno una tabella, i cui elementi sono coppie del tipo:
<etichetta arco, identificatore nodo >.
Problema: per sapere da quale nodo iniziare la risoluzione ? MECCANISMO DI CHIUSURA
La costruzione di uno spazio dei nomi consta dell’utilizzo di name server.
Per costruire uno spazio dei nomi è necessario suddividere logicamente il grafo in tre livello logici:
1. livello globale -> si tratta del nodo root e dei nodi directory di alto livello, che sono gestiti contemporaneamente da diverse amministrazioni
2. livello amministrativo -> nodi di livello intermedio che sono gestiti dalla stessa amministrazione o azienda
3. livello gestionale -> sono nodi di livello più basso che hanno la caratteristica di poter cambiare frequentemente
Name server globali -> devono essere altamente disponibili e fare caching
Name server amministrativi -> simili ai name server globali
Name server gestionali -> caching meno efficiente dovuto ai continui aggiornamenti
La risoluzione dei nomi può avvenire in maniera :
– iterativa -> il client si fa carico di inoltrare di server in server la richiesta di risoluzione
– ricorsiva -> il client effettua la richiesta al server più vicino, e le successive richiesta sono gestite dai server
La scalabilità rispetto alle dimensioni si gestisce tramite replica e caching.
La scalabilità a livello geografico si gestisce preferendo la tecnica ricorsiva rispetto a quella iterativa.

Naming basato su attributi

Il naming basato sugli attributi, detto anche directory service, realizza uno spazio dei nomi come un insieme di coppie <attributo,valore> .

Protocollo LDAP (lightweight directory access protocol)

E’ un protocollo per l’accesso alle informazioni condivise in rete.
Fornisce:
– una definizione dell’organizzazione dei dati
– uno schema di assegnazione dei nomi, utile per identificare i dati nel sistema
– modalità di accesso alle informazioni
Le informazioni vengono organizzate in una struttura gerarchica a scala, detta DIT (directory information tree).
Esistono sia Server LDAP che tengono traccia delle informazioni, sia Gateway LDAP che utilizzano altri server per reperire le informazioni.

Precedente Sistemi distribuiti: Caratteristiche e tipologie di comunicazione tra processi Successivo La tecnica della Mutua esclusione nei sistemi operativi e distribuiti

Lascia un commento

*