Docstoc

Naming-definitivo

Document Sample
Naming-definitivo Powered By Docstoc
					                      Nombrando Entidades


Nombres

Direcciones

Identificadores

Espacio de Nombres

Resolución de Nombres

Mecanismo de Cierre

Ligamiento

Montaje
                     Nombrando Entidades
   Nombres
   • Definición: Un nombre en un sistema distribuido es un conjunto de
   caracteres o bits que representan a una entidad.
   • Las Entidades pueden ser operadas.
   • Ejemplo:




Nombre                     “Impresora”



Entidad                                        Interfaz Donde se puede Operar
                 Nombrando Entidades

Nombres

• Existe un tipo importante de nombres, denominados Nombres
Humanos. Consisten en nombres destinados a ser utilizados por los
seres humanos.

•Ejemplos:

   • Nombres de archivo

   • Nombres de las Variables en un Código.
                    Nombrando Entidades
   Direcciones
   • Punto de Acceso:
          Consiste en una entidad especial, cuyo nombre se denomina
          Dirección, y siempre esta asociada a una entidad. Es decir, el
          punto de acceso representa la dirección del cual se puede
          acceder la entidad al cual esta asociado.
   • Una entidad puede tener asociado varios puntos de acceso.
   • Ejemplo:

Nombre                    “Host”                  255.255.255



Entidad

                                                 Punto de Acceso
                   Nombrando Entidades

Direcciones
• Una entidad puede cambiar su punto de acceso; es decir, es
asociada a un punto de acceso diferente.
                                                    Nombre
• Ejemplo:                                          Independiente
                                                    de la Localidad
                      “Servidor Manejador
                      de Peticiones FTP”
     255.255.255                             100.100.100




       “Host”                                    “Host”
                  Nombrando Entidades
Identificadores
• Definición: Un identificador es un nombre que cumple con las
siguiente propiedades:
    • Representa a lo sumo una entidad.
    • Cada entidad es representada por a lo sumo un identificador.
    • Siempre se refiere a la misma entidad.
• Con el uso de Identificadores se puede representar a entidades sin
ambigüedades.
• Ejemplos: Numero de cedula de una entidad “Persona”, y el RIF de
una entidad “Empresa”.
                  Nombrando Entidades

Espacio de Nombres
• Definición: Los nombres en un sistema distribuido se organizan en lo
que se llama un Espacio de Nombres.
• Se representa mediante un grafo dirigido que reúne el conjunto de las
entidades de un sistema distribuido. Por lo tanto cada nodo tiene
asociado un identificador.
• En dicho grafo pueden haber 3 tipos de nodos:
    • Nodo Terminal: Representa una entidad nombrada y tiene la
    propiedad de no tener sucesor alguno.
    • Nodo Directorio: Representa una entidad nombrada y tiene la
    propiedad de tener uno o mas sucesores.
    • Nodo Raíz: Nodo con la propiedad de no tener antecesor alguno.
    Por simplicidad se debería tener un solo nodo raíz.
                           Nombrando Entidades
     Espacio de Nombres
     • Cada nodo tiene asociado una etiqueta y un identificador asociado a
     la entidad que representa.
     • Cada nodo directorio tiene asociado una tabla que contiene los pares
     (etiqueta,identificador) de cada uno de sus sucesores.
     • Ejemplo:

                                                                                  N1: “bin”

Nodo Terminal                                                                     N2: “home”
                                                   N0
                                          bin           home

Nodo Directorio                      N1                        N2
                            java          config                       Maverick


                           N3             N4                            N8
                                                               File0
                   javac        javax

                                                               N9
                    N5          N6
                                Nombrando Entidades
  Espacio de Nombres
  • Cada ruta en el grafo puede ser representada por una secuencia de
  etiquetas que corresponden a los nodos por los cuales ella atraviesa.
  • Cada ruta puede ser relativa o absoluta.
  • Ejemplo:
                                 N0
                       bin             home

                  N1                          N2
         java          config                        Maverick                   Ruta Absoluta

        N3             N4                            N8
                                          Archivo1
javac        javax

                                              N9                N0:<N2,N8,N9>
N5           N6


                             N3:<N6>               Ruta Relativa
                              Nombrando Entidades
    Espacio de Nombres
    • Pueden haber 2 tipos de nombres en el grafo:
        • Nombre Global
        • Nombre Local
    • Ejemplo:
                                               N0
                                        bin             home

                                   N1                            N2
                          java                       Andross              Maverick


                         N3                            N7                 N8
                                          Archivo1             Archivo1
                 javac         javax

                                              N4                N9
                 N5           N6
