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. 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
Seg
urid
ad e
inte
grid
ad
Asp
ecto
s ét
icos
y s
ocia
les
Her
ram
ient
as y
pla
tafo
rmas
Met
odol
ogía
s
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. 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. 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. 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 SU SU SU SM SM SM 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 SU SU SU SM SM SM 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 SU SU SU SM SM SM 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 SU SU SU SM SM SM SM
SCM SCM SCM 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 SU SU SM SM SM SM
SCM SCM 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. Integración de servicios heterogéneos
UPV / EHU
Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 30
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 31
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 32
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 invocation Discovery / Registry
Discovery / 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 33
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 34
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 35
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 36
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 37
Integración de servicios OSGi: un ejemplo (cont)
Ejemplo “Hello World”, tomado de (Lee, 2003). (d) Descubrimiento e invocación.