UPV / EHU Sistemas Ubicuos 4. Descubrimiento de servicios Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 1 Descubrimiento de servicios UPV / EHU 1. Introducción 2. Protocolos de descubrimiento de servicios 3. Estructura del mecanismo de descubrimiento 4. Integración de servicios heterogéneos Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 2 Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores Aplicaciones inteligentes Servicios Infraestructuras software Infraestructuras hardware Aspectos éticos y sociales Interfaces de usuario Seguridad e integridad Metodologías UPV / EHU Herramientas y plataformas Descubrimiento de servicios 3 Descubrimiento de servicios UPV / EHU 1. Introducción 2. Protocolos de descubrimiento de servicios 3. Estructura del mecanismo de descubrimiento 4. Integración de servicios heterogéneos Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 4 Por qué un servicio de descubrimiento de servicios • Los recursos son de naturaleza dinámica UPV / EHU – Pueden estar disponibles o no. – Pueden estar en el radio de acción del usuario o no. – El usuario cambia de entorno y las aplicaciones descubren nuevos dispositivos. – La aplicación debe adaptarse en tiempo de ejecución (no se instalan drivers explícitamente). • Se requieren mecanismos de – Publicación o registro de recursos y servicios. – Descubrimiento de esos servicios por las aplicaciones. – Control de acceso, seguridad, privacidad... • Los recursos pueden ser heterogéneos Integración • Se requieren estándares Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 5 Cuestiones a considerar UPV / EHU • Naturaleza de los recursos – Disponibilidad (total, puntual, temporal) – Grado de persistencia del estado • Características de los dispositivos de acceso – Privados o compartidos – Tamaño y capacidad (de cómputo, comunicación, energía) • Características de los usuarios – Derechos de acceso a los recursos – Se requiere autenticación Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 6 Descubrimiento de servicios UPV / EHU 1. Introducción 2. Protocolos de descubrimiento de servicios 3. Estructura del mecanismo de descubrimiento 4. Integración de servicios heterogéneos Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 7 Protocolos de descubrimiento • Numerosos desarrollos: UPV / EHU – – – – – – – – – – Jini (Sun Microsystems) Universal Plug and Play, UPnP (Microsoft) DEAPspace (IBM Research) Bonjour (Apple) Ninja (University of California and Berkeley) International Naming System, INS (MIT) Service Location Protocol, SLP (IETF) SDP (Bluetooth SIG) Salutation ... Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 8 Protocolos de descubrimiento Aspectos del diseño (Zhu, 2005) UPV / EHU • • • • • • • • • • • Identificación del servicio y los atributos Método de comunicación inicial Método de registro y descubrimiento Infraestructura del servicio de descubrimiento Validez de la información sobre el servicio Ámbito del descubrimiento Selección del servicio Método de invocación del servicio Control del uso del servicio Comunicación del estado del servicio Mecanismos de seguridad Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 9 Identificación del servicio y los atributos • Cómo el cliente especifica el servicio que quiere usar. UPV / EHU Exclusivamente basado en plantillas Bonjour, SLP Adicionalmente, de forma predefinida Jini, UPnP, Salutation, SDP Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 10 Método de comunicación inicial • Patrones de comunicación utilizados entre clientes y servicios en el registro y el descubrimiento: unicast, multicast o broadcast. • Se suelen combinar varios patrones. UPV / EHU Unicast + multicast INS, Jini, UPnP, Bonjour Unicast + broadcast Salutation, SDP Unicast + multicast + broadcast Ninja, SLP Broadcast DEAPspace Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 11 Método de registro y descubrimiento • Se basan en anuncio o interrogación. UPV / EHU Anuncio DEAPspace Interrogación Bonjour, SDP Anuncio + interrogación INS, Ninja, Jini, UPnP, Salutation, SLP Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 12 Infraestructura del servicio de descubrimiento • Si no existe una infraestructura específica, clientes y servicios se comunican directamente durante el descubrimiento. – Adecuado para entornos restringidos. UPV / EHU • El sistema puede incluir un servicio de directorio donde los servicios se registran y sobre el que clientes ejecutan el descubrimiento. Sin directorio Con directorio plano Con directorio jerárquico Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores DEAPSpace, UPnP, SDP Salutation, SLP INS, Ninja, Jini, Bonjour 13 Validez de la información sobre el servicio UPV / EHU • Cómo se valida la información sobre el estado del servicio. • Puede dejarse a iniciativa del cliente (hard state) o proporcionar mecanismos de validación (soft state). Soft state INS, Ninja, DEAPspace, Jini, UPnP, Bonjour, SLP, SDP Hard state Salutation Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 14 Ambito del descubrimiento • La mayoría de los protocolos restringen el ámbito a parámetros muy ligados a la red subyacente. UPV / EHU Restringido a LAN UPnP, Salutation Topología (# hops) DEAPspace, SDP Dominio administrativo Contexto (ubicación) Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores INS, Ninja, Jini, SLP Ninja, Jini 15 Selección del servicio UPV / EHU • El descubrimiento puede dar lugar a una lista de servicios que cumplen la especificación de los atributos de la búsqueda. • Se requiere seleccionar uno de los servicios de la lista. Normalmente, la selección se deja en manos del cliente, aunque el servicio de descubrimiento podría hacer una selección automática. Selección automática Selección manual Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores INS Ninja, DEAPspace, Jini, UPnP, Bonjour, Salutation, SLP, SDP 16 Método de invocación del servicio • Tres posibles niveles: – Ubicación del servicio (URL, dirección IP...) – Mecanismo de comunicación – Operaciones de la aplicación UPV / EHU • Cuando el protocolo no especifica los niveles superiores, la aplicación es responsable de definirlos. Sólo ubicación del servicio Mecanismo de comunicación Operaciones de la aplicación Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores Bonjour, SLP, SDP Jini (Java-RMI) UPnP (XML-SOAP-HTTP) Salutation (RPC) UPnP, Salutation 17 Control del uso del servicio • Se proporciona un mecanismo de leasing o bien cliente puede liberar explícitamente el servicio. UPV / EHU Liberación explícita UPnP, Salutation, SLP Basado en leasing Jini Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 18 Comunicación del estado del servicio • El cliente puede conocer los cambios en el estado del servicio bien por encuesta, bien por notificación del servidor mediante eventos, cuando el protocolo proporciona este mecanismo. UPV / EHU Encuesta Notificación mediante eventos Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores UPnP Jini, Salutation, UpnP 19 Mecanismos de seguridad UPV / EHU Integrados Ninja, Jini, Salutation, SLP, SDP Mediante extensiones UPnP, Bonjour (DNS) Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 20 Autenticación UPV / EHU De los usuarios De los dispositivos De los servicios Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores Ninja, Jini, UPnP, Salutation UPnP, SDP Ninja, Jini, UPnP, Bonjour, SLP 21 Descubrimiento de servicios UPV / EHU 1. Introducción 2. Protocolos de descubrimiento de servicios 3. Estructura del mecanismo de descubrimiento 4. Integración de servicios heterogéneos Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 22 Modelos de arquitecturas para el descubrimiento de servicios (Dabrowski & Mills, 2002) • Componentes básicos: UPV / EHU – Cliente: Service User (SU) – Servidor: Service Manager (SM) • Esquemas de comunicación: – Multicast – Unicast • Descripciones del servicio (SD): – – – – – Identificación Tipo Atributos Interfaz del servicio Interfaz de usuario Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 23 Arquitecturas para el descubrimiento de servicios: Arquitectura en dos partes UPV / EHU SU SU SU SU SM SM SM SM • Un SM se da a conocer mediante multicast. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 24 Arquitecturas para el descubrimiento de servicios: Arquitectura en dos partes UPV / EHU SU SU SU SU SM SM SM SM • Un SU descubre servicios mediante multicast. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 25 Arquitecturas para el descubrimiento de servicios: Arquitectura en dos partes UPV / EHU SU SU SU SU SM SM SM SM • El SU obtiene el SD. • El SU accede al servicio. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 26 Arquitecturas para el descubrimiento de servicios: Arquitectura en tres partes UPV / EHU SU SU SU SU SM SM SM SM SCM SCM SCM SCM • SCM: Service Cache Manager. Proporciona persistencia Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 27 Arquitecturas para el descubrimiento de servicios: Arquitectura en tres partes UPV / EHU SU SU SU SU SM SM SM SM SCM SCM SCM SCM • Los servicios se registran en los SCMs. • Los SU descubren los servicios registrados. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 28 Descubrimiento de servicios UPV / EHU 1. Introducción 2. Protocolos de descubrimiento de servicios 3. Estructura del mecanismo de descubrimiento 4. Integración de servicios heterogéneos Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 29 Integración de servicios UPV / EHU • Dispositivos heterogéneos • Muchos protocolos • ¿Cómo integrarlos para ofrecer una interfaz común a las aplicaciones? Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 30 Integración de servicios Enfoques • Soluciones ad-hoc UPV / EHU – Pasarelas específicas entre protocolos. – Hay que integrar específicamente cada dispositivo. • Plataforma común – Todos los servicios se representan bajo una interfaz específica lo suficientemente general (p. ej., JINI). • Un marco estándar de especificación lo más universal posible – OSGi Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 31 Integración de servicios Jini como plataforma base LUS UPV / EHU • Jini Service 1 • Jini Service 2 • UPnP Gateway 1 • UPNP Gateway 2 • X10 Gateway • EIB Gateway Jini Client Jini Client Jini Client Discovery / Registry Service invocation UPnP Gateway 1 UPnP Gateway 2 X10 Gateway EIB Gateway Jini Service 1 Jini Service 2 Gateway creation UPnP Gateway factory UPnP Control point X10 Gateway factory EIB Gateway factory UPnP commands Discovery / Registry EIB bus Power line UPnP resource 1 Other Gateway factories UPnP resource 2 Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores X10 resource X10 resource EIB resource EIB resource 32 Integración de servicios OSGi UPV / EHU • • • • Open Services Gateway Initiative (1999). Orientado a entornos domésticos. Arquitectura centralizada. Proporciona soporte para instalar dinámicamente servicios Java (bundles) – La implementación de los bundles compete a los desarrolladores del sistema – Los desarrolladores de aplicaciones se limitan a especificar interfaces. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 33 Integración de servicios OSGi: registro y descubrimiento UPV / EHU Registro y descubrimiento de servicios en OSGi. Tomado de (Lee, 2003) Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 34 Integración de servicios OSGi: un ejemplo UPV / EHU Ejemplo “Hello World”, tomado de (Lee, 2003). (a) Definición de la interfaz, (b) implementación del servicio Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 35 Integración de servicios OSGi: un ejemplo (cont) UPV / EHU Ejemplo “Hello World”, tomado de (Lee, 2003). (c) Registro del servicio. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 36 Integración de servicios OSGi: un ejemplo (cont) UPV / EHU Ejemplo “Hello World”, tomado de (Lee, 2003). (d) Descubrimiento e invocación. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 37