Sistemi Distribuiti Problema del naming 1 Modello di Naming Conoscenza reciproca delle entità / servizi In una relazione cliente/servitore il cliente deve avere un riferimento al servitore Problema della trasparenza I riferimenti sono distribuiti nel codice dei clienti, degli utilizzatori, delle librerie, ecc. Si deve garantire la consistenza Quando si risolvono i nomi (binding)? binding statico: i riferimenti sono risolti prima della esecuzione binding dinamico: i riferimenti sono risolti al bisogno. Nasce la necessità di un servizio di nomi (name server) 2 1
Naming: definizioni In un sistema distribuito Un nome è semplicemente una stringa. Un entità è una risorsa generica. Un access point è un modo per accedere e operare sulla risorsa. Il nome di un access point viene chiamato indirizzo Ex: Entità: persona: Access point: telefono Indirizzo: num. tel. Entità: File system Access point: ftp server Indirizzo: IP-port number 3 Naming: definizioni Un entità può offrire più access point ciascun identificato da un indirizzo In realtà anche l indirizzo di un access point può cambiare perché può essere dipendente dall allocazione: allo stesso access point può essere associato un nuovo indirizzo e lo stesso indirizzo può essere assegnato all access point di un altra entità. Un indirizzo viene chiamato identificatore quando: l indirizzo si riferisce al più ad un access point ciascun access point viene riferito da un solo indirizzo un indirizzo fa sempre riferimento alla stesso access point (non c è riuso) Ex. indirizzo MAC di una scheda di rete 4 2
Sistema di Naming Un indirizzo di una risorsa può essere specificato con un nome logico. Un servizio di naming, in genere, effettua la traduzione tra nome logico e indirizzo. Nei sistemi aperti il modello di naming deve consentire di inserire nuovi nomi compatibili con il sistema esistente e di aggiornare la singola voce. L implementazione di un sistema di naming può essere: Centralizzato Centralizzato ma replicato Distribuito 5 Modello di Naming Naming semplice (nome flat che non contiene nessuna informazione per la sua risoluzione). Alcuni Approcci: Polling broadcast o multicasting (Protocollo ARP) Home based Hash table distribuiti Gerarchico Naming strutturato Spazio dei nomi (File system, DNS) Naming basato sugli attributi Directory service 6 3
Broadcast e multicasting:protocollo ARP La richiesta è inoltrata in broadcast sulla sottorete La macchina che ha l indirizzo IP risponde col suo indirizzo MAC IP: 10.6.1.26 Mask: 255.255.255.0 IP: 10.6.1.5 Mask: 255.255.255.0 IP: 10.6.1.25 Mask: 255.255.255.0 who-has 10.6.1.26 tell 10.6.1.3 IP Source: 10.6.1.25 IP Dest: 10.6.1.26 MAC Source: 00:E0:98:2D:09:97 MAC Dest: FF:FF:FF:FF:FF:FF reply 10.6.1.26 is-at 0:0:39:7c:83:db IP Source: 10.6.1.26 IP Dest: 10.6.1.25 MAC Source: 00:00:39:7C:83:DB MAC Dest: 00:E0:98:2D:09:97 7 Home-Based Approaches Mobile IP 8 4
Distributed Hash Tables 5 6 8 12 20 Chord system. 9 Approccio gerarchico Un nodo radice di un sotto-albero contiene una entry per ogni entità E. Il location record contiene un puntatore al directory node del successivo sotto-dominio del livello più basso che contiene l entità E. 10 5
Approccio gerarchico: replicazione di entità Figure 5-6. An example of storing information of an entity having two addresses in different leaf domains. 11 Approccio gerarchico: ricerca Fasi della ricerca di una risorsa E 12 6
Approccio gerarchico:inserimento nuova risorsa a) richiesta di inserimento di una risorsa E b) inserimento di una risorsa E 13 Spazio dei nomi (file system) 14 7
Spazio dei nomi distribuito (DNS) 15 Implementation of Name Resolution (Soluzione iterativa) 16 8
Implementation of Name Resolution (Soluzione ricorsiva) 17 Implementation of Name Resolution (confronto soluzione ricorsiva e iterativa) Le due soluzioni possono avere costi di comunicazione differenti. 18 9
Naming basato sugli attributi L entità è descritta in termini di coppie (attributo, valore). Ad un entità possono essere associati un insieme di attributi. Il compito del sistema di naming è di restituire una o più entità che corrispondano alla richiesta fatta dall utente in termini di uno o più attributi. I sistemi di naming basati sugli attribuiti sono noti come directory service. Si basano su diversi modelli per la descrizione delle entità ( ad es. Resource Description Framework RDF) 19 Esempio RDF <?xml version="1.0"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:cd="http://www.recshop.fake/cd#"> <rdf:description rdf:about="http://www.recshop.fake/cd/empire Burlesque"> <cd:artist>bob Dylan</cd:artist> <cd:country>usa</cd:country> <cd:company>columbia</cd:company> <cd:price>10.90</cd:price> <cd:year>1985</cd:year> </rdf:description> Il modello di dati RDF è formato da risorse, proprietà e valori. Title Artist Country Company Price Year Empire Bob USA Columbia 10.90 1985 Burlesque Dylan </rdf:rdf> 20 10