You are on page 1of 11

SISTEMAS DISTRIBUIDOS

TEMA 4: SERVICIOS DE NOMBRES DISTRIBUIDOS

DAVID RODRGUEZ HERNNDEZ FECHA DE REVISIN: 20 Diciembre 2008 ZAMORA (CURSO 2008/2009) david.rgh@gmail.com

Nota importante: Este documento no pretende reemplazar al material propuesto por la UNED para la asignatura Sistemas Distribuidos. Su finalidad es presentar de una forma esquematizada los contenidos de la asignatura, para facilitar el estudio de la misma. Es conveniente disponer de la bibliografa propuesta por la Universidad para su estudio completo. Cualquier sugerencia, comentario o correccin sobre este documento, envelo a david.rgh@gmail.com para poder realizar los cambios necesarios.

INTRODUCCIN
Los nombres se usan para hacer referencia a los recursos (computadores, servicios, archivos). Un ejemplo de nombre es una URL para acceder a una pgina web. Para que un proceso pueda compartir recursos, necesita poderlos nombrar de una forma consistente. Pero los nombres no son la nica forma; se puede tambin, por ejemplo, con los atributos descriptivos (un cliente puede no conocer el nombre, pero tener informacin para localizar el recurso). Para obtener un nombre, tenemos los servicios de nombres. Tambin vamos a ver otros servicios, como el de descubrimiento, el de directorios NOMBRES, DIRECCIONES Y OTROS ATRIBUTOS Algunos ejemplos de nombres e identificadores son las URL, los nombres de dominio de Internet, los nombres de archivos etc. Podemos distinguir entre nombres puros (patrones de bits sin interpretar) y no puros (contienen informacin sobre el objeto al que nombran (p. ej: la ubicacin del objeto)). En el otro extremo de un nombre puro se sita la direccin de un objeto, la cual es eficaz para acceder a ste, pero est el problema de que un objeto puede cambiar de localizacin. Se dice que un nombre est resuelto cuando est traducido a datos relacionados con el recurso en cuestin. La asociacin entre un nombre y un objeto se llama enlace. Los nombres suelen enlazarse a los atributos de los objetos y no a su implementacin. Un atributo es una propiedad de un objeto. Vase la Figura 9.1 (pgina 337). Nombres y servicios: Muchos de los nombres en un sistema distribuido son de algn servicio concreto y son utilizados para solicitar una operacin a dicho servicio. Estos nombres slo se usan en el contexto del servicio que gestiona los objetos nombrados, excepto cuando los clientes se comunican con objetos compartidos. Los nombres tambin se usan para nombrar a entidades del sistema distribuido que estn fuera del mbito de un nico servicio (ej: usuarios, computadores, servicios). Estos nombres deben ser legibles para los humanos, ya que diversas personas (administradores, usuarios, programadores) los usan para sus propsitos. Identificadores de Recurso Unificados (URI): Un ejemplo de URI son los URL, que son direcciones nicamente de recursos web, a los que se puede acceder con facilidad (nombre DNS ms un camino hacia el recurso). Pero si un recurso se mueve o se borra, el URL no apuntar a nada (se dice comnmente que est roto) o apuntar a otro objeto (si ha sido referenciado igual que el anterior). Otro tipo de URI son los Nombres Uniformes de Recurso (URN), que tratan de resolver los anteriores problemas. Un servicio de bsqueda URN relaciona los URN con su URL correspondiente, la cual puede variar en el tiempo (sin que vare el URN). Si un administrador cambia la URL, debe registrar la nueva en el servicio de bsqueda. La forma de un URN es la siguiente: urn:espacioNombres:nombreEspecfico-espacioNombres. Puede verse un ejemplo en la pgina 338. Existe otro subconjunto de los URN llamado Caractersticas de Recurso Uniformes (URC) (o Citas de Recursos Uniformes). Se trata de descripciones de un recurso web, escrito en forma de pares nombrevalor. Permite realizar bsquedas de recursos web que cumplan con su especificacin de atributos.