Nombre Global


                                         Nombres Locales
                           Nombrando Entidades
Resolución de Nombres
• Definición: Dado una ruta, al proceso de obtener el contenido del
nodo que dicha ruta apunta, se le denomina Resolución de Nombres.
• Ejemplo: Dado la ruta N0:<N2,N8,N9>,


                                                    N1: “bin”
                                                    N2: “home”
                                                                    N7: “Andross”
              N0                                                    N8: “Maverick”
                       home
       bin

                                N2                                   N9: “Archivo1”
  N1                Andross              Maverick


                      N7                 N8
         Archivo1             Archivo1                      La ruta original queda resuelta a
                                                                 “/home/Maverick/Archivo1”
             N4                N9
                 Nombrando Entidades
Mecanismo de Cierre
• Definición: Mecanismo que indica donde se debe comenzar el
proceso de resolución de nombres y como se debe hacer.
• Ejemplo:
   El mecanismo de cierre asegura que los nombres locales siempre
   se resuelven en el nodo directorio asociado a ella.


                           N0
                                    home

                                             N2
                                 Andross              Maverick


                                   N7                  N8
                      Archivo1             Archivo1


                        N4                  N9
                  Nombrando Entidades

Ligamiento

• Un Alias consiste en el uso de otro nombre para una entidad.

• Ejemplos:

       Las variables de entorno que se usan en Windows tal como:

       Classpath = C:\Archivos de programa\Java\clases
                               Nombrando Entidades

Ligamiento

•      Hay 2 maneras de representar un alias en el grafo:

         1) Permitir que varias rutas resuelvan al mismo nodo.

              Ejemplo:
                                                                                 Ruta original:
                                              N0
                                   bin                 home
                                                                        “/home/Maverick/Archivo1”

                                                               N2
                    N1                              Maverick
            java                                                                Ruta Añadida:

                        Archivo1                      N7                      “/bin/java/Archivo1”
            N3                           Archivo1
                   javax
    javac
                                           N4                  “Hard Links”
    N5             N6
                           Nombrando Entidades

  Ligamiento

  •    Hay 2 maneras de representar un alias en el grafo:

             2) Utilización de “Symbolic Link”

             Ejemplo:

                                       N0
                                                                   Se dice que
                            bin                 home
                                                             “N5 es un link simbólico a
                                                        N2              N4”
                  N1                         Maverick
           java

                                               N7
           N3                     Archivo1

Archivo1
                                    N4

      N5
                       “/home/Maverick/Archivo1”
                   Nombrando Entidades

Montaje

•   El proceso de resolución de nombres también puede ser utilizado
    para unir diferentes espacios de nombres.

• Un “Mount Point” es un nodo directorio que en su tabla contiene
    una entrada que hace referencia a un nodo en otro espacio de
    nombres.

• Un “Mounting Point” consiste en el nodo que esta siendo
    referenciado por algún nodo en otro espacio de nombres.
                                     Nombrando Entidades

   Montaje

   •       Ejemplo:

                                                                   Espacio de Nombres
  Espacio de Nombres EN1
                                                                      Foráneo EN2

   N0                                                              L0
              home                                                         home

                       N2                                                         L2
           Andross                                                      Andora
                                Maverick
                                             N9:”Archivo1”
             N7                 N8                                        L7
Archivo1             Archivo1                L4:”code.cpp”
                                                             code.cpp

N4                    N9                                      L4
                                                                                  “Mounting Point”
                                     “Mount Point”
                 Nombrando Entidades

Montaje

• Considere un par de espacios de nombres que se encuentran
  distribuidos en diferentes máquinas. Si se desea montar un “mount
  point” en EN1 que haga referencia a EN2, se necesita:

   • El nombre de un protocolo de acceso

   • El nombre de la maquina que maneja EN2.

   • El nombre del mounting point en el espacio de nombres
      foráneo, EN2.
                                  Nombrando Entidades

 Montaje

 • Ventaja del uso del Montaje:


   N0
              home                                                     L0
                                                                               home

                       N2
                                                                                      L2
           Andross
                                Maverick                                    Andora
                                                N9:”Archivo1”
             N7                 N8
                                                L4:”code.cpp”                 L7
Archivo1             Archivo1
                                                                 code.cpp

N4                    N9                                          L4


                                           >>cd /home/Maverick
                                           >>ls –l
                                           >>Archivo1 code.cpp
