UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos...

37
UPV / EHU Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores Sistemas Ubicuos 4. Descubrimiento de servicios

Transcript of UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos...

Page 1: UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos de – Publicación o registro de recursos y servicios. – Descubrimiento de esos

UPV / EHU

Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores 1

Sistemas Ubicuos

4. Descubrimiento de

servicios

Page 2: UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos de – Publicación o registro de recursos y servicios. – Descubrimiento de esos

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

Page 3: UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos de – Publicación o registro de recursos y servicios. – Descubrimiento de esos

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

Page 4: UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos de – Publicación o registro de recursos y servicios. – Descubrimiento de esos

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

Page 5: UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos de – Publicación o registro de recursos y servicios. – Descubrimiento de esos

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

Page 6: UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos de – Publicación o registro de recursos y servicios. – Descubrimiento de esos

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

Page 7: UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos de – Publicación o registro de recursos y servicios. – Descubrimiento de esos

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

Page 8: UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos de – Publicación o registro de recursos y servicios. – Descubrimiento de esos

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 –  ...

Page 9: UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos de – Publicación o registro de recursos y servicios. – Descubrimiento de esos

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

Page 10: UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos de – Publicación o registro de recursos y servicios. – Descubrimiento de esos

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

Page 11: UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos de – Publicación o registro de recursos y servicios. – Descubrimiento de esos

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

Page 12: UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos de – Publicación o registro de recursos y servicios. – Descubrimiento de esos

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

Page 13: UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos de – Publicación o registro de recursos y servicios. – Descubrimiento de esos

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

Page 14: UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos de – Publicación o registro de recursos y servicios. – Descubrimiento de esos

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

Page 15: UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos de – Publicación o registro de recursos y servicios. – Descubrimiento de esos

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

Page 16: UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos de – Publicación o registro de recursos y servicios. – Descubrimiento de esos

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

Page 17: UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos de – Publicación o registro de recursos y servicios. – Descubrimiento de esos

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

Page 18: UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos de – Publicación o registro de recursos y servicios. – Descubrimiento de esos

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

Page 19: UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos de – Publicación o registro de recursos y servicios. – Descubrimiento de esos

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

Page 20: UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos de – Publicación o registro de recursos y servicios. – Descubrimiento de esos

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

Page 21: UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos de – Publicación o registro de recursos y servicios. – Descubrimiento de esos

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

Page 22: UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos de – Publicación o registro de recursos y servicios. – Descubrimiento de esos

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

Page 23: UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos de – Publicación o registro de recursos y servicios. – Descubrimiento de esos

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

Page 24: UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos de – Publicación o registro de recursos y servicios. – Descubrimiento de esos

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

Page 25: UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos de – Publicación o registro de recursos y servicios. – Descubrimiento de esos

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

Page 26: UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos de – Publicación o registro de recursos y servicios. – Descubrimiento de esos

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.

Page 27: UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos de – Publicación o registro de recursos y servicios. – Descubrimiento de esos

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

Page 28: UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos de – Publicación o registro de recursos y servicios. – Descubrimiento de esos

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.

Page 29: UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos de – Publicación o registro de recursos y servicios. – Descubrimiento de esos

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

Page 30: UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos de – Publicación o registro de recursos y servicios. – Descubrimiento de esos

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?

Page 31: UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos de – Publicación o registro de recursos y servicios. – Descubrimiento de esos

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

Page 32: UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos de – Publicación o registro de recursos y servicios. – Descubrimiento de esos

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

Page 33: UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos de – Publicación o registro de recursos y servicios. – Descubrimiento de esos

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.

Page 34: UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos de – Publicación o registro de recursos y servicios. – Descubrimiento de esos

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)

Page 35: UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos de – Publicación o registro de recursos y servicios. – Descubrimiento de esos

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

Page 36: UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos de – Publicación o registro de recursos y servicios. – Descubrimiento de esos

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.

Page 37: UPV / EHU Sistemas Ubicuos · (no se instalan drivers explícitamente). • Se requieren mecanismos de – Publicación o registro de recursos y servicios. – Descubrimiento de esos

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.