SERVICIOS DE NOMBRES Y EL SISTEMA DE NOMBRES DE DOMINIO Un servicio de nombres mantiene la relacin entre nombres textuales y atributos de objetos (contextos de nominacin). Este servicio permite buscar un nombre dado a partir de sus atributos. Este servicio se encuentra separado de los dems, ya que, por una parte, es conveniente que los recursos usen el mismo esquema de nomenclatura (ej: URL) y, por otra, no siempre es posible predecir el mbito de la comparticin en un sistema distribuido. Requisitos de un servicio de nombres general: Con el crecimiento de las redes y su interconexin, los servicios de nombres necesitaron de una mayor complejidad. El Servicio de Nombres Global se desarroll (basado en Grapevine, uno de los primeros servicios de nombres extensible y multidominio) para gestionar un nmero arbitrario de nombres y servir un nmero arbitrario de organizaciones administrativas, soportar un tiempo de vida del servicio elevado (con los cambios que ocurran durante el mismo en los nombres y componentes), tener una alta disponibilidad, aislar los fallos locales de forma que no afecten al sistema completo y no hay ningn componente autenticado por todos los clientes del sistema. Ejemplos de servicios de nombres que se han concentrado en el objetivo de la escalabilidad son Globe y Handle. DNS (Domain Name Service) es menos ambicioso en este objetivo, pero se utiliza mucho (nombra objetos en Internet y se basa en gran medida en la replicacin y el almacenamiento en cach de los datos de nominacin). ESPACIOS DE NOMBRES Es la coleccin de todos los nombres vlidos en un servicio concreto (es decir, que el servicio puede intentar su bsqueda, aunque est desvinculado). Se pueden ver un par de ejemplos en la pgina 340. Los nombres pueden estar organizados en jerarquas, como los sistemas de directorios de UNIX o los nombres de dominio de Internet. La ventaja de esto es que cada bsqueda se realiza en relacin a un contexto dado (en el ejemplo de UNIX, un archivo se busca al llamarlo en un directorio concreto y no en todo el sistema), pudiendo tener nombres iguales pero sobre contextos distintos. Adems, distintos contextos pueden gestionarse por distintas personas. Tambin existe la posibilidad de que la organizacin sea plana, en cuyo caso suele existir un tamao mximo (en principio, los jerrquicos son infinitos). Los nombres DNS se llaman nombres de dominio y tienen una estructura jerrquica (se separa cada cadena por un punto (.)). Cada cadena de estas se llama etiqueta o componente de nombre (el punto no aparece al inicio y al final). Los nombres DNS no son sensibles a maysculas y tampoco reconocen los nombres relativos (todos se refieren a la raz global). Para facilitar su uso, las aplicaciones suelen aadir de forma automtica un nombre de dominio de entre una lista que gestione (si uno falla se intentan otros) (ejemplo en la pgina 341). Alias: Para evitar la escritura de cadenas tediosas, se pueden usar alias (como los enlaces simblicos de UNIX). El cliente hace referencia a un nombre genrico, que se traduce en el nombre DNS real (adems, implica la ventaja de poder cambiar este ltimo nombre sin modificar el alias, modificando solo su relacin en la base de datos DNS). Dominios de nombres: Es un espacio de nombres para el que existe una nica autoridad administrativa global para asignar nombres. No se debe confundir dominio de nombres con nombres de dominio (aunque a veces puedan coincidir, no es necesario). Cada dominio puede gestionar los nombres que contenga, pero debe estar de acuerdo con el dominio por encima suyo (ver ejemplo en pgina 341). La responsabilidad de un dominio de nombres suele ir en paralelo con la responsabilidad de gestionar y mantener actualizada la porcin correspondiente de la base de datos almacenada en un servidor de nombres autorizado y utilizado por el servicio de nombres.