Implementación de un Espacio
  de Nombres (Name Space)
    Distribución de un Espacio de
               Nombres
   Cheriton y Mann (1989)
        Capa global: Está formada por el nodo raíz y sus nodos hijos. Los
         nodos pertenecientes a esta capa se caracterizan por su
         estabilidad, dado que sus tablas de directorio cambian poco. estos
         nodos pueden representar organizaciones o grupo de
         organizaciones.

        Capa Administrativa: Está formada por nodos directorio que juntos
         son manejados dentro de una organización. ellos se caracterizan
         porque ellos representan grupos de entidades que pertenecen a la
         misma organización o unidad de administración.

        Capa Directiva: Está formada por nodos que cambian con
         regularidad. Su principal característica es que dichos nodos no son
         mantenidos solo por administradores del sistema, sino también por
         usuarios finales; Ya que esta capa contiene los directorios y
         archivos de dichos usuarios.
Distribución de un Espacio de
     Nombres – Ejemplo:
           Distribución de un Espacio de
                      Nombres
          ITEM                           GLOBAL   ADMINISTRATIVA         DIRECTIVA

Escala geográfica de la red    Mundial            Organización      Departamento


Numero total de nodos          Pocos              Muchos            Números vastos


Tiempo de respuesta            Segundos           Milisegundos      Inmediato


Propagación de                 Floja              Inmediata         Inmediata
actualizaciones

Numero de replicas             Muchas             Ninguna o pocas   Ninguna


Caching del lado del cliente   Si                 Si                A veces
Implementación de Resolución
       de Nombres
   La distribución del Espacio de nombres
    a través de muchos servidores de
    nombres afecta la implementación de
    Resolución de Nombre. Dos métodos:

          Resolución de nombres iterativa
          Resolución de nombres recursiva
Resolución de nombres
       iterativa
Resolución de nombres
      recursiva
Resolución de nombres
      recursiva
Iterativo Vs. Recursivo
      El Domain Name System
              (DNS)
   DNS es uno de los mas grandes
    servicios de naming distribuidos usados
    en la actualidad.

   Es utilizado principalmente para conocer
    direcciones de hosts y de servidores de
    correos.
         El Espacio de Nombres de DNS
                   baraka.ldc.usb.ve.

   Esta organizado jerárquicamente como un árbol con raíz. Una
    etiqueta es un String (case-insensitive) de caracteres
    alfanuméricos. Con un largo máximo de 63 caracteres.
   El largo máximo de un nombre de camino completo no puede
    exceder los 255 caracteres.
   La representación de un nombre de camino consiste de una lista
    de etiquetas separadas por puntos, comenzando con la que se
    encuentra mas a la derecha.
   Como cada nodo en el espacio de nombres de DNS tiene
    exactamente un solo arco entrante (excepto la raíz que no tiene
    ninguno) la etiqueta del arco que llega al nodo se usa como
    nombre del nodo.
   Un subárbol se denomina Dominio
   El camino al nodo raíz es denominado Nombre del Dominio.
   El contenido de un nodo esta formado por una colección de
    "registros de recursos"
Registros de recursos
Implementación de DNS
   La implementación de DNS es muy similar a lo descrito anteriormente.
    En esencia este servicio puede ser dividido en una capa global y una
    capa de administración. la capa de manejo esta formada por sistemas
    de archivos locales, esta no es formalmente parte de DNS y por lo
    tanto no es manejada por dicho servicio.
   Cada zona es implementada por un servidor de nombres, el cual es
    siempre replicado para mayor disponibilidad. Los cambios en una zona
    especifica son manejados por el servidor de nombres primario. Los
    cambios se realizan modificando la base de datos local de DNS del
    servidor primario. Los servidores de nombre secundarios no acceden a
    la base de datos directamente, sino que solicitan al servidor primario
    que transfiera su contenido.
   Una base de datos de DNS es implementada como una pequeña
    colección de archivos , de los cuales el mas importante contiene todos
    los registros de recursos de todos los nodos de una zona particular.
   Esto permite que los nodos sean identificados simplemente a través de
    su nombre de dominio.
Base de Datos de DNS
Entidades Móviles

  Los mecanismos de resolución de nombres
 vistos hasta ahora se utilizan para entidades
     “fijas”, y no soportan asociaciones de
         nombre-dirección que cambian
                  periódicamente
Naming vs. Locating Entities
   Tipos de nombres
       Nombre “amistoso” humano
       Identificadores
       Direcciones


   DNS
       Nombre “amistoso” humano  Dirección
Naming vs. Locating Entities

             cs.vu.nl




       ftp
Naming vs. Locating Entities


cs.vu.nl          cs.unisa.edu.au

   ftp                  ftp
