34) Quali
sono le proprietà e le caratteristiche di un sistema di naming?
Proprietà:
- generalità: varietà
di nomi.
- definizioni multiple della stessa entità:
varietà di nomi per lo stesso oggetto con mapping capace di traslare.
- distribuibilità: uso
di direttori partizionati o replicati.
- user-friendliness.
Contesti di definizione dei nomi:
- uso generalizzato del nome nei diversi contesti e strumenti.
- livelli di nomi diversi e relative funzioni di mapping.
- interazione con contesti di validità dei nomi.
Esempi di nome:
- uso esplicito del nome o dell'indirizzo: oggetto X
o all'indirizzo X.
- per contenuto, ossia per l'oggetto con valori di attributi:
oggetto il cui campo Z vale Y o Z<34.
- uso di una forma esplicita: tutti i miei files.
- identificatore broadcast: tutti gli oggetti.
- identificatore di gruppo: tutti il gruppo Z.
- identificatore di cammino o route: oggetto che si
trova seguendo il cammino K.
- in relazione ad alcune delle specifiche precedenti: tutti
gli oggetti determinati sopra.
Obiettivi per l'implementazione:
- spazi globali di oggetti con nomi: uso di nomi logici
e non di nomi di nodo (quindi indipendenti dalla allocazione).
- più livelli di nomi / più nomi per oggetto:
almeno due livelli, di utente e di sistema.
- generazione di nomi distribuita: i nomi non devono
richiedere una entità centrale.
- facile inizializzazione: uso di nomi facili da ricavare alla
creazione.
- replicazione: nomi che consentano la replicazione di oggetti.
- aggancio di nomi ad indirizzi (1:n, n:1): nomi associati
anche a più entità (server).
- possibilità di riallocazione (bilanciamento):
uso di nomi che consentano il movimento di oggetti.
- multicast e broadcast: definizione di gruppi di oggetti
e di azioni sui gruppi.
- minimizzazione dei servizi di naming.
Problemi
ambiguità di indirizzo. Rimedi:
- nomi di gruppo: non associati alla allocazione,
con possibilità di cambiamento della allocazione alle variazioni
del gruppo
- indirizzi assoluti: non collegati alla allocazione (es.
indirizzi Ethernet)
- necessità di definire il mapping tra livelli
di nomi diversi (nomi: statici, route: dinamici)