05/11/14 CdL MAGISTRALE in INFORMATICA A.A. 2014-2015 corso di SISTEMI DISTRIBUITI 7. I processi : il naming Prof. S.Pizzutilo Il naming dei processi Nome = stringa di bit o di caratteri utilizzata per identificare univocamente un’entità (una risorsa, un processo, una funzione, un host, un file,….) indipendentemente dalla sua posizione. La posizione di una entità è invece definita dal suo indirizzo (o punto di accesso). In un sistema di calcolo si dispone di un SISTEMA di NAMING che permette al Sistema Operativo ed all’utente di identificare le risorse (HW/SW) e di gestire la localizzazione (l’indirizzo) delle risorse all’interno delle componenti hardware (file system, processi, …) utilizzando sistemi di RISOLUZIONE dei nomi (scoprire l’associazione tra nome e indirizzo della risorsa). In un sistema distribuito il sistema di naming diventa ancora più importante per risolvere in maniera non ambigua i problemi di gestione delle risorse ovunque distribuite. 1) Un identificatore si riferisce al massimo a una entità, 2) Ogni entità è referenziata al massimo da un identificatore, 3) Un identificatore si riferisce sempre alla stessa entità. 1 05/11/14 Process addressing Indirizzamento esplicito send (process_id, message) receive (process_id, message) Indirizzamento implicito (functional addressing) send_any (service_id, message) receive_any (process_id, message) Process_id in generale vengono utilizzate tecniche di indirizzamento che prevedono una combinazione di: machine_id e Identificatore di host local _id identificatore di processo o di porta o una combinazione di : machine1_id(Mid) Identif. nodo su cui è creato il processo server local_id (Lid) identificatore locale generato dal nodo su cui è creato il processo e machine2_id (OMid) identif. dell’ultimo nodo conosciuto su cui è attivo il processo Link based process addressing Lid Nodo A (server) Nodo B (server) Processo x kernel Processo x OLid se Mid ≠ OMid Nodo C (client) Call processo x kernel OMid (Mid, Lid, OMid) se Mid=OMid kernel OLid Lid ---- ------- ----- Durante il ciclo di vita di un processo il 1° ed il 2° campo non cambiano. Quando un processo viene migrato da un nodo A ad un nodo B, il link del 3° campo (OMid) è stato modificato dal nodo A e punta sul nuovo nodo B, dove viene generato un nuovo Lid (OLid) al processo; il suo identificatore di processo (Lid) con il nuovo OLid viene inserito in una tabella di mapping (gestita dal kernel del nuovo nodo B) di tutti i processi creati su altri nodi e in esecuzione su B. Quando si genera un processo il 1° campo =3° campo 2 05/11/14 Naming versus localizzazione delle entità Rif.: A.Tanenbaum,M.Van Steen “Sistemi distribuiti” Pearson Prentice Hall 2007 ) a) b) mapping semplice tra nomi e indirizzi. mapping usando l’identità della entità. Naming semplice, strutturato e basato su attributi Naming semplice = Identificatori come stringhe di bit non strutturate (flat) che non contengono informazioni su come localizzare l’indirizzo dell’entità (ad es.indirizzi IP, ...) Naming strutturato = identificatori strutturati composti da nomi semplici (leggibili dall’uomo) (ad es. DNS,….) Naming basato su attributi = descrizione della entità in termini di coppie attributo-valore (ad es. directory service, LDAP,…) 3 05/11/14 Naming semplice Broadcasting e multicasting Per localizzare le entità in una rete è relativamente semplice: il messaggio contiene un identificatore numerico delle entità ed ogni macchina che riceve il messaggio è in grado di valutare se l’indirizzo del destinatario è il suo o no. In caso positivo invia come risposta il suo indirizzo ethernet (ad es.ARP). Il Multicasting permette di restringere il numero delle macchine cui inviare il messaggio. Puntatori forwarding Approccio utilizzato per localizzare entità mobili: quando una entità si sposta si lascia dietro un puntatore alla sua nuova posizione. Forwarding Pointers (1) Principio del forwarding pointer usando le coppie (proxy, skeleton) (o client stub-server stub). Rif.: A.Tanenbaum,M.Van Steen “Sistemi distribuiti” Pearson Prentice Hall 2007 ) 4 05/11/14 Forwarding Pointers (2) Redirezione di un puntatore forwarding, memorizzando un collegamento in un client stub (o in un proxy) Rif.: A.Tanenbaum,M.Van Steen “Sistemi distribuiti” Pearson Prentice Hall 2007 ) Approccio Home-Based L’host dove è nato un oggetto mantiene sempre un riferimento (link) alla sua posizione attuale (home location) anche se si sposta. Il principio del Mobile IP. Rif.: A.Tanenbaum,M.Van Steen “Sistemi distribuiti” Pearson Prentice Hall 2007 ) 5 05/11/14 Altri approcci alla risoluzione dei nomi per la localizzazione delle entità DHT (Distributed Hash Table) . I nodi sono strutturati in un anello logico con identificatori casuali a m bit (128 o 160) e chiavi associate a specifiche entità (file, processi,…) Ciascuna entità con chiave k è associata ad un nodo con identificatore id≥ k chiamato successore di k. Ogni nodo, per poter risolvere il problema della risoluzione della chiave k nell’indirizzo di succ(k) tiene traccia del suo successore in una finger table. Approccio gerarchico rete suddivisa in domini e sottodomini con nodi (directory) radice. Su tale albero si applicano gli algoritmi di visitazione dell’albero per risolvere il problema della localizzazione di un host. Naming strutturato I nomi sono organizzati in un name space che può essere rappresentato come un grafo orientato. Rif.: A.Tanenbaum,M.Van Steen “Sistemi distribuiti” Pearson Prentice Hall 2007 ) 6 05/11/14 Ad esempio il file system Unix Organizzazione generale della implementazione di un file system unix di blocchi contigui di un disco logico. Linking and Mounting (1) Questo sistema consente di RISOLVERE I NOMI, costruire cioè un meccanismo per memorizzare e recuperare le informazioni sulle entità per mezzo dei nomi e del loro path name e di un opportuno meccanismo di chiusura ( punto da cui iniziare la risoluzione di un nome =directory table del nodo iniziale) 7 05/11/14 Linking and Mounting (2) Come montare uno spazio dei nomi remoto attraverso uno specifico protocollo di accesso. Distribuzione di uno Spazio dei nomi (1) Un esempio di partizionamento del DNS in tre livelli Rif.: A.Tanenbaum,M.Van Steen “Sistemi distribuiti” Pearson Prentice Hall 2007 ) 8 05/11/14 Implementazione della Name Resolution (1) Il principio della risoluzione iterativa dei nomi Rif.: A.Tanenbaum,M.Van Steen “Sistemi distribuiti” Pearson Prentice Hall 2007 ) Implementazione della Name Resolution (2) Il principio della risoluzione ricorsiva dei nomi Rif.: A.Tanenbaum,M.Van Steen “Sistemi distribuiti” Pearson Prentice Hall 2007 ) 9 05/11/14 Naming basato su attributi Il naming semplice o strutturato consente di far riferimento alle entità in modo indipendente dalla loro localizzazione. Esiste però la possibilità di usare descrizioni ancora più dettagliate delle entità per localizzarle. Directory Service : alle entità vengono associate informazioni dettagliate (coppie ATTRIBUTO-VALORE) che consentono di descrivere le risorse e che vengono usate per effettuare la ricerca della esatta localizzazione della risorsa stessa. Il modello RDF = Resource Description Framework descrive le risorse con una tripla (soggetto – predicato - oggetto). LDAP (Lightweight directory access protocol) Consiste nel combinare il naming strutturato con quello basato sugli attributi. E’ un protocollo standard per l'interrogazione e la modifica dei servizi di directory . I sistemi di Directory Service Una directory è un insieme memorizzato di informazioni su oggetti (utenti, file, server, stampanti, applicazioni, database…) in qualche modo in relazione tra loro: Ø gli Utenti devono individuare ed utilizzare in modo semplice ed efficace questi oggetti Ø gli Amministratori devono gestire efficacemente l’utilizzo degli oggetti Se tutte le informazioni necessarie alla gestione e all’utilizzo degli oggetti vengono memorizzate in una posizione centralizzata, il processo di individuazione e gestione delle risorse si semplifica. Una directory è quindi un database di oggetti di rete a cui è possibile fare riferimento in modi diversi. Ad esempio Active Directory fornisce un'unica posizione da cui gestire gli account utente, i client, i server e le applicazioni basati su Windows. • I servizi Active Directory integrano il concetto Internet dello spazio dei nomi, utilizzando il servizio DNS (Domain Name System) e sono in grado di scambiare informazioni con le applicazioni che utilizzano il protocollo LDAP 10 05/11/14 Active Directory (Windows 2000) • Struttura Logica Nei servizi Active Directory le risorse vengono organizzate all’interno di una struttura logica. Il raggruppamento logico delle risorse consente la ricerca delle risorse attraverso i loro nomi piuttosto che le loro posizioni fisiche Oggetti Un oggetto è un insieme di attributi denominato in modo distinto che rappresenta una risorsa di rete. Gli attributi dell’oggetto sono caratteristiche degli oggetti nella directory. All’interno dei servizi di Active Directory è possibile organizzare gli oggetti in CLASSI, ossia raggruppamenti logici di oggetti. Una classe di oggetti può essere utenti, gruppi, domini o unità organizzative Gli oggetti contenitore sono oggetti in grado di contenere altri oggetti – Una OU (Organizational Unit) è un oggetto contenitore utilizzato per organizzare oggetti all’interno di un dominio in gruppi amministrativi logici – Una OU è in grado di contenere account utente, gruppi, stampanti, applicazioni e altre OU – Ogni dominio è in grado di implementare la propria gerachia OU LDAP Il protocollo LDAP (Lightweight Directory Access Protocol) è costituito da una serie di protocolli utilizzati per accedere ai servizi sullo standard X.500 per la condivisione di directory, ma è meno complesso e non richiede grandi risorse. Per tale ragione, LDAP viene spesso chiamato X.500 Light. • LDAP organizza le informazioni in ordine gerarchico servendosi di directory che sono in grado di immagazzinare numerose informazioni che possono anche essere utilizzate (come in NIS =Network Information Service), permettendo a chiunque di accedere al loro account da qualsiasi macchina presente sulla rete LDAP abilitata. In molti casi, tuttavia, LDAP viene utilizzato semplicemente come rubrica virtuale che permette agli utenti di accedere con facilità alle informazioni relative ai contatti di altri utenti. • LDAP è in grado di propagare le proprie directory ad altri server LDAP in tutto il mondo, fornendo accesso globale all'informazione (autenticazione IDEM). • LDAP è un sistema client-server. Il server può avvalersi di numerosi database per salvare una directory, ciascuno dei quali ottimizzato per operazioni di lettura rapide e sostanziose. Quando un'applicazione di un client LDAP si connette a un server LDAP può interrogare una directory oppure caricare informazioni al suo interno. Se l'applicazione client cerca di caricare informazioni all'interno di una directory LDAP, il server verifica che l'utente abbia il permesso di attuare la modifica, poi aggiunge o aggiorna le informazione 11
© Copyright 2024 Paperzz