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