Combinacin y personalizacin de los espacios de nombres: Aunque DNS proporciona un espacio de nombres global y homogneo (un nombre se refiere siempre al mismo recurso, independientemente de quin lo llame y desde dnde lo haga), otros servicios permiten ms de un espacio de nombres incluidos en ellos. o Fusionado: Por ejemplo, en UNIX se pueden fusionar dos sistemas de archivos (por ejemplo, dos /etc/passwd de dos computadores distintos) manteniendo los contenidos de la raz antigua de cada computador y aadiendo en ambos los sistemas de archivos nuevos (segn el ejemplo de la pgina 342, /rojo y /azul) (podra indicarse una super-raz, pero tendramos el problema de que los procesos que usen el nombre antiguo no lo encontraran). El espacio de nombres del Entorno de Computacin Distribuida (DCE) Heterogeneidad: permiten incluir en su interior espacios de nombres heterogneos. En la pgina 342 se muestra un ejemplo donde se puede ver cmo se utiliza una unin (principals) de la misma forma que un punto de montado en UNIX. Personalizacin: Se permite a los usuarios importar archivos que son almacenados en los servidores y compartirlos, mientras que el resto de nombres continan refirindose a archivos locales no compartidos. Los usuarios deben traducir los nombres entre computadores, ya que un mismo archivo puede estar montado en diferentes puntos y no comparten el espacio de nombres completo. Otra justificacin de la personalizacin es si el mismo nombre se refiere a distintos archivos en distintos computadores (ver ejemplo en pgina 342).

RESOLUCIN DE NOMBRES Es un proceso iterativo donde se presenta repetidamente un nombre sobre los contextos de nominacin. Primero se presenta sobre un contexto inicial y se repite segn se generen otros contextos (vase un ejemplo en la pgina 343). El uso de alias permite la presencia de ciclos infinitos, por lo que se puede abortar la operacin si supera un umbral de resoluciones, o que los administradores bloqueen alias que puedan producir estos ciclos. Servidores de nombres y navegacin: Un servicio de nombres que maneje una gran base de datos y clientes no puede usar un solo servidor (cuello de botella), por lo que hace uso de la replicacin (DNS, por ejemplo, exige que se replique cada subconjunto de su BBDD en, al menos, dos servidores independientes). Adems, los datos suelen repartirse en servidores, por lo que un servidor de nombres local no siempre podr responder a una peticin sin ayuda de otros servidores de nombres. Este proceso de bsqueda en varios servidores se llama navegacin. DNS puede utilizar la navegacin iterativa, en la que el cliente enviar la peticin a servidores de nombres distintos hasta que uno pueda darle una respuesta, comenzando por el servidor de nombres local. Puede verse un esquema en la Figura 9.2 (pgina 344). Este sistema tambin lo usa DNS para resolver el nombre de un archivo, implementndola componente a componente. Tambin tenemos la navegacin por multidifusin, donde se enva simultneamente la peticin a varios servidores. Aquel que tenga la respuesta la enviar, el resto no har nada. Esta navegacin se usa tambin en los servicios de descubrimiento. Tambin tenemos la navegacin recursiva y la navegacin no recursiva controladas por el servidor (ambas). En la segunda, el cliente se comunica con un servidor y ste usa la navegacin iterativa o por multidifusin para contactar con otros. En la primera, el servidor local contacta con otro, que contacta con otro. formando una cadena de comunicaciones (ver figura 9.3 (pgina 345)). Se puede configurar el sistema para que un cliente ejecutado en un cierto dominio administrativo no pueda acceder a los servidores de nombres en otro dominio administrativo. En este caso se debe utilizar