Naming vs. Locating Entities
    Soluciones
         Guardar la dirección de la nueva maquina

              DNS cs.vu.nl




ftp.cs.unisa.edu.au   ftp.cs.berkely.edu   …
 Naming vs. Locating Entities
     Soluciones (continuación)
         Guardar el nombre de la nueva maquina

                  ftp

  DNS cs.vu.nl           ftp.cs.unisa.edu.au


                   ftp


cs.unisa.edu.au          ftp.cs.berkely.edu
Naming vs. Locating Entities

   nombre     nombre      nombre      nombre




  dirección   dirección   dirección   dirección
     Naming vs. Locating Entities

               nombre      nombre        nombre     nombre
Servicio de
nombres


                                identificador


Servicio de
localización
               dirección   dirección    dirección   dirección
Soluciones Simples
   Broadcasting y Multicasting
   Apuntadores: cadena de pares
    stub - scion
      Broadcasting y Multicasting
Principio usado en
                                     A
Address Resolution Protocol (ARP)




                                         B



                     Quien es “X”?
                                     X
Apuntadores: pares (stub, scion)
  Usado en SSPC (Stub Scion Pairs Chains)



Proceso P2


                         Proceso P3



                                            Proceso P4
Proceso P1
Apuntadores: pares (stub, scion)
   Provee un mecanismo para cortar la
    cadena

                Proceso P2



Proceso P1                       Proceso P3
Home-Based Approaches
   Broadcasting y Multicasting  díficiles
    de implementar eficientemente en
    grandes escalas de redes donde largas
    cadenas de apuntadores introducen
    problemas de desempeño y son
    suceptibles a enlaces rotos
   Solución  home location
Ejemplo
     Ubicación
     “home”
                          1.   Manda paquete a la
      del host
                                       ubicación “home” del host


                 2. Retorna dirección de
                 ubicación actual
                                                             Ubicación
                                                             del cliente
          3. Desvío del paquete
          a la ubicación actual
                                           4. Manda próximos paquetes
                                           a la ubicación actual
                       Ubicación actual
                       del host
Aproximaciones de jerarquía
   Mecanismo general
       La red está dividida en un conjunto de
        dominios  similar a la organización del
        DNS
                  Raíz de T             Nivel tope del dominio T

                                               Nodo del dominio




                                                   Subdominio S
                                                   de T

            Hoja del dominio, contenida en S
Aproximaciones de jerarquía
   Mecanismo general (Continuación…)
       Cada entidad es representada por un
        “record de ubicación” en el nodo
       En una hoja  se almacena la dirección
        actual de la entidad
       En los niveles externos  se guarda un
        apuntador al nodo del nivel inferior que
        contiene la entidad
Ejemplo: Búsqueda de ubicación
                      El nodo conoce a E,
                      la petición es
                      mandada al hijo

                              M
  El nodo no
  tiene record
  de E, la petición
  es mandada
  al padre




                      Dominio D
       Pedido
    de búsqueda
Ejemplo: Actualización
                   El nodo conoce a E,
                   la petición no se
                   vuelve a enviar

                               M
   El nodo no
   tiene record
   de E, la petición
   es mandada
   al padre




                       Dominio D
        Pedido
     de inserción
Ejemplo: Actualización (cont.)
                    El nodo crea el record
                    y guarda el apuntador


                                M
   El nodo crea el record
   y guarda la dirección
Pointer Caches
   En servicios de nombramiento
    tradicionales, el mapping entre el
    nombre y la dirección se asume que es
    estable
   Caching solamente es efectivo si la data
    guardada raramente cambia
Ejemplo: Caching a reference




                                            Dominio D




Cached pointers   E se mueve regularmente
                  entre dos subdominios
Scalability Issues
   Problema  sin ninguna medida
    especial, la raíz puede ser requerida
    para manejar muchas búsquedas y
    actualizaciones, lo cual producirá
    enbotellamiento
   Solución  particionar la raíz y otros
    nodos de alto nivel en subnodos 
    distribuir los nodos uniformemente a lo
    largo de la red
Ejemplo: Usuario móvil
        Dominio donde                       Subnodo de la raíz, responsable
        reside E actualmente                     de atender requerimientos de E


                     Alternativo, y mejor
                     opción para atender
                     requerimientos de E

                                                       Ruta actual de
 Ruta alterna para                                     la búsqueda del
 la búsqueda del                                       requerimiento
 requerimiento

                          El cliente pide la
                          dirección actual de E
Entidades No Referenciadas
    El problema de las entidades no referenciadas
         “Broken links” en Internet
         Referencias Cíclicas
         Referencias Inalcanzables
                                Ref. Cíclicas




    Ref. Alcanzables



                        Ref. Inalcanzables
