UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 1 Sistemas Ubicuos 4. Descubrimiento de servicios
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 2 Descubrimiento de servicios 1.Introducción 2.Protocolos de descubrimiento de servicios 3.Estructura del mecanismo de descubrimiento 4.Distribución de funciones 5.Integración de servicios heterogéneos
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 3 Descubrimiento de servicios Interfaces de usuario Infraestructuras hardware Infraestructuras software Aplicaciones inteligentes Servicios Seguridad e integridad Aspectos éticos y sociales Herramientas y plataformas Metodologías
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 4 Descubrimiento de servicios 1.Introducción 2.Protocolos de descubrimiento de servicios 3.Estructura del mecanismo de descubrimiento 4.Distribución de funciones 5.Integración de servicios heterogéneos
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 5 Por qué un servicio de descubrimiento de servicios Los recursos son de naturaleza dinámica –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
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 6 Cuestiones a considerar 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
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 7 Descubrimiento de servicios 1.Introducción 2.Protocolos de descubrimiento de servicios 3.Estructura del mecanismo de descubrimiento 4.Distribución de funciones 5.Integración de servicios heterogéneos
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 8 Protocolos de descubrimiento Numerosos desarrollos: –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 –...
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 9 Protocolos de descubrimiento Aspectos del diseño (Zhu, 2005) 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
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 10 Identificación del servicio y los atributos Cómo el cliente especifica el servicio que quiere usar. Exclusivamente basado en plantillas Adicionalmente, de forma predefinida Jini, UPnP, Salutation, SDP Bonjour, SLP
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 11 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. Unicast + multicast Unicast + broadcast Salutation, SDP INS, Jini, UPnP, Bonjour Unicast + multicast + broadcast Ninja, SLP Broadcast DEAPspace
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 12 Método de registro y descubrimiento Se basan en anuncio o interrogación. Anuncio Interrogación Bonjour, SDP DEAPspace Anuncio + interrogación INS, Ninja, Jini, UPnP, Salutation, SLP
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 13 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. 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 Salutation, SLP DEAPSpace, UPnP, SDP Con directorio jerárquico INS, Ninja, Jini, Bonjour
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 14 Validez de la información sobre el servicio 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 Hard state Salutation INS, Ninja, DEAPspace, Jini, UPnP, Bonjour, SLP, SDP
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 15 Ambito del descubrimiento La mayoría de los protocolos restringen el ámbito a parámetros muy ligados a la red subyacente. Restringido a LAN Topología (# hops) DEAPspace, SDP UPnP, Salutation Dominio administrativo INS, Ninja, Jini, SLP Contexto (ubicación) Ninja, Jini
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 16 Selección del servicio 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 INS Selección manual Ninja, DEAPspace, Jini, UPnP, Bonjour, Salutation, SLP, SDP
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 17 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 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 Jini (Java-RMI) UPnP (XML-SOAP-HTTP) Salutation (RPC) Bonjour, SLP, SDP Operaciones de la aplicación UPnP, Salutation
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 18 Control del uso del servicio Se proporciona un mecanismo de leasing o bien cliente puede liberar explícitamente el servicio. Liberación explícita Basado en leasing Jini UPnP, Salutation, SLP
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 19 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. Encuesta Notificación mediante eventos Jini, Salutation, UpnP UPnP
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 20 Mecanismos de seguridad Integrados Mediante extensiones UPnP, Bonjour (DNS) Ninja, Jini, Salutation, SLP, SDP
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 21 Autenticación De los usuarios De los dispositivos UPnP, SDP Ninja, Jini, UPnP, Salutation De los servicios Ninja, Jini, UPnP, Bonjour, SLP
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 22 Descubrimiento de servicios 1.Introducción 2.Protocolos de descubrimiento de servicios 3.Estructura del mecanismo de descubrimiento 4.Distribución de funciones 5.Integración de servicios heterogéneos
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 23 Modelos de arquitecturas para el descubrimiento de servicios (Dabrowski & Mills, 2002) Componentes básicos: –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
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 24 Arquitecturas para el descubrimiento de servicios: Arquitectura en dos partes Un SM se da a conocer mediante multicast. SU SM
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 25 Arquitecturas para el descubrimiento de servicios: Arquitectura en dos partes Un SU descubre servicios mediante multicast. SU SM
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 26 Arquitecturas para el descubrimiento de servicios: Arquitectura en dos partes El SU obtiene el SD. SU SM El SU accede al servicio.
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 27 Arquitecturas para el descubrimiento de servicios: Arquitectura en tres partes SCM: Service Cache Manager. Proporciona persistencia SU SM SCM
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 28 Arquitecturas para el descubrimiento de servicios: Arquitectura en tres partes Los servicios se registran en los SCMs. SU SM SCM SU SCM Los SU descubren los servicios registrados.
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 29 Descubrimiento de servicios 1.Introducción 2.Protocolos de descubrimiento de servicios 3.Estructura del mecanismo de descubrimiento 4.Distribución de funciones 5.Integración de servicios heterogéneos
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 30 Modelo de entorno para sistemas ubicuos Recursos o servicios Dispositivos de acceso Electrodomésticos, iluminación, proyector... Mando, PDA, teléfono... Medio de acceso WiFi, Bluetooth, Infrarrojos, GPRS... Servidores PC, dispositivos específicos... Infraestructura de comunicación Power line, ethernet... ¿Explícito o implícito?
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 31 Distribución de funciones Dónde ubicar... –El SU –El SCM –La gestión de usuarios Alternativas: –Utilizar servidores específicos o no –Centralizado vs distribuido –Replicación de servicios
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 32 Un usuario utiliza su dispositivo de acceso que le autoidentifica para acceder a los servicios de un entorno ubicuo. –El dispositivo es de uso personal (tipo tab: quien posee el dispositivo está autorizado para usarlo). –El dispositivo descubre los servicios que ofrece el entorno. –El usuario puede operar con los dispositivos descubiertos de acuerdo a sus derechos de acceso sobre ellos, codificados en su dispositivo de acceso. Ejemplo 1
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 33 Ejemplo 2 Un usuario utiliza un dispositivo de acceso para acceder a los servicios de un entorno ubicuo. –El dispositivo es de uso común (tipo pad). –Un servidor dedicado descubre los servicios que ofrece el entorno. –El servidor autentica al usuario. –El usuario puede operar con los dispositivos descubiertos de acuerdo a sus derechos de acceso sobre ellos, almacenados en el servidor.
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 34 Arquitectura en 2 partes Dependiendo de dónde se ubique el SU y las funciones de gestión de usuario: –en el dispositivo de acceso: personal-server architecture (ejemplo 1) –en un servidor dedicado: dedicated-server architecture (ejemplo 2)
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 35 Arquitectura en 3 partes Dependiendo de dónde se ubique el SCM, varias combinaciones (Salvador et al, 2005) :
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 36 Descubrimiento de servicios 1.Introducción 2.Protocolos de descubrimiento de servicios 3.Estructura del mecanismo de descubrimiento 4.Distribución de funciones 5.Integración de servicios heterogéneos
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 37 Integración de servicios Dispositivos heterogéneos Muchos protocolos ¿Cómo integrarlos para ofrecer una interfaz común a las aplicaciones?
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 38 Integración de servicios Enfoques Soluciones ad-hoc –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
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 39 X10 resource X10 resource Power line Jini Service 1 Jini Service 2 UPnP Gateway 1 UPNP Gateway 2 X10 Gateway EIB Gateway EIB resource EIB resource EIB bus UPnP resource 1 UPnP resource 2 UPnP Gateway 2 EIB Gateway Jini Service 2 Jini Service 1 LUS Jini Client UPnP Gateway factory Other Gateway factories X10 Gateway factory EIB Gateway factory UPnP Control point Gateway creation UPnP commands Service invocationDiscovery / Registry UPnP Gateway 1 X10 Gateway Jini Client Jini Client Integración de servicios Jini como plataforma base
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 40 Integración de servicios OSGi 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.
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 41 Integración de servicios OSGi: registro y descubrimiento Registro y descubrimiento de servicios en OSGi. Tomado de (Lee, 2003)
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 42 Integración de servicios OSGi: un ejemplo Ejemplo “Hello World”, tomado de (Lee, 2003). (a)Definición de la interfaz, (b) implementación del servicio
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 43 Integración de servicios OSGi: un ejemplo (cont) Ejemplo “Hello World”, tomado de (Lee, 2003). (c) Registro del servicio.
UPV - EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 44 Integración de servicios OSGi: un ejemplo (cont) Ejemplo “Hello World”, tomado de (Lee, 2003). (d) Descubrimiento e invocación.