la navegacin recursiva controlada por el servidor, siendo inapropiadas el resto; de forma que cada servidor de nombres autorizado solicitan datos a servidores designados por los diferentes administradores y stos devuelven los atributos sin revelar las zonas de la BBDD de nominacin donde estaban. Cach: En DNS, el software de resolucin de nombres del cliente y los servidores mantienen una cach con los resultados de resoluciones anteriores. De esa manera, se evita una nueva bsqueda si se vuelve a hacer la misma solicitud. Si no est el dato en la cach del cliente, consulta al servidor. ste consulta su cach y, si no contiene la respuesta, consulta a otro servidor etc. Este sistema mejora las prestaciones del servicio y permite que un cliente pueda hacer una consulta aunque el servidor que la contiene falle (siempre que est en la cach). Suele tener xito, ya que los datos de nominacin suelen cambiar muy poco o cada mucho tiempo. EL SISTEMA DE NOMBRES DE DOMINIO Es un diseo de servicio de nombres. Su BBDD principal se usa a lo largo de Internet. Se conoce como DNS. Al principio, los datos de nombres estaban centralizados en un nico archivo maestro central, lo que restaba escalabilidad. Los objetos que nombra DNS son, en primer lugar, computadores (direcciones IP), aunque se podra nombrar cualquier objeto. A partir de ahora, a los dominios de nombres lo llamaremos dominios para simplificar. Cualquier nombre puede ser resuelto por cualquier cliente a lo largo de Internet, mediante una particin jerrquica de la BBDD de nombres gracias a la replicacin de los datos de nombres y a las cachs. Nombres de dominio: Aunque DNS admite distintos espacios de nombres, se suele utilizar prcticamente uno: el espacio de nombres DNS de Internet. Las partes del dominio ms importantes se sitan a la derecha del nombre completo. Existen varios dominios genricos segn el tipo de administrador (com, edu, gov, net, org.) o segn el pas (es, uk, fr, pe, de, it, mx) (el hecho de que haya dominios geogrficos, no implica que fsicamente los servidores estn ubicados en el pas en cuestin). Solicitudes DNS: DNS se utiliza bsicamente para resolver nombres de host y para buscar hosts de correo electrnico: o Resolucin de nombres de host: Consiste en proporcionar un nombre de dominio para obtener la correspondiente direccin IP (lo que se busca puede ser http, ftp.). Pueden verse varios ejemplos en la pgina 347. Localizacin de hosts de correo: Consiste en proporcionar el dominio del correo electrnico deseado (designando como tipo mail) y se devuelve una lista de nombres de dominio de hosts que pueden aceptar correo electrnico para ese dominio (y, opcionalmente, las direcciones IP correspondientes). Adems, se incluye en la respuesta el orden de preferencia de los resultados, marcando cul es el host principal y cules son las alternativas si el primero no est disponible.

Existen otros usos, como la resolucin inversa (obtener el nombre de dominio a partir de la direccin IP; el servidor slo responde si esa IP est en su propio dominio), la informacin de host (proporcionar datos del host, como el tipo de arquitectura y del SO, aunque hay voces en contra de este servicio) o los servicios bien conocidos (obtener una lista de servicios en ejecucin a partir del nombre de dominio, junto con sus protocolos para acceder (UDP o TCP en Internet)). Servidores de nombres DNS: Ya hemos dicho que DNS usa replicacin y el particionado de la BBDD con el uso de cachs. Hay una red lgica de servidores, cada uno mantiene una parte de la BBDD de nombres (suelen tener los de computadores dentro del dominio local). Como la mayora de solicitudes son en el dominio local, pueden resolverse en el servidor local. Cada servidor tiene nombres de dominio y direcciones de otros servidores, a los que poder consultar.

Los datos de nominacin de DNS se dividen por zonas, teniendo en cada una los datos de atributos para nombres en el dominio (excepto los sub-dominios administrados por autoridades de menor nivel), los nombres y direcciones de por lo menos dos servidores de nombres que proporcionen datos autorizados para esa zona, los nombres de servidores que mantienen datos autorizados para sub-dominios delegados (con datos de enlace que proporcionen las IPs de estos servidores) y los parmetros de gestin de zona (vase en la pgina 348 el proceso de comunicacin de los servidores autorizados). En la figura 9.4 (pgina 349) se puede observar la organizacin de una base de datos DNS. Navegacin y procesamiento de solicitudes: Los clientes DNS se llaman resolvers (resolvedores). Aceptan solicitudes, las formatean y las insertan en mensajes del protocolo DNS, envindolos a uno o ms servidores de nombres. Se utiliza un protocolo peticin-respuesta mediante UDP sobre Internet. Si se detecta un retardo excesivo, el cliente reenva la peticin si es necesario. DNS permite la navegacin recursiva y la iterativa, delegando en el cliente la decisin de cul usar, aunque los servidores no estn obligados a implementar la recursiva (puede producir cuellos de botella). Se pueden empaquetar varias solicitudes DNS en un paquete. Registros de recursos: En la Figura 9.5 (pgina 350) se puede ver los tipos registros de recursos DNS. Los datos de una zona comienzan con un registro SOA con los parmetros de la zona, seguido de una lista de registros NS (nombres de servidores para el dominio) y otra de recursos MX (preferencias y nombres de dominio de los hosts de correo). En las pginas 350 y 351 pueden verse varios ejemplos de estos registros. La primera parte indica los datos de una BBDD con un tiempo de vida de un da. La segunda, indica la relacin entre un nombre cannico de un alias y la direccin IP correspondiente. La tercera parte indica la relacin de subdominios (si los hay) y sus direcciones IP. Si, debido a la carga, un nombre de dominio se comparte entre varios computadores; hay un registro para cada computador en el grupo, el cul proporciona sus direcciones IP. El servidor de nombres devuelve la respuesta para una peticin a este nombre asignando una IP del grupo mediante planificacin Round Robin (va rotando en sucesivas peticiones). En este punto, la cach es perjudicial, pues podra implicar varias peticiones seguidas a un mismo computador; para evitarlo, estos registros tienen un corto tiempo de vida. La implementacin BIND de DNS: Es el Dominio de Nombres Internet Berkeley. Es una implementacin DNS para UNIX. Los servidores de nombres DNS ejecutan el demonio named. BIND soporta servidores primarios, servidores secundarios (ambos como los describimos antes) y servidores de slo cach, que leen de un archivo de configuracin suficientes nombres y direcciones de servidores autorizados para poder resolver cualquier nombre (slo almacenan esos datos y los que aprendan al resolver nombres de clientes). Suele organizarse en un servidor primario, uno o ms secundarios y cada computador individual suele ejecutar sus propios servicios slo cach. Discusin sobre DNS: Este apartado resume lo expuesto en los anteriores y puede consultarse en la pgina 352. Recurdese que DNS no fue diseado para ser el nico servicio de nombres, sino para coexistir con nombres locales y con servicios de directorio que almacenan datos ms oportunos para las necesidades locales. El principal problema de DNS es su rigidez con los cambios en la estructura del espacio de nombres y la falta de habilidad en la personalizacin del espacio de nombres para cumplir las necesidades locales.

SERVICIOS DE DIRECTORIO Y DESCUBRIMIENTO A veces, un cliente quiere buscar un recurso del que no conoce su nombre, sino alguno de sus atributos. Para esto tenemos el servicio de directorio, que almacena enlaces entre nombres y atributos y que busca entradas que emparejan especificaciones basadas en atributos. Este servicio devuelve los atributos de cualquier registro que coincida con los parmetros de bsqueda, aunque el cliente puede especificar qu subconjuntos desea. Los atributos no desvelan la estructura de las organizaciones al resto del mundo como lo hacen los nombres divididos usando criterios asociados a una cierta organizacin, aunque es ms complejo que el uso de nombres. Servicios de descubrimiento: Es un servicio de directorio que registra los servicios proporcionados en un entorno de red espontneo (un host puede conectarse espontneamente). Lo hace sin necesidad de intervencin humana. Vase un ejemplo en la pgina 353 y 354. El contexto para el descubrimiento se conoce como mbito. Algunos servicios estn pensados para utilizarse en determinados mbitos (ej: protocolo simplificado de descubrimiento de servicios). Otros, como X.500 se estructuran jerrquicamente para reflejar mbitos geogrficos y de organizacin. Jini: Sistema diseado para su uso en entornos de red espontneos y est basado en Java, mediante comunicacin por RMI. Proporciona recursos para el descubrimiento de servicios, para transacciones, para espacios de datos compartidos (javaSpaces) y para eventos. Referente a los servicios de descubrimiento, Jini se compone de servicios de bsqueda (permiten a los servicios Jini registrar los servicios que ofrece, y a los clientes Jini solicitar servicios que cumplan los requisitos dados), servicios Jini (puede registrarse en uno o ms servicios de bsqueda; proporcionando el servicio y sus atributos) y clientes Jini (solicitan bsquedas de servicios que cumplan unos requisitos dados). Si un cliente o servicio entra nuevo en el sistema, utiliza la multidifusin a una direccin de multidifusin IP bien conocida para averiguar dnde est el servicio de bsqueda. Se enva un datagrama (con un tiempo de vida concreto) por multidifusin y los servicios de bsqueda que lo reciban podrn responder; con lo que se podr registrar o buscar un servicio (segn sea un servicio Jini o un cliente Jini respectivamente). Cada instancia del servicio de bsqueda se etiqueta con uno o varios nombres de grupo (puede haber varias) (ej: administracin, finanzas.). Una solicitud de un cliente Jini puede enfocarse a un grupo concreto de entre estos. Vase la Figura 9.6 y el ejemplo de la pgina 355. Jini usa concesiones (ya las vimos en temas anteriores), con lo que se garantiza su entrada de registro por un tiempo limitado. Si un servicio no renueva la concesin en el servicio de bsqueda antes de que expire, se elimina la entrada.

