Servizio di directory: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Coordinamento Template: Sostituzione stub |
+F |
||
(60 versioni intermedie di 41 utenti non mostrate) | |||
Riga 1:
{{
Un '''
== Differenze con le basi di dati relazionali ==
Una [[directory]] viene considerata, per analogia, un [[database]] organizzato, da un punto di vista logico, secondo una modalità gerarchica. Si tratta di un particolare tipo di database, un database specializzato, che ha caratteristiche differenti dai tradizionali [[database relazionale|database relazionali]].
Per prima cosa, una directory, per sua stessa natura, riceve quasi esclusivamente accessi in [[lettura]]; la fase di [[scrittura]] è limitata agli [[amministratore di sistema|amministratori di sistema]] o ai proprietari delle singole informazioni. Per questo motivo, le directory sono ottimizzate per la lettura, mentre i tradizionali database relazionali devono supportare sia la lettura sia la scrittura dei dati (ad esempio in un sistema di prenotazioni aeree o in [[applicazione (informatica)|applicazioni]] bancarie).
[[en:Directory service]]▼
Ne consegue che le directory non sono adatte per immagazzinare informazioni aggiornate di frequente. Ad esempio, il numero di processi in coda in fase di [[Stampa (processo)|stampa]] non va memorizzato in una directory, visto che per offrire un dato accurato il numero deve essere aggiornato continuamente. La directory può invece contenere l'[[indirizzo]] di una stampante remota che è inserita nel processo di stampa; una volta trovata la stampante con una ricerca nella directory, si può ottenere poi il numero di processi in attesa. L'informazione nella directory (indirizzo della stampante) è statica, mentre il numero richiesto è dinamico e quindi non adatto per stare in una directory.
Un'altra differenza tra directory e database relazionali è che la maggior parte delle implementazioni di directory non supporta le [[transazione (database)|transazioni]], ovvero operazioni atomiche, che devono essere eseguite interamente o non eseguite per niente, come ad esempio avviene per le operazioni bancarie di trasferimento di denaro. Sono comunque supportate nel [[Lightweight Directory Access Protocol|LDAP]], anche se sono limitate a transazioni tra directory LDAP e non includono altre transazioni, come operazioni tra database. I tradizionali database relazionali di solito supportano queste transazioni, che però complicano la loro implementazione.
Un'altra importante differenza sta nel metodo di accesso alle informazioni. La maggior parte dei database relazionali supporta un metodo d'accesso potente e standardizzato che è [[SQL]]. SQL permette aggiornamenti e interrogazioni elaborati a discapito delle dimensioni del programma e della complessità dell'applicazione. Le directory invece, in particolare le directory LDAP, usano un protocollo di accesso semplificato e ottimizzato che può essere usato in applicazioni snelle e relativamente semplici. Visto che le directory non hanno l'intento di fornire lo stesso numero di funzioni di un tradizionale database relazionale, possono essere ottimizzate per consentire a più applicazioni di accedere ai dati in grandi sistemi distribuiti nel modo più rapido possibile.
== Directory client e server ==
L'accesso alle directory di solito utilizza il modello di comunicazione [[client]]/[[server]].
Un'applicazione che vuole leggere o scrivere informazioni in una directory non vi accede direttamente, ma invoca una funzione o un'interfaccia (API, [[application programming interface]]) che genera l'invio di un messaggio ad un altro processo. Questo secondo processo accede alle informazioni della directory per conto dell'applicazione che ne ha fatto richiesta via [[TCP/IP]]. La [[porta (reti)|porta]] TCP/IP di default è 636 per le comunicazioni sicure [[crittografia|crittografate]] e 389 per le comunicazioni non crittografate. Il risultato dell'operazione di lettura o di scrittura è restituito quindi all'applicazione.
Una richiesta è di solito fatta dal directory client, e il processo che cerca l'informazione nella directory è chiamato directory server. In generale, i server forniscono un servizio specifico ai client. Qualche volta un server può diventare un client di altri server, per ottenere le informazioni necessarie per soddisfare la richiesta. Client e server possono risiedere o meno sulla stessa macchina.
Un server può soddisfare diversi client; più server possono eseguire richieste in parallelo. Si possono avere anche code di processi quando i server sono occupati mentre stanno eseguendo un'altra richiesta. Un API definisce l'interfaccia di programmazione che un particolare linguaggio usa per accedere ad un servizio. Il formato e il contenuto dei messaggi scambiati tra client e server deve rispettare un protocollo concordato, come LDAP.
== Tipologie ==
Una directory può essere ''locale'' o ''globale'', a seconda se si tratti di un'area limitata o
estesa all'universo di interesse, che può essere un'azienda, una nazione o tutto il mondo.
I client che accedono ad una directory possono essere locali o remoti. I client locali si
trovano nello stesso edificio, o comunque possono accedere alla stessa [[LAN]]. I client
remoti possono invece trovarsi in qualsiasi punto del pianeta.
Una directory inoltre può essere ''centralizzata'' o ''distribuita'', a seconda che si tratti di un
server in un solo posto o di più server sparsi. Quando una directory è distribuita, le
informazioni contenute possono essere partizionate o replicate. Quando l'informazione
è partizionata, ogni directory server contiene una parte di informazione unica e non
sovrapponibile. Cioè ogni entry della directory è contenuta in uno e un solo server. Una
delle tecniche di partizione è quella di usare riferimenti LDAP; questi permettono agli
utenti di rivolgere le richieste LDAP a server differenti. Quando l'informazione è
replicata, la stessa entry è contenuta in più server. In una directory distribuita ci possono
essere informazioni partizionate e replicate insieme. La distribuzione dei directory server e la modalità in cui i dati sono partizionati o
replicati determina il livello di prestazione e di disponibilità della directory.
== Voci correlate ==
* [[Lightweight Directory Access Protocol]]
* [[OpenLDAP]]
* [[Gopher (informatica)]]
== Collegamenti esterni ==
* {{cita web|https://www.redbooks.ibm.com/redbooks/pdfs/sg244986.pdf|Ibm RedBook Understanding LDAP|lingua=en|formato=pdf}}
{{Controllo di autorità}}
{{Portale|informatica}}
[[Categoria:Sistemi informativi]]
|