Descubrimiento de servicios

Anuncio
Sistemas Distribuidos
Fernando Pérez Costoya
Índice
Sistemas Distribuidos
• Introducción
• Servicio de nombres
– Estudio de un ejemplo práctico: DNS
Descubrimiento
de servicios
• Servicio de directorio
– Estudio de un ejemplo práctico: LDAP
• Descubrimiento de servicios
–
–
–
–
Computación móvil y ubicua
Gestión de nombres en sistemas móviles/ubicuos
Auto-configuración
Servicios de descubrimiento de servicios
Sistemas Distribuidos
2
Computación móvil
Fernando Pérez Costoya
Retos de la computación móvil
• Mejoras en portátiles y redes inalámbricas → Comput. móvil
– S. distribuido con nodos móviles usando redes inalámbricas
•
•
•
•
WPAN: IR (IrDA), RF (IEEE 802.15: Bluetooth, Zigbee, ...)
WLAN: Wi-Fi (IEEE 802.11)
WMAN: WIMAX (IEEE 802.16)
Redes celulares de teléfonos móviles: GSM, 3G, ...
– conectados a una infraestructura de red cableada o
• formando redes ad hoc solo con nodos móviles
– Información “anywhere anytime”
– Investigación desde década 90; tecnologías en maduración
• Portabilidad + inalámbrico + movilidad → nuevos retos
Pervasive Computing: Vision and Challenges
Complejidad se multiplica
Sistemas Distribuidos
3
4-Servicio de nombres
Fernando Pérez Costoya
Sistemas Distribuidos
4
M. Satyanarayanan
Fernando Pérez Costoya
1
Sistemas Distribuidos
Fernando Pérez Costoya
Retos de la computación móvil
• Por comunicaciones inalámbricas
• Tendencia: Progresiva miniaturización de computadores
– Ancho de banda menor y más variable que en redes cableadas
• Adaptación a ancho de banda disponible
– Computadores empotrados en todo tipo de objetos
• Nuevo modelo de computación:
– Mayor propensión a errores y a la desconexión
• Modo de operación desconectado (p. ej. CODA)
– Más problemas de seguridad
• Por portabilidad
– Portátiles: recursos limitados (energía, UCP, memoria, HW de IU)
– Resource-aware computing
– Context-aware computing
• Por movilidad
– Puede implicar cambio en punto de acceso a red cableada
• Facilitar configuración automática
Sistemas Distribuidos
5
Computación ubicua
Fernando Pérez Costoya
The Computer for the 21st Century, Weiser 1991
–
–
–
–
–
–
Computadores omnipresentes, parte de ellos móviles
Algunos empotrados en sistemas físicos, invisibles al usuario
Otros dedicados a interaccionar directamente con el usuario
Conectados entre sí ofreciendo un valor añadido
Plenamente integrados en el mundo para facilitar vida cotidiana
Información “everywhere everytime”
• Computación ubicua (Ubiquitous Computing)
– Propuesta de Mark Weiser en PARC de Xerox finales de los 80
• 3ª era en la historia de la computación moderna
• Pervasive Computing: Propuesta de IBM; finalmente sinónimo
Sistemas Distribuidos
6
Fernando Pérez Costoya
Evolución de la computación
“The most profound technologies are those that disappear. They weave
themselves into the fabric of everyday life until they are indistinguishable from it”
“Specialized elements of hardware and software, connected by wires, radio
waves and infrared, will be so ubiquitous that no one will notice their presence”
“We are therefore trying to conceive a new way of thinking about computers, one
that takes into account the human world and allows the computers themselves to
vanish into the background”
“There is more information available at our fingertips during a walk in the woods
than in any computer system, yet people find a walk among trees relaxing and
computers frustrating. Machines that fit the human environment instead of
forcing humans to enter theirs will make using a computer as refreshing as
taking a walk in the woods”
Sistemas Distribuidos
7
4-Servicio de nombres
Fernando Pérez Costoya
Computación ubicua:
„ 1 persona
→ N computadores
„ 1 computador
→ N personas
Ubiquitous Computing Fundamentals
John Krumm
Sistemas Distribuidos
8
Fernando Pérez Costoya
2
Sistemas Distribuidos
Fernando Pérez Costoya
Comp. ubicua: la Visión de Weiser
Tabs, Pads y Boards
• Computadores deberían integrarse en nuestro entorno
– Haciéndose “invisibles”, no requiriendo nuestra atención
– Invisible computing
• Como la escritura o el uso de la electricidad en el hogar
– Facilitando contacto personal directo en vez de aislar
• Calm technology: que se mantiene en la “periferia”
– Puntualmente centro de nuestra atención y vuelve a periferia
• Lo opuesto a realidad virtual
– RV. Simula el mundo real: mundo → computador
– CU. Mejora/“aumenta” el mundo real: mundo ← computador
• Prueba de concepto: CU en dispos. que muestran información
– Tres escalas: tab (nota), pad (bloc) y board (pizarra)
Sistemas Distribuidos
9
Fernando Pérez Costoya
Retos de la computación ubicua
Sistemas Distribuidos
10
Fernando Pérez Costoya
Retos de la computación ubicua
• Todos los de la computación móvil pero acentuados
– HW con recursos más limitados (energía, UCP, HW de IU, ...)
– Mayor escala por omnipresencia
– Problemas de seguridad y privacidad exacerbados
• Integración en el mundo físico
• Interfaces de usuario para sistemas ubicuos
– Minimizando el nivel de distracción del usuario
• Detección automática de serv./dispos. en “espacio inteligente”
• Llegó a mi habitación de un hotel donde nunca había estado antes
• Quiero imprimir fotos de mi cámara en impresora de la habitación
Pervasive Computing: Vision and Challenges
Complejidad se multiplica
Sistemas Distribuidos
11
4-Servicio de nombres
– ¿No sería suficiente con un servicio de directorio (p.e. LDAP)?
M. Satyanarayanan
Fernando Pérez Costoya
Sistemas Distribuidos
12
Fernando Pérez Costoya
3
Sistemas Distribuidos
Fernando Pérez Costoya
Gestión de nombres en SD convencional
Gestión de nombres en SD móvil/ubicuo
• Estructura del SD bastante estática
• Cada nodo se configura con (suponiendo uso de IP)
• Computación ubicua → “invisible” → auto-configuración
• Sistemas dinámicos, “espontáneos” y volátiles:
–
–
–
–
Su dir. IP, máscara de red, dir. router, e info. de encaminamiento
Su nombre, dominio DNS al que pertenece y direc. servidores DNS
Nombre servidor(es) LDAP y conocimiento del esquema usado
Los manejadores requeridos para interacción con dispositivos en SD
• Incluso en SD convencional, op. configuración no escalable
– Uso de DHCP (Dynamic Host Configuration Protocol)
• Necesidad limitada de “descubrimiento” de servicios/dispos.
–
–
–
–
Una vez instalada nueva impresora se la da de alta en LDAP
Próxima búsqueda de impresoras en LDAP la encontrará
Dar de baja impresora (poco frecuente): basta con actualizar LDAP
No se requiere “Plug & Play” en el nivel del SD
Sistemas Distribuidos
13
Fernando Pérez Costoya
Gestión de nombres en SD móvil/ubicuo
• Plug & play de servicios/dispositivos en SD
– Además de descubrirlos, hay que saber “hablar” con ellos
– Nuevo tipo puede requerir nuevo manejador
• Nodo abandona EI: servicio/dispositivo desaparece
– Abandono abrupto → uso de leases
• Problema de frontera del espacio inteligente:
– Delimitación precisa de confines de un espacio inteligente
• ¡Espero que mis fotos no se impriman en habitación contigua!
– Necesidad de crear ámbitos (scopes)
• Limitación de recursos y volatilidad pueden condicionar:
– Estrategias de auto-configuración y descubrimiento de servicios
• Ej. Jini, UPnP, Zeroconf, Service Location Protocol (RFC 2608)
Sistemas Distribuidos
15
4-Servicio de nombres
Fernando Pérez Costoya
– Nodos entran y salen de un SD: de un “espacio inteligente” (EI)
• Mi cámara digital y yo entramos/salimos en habitación de hotel
• Un vehículo entra/sale de EI controlado por un semáforo inteligente
• Descubrimiento de servicios clave para computación ubicua
• Nodo entra en EI:
–
–
–
–
Se autoconfigura y descubre, y es descubierto, por nodos restantes
Si proveedor de servicios, hace conocerlos a quiénes le interesen
Si consumidor de serv., descubre los de otros nodos que le interesen
Necesidad de “lenguaje” de definición y búsqueda de servicios
• Atributos-valores (similar a LDAP), basado en XML, ontologías, ...
• Suficiente flexibilidad para incorporar nuevos tipos de serv./dispos.
Sistemas Distribuidos
14
Fernando Pérez Costoya
Ejemplo plantilla de servicio de SLP
service:printer://lj4050.tum.de:1020/queue1
scopes = tum, bmw, administrator
printer-name = lj4050
printer-model = HP LJ4050 N
printer-location = Room 0409
color-supported = false
pages-per-minute = 9
sides-supported = one-sided, two-sided
Extraído de “A Comparison Of Service Discovery Protocols And Implementation Of The
Service Location Protocol”, Christian Bettstetter y Christoph Renner
Sistemas Distribuidos
16
Fernando Pérez Costoya
4
Sistemas Distribuidos
Fernando Pérez Costoya
Auto-configuración
Servicios de descubrimiento de servicios
• Obtención de dirección IP (e info asociada: máscara, router,...)
– Uso de DHCP:
• Nodo broadcast petición de dirección IP
• Servidor DHCP asigna dirección IP con lease asociado
– Si DHCP no disponible (por volatilidad o limitación de recursos)
• Dynamic Configuration of IPv4 Link-Local Addresses (RFC 3927)
• Nodo elige su dir. IP y usa ARP para comprobar que no está en uso
• Si conflicto, selecciona otra
• Obtención de nombre DNS (si requerido)
– Uso de DNS con protocolo de actualización: Dynamic-DNS
– Si DNS no disponible (por volatilidad o limit. recursos): Multicast-DNS
• Consultas a dominio .local. usan multicast dir. fija
• Nodo correspondiente responde (con unicast o multicast)
• Zeroconf (Bonjour, Avahi) usa Link-Local y Multicast-DNS
Sistemas Distribuidos
17
Fernando Pérez Costoya
Descubrimiento de DA en SLP
Service Location Protocol: Automatic Discovery of IP Network Services. Erik Guttman
Sistemas Distribuidos
19
4-Servicio de nombres
Fernando Pérez Costoya
• Tres roles (usando terminología SLP):
– cliente (UA), proveedor servicio (SA), servidor descubrimiento (DA)
• Alternativa principal: con o sin DA
– Puede haber múltiples DA: replicación y/o info. de distintos ámbitos
• Con DA (Jini, UPnP):
– UA y SA deben localizar DAs (posible filtro por ámbitos)
• Localización activa: UA/SA multicast a dirección fija
• Localización pasiva: DA multicast a dirección fija
– Facilita incorporación de nuevos DAs al sistema
– SAs pueden registrar servicios y UAs realizar consultas
– SA registra servicio mediante unicast en DAs localizados
– UA consulta mediante unicast a alguno de los DAs localizados
– UA puede pedir a DA notificación si aparece un tipo de SA → evento
Sistemas Distribuidos
18
Fernando Pérez Costoya
Registro y búsqueda de servicio en SLP
Service Location Protocol: Automatic Discovery of IP Network Services. Erik Guttman
Sistemas Distribuidos
20
Fernando Pérez Costoya
5
Sistemas Distribuidos
Fernando Pérez Costoya
Servicios de descubrimiento de servicios
• Sin DA: pull versus push
– Pull: UA multicast petición; SA la recibe y responde
– Push: SA multicast anuncio de servicio; UAs guardan esa info.
– push descubrimiento automático nuevo SA; pull uso de polling
• Esquema híbrido (SLP)
– Mientras no haya ningún DA (suponiendo modelo pull como SLP):
• SA escucha dir. multicast peticiones de servicio
• UA envía a dir. multicast peticiones de servicio
• SAs/UAs escuchando dir. multicast posibles altas de DAs
– Cuando aparece un DA no habiendo ninguno antes
• SAs registra servicio en DA mediante unicast
• UAs consultan DA usando unicast
• No es un protocolo general sino una solución basada en Java
– Permite UA descarga de código (proxy) para interacción con SA/DA
– No se ocupa de aspectos como auto-conf. IP
• Esquema con DA (lookup service)
– Cada DA gestiona info. vinculada con uno o más grupos (ámbitos)
– UA/SA descubren DAs de grupos de interés usando multicast activo
• DAs les envían proxy de DA para interaccionar con ellos
– Nuevos DAs pueden usar multicast para anunciarse a UAs/SAs
– SA registra serv. en DAs especificando proxy de servicio y atributos
• Se asocia lease al registro del servicio
– UA consulta DA especificando plantilla de servicio:
– Si desaparecen todos los DAs: vuelta al primer punto
• Zeroconf: DA → DNS (real o multicast) con extensiones
– DNS-SD: Usa SRV, PTR y TXT y añade leases y long-lived queries
Sistemas Distribuidos
21
Descubrimiento de servicios en Jini
Fernando Pérez Costoya
Descubrimiento de DA en Jini
• Tipo Java del servicio (subclase del registrado) y selección de atributos
– UA puede solicitar a DA notificación de futuros SAs de un cierto tipo
• Esquema alternativo sin DA (denominado peer lookup)
Sistemas Distribuidos
22
Registro de servicio en Jini
http://www.jini.org/wiki/Jini_Architecture_Specification
Sistemas Distribuidos
23
4-Servicio de nombres
Fernando Pérez Costoya
Fernando Pérez Costoya
http://www.jini.org/wiki/Jini_Architecture_Specification
Sistemas Distribuidos
24
Fernando Pérez Costoya
6
Sistemas Distribuidos
Fernando Pérez Costoya
Consulta de servicio en Jini
Petición de servicio en Jini
http://www.jini.org/wiki/Jini_Architecture_Specification
Sistemas Distribuidos
25
Fernando Pérez Costoya
http://www.jini.org/wiki/Jini_Architecture_Specification
Sistemas Distribuidos
26
Fernando Pérez Costoya
Descubrimiento de servicios en Jini
Client
1. ‘finance’ lookup
service
Printing
service
admin
admin
Client
Lookup
service
Network
4. Use printing
service
Corporate
infoservice
Printing
service
2. Here I am: .....
admin, finance
3. Request
‘printing’
Lookup
service
finance
Distributed Systems: Concepts and Design
Coulouris, Dollimore y Kindberg
Sistemas Distribuidos
27
4-Servicio de nombres
Fernando Pérez Costoya
7
Descargar