ESTUDIO DEL CASO DEL SERVICIO DE NOMBRES GLOBAL (GNS) Proporciona servicios de localizacin de recursos, direccionamiento de correo y autentificacin. Un servicio de nombres, para su uso entre diferentes tipos de redes, debe soportar una BBDD de nombres que pueda extenderse para incluir los nombres de millones de computadores y direcciones de correo para billones de usuarios. Esta BBDD tiende a tener un tiempo de vida largo y la red va evolucionando y cambiando, por lo que el servicio debe poder gestionar estos cambios. En GNS, las cachs son esenciales (debido al tamao de la BBDD), pero mantener su consistencia se hace difcil. Se admite que la difusin de las actualizaciones sea lenta. La BBDD se compone de un rbol de directorios con nombres y variables. Estos directorios se identifican con nombres de caminos compuestos referidos a una raz o relativos a un directorio de trabajo (parecido al sistema de UNIX). Cada uno tiene asignado un identificador de directorio (DI) nico, representado por un entero. Los nombres en GNS tienen dos partes: un nombre de directorio y un nombre de valor (se refiere a un rbol de valor o a alguna porcin de un rbol de valor). Vase el ejemplo de la Figura 9.7 (pgina 357). La consistencia del rbol se mantiene frente a dos o ms actualizaciones concurrentes (si dos usuarios intentan, por ejemplo, crear entradas con el mismo nombre simultneamente, slo uno lo conseguir). Los directorios replicados tienen un problema de consistencia que se trata mediante un algoritmo de actualizacin distribuida (pero no garantiza que todas las copias estn siempre actualizadas).

Si queremos unir dos rboles previamente separados, podemos aadir una raz comn (ver figura 9.8 (pgina 357)), pero afecta a los clientes que sigan usando nombres referidos a las races anteriores. Esto puede solucionarse haciendo que el agente de usuario local, que conoce la raz de trabajo, aada dicha raz al nombre solicitado (ver ejemplo de la pgina 358) y se entrega ya compuesto al servidor GNS. Esto resuelve el problema lgico. Pero an tenemos un problema de implementacin: cmo localizar un directorio a partir de su DI? Para ello, GNS lo resuelve mediante una tabla de directorios bien conocidos, mediante la cual, se puede traducir los nombres escritos mediante el DI a nombres de camino completos comenzando en la raz real. Todo esto se entiende mejor si se siguen los ejemplos de la pgina 358. GNS admite adems reestructurar el rbol de directorios; si uno de ellos cambiase de rama (en el ejemplo, EEUU pasa a ser de la EC; por lo que se introduce un enlace simblico en lugar de la entrada original US. Al buscar, se interpreta este enlace como una redireccin al directorio US en su nueva localizacin (ver Figura 9.9 (pgina 358)).

ESTUDIO DEL CASO DEL SERVICIO DE DIRECTORIO X.500 Este servicio de directorio puede ser utilizado de la misma forma que un servicio de nombres convencional, pero se usa principalmente para las solicitudes descriptivas (descubrir nombres y atributos de otros usuarios o recursos del sistema). Existen varios usos para este servicio, como por ejemplo, operaciones anlogas a las consultas de directorios telefnicos, acceder a detalles personales Las solicitudes pueden proceder de usuarios o de procesos. Un individuo u organizacin puede usar X.500 para indicar informacin sobre s misma, y otros usuarios pueden buscar estos datos en el servicio de directorio. En resumen, es un servicio para el acceso a informacin de entidades del mundo real, aunque tambin puede usarse para el acceso a informacin sobre servicios y dispositivos hardware y software. Es un servicio de nivel de aplicacin en el conjunto de estndares OSI, pero su diseo no depende de forma significativa de otros estndares OSI, por lo que puede entenderse como de propsito general. Sus datos se organizan en una estructura de rbol. Cada nodo tiene un nombre, como en los anteriores; pero se puede almacenar en x.500 una gran cantidad de atributos en cada nodo. El acceso no se realiza solo por nombre, sino que se puede usar cualquier combinacin de atributos. El rbol de nombres de X.500 se llama rbol de Informacin de Directorio (DIT). La estructura completa con los datos asociados a los nodos se llama Base de Informacin de Directorio (DIB). Est pensado para tener un nico DIB integrado con la informacin proporcionada por las organizaciones de todo el mundo, con porciones de DIB situadas en servidores X.500 individuales. Los clientes acceden al servidor mediante solicitudes (a cualquier servidor). Si el servidor llamado no gestiona los datos solicitados, invoca a otro o redirige al cliente a otro. Los servidores X.500 se llaman Agentes de Servicio de Directorio (DSA) y los clientes Agentes de Usuario de Directorio (DUA). Vase la arquitectura del servicio X.500 en la figura 9.10 (pgina 360) y un ejemplo de un subrbol en la figura 9.11 (pgina 360). Una entrada de DIB consta de un conjunto de atributos que tienen un tipo (identificado con un nombre de tipo) y uno o ms valores. Se clasifican como las estructuras de clases de objetos de lenguajes de programacin orientados a objetos. Cada entrada tiene un atributo objectClass que indica el objeto al que hace referencia (vase un ejemplo de entrada en la figura 9.12 (pgina 361). Todas las definiciones de clases deben tener un atributo objectClass (objeto u objetos de los que hereda), excepto topClass. El nombre de una DIB se determina seleccionando como atributos distinguidos a uno o ms de sus atributos (se les llama Nombres Distinguidos (DN). Tenemos dos tipos principales de solicitudes de acceso: Read: Se proporciona un nombre de dominio y una lista de atributos para leer; el DSA localiza la entrada nombrada navegando en el DIT (o enviando solicitudes a otros DSA) y devuelve los atributos pedidos. Search: Se proporcionan atributos (los argumentos son un nombre base y una expresin de filtro). El nombre indica dnde comenzar la bsqueda (en qu nodo) y la expresin (booleana) indica las condiciones de bsqueda. Se devuelve una lista de nombres de dominio por debajo del nodo que se indic y que responden TRUE a la expresin de filtro. Esta bsqueda puede ser costosa si el subrbol a analizar es grande. Existen argumentos adicionales para restringir el mbito de bsqueda, el tiempo de bsqueda y el tamao de la lista devuelta.

ADMINSITRACIN Y ACTUALIZACIN DE LA DIB Hay operaciones para aadir, eliminar y modificar entradas. La DIB se divide suponiendo que cada organizacin proporcionar como mnimo un servidor que gestione los detalles de las entidades en dicha organizacin. Se pueden replicar porciones de la DIB sobre distintos servidores. No se cuestiona la implementacin, ya que X.500 es un estndar. Es lgico pensar que una implementacin sobre varios servidores requerir del uso de la replicacin y de las cachs. Un ejemplo de implementacin es el del sistema QUIPU, en el que la cach y la replicacin se realiza al nivel de las entradas DIB individuales y al nivel de colecciones de entradas que descienden del mismo nodo. Asume que los valores pueden volverse inconsistentes con el tiempo y que puede tomar varios minutos resolver dicha inconsistencia. PROTOCOLO DE PESO LIGERO PARA EL ACCESO A DIRECTORIOS (LDAP) En l, un DUA accede a un servicio de directorio X.500 de forma directa mediante TCP/IP. LDAP simplifica la interfaz de X.500 de otras formas, proporcionando un API simple y reemplazando la codificacin ASN.1 mediante la codificacin textual. Cualquier servicio de directorio que cumpla la especificacin LDAP ms simple puede ser utilizado por una implementacin LDAP (ej: el Servicio de Directorio Activo de Microsoft). LDAP proporciona acceso seguro a datos de directorio mediante autenticacin y ha sido ampliamente adoptado, sobre todo en servicios de directorio de intranet.

You might also like