Entidades No Referenciadas
   Problemas a Resolver
       Localización de entidades no referenciadas
       Eliminación de entidades
       Fallas en las conexiones y redes


   Solución
       Recolector de Basura (Garbage Collector)
Entidades No Referenciadas

   Conteo de Referencias

                      Esqueleto
Proceso P
                                  Objeto O
 Entidades No Referenciadas
    Problemas
         Pérdida/Duplicación de Mensajes

                           Esqueleto
Proceso P
                                                   Objeto O
            Se pierde
            el ACK




                            El proxy p fue contado dos veces
    Entidades No Referenciadas
       Problemas (continuación)
             Condición de Carrera

P1 envía una      P1 elimina la           P1 “avisa” a O que va a        P1 elimina la
referencia a P2   referencia a O          enviar una referencia          referencia a O

                        O ya fue
                        eliminado



                          Tiempo                                          Tiempo

                   P2 informa a O que     P1 envía una              O confirma la
                   tiene una referencia   referencia a P2           referencia a P2
      Entidades No Referenciadas

        Conteo de Referencias con peso
                                                          Peso parcial del
                                                          objeto divido a la
               Esqueleto
                           Objeto O Peso      Proceso P   mitad
                                    Parcial
 Peso Total                         del
                                    proxy
Peso Parcial
      Entidades No Referenciadas

        Conteo de Referencias con peso
                                    Proceso P2
                  P2 obtiene la
                  mitad del
                  peso del                       El peso parcial del
                  proxy de P1                    esqueleto no se
P1 pasa la                                       modifica
referencia a P2
                           Proceso P1
  Entidades No Referenciadas

    Conteo de Referencias con peso
   P1 no tiene peso y
   crea un esqueleto                                      El objeto no
   adicional                                              tiene peso
                              Proceso P1                  parcial
Proceso P2




              P2 referencia
                                           Peso Total
              al objeto o
              través de P1                 Peso Parcial
         Entidades No Referenciadas
           Conteo de Referencias con generaciones
                                          Proceso P2
                        P1 pasa la
                                                       El objeto posee
                        referencia a P2
                                                       una tabla con
                                                       cantidad de copias
                                                       por generación
                     Proceso P1
Contador de copias

     Generación
Entidades No Referenciadas

   Conteo de Referencias con generaciones
       Al eliminar una referencia, el esqueleto recibe
        el número de copias numCopia y de
        generación gen
       G[gen] -1
       G[gen+1] + numCopia
Lista de Referencias

    Definición
    Operaciones Idempotentes
    Ventajas
Lista de Referencias
   Definición
    Es una estructura que tiene cada proxy
    que mantiene los proxies que apuntan
    hacia éste.
    En vez de contar las referencias se
    mantiene una lista explicita de los
    proxies incidentes.
Lista de Referencias
   Operaciones Idempotentes
   Agregar
    Agregar un proxie ya listado a la lista
    de referencia no tiene efecto.
   Eliminar
    Eliminar un proxie ya borrado de la lista
    no tiene efecto.
Lista de Referencias
   Operaciones Idempotentes
   El agregar por primera vez debe ser
    cuidadosa.
   Ejemplo.
Lista de Referencias
   Ventajas
   Facil de mantener la lista en caso de
    fallas, el esqueleto chequea de vez en
    cuando que las referencias estén vivas.
   Puede escalar mas fácilmente
Lista de Referencias
   Desventajas
   Si la lista es muy grande, puede que no
    escale muy bien.
   Una solución es que se limite la
    cantidad de tiempo que estará una
    referencia en la lista.
Identificando Entidades
Inalcanzables

   Marcado Ingenuo (Naive Tracing)
   Marcado en Grupos
Entidades Inalcanzables
   Marcado Ingenuo.
   Recordando mark-and-sweep.
   “Stop the world”.
   Mark-and-sweep modificado. (algoritmo
    de los tres colores).
   Emerald.
Entidades Inalcanzables
   Marcado Ingenuo
   Ventaja: Se logran eliminar las
    entidades que no son alcanzables desde
    el conjunto raíz
   Desventajas: durante el proceso de
    marcado y borrado el grafo no puede
    cambiar.
Entidades Inalcanzables
   Marcado en grupos
   Consiste en dividir y conquistar
   Cuando los sub-problemas son
    combinados.
   Ventaja: Reduce el overhead
   Desventaja: Cuando se combinan los
    sub-problemas.
Preguntas

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:6
posted:8/29/2011
language:Spanish
pages:77