Servicio de Nombramiento

110
Lic. Jorge Guerra G. Sistemas Distribuidos Servicio de Nombramiento Año 2015 Lic. Jorge Guerra Guerra

Transcript of Servicio de Nombramiento

Page 1: Servicio de Nombramiento

Lic. Jorge Guerra G.

Sistemas Distribuidos

Servicio de Nombramiento

Año 2015 Lic. Jorge Guerra Guerra

Page 2: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos2

Page 3: Servicio de Nombramiento

Lic. Jorge Guerra G.

Nombres y direcciones

• Nombre: forma de identificar una entidad en un sistemadistribuido (lista de bits o caracteres).– Entidades: Usuarios, ficheros, recursos, equipos, impresoras,ventanas..– Queremos nombres porque queremos operar con ellas.● Dirección: para poder operar con una entidad es necesarioacceder a través de un punto de acceso. Los puntos deacceso son entidades que se identifican por una dirección.● Un nombre de una entidad es independiente de su ubicaciónsi es independiente de las direcciones de su punto de acceso.– Es más flexible.

Sistemas Distribuidos3

Page 4: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos4

Introducción

Page 5: Servicio de Nombramiento

Lic. Jorge Guerra G.

¿Cómo pasar de nombres a direcciones?

• ● Sistema de nombres: mecanismo para traducir un nombre a una dirección.● En su forma más sencilla puede ser simplemente una tabla (nombre, dirección).– Solución sencilla en sistemas centralizados: un único servidor de nombres– Solución compleja en sistemas distribuidos: múltiples servidores para poder ser flexible, tolerante a fallos…● Dos tipos de sistemas:– No estructurados (o planos).– Estructurados (o jerárquicos).● Capacidad del espacio de nombres finita o ilimitada– Puede ser finita en un sentido (p.ej en direcciones: IP) e ilimitada en otros (p. ej. En nombres: DNS)

Sistemas Distribuidos5

Page 6: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos6

• Motivación– Muchas aplicaciones basadas en redes se apoyan en sus

directorios (o bases de datos) propios• Información que describe a los usuarios, aplicaciones, ficheros y

otros recursos accesible por la red• Gran parte de la información es común con otras aplicaciones

– Problema de consistencia– A más directorios especializados, mayor dificultad de

mantenimiento

Introducción

Page 7: Servicio de Nombramiento

Lic. Jorge Guerra G.

Conceptos Basicos

Sistemas Distribuidos7

Page 8: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos8

Conceptos básicos

• Nombre permite referirse a objetos– Nombre está asociado a id. del objeto (o sea, a nombre interno)– Más general, nombre asociado a conjunto de atributos del objeto

• Resolución de nombres:– Convencional: A partir de nombre, se obtienen atributos– Por atributos: A partir de 1 o más atributos, se obtiene el resto

• Servicio de nombres:– Resolución convencional (Páginas blancas)

• Servicio de directorio– Resolución basada en atributos (Páginas amarillas)

• NOTA: Servicio de directorio de un SFD es un servicio de nombres– Incluye resolución convencional ya que el nombre es un atributo

Page 9: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos9

Servicios de nombres• Herramienta fundamental en

cualquier sistema de computación– Nombres– Bindings– Referencias y direcciones– Contextos– Sistemas de nombres y

espacios de nombresEjemplos:DNS (Domain Name Service)Registro RMIServicio de nombres de CORBA

Page 10: Servicio de Nombramiento

Lic. Jorge Guerra G.

Objetivos de sistema de nombres

• Transparencia de ubicación: El nombre de una entidad no debe revelar su ubicación física.

• Independencia de ubicación: El nombre de una entidad no debe cambiar cuando cambie su ubicación física.– Facilita migración, ya que una misma entidad tiene el mismo nombre en distintos lugares en distintos momentos.

Sistemas Distribuidos10

Page 11: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos11

Servicios de directorio• Amplían la funcionalidad de los

servicios de nombres asignando atributos a los objetos– Atributos– Búsquedas y filtros

Page 12: Servicio de Nombramiento

Lic. Jorge Guerra G.

Aproximación basado en ubicación original

Sistemas Distribuidos12

Page 13: Servicio de Nombramiento

Lic. Jorge Guerra G.

Nombre utilizado para accesar a un recurso usando URL

Sistemas Distribuidos13

file

Web serverSocket

http://www.cdk3.net:8888/WebExamples/earth.html

URL

Resource ID (IP number, port number, pathname)

138.37.88.61 WebExamples/earth.html8888

DNS lookup

(Ethernet) Network address

2:60:8c:2:b0:5a

ARP lookup

Page 14: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos14

Espacios de nombres

• Conjunto de nombres reconocidos por un servicio de nombres

• Alternativas:– Único espacio (servicio) de nombres para todos los tipos de objetos

• No siempre adecuado incluir todos los objetos (p.ej. ficheros)– Combinación de distintos espacios de nombres (p. ej. DCE)

• Ejemplo de la última alternativa:– Servicio de nombres principal para todo excepto ficheros – Espacio de nombre de archivos “enganchado” en un punto del

espacio de nombres principal – Cuando en resolución de nombre, servicio principal alcanza punto

de montaje, delega en SFD el resto de la resolución

Page 15: Servicio de Nombramiento

Lic. Jorge Guerra G.

Aproximación basado en ubicación original

• Problemas:● Mientras exista la entidad debe existir la ubicación original.● Incremento de latencia y mala escalabilidad geográfica (la “casa” puede estar muy alejada)● La ubicación original está prefijada. ¿Y si la entidad se mueve permanentemente a otra ubicación?Pregunta: ¿Cómo resolver el problema de la reubicación permanente?

Sistemas Distribuidos15

Page 16: Servicio de Nombramiento

Lic. Jorge Guerra G.

Servicios de ubicación jerárquica

Sistemas Distribuidos16

Page 17: Servicio de Nombramiento

Lic. Jorge Guerra G.

Organización en árbol• La dirección de una entidad se guarda en un nodo

“hoja” o en un nodo intermedio.• Los nodos intermedios contienen un puntero al hijo

sólo si el sub-árbol de un hijo contiene un puntero ala entidad.

• La raíz conoce todas las entidades.• Una entidad puede tener múltiples direcciones. – El nodo

común tendrá dos punteros, uno para cada rama.

Sistemas Distribuidos17

Page 18: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos18

Resolución de nombres• Generalmente el espacio de nombres es jerárquico

– Algunos objetos son contenedores (directorios) de otros objetos• Resolución: proceso iterativo que parte de un contexto inicial

– Res. absoluta: contexto inicial corresponde con raíz– Res. relativa: contexto inicial corresponde con nodo intermedio

• Espacio de nombres organizado en dominios– Cada dominio gestionado por un servidor

• Mismas alternativas de navegación que en SFD – Resolución iterativa, transitiva o recursiva

• Uso de cache en la resolución• Replicación de información de un dominio

– Mejor fiabilidad y rendimiento, pero problema de coherencia

Page 19: Servicio de Nombramiento

Lic. Jorge Guerra G.

Organización en árbol

Sistemas Distribuidos19

Page 20: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos20

Resolucion de nombres• Resolución (nombres « direcciones y otros atributos),

búsqueda, Modificación• Funcionamiento:

– Base de datos distribuida (servidores que cooperan),– por dominios (escala), rápido (sin conexión, cachés, réplicas)– Muchas consultas (casi sólo lectura),– Muy pocas modificaciones (propagación de cambios)

Page 21: Servicio de Nombramiento

Lic. Jorge Guerra G.

Organización jerárquica: consulta• Se empieza la búsqueda en el nodo hoja.• Dos posibilidades:

– El nodo conoce a la entidad -> se sigue el puntero hacia abajo– El nodo no lo conoce ->se sube un nivel

• Si suben, las consultas terminan en el nodo raíz.

Sistemas Distribuidos21

Page 22: Servicio de Nombramiento

Lic. Jorge Guerra G.

Organización jerárquica: consulta

Sistemas Distribuidos22

Page 23: Servicio de Nombramiento

Lic. Jorge Guerra G.

Organización jerárquica: inserción

Sistemas Distribuidos23

Page 24: Servicio de Nombramiento

Lic. Jorge Guerra G.

Organización jerárquica: inserción

Sistemas Distribuidos24

Page 25: Servicio de Nombramiento

Lic. Jorge Guerra G.

Espacio de nombres

Sistemas Distribuidos25

Page 26: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos26

Ejemplos de Serv. de Nombres

• CORBA:– Servicio de nombres y de navegación

• X.500. Servicio de directorio estándar de ISO.• LDAP (Lightweight Directory Access Protocol, RFC 2251)

– Basado en X.500 pero con un protocolo más ligero (sobre TCP/IP) y una interzaz más sencilla

• Active Directory de Microsoft– Forma parte de la arquitectura de Windows 2000– Proporciona una interfaz LDAP

• UDDI Universal Directory Description Interface -- Forman parte de .NET y JWSDP

Page 27: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos27

Conceptos básicos de X.500

• S. de directorio (p. amarillas) + S. de nombres (p. blancas)• Información organizada jerárquicamente

– Directory Information Tree (DIT)• Por ejemplo: <país, organización, departamento, persona>

• Nodo del árbol (directorio) tiene asociado cjto. de atributos• Conjunto de toda la información:

– DIB (Directory Information Base)– Similar a una BD pero escrituras infrecuentes y sencillas

• Usa un modelo de información orientado a objetos

Page 28: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos28

Ejemplo de jerarquía

... France (country) Great Britain (country) Greece (country)...

BT Plc (organization) University of Gormenghast (organization)... ...

Department of Computer Science (organizationalUnit)Computing Service (organizationalUnit)

Engineering Department (organizationalUnit)

...

...

X.500 Service (root)

Departmental Staff (organizationalUnit)

Research Students (organizationalUnit)ely (applicationProcess)

...

...

Alice Flintstone (person) Pat King (person) James Healey (person) ...... Janet Papworth (person)...

Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Page 29: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos29

Modelo orientado a objetos

• Objetos agrupados en clases– p.ej. personas, impresoras, organizaciones, ...

• Existe esquema que define clases y herencia entre clases– Para cada clase se define cjto. de atributos:

• Atributo= nombre de atributo + tipo de valor(es) asociado(s)• Puede especificarse como obligatorio u opcional

– Define la jerarquía de herencia de clases• P.ej. Clase Secretario derivada de Empleado

• Entrada de DIB (o sea, nodo de DIT): Cjto. de atributos– Atributo= nombre + uno o más valores (p.e j. Despacho=115)– Atributo obligatorio que define la clase (ObjectClass)– No confundir jerarquía de objetos (DIT) con jerarquía de clases

(Esquema)

Page 30: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos30

Una entrada de DIB

infoAlice Flintstone, Departmental Staff, Department of Computer Science,

University of Gormenghast, GB

commonName Alice.L.Flintstone Alice.Flintstone Alice Flintstone A. Flintstone

surname

Flintstone

telephoneNumber +44 986 33 4604

uid

alf

mail [email protected]

[email protected]

Z42userClass

Research Fellow

Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Page 31: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos31

Nombres y operaciones• Cada entrada tiene un nombre:

– Atributo(s) “distinguido(s)” que forma(n) su Relative Distinguished Name (RDN)

– Debe ser único entre los “hermanos” del objeto– P.ej. Nombre=“Juan Martínez Martínez”

• Nombre completo: Distinguished Name (DN)– Concatenación de RDNs desde raíz hasta objeto:

• P.ej. País=ES,Organización=UPM,Nombre=“Juan Martínez Martínez”

• Operaciones típicas:– Añadir/eliminar/modificar entrada de directorio– Leer atributos de un objeto– Buscar en árbol subyacente a objeto qué objetos cumplen criterio

Page 32: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos32

Arquitectura del servicio X.500

• Modelo cliente/servidor• Clientes: Directory User Agents (DUA)• Servidores: Directory Service Agents (DSA)• Normalmente, DIB repartida entre varios DSAs• Admite distintos esquemas de resolución (iterativa, recursiva) • Aspectos de implementación no definidos por estándar

– Por ejemplo, caching y replicación

Page 33: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos33

Page 34: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos34

Arquitectura del servicio X.500

DSA

DSA

DSA

DSA

DSADSADUA

DUA

DUA

Coulouris, Dollimore and KindbergDistributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Page 35: Servicio de Nombramiento

Lic. Jorge Guerra G.

Resoluciones

Sistemas Distribuidos35

Page 36: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos36

Page 37: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos37

Page 38: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos38

Funcionamiento de DNS• Toda zona (unidad de gestión) tiene al menos dos servidores de

nombres– Motivación de la duplicación

• Desempeño• Tolerancia a fallas

– Cada servidor mantiene una tabla de correspondencia nombre de dominio- IP• Colección de registros <Nombre, Valor, Tipo, Clase, Duración de vida>

• Principio de búsqueda– Un servidor contiene la dirección buscada– Contiene la dirección de otro servidor con posibilidad de conocerla

Page 39: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos39

Funcionamiento de DNS

Page 40: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos40

Funcionamiento de DNS• El servidor raíz contiene

– los nombres de los servidores de nombres de los dominios del segundo nivel– Las direcciones IP de esos servidores

• <inrialpes.fr, if.inrialpes.fr, NS, IN, ...>• <if.inrialpes, 194.199.18.65, A, IN,...>

– El servidor raíz está ampliamente duplicado• Más un servidor es “alto” más se necesita que haya copias y menos seguido cambia

(long TTL)– Cada servidor de zona contiene

• Tuplas (nombre, dirección) de hosts que pertenecen a los dominios contenidos en la zona

• Eventualmente tuplas (nombre, dirección) de servidores de nombres de subdominios incluidos

• v.g., if.inrialpes.fr <tuamotu.inrialpes.fr, 194.199.20.81, A, IN, ...>

Page 41: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos41

Distribución del espacio de nombres

Page 42: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos42

Page 43: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos43

Page 44: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos44

Page 45: Servicio de Nombramiento

Lic. Jorge Guerra G.

Implementación de la resolución de nombres: iterativa

Sistemas Distribuidos45

Page 46: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos46

Page 47: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos47

Page 48: Servicio de Nombramiento

Lic. Jorge Guerra G.

Implementación de la resolución de nombres: recursiva

Sistemas Distribuidos48

Page 49: Servicio de Nombramiento

Lic. Jorge Guerra G.

Resolución de nombres recursiva

Sistemas Distribuidos49

Page 50: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos50

Page 51: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos51

Page 52: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos52

Funcionamiento

Page 53: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos53

Page 54: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos54

Page 55: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos55

Page 56: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos56

Page 57: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos57

• Lightweight Directory Access Protocol• Método estándar de acceso y actualización de la

información del directorio– Es un protocolo de comunicaciones– No define un interfaz de programación

• Es un estándar industrial abierto• Acceso más “ligero”a X.500

– Usa la pila de protocolos TCP/IP– Simplifica alguans operaciones X.500

LDAP: definición

Page 58: Servicio de Nombramiento

Lic. Jorge Guerra G.

Espacio de nombres LDAP

Sistemas Distribuidos58

Page 59: Servicio de Nombramiento

Lic. Jorge Guerra G.

Espacio de nombres LDAP

Sistemas Distribuidos59

Page 60: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos60

• Gateway a un servidor X.500

• Stand-Alone

LDAPClient

LDAPServer

X.500Server

Directory

TCP/IP OSI

LDAPClient

LDAPServer

Directory

TCP/IP

Servidor LDAP

Page 61: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos61

• Interacción básica

– Binding : 1, 2– Unbinding : 5

LDAPClient

LDAPServer

1. request2. authenticated

3. read or update or search request

4. response

5. close session

LDAP: interacción

Page 62: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos62

Page 63: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos63

Page 64: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos64

Page 65: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos65

• Ejemplo de DIT

cn=John,ou=LDAP Team,o=IBM,c=UScn=John Smith,o=IBM,c=DE

Directory Root

o=MyOrgc=US c=DE

o=IBM o=transarcmail:[email protected]:512- 838- 5187

o=IBM

ou=LDAP Team cn=Mike Youngmail:[email protected]

cn:J ohn Smithmail:[email protected]

cn=J ohn(alias)

Modelo de nombres (2)

Page 66: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos66

• Sufijos y Referrals (referencias)– Soporte de los directorios distribuidos

• Sufijos– Los servidores LDAP pueden no almacenar el DIT entero

• Referrals– Forma un directorio distribuido que contiene todo el DIT– Una entrada de objectClass referral– Tiene un atributo, ref, cuyo valor es el LDAP URL de la entrada referida en

otro servidor LDAP– Manejado por el cliente

» Descarga al servidor del trabajo de contactar con otros servidores

Modelo de nombres (3)

Page 67: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos67

• Ejemplo de referrals

Server 2

Server 1

o=IBM,c=USSuffix

ou=ITSO

ou=ITSO,o=IBM,c=USSuffix

ou=ITSOtestSuffix

cn=J ohn Smithcn=Paul Miller

cn=Mike Cook

Referral

Modelo de nombres (4)

Page 68: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos68

• Operación de consulta– Parámetros de la búsqueda

Directory Root

c=US c=DE c=SE

Scope of SearchLDAP_SCOPE_SUBTREE

Base Objectdn="o=Transarc,c=US"

o=Transarcmail:[email protected]:512- 838- 5187

cn=Larry Browncn:Mike Cookmail:[email protected]

cn=Charlie Browncn:Paul Millermail:[email protected]

Search Filter(cn=Larry Brown)

Information ReturnedAll Attributes

Modelo funcional (1)

Page 69: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos69

• LDAP replicado

WebServer

Web App.Server

MailServer

LDAPclient

NetworkDispatcher

ClientNetwork

MasterDirectoryServer

ReplicaDirectoryServer

Client Requests

Server Replies

Ejemplo de uso (1)

Page 70: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos70

• OpenLDAP– Gratuito y Open Source

• Netscape Directory Server• IBM's Secure Way Directory• Microsoft Active Directory Service

– Parte de Windows 2000

Implementaciones

Page 71: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos71

Page 72: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos72

Arquitectura de JNDI

Page 73: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos73

Proveedor de servicio• Componente de JNDI para integrar el acceso a algún tipo de

servicio de nombres o directorio:– Lightweight Directory Access Protocol(LDAP)– CORBA services(COS) naming service– Java Remote Method Invocation(RMI) Registry– Network Information System(NIS)– File System– Domain Name System (DNS)– Novell NDS

Page 74: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos74

Paquetes JNDI• Parte del Standard Development Kit 1.3?, jndi.jar• javax.naming

– Acceso a los servicios de nombes• javax.naming.directory

– Acceso a los servicios de directorio• javax.naming.event

– Soporta notificación de eventos en servicios de nomgres y directorios. • javax.naming.ldap

– Características propias de LDAP v3 no cubiertas en el paquete javax.naming.directory• javax.naming.spi

– Interfaz de proveedor de servicio

Page 75: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos75

Page 76: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos76

Contexto inicial (1)• Punto de inicio para la resolución de nombres1. Especificar el proveedor de servicio

Hashtable env = new Hashtable();env.put(Context.INITIAL_CONTEXT_FACTORY,

"com.sun.jndi.ldap.LdapCtxFactory"); • Otros proveedores:

– Sistema de archivos:• com.sun.jndi.fscontext.RefFSContextFactory

– Registro RMI:• com.sun.jndi.rmi.registry.RegistryContextFactory

Page 77: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos77

Contexto inicial (2)

2. Especificar otra configuración:env.put(Context.PROVIDER_URL, "ldap://ldap.wiz.com:389");env.put(Context.SECURITY_PRINCIPAL, "user");env.put(Context.SECURITY_CREDENTIALS, "password");

3. Creación del contexto inicial:Context ctx = new InitialContext(env); DirContext ctx = new InitialDirContext(env);

Page 78: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos78

Contexto inicial (3)

• Uso del fichero de propiedades jndi.propertiesjava.naming.provider.url="ldap://localhost:389/o=jnditutorial“

java.naming.factory.initial="com.sun.jndi.ldap.LdapCtxFactory" • jndi.properties en:

– algún directorio del classpath– JAVA_HOME/lib/

• Constructor sin parámetrosContext ctx = new InitialContext();

Page 79: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos79

Ejemplo servicio de nombres

try {// Contexto inicialContext ctx = new InitialContext(env);// Buscar un objetoObject obj = ctx.lookup(name); // Casting y usoSystem.out.println(name + " ligado a: " + obj);

} catch (NamingException e) {System.err.println(“Problemas con " + name + ": " + e);

}

Page 80: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos80

Ejemplo servicio de directorio (1)

try {// Contexto indicial de directorioDirContext ctx = new InitialDirContext(env); // Atributos del objeto Attributes attrs = ctx.getAttributes("cn=Eduardo Martinez, ou=DIIC");// Encontrar el nombre de pila ("sn") e imprimirloSystem.out.println("sn: " + attrs.get("sn").get());

} catch (NamingException e) { System.err.println(“Problemas recuperando atributo:" + e);

}

Page 81: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos81

Ejemplo servicio de directorio (2)DirContext ctx = new InitialDirContext(env); String base = “o=UM, c=ES”;String filter = “(|(cn=Mart*)(cn=Per*))”;SearchControls contraints = new SearchControls();contraints.setSearchScope(

searchControls.SUBTREE_SCOPE);NamingEnumeration results = ctx.search(base,filter,contraints);

Page 82: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos82

Ejemplo servicio de directorio (3)

while (results.hasMore()) {SearchResult sr = (SearchResult)results.next();System.out.println(sr.getName());Attributes attrs = sr.getAttributes();if (attrs != null) { for (NamingEnumeration ne=attrs.getAll(); ne.hasMore();)

{Attribute attr = (Attribute)ne.next();String id = attr.getID();

Page 83: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos83

Ejemplo servicio de directorio (4)for (Enumeration vals = attr.getAll(); vals.hasMoreElements(); System.out.println(id + “:” +vals.nextElement()));

} // for attrs.getAll()} // if attrs!=null

} // while results.hasMore()

Page 84: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos84

Page 85: Servicio de Nombramiento

Lic. Jorge Guerra G.

Servicios de Directorio de Windows 2000 Active Directory

Page 86: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos86

¿ Por qué tener un Directorio Activo ?

• Componente importante de un sistema distribuido• Búsqueda de recursos en la red• Reforzar la seguridad definida por el Administrador• Distribuir un directorio en varios servidores a través de

una red• Replicar un directorio para hacerlo disponible a más

usuarios• Dividir un directorio en varios puntos de almacenamiento

Page 87: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos87

Directorio Activo

• Objetivos del Directorio Activo– Facilitar el uso a los administradores– Hacerlo más útil y potente para los usuarios

• Localizar información• Localizar servicios• Búsqueda

– Facilitar el uso de las aplicaciones, conectar con directorio de aplicaciones

– Interoperar con otros directorios

Page 88: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos88

Directorio ActivoConceptos importantes

• Scope– Incluye cualquier objeto

• NameSpace– Area delimitada de resolución de nombres

• Object– Conjunto de atributos que representan algo en concreto

• Container– Contenedor de objetos

Page 89: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos89

Servicios de DirectorioSchema

• Contiene una definición formal de contenidos y estructura del AD, con atributos, clases y propiedades de cada clase

Extensible (nuevos tipos de objetos)Extensible (nuevos tipos de objetos) Se almacena en el propio directorioSe almacena en el propio directorio

Page 90: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos90

Directorio ActivoConceptos importantes

• Árbol– Describe una

jerarquía de objetos y contenedores

Page 91: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos91

Directorio ActivoConceptos importantes

• Nombre– Distinguished (DN)

• /O=Internet/DC=COM/DC=Microsoft/CN=Users/CN=Francisco Serrano

– Relative Distinguished Name (RDN)• CN=Francisco Serrano

• Dominio– Area de seguridad dentro de una red

• Árbol de Dominios– Grupo de Dominios que comparten mismo esquema

Page 92: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos92

Árbol de DominiosVer Relaciones de Confianza

DominioDominio AA

DominioDominio CC

DominioDominio BB

ConfianzaConfianza ImplícitaImplícita

ConfianzaConfianza ExplícitaExplícita

Page 93: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos93

Árbol de Dominios Ver NameSpace

root.com

sub.root.com

other.sub.root.com

Page 94: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos94

Servicios de DirectorioGlobal Catalog

• Repositorio central de información sobre objetos en un tree o en un forest

• Un Global Catalog Server es un DC que almacena una copia del Global Catalog

Page 95: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos95

Global Catalog

DC1, Global Catalog

DC2, Domain Controller DC3, Domain Controller

DC4, Global Catalog DC5, Domain Controller

• Mínimo, uno por dominio (checking)• GCs adicionales en DCs

dependiendo del nº de usuarios y del nº de consultas

• GCs requieren memoria adicional

Page 96: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos96

Global Catalog - Logon

• La máquina cliente contacta con el Controlador de Dominio (DC)

• DC busca la dirección IP en la máquina cliente• Si el cliente no está en la subred local, el DC mira en el

Global Catalog para buscar otro DC cercano al cliente• Se notifica al cliente si no se ha conectado al DC más

cercano• Evita el tráfico WAN cuando es posible

Page 97: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos97

P: ¿Qué es un grupo de árboles?

Respuesta: Un bosque

Page 98: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos98

Directorio ActivoConceptos importantes

• Bosque– Unión de árboles de dominio que:

• Usan el mismo esquema• Comparten el mismo Global Catalog• Unidos por relaciones de confianza Kerberos

– Muy útil para grupos de empresas subsidiarias que quieren autonomía en los aspectos administrativos

• Site– Lugar en la red que contiene servidores Active Directory– Subredes TCP/IP ‘bien conectadas’

• Conexión de red altamente fiable y rápida

Page 99: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos99

Servicios de DirectorioServicios de DirectorioEstructuraEstructura

TreesTrees

DomainsDomains

ForestsForests

SitesSites

Domain Domain controlescontroles

Físi

caFí

sica

Lógi

caLó

gica

OUOU Contenedor usado para organizar objetos en un dominio. Puede contener otros Ous Contenedor usado para organizar objetos en un dominio. Puede contener otros Ous

DomainDomain unidad lógica estructural en AD: plasma la organización corporativa (seguridad y admón por dominios). unidad lógica estructural en AD: plasma la organización corporativa (seguridad y admón por dominios). 1Millon+1Millon+

TreeTree agrupación jerárquica de dominios NT 5.0 que permite compartición de recursos globales. Comparten agrupación jerárquica de dominios NT 5.0 que permite compartición de recursos globales. Comparten global global catalog (repositorio central) y schema (definición de los objetos del AD)catalog (repositorio central) y schema (definición de los objetos del AD)

ForestForest grupo de trees que tienen un namespace disjunto, utilizan el mismo esquema de nombres, operan grupo de trees que tienen un namespace disjunto, utilizan el mismo esquema de nombres, operan independientemente pero necesitan comunicarse éntre si (comparten catalogo global) independientemente pero necesitan comunicarse éntre si (comparten catalogo global)

Domain ControlersDomain Controlers PC que almacena una replica de la DBase del dominio local.Todo Server es un DC PC que almacena una replica de la DBase del dominio local.Todo Server es un DC

SitesSites: Colección de subrangos de IP con conectividad LAN: Colección de subrangos de IP con conectividad LAN

Page 100: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos100

Servicios de DirectorioModelos de dominio

NYC

example1.com

TOKLONBIZ1

.

BIZ2

Exam

ple1

.com

Biz 1 Biz3Biz2 Biz4 Biz6Biz5

Dominio Único

Dominios por negocios: Forest Extendido

Modelo Geográfico

Page 101: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos101

Ejemplo: Jerarquía OUswidgets.org

exec

utive

admin

usuari

oss

usuari

os

recurso

s

recurso

s

impres

oras

orden

adores

impres

oras

orden

adores

temporal

es

emplea

dos

temporal

es

emplea

dos

Page 102: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos102

widgets.org

.

exec

utive

admin

usuari

os

usuari

os

recurso

s

recurso

s

GP1

GP1 GP1

Grupo Política 1

Asignar Aplicaciones financieras al

menu

Quitar “Run” del menu Inicio

impres

oras

orden

adores

impres

oras

orden

adores

temporal

es

emplea

dos

temporal

es

emplea

dos

gp2 GP1,2

Grupo Política 2

Page 103: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos103

Sites widgets.org

na.widgets.org euro.widgets.org asia.widgets.org

of.n

a.wi

dget

s.or

g

Oeste Centro Este España Alemania Francia Japón Australia Nueva Zelanda

oe.n

a.wi

dget

s.or

g

ce.n

a.wi

dget

s.or

g

es.n

a.wi

dget

s.or

g

sp.e

uro.

widg

ets.

org

al.e

uro.

widg

ets.

org

fr.eu

ro.w

idge

ts.o

rg

jp.a

sia.

widg

ets.

org

au.a

sia.

widg

ets.

org

nz.a

sia.

widg

ets.

org

Ofic. Centrales

Page 104: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos104

Directorio ActivoSchema

• Contiene una definición formal de contenidos y estructura del AD, con atributos, clases y propiedades de cada clase

Extensible (nuevos tipos de objetos)Extensible (nuevos tipos de objetos) Se almacena en el propio directorioSe almacena en el propio directorio

Page 105: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos105

Actualización a Active Directory Single Domain

PDCPDC

Windows NT4Windows NT4 •Upgrade del PDCUpgrade del PDCMixed Mode Mixed Mode

BDCBDC

BDCBDCBDCBDC BDCBDC

Native Mode Native Mode

•Cambiar a modo Cambiar a modo nativonativo

•Upgrade de los BDCsUpgrade de los BDCs

Page 106: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos106

Modo Nativo y Modo Mixto

Active Directory soporta DC en modo mixto Una vez actualizados todos los BDC cambiamos a modo nativo Características disponibles sólo en modo Nativo:

Grupos universales Admin. InterDominios Consultas en los DCs

Page 107: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos107

us.company.comus.company.com

uk.company.comuk.company.com

company.comcompany.com

na.company.comna.company.com eu.company.comeu.company.com

Opciones Integración DNS Windows 2000 controla Raiz

• Pros– No hay dependencia de

DNS existentes– No se necesita testing de

integración AD– Nombres más familiares

• Cons– Requiere esfuerzos para

sustituir DNS existentes

Page 108: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos108

company.comcompany.com

us.company.comus.company.comuk.company.comuk.company.com

cool.company.comcool.company.com

na.cool.company.comna.cool.company.com eu.cool.company.comeu.cool.company.com

Opciones Integración DNS Subdominio delegado

• Pros– No requiere upgrade DNS

existentes– Minimiza impacto del AD

en servidores DNS existentes

• Cons – Nombres son más largos– Contínua dependencia de

DNS

Page 109: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos109

company.comcompany.com

us.company.comus.company.comuk.company.comuk.company.com

cool.company.comcool.company.com

na.cool.company.comna.cool.company.com eu.cool.company.comeu.cool.company.com

Opciones integración DNS No hay Windows 2000 DNS

• Pros– No hay cambios

• Cons– Unico punto de fallo– Upgrade DNS para soporte de SRV

records (RFC 2052)– Pruebas de integración con MS

DHCP server

Page 110: Servicio de Nombramiento

Lic. Jorge Guerra G.Sistemas Distribuidos110

Actualización Active DirectoryConsolidación de Directorios

• Active Directory Connector– Replica usuarios de Exchange 5.5– Replica Exchange Distribution Lists y direcciones

personalizadas– Third Parties

• Post Windows 2000– Exchange utilizará